Solved Works getting HashMap values, but not ArrayList values? Why not?

Discussion in 'Plugin Development' started by MayoDwarf, Sep 29, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    MayoDwarf

    So getting the HashMap works and stuff. But in my main when it adds them to the ArrayList it works. Once it removes it in the jKillstreak class on Respawn event it does not remove them... Why?

    MAIN:
    Code:java
    1. package me.jKits;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.HashMap;
    5.  
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Material;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.enchantments.Enchantment;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.plugin.PluginManager;
    14. import org.bukkit.plugin.java.JavaPlugin;
    15.  
    16. import me.jKits.jKillstreak;
    17.  
    18. public class Main extends JavaPlugin{
    19. ArrayList<Player> Once = new ArrayList<Player>();
    20. HashMap<Player, Integer> KS = new HashMap<Player, Integer>();
    21.  
    22. @Override
    23. public void onEnable() {
    24. PluginManager pm = getServer().getPluginManager();
    25. pm.registerEvents(new jKillstreak(), this);
    26.  
    27. }
    28.  
    29. public boolean onCommand(CommandSender sender, Command cmd, String Label, String[] args) {
    30. Player p = (Player) sender;
    31. if(cmd.getName().equalsIgnoreCase("pvp")) {
    32. if(p.hasPermission("nKits.pvp")) {
    33. if(Once.contains(p)) {
    34. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    35. } else {
    36. p.getInventory().clear();
    37. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    38. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    39. ItemStack Helmet = new ItemStack(Material.IRON_HELMET);
    40. ItemStack Chest = new ItemStack(Material.IRON_CHESTPLATE);
    41. ItemStack Legs = new ItemStack(Material.IRON_LEGGINGS);
    42. ItemStack Boots = new ItemStack(Material.IRON_BOOTS);
    43. p.getInventory().setHelmet(Helmet);
    44. p.getInventory().setChestplate(Chest);
    45. p.getInventory().setLeggings(Legs);
    46. p.getInventory().setBoots(Boots);
    47. sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 1);
    48. p.getInventory().addItem(sword);
    49. p.getInventory().addItem(soup);
    50. p.getInventory().addItem(soup);
    51. p.getInventory().addItem(soup);
    52. p.getInventory().addItem(soup);
    53. p.getInventory().addItem(soup);
    54. p.getInventory().addItem(soup);
    55. p.getInventory().addItem(soup);
    56. p.getInventory().addItem(soup);
    57. p.getInventory().addItem(soup);
    58. p.getInventory().addItem(soup);
    59. p.getInventory().addItem(soup);
    60. p.getInventory().addItem(soup);
    61. p.getInventory().addItem(soup);
    62. p.getInventory().addItem(soup);
    63. p.getInventory().addItem(soup);
    64. p.getInventory().addItem(soup);
    65. p.getInventory().addItem(soup);
    66. p.getInventory().addItem(soup);
    67. p.getInventory().addItem(soup);
    68. p.getInventory().addItem(soup);
    69. p.getInventory().addItem(soup);
    70. p.getInventory().addItem(soup);
    71. p.getInventory().addItem(soup);
    72. p.getInventory().addItem(soup);
    73. p.getInventory().addItem(soup);
    74. p.getInventory().addItem(soup);
    75. p.getInventory().addItem(soup);
    76. p.getInventory().addItem(soup);
    77. p.getInventory().addItem(soup);
    78. p.getInventory().addItem(soup);
    79. p.getInventory().addItem(soup);
    80. p.getInventory().addItem(soup);
    81. p.getInventory().addItem(soup);
    82. p.getInventory().addItem(soup);
    83. p.getInventory().addItem(soup);
    84. p.getInventory().addItem(soup);
    85. Once.add(p);
    86. }
    87. }
    88. }
    89. if(cmd.getName().equalsIgnoreCase("archer")) {
    90. if(p.hasPermission("nKits.archer")) {
    91. if(Once.contains(p)) {
    92. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    93. } else {
    94. p.getInventory().clear();
    95. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    96. ItemStack bow = new ItemStack(Material.BOW);
    97. ItemStack Helmet = new ItemStack(Material.DIAMOND_HELMET);
    98. ItemStack Chest = new ItemStack(Material.IRON_CHESTPLATE);
    99. ItemStack Legs = new ItemStack(Material.IRON_LEGGINGS);
    100. ItemStack Boots = new ItemStack(Material.IRON_BOOTS);
    101. ItemStack arrows = new ItemStack(Material.ARROW);
    102. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    103. p.getInventory().setHelmet(Helmet);
    104. p.getInventory().setChestplate(Chest);
    105. p.getInventory().setLeggings(Legs);
    106. p.getInventory().setBoots(Boots);
    107. bow.addUnsafeEnchantment(Enchantment.ARROW_DAMAGE, 2);
    108. bow.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 1);
    109. p.getInventory().addItem(bow);
    110. p.getInventory().addItem(sword);
    111. p.getInventory().addItem(soup);
    112. p.getInventory().addItem(soup);
    113. p.getInventory().addItem(soup);
    114. p.getInventory().addItem(soup);
    115. p.getInventory().addItem(soup);
    116. p.getInventory().addItem(soup);
    117. p.getInventory().addItem(soup);
    118. p.getInventory().addItem(soup);
    119. p.getInventory().addItem(soup);
    120. p.getInventory().addItem(soup);
    121. p.getInventory().addItem(soup);
    122. p.getInventory().addItem(soup);
    123. p.getInventory().addItem(soup);
    124. p.getInventory().addItem(soup);
    125. p.getInventory().addItem(soup);
    126. p.getInventory().addItem(soup);
    127. p.getInventory().addItem(arrows);
    128. p.getInventory().addItem(soup);
    129. p.getInventory().addItem(soup);
    130. p.getInventory().addItem(soup);
    131. p.getInventory().addItem(soup);
    132. p.getInventory().addItem(soup);
    133. p.getInventory().addItem(soup);
    134. p.getInventory().addItem(soup);
    135. p.getInventory().addItem(soup);
    136. p.getInventory().addItem(soup);
    137. p.getInventory().addItem(soup);
    138. p.getInventory().addItem(soup);
    139. p.getInventory().addItem(soup);
    140. p.getInventory().addItem(soup);
    141. p.getInventory().addItem(soup);
    142. p.getInventory().addItem(soup);
    143. p.getInventory().addItem(soup);
    144. p.getInventory().addItem(soup);
    145. Once.add(p);
    146. }
    147.  
    148. }
    149.  
    150. }
    151. if(cmd.getName().equalsIgnoreCase("tank")) {
    152. if(p.hasPermission("nKits.tank")) {
    153. if(Once.contains(p)) {
    154. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    155. } else {
    156. p.getInventory().clear();
    157. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    158. ItemStack bow = new ItemStack(Material.DIAMOND_SWORD);
    159. ItemStack Helmet = new ItemStack(Material.IRON_HELMET);
    160. ItemStack Chest = new ItemStack(Material.DIAMOND_CHESTPLATE);
    161. ItemStack Legs = new ItemStack(Material.IRON_LEGGINGS);
    162. ItemStack Boots = new ItemStack(Material.IRON_BOOTS);
    163. p.getInventory().setHelmet(Helmet);
    164. p.getInventory().setChestplate(Chest);
    165. p.getInventory().setLeggings(Legs);
    166. p.getInventory().setBoots(Boots);
    167. bow.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
    168. bow.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
    169. p.getInventory().addItem(bow);
    170. p.getInventory().addItem(soup);
    171. p.getInventory().addItem(soup);
    172. p.getInventory().addItem(soup);
    173. p.getInventory().addItem(soup);
    174. p.getInventory().addItem(soup);
    175. p.getInventory().addItem(soup);
    176. p.getInventory().addItem(soup);
    177. p.getInventory().addItem(soup);
    178. p.getInventory().addItem(soup);
    179. p.getInventory().addItem(soup);
    180. p.getInventory().addItem(soup);
    181. p.getInventory().addItem(soup);
    182. p.getInventory().addItem(soup);
    183. p.getInventory().addItem(soup);
    184. p.getInventory().addItem(soup);
    185. p.getInventory().addItem(soup);
    186. p.getInventory().addItem(soup);
    187. p.getInventory().addItem(soup);
    188. p.getInventory().addItem(soup);
    189. p.getInventory().addItem(soup);
    190. p.getInventory().addItem(soup);
    191. p.getInventory().addItem(soup);
    192. p.getInventory().addItem(soup);
    193. p.getInventory().addItem(soup);
    194. p.getInventory().addItem(soup);
    195. p.getInventory().addItem(soup);
    196. p.getInventory().addItem(soup);
    197. p.getInventory().addItem(soup);
    198. p.getInventory().addItem(soup);
    199. p.getInventory().addItem(soup);
    200. p.getInventory().addItem(soup);
    201. p.getInventory().addItem(soup);
    202. p.getInventory().addItem(soup);
    203. p.getInventory().addItem(soup);
    204. p.getInventory().addItem(soup);
    205. p.getInventory().addItem(soup);
    206. Once.add(p);
    207. }
    208. }
    209.  
    210. }
    211. if(cmd.getName().equalsIgnoreCase("warrior")) {
    212. if(p.hasPermission("nKits.warrior")) {
    213. if(Once.contains(p)) {
    214. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    215. } else {
    216. p.getInventory().clear();
    217. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    218. ItemStack bow = new ItemStack(Material.DIAMOND_SWORD);
    219. ItemStack Helmet = new ItemStack(Material.IRON_HELMET);
    220. ItemStack Chest = new ItemStack(Material.IRON_CHESTPLATE);
    221. ItemStack Legs = new ItemStack(Material.DIAMOND_LEGGINGS);
    222. ItemStack Boots = new ItemStack(Material.DIAMOND_BOOTS);
    223. p.getInventory().setHelmet(Helmet);
    224. p.getInventory().setChestplate(Chest);
    225. p.getInventory().setLeggings(Legs);
    226. p.getInventory().setBoots(Boots);
    227. bow.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 3);
    228. p.getInventory().addItem(bow);
    229. p.getInventory().addItem(soup);
    230. p.getInventory().addItem(soup);
    231. p.getInventory().addItem(soup);
    232. p.getInventory().addItem(soup);
    233. p.getInventory().addItem(soup);
    234. p.getInventory().addItem(soup);
    235. p.getInventory().addItem(soup);
    236. p.getInventory().addItem(soup);
    237. p.getInventory().addItem(soup);
    238. p.getInventory().addItem(soup);
    239. p.getInventory().addItem(soup);
    240. p.getInventory().addItem(soup);
    241. p.getInventory().addItem(soup);
    242. p.getInventory().addItem(soup);
    243. p.getInventory().addItem(soup);
    244. p.getInventory().addItem(soup);
    245. p.getInventory().addItem(soup);
    246. p.getInventory().addItem(soup);
    247. p.getInventory().addItem(soup);
    248. p.getInventory().addItem(soup);
    249. p.getInventory().addItem(soup);
    250. p.getInventory().addItem(soup);
    251. p.getInventory().addItem(soup);
    252. p.getInventory().addItem(soup);
    253. p.getInventory().addItem(soup);
    254. p.getInventory().addItem(soup);
    255. p.getInventory().addItem(soup);
    256. p.getInventory().addItem(soup);
    257. p.getInventory().addItem(soup);
    258. p.getInventory().addItem(soup);
    259. p.getInventory().addItem(soup);
    260. p.getInventory().addItem(soup);
    261. p.getInventory().addItem(soup);
    262. p.getInventory().addItem(soup);
    263. p.getInventory().addItem(soup);
    264. p.getInventory().addItem(soup);
    265. Once.add(p);
    266. }
    267. }
    268.  
    269. }
    270. if(cmd.getName().equalsIgnoreCase("diamond")) {
    271. if(p.hasPermission("nKits.diamond")) {
    272. if(Once.contains(p)) {
    273. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    274. } else {
    275. p.getInventory().clear();
    276. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    277. ItemStack bow = new ItemStack(Material.DIAMOND_SWORD);
    278. ItemStack Helmet = new ItemStack(Material.DIAMOND_HELMET);
    279. ItemStack Chest = new ItemStack(Material.DIAMOND_CHESTPLATE);
    280. ItemStack Legs = new ItemStack(Material.DIAMOND_LEGGINGS);
    281. ItemStack Boots = new ItemStack(Material.DIAMOND_BOOTS);
    282. p.getInventory().setHelmet(Helmet);
    283. p.getInventory().setChestplate(Chest);
    284. p.getInventory().setLeggings(Legs);
    285. p.getInventory().setBoots(Boots);
    286. bow.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
    287. p.getInventory().addItem(bow);
    288. p.getInventory().addItem(soup);
    289. p.getInventory().addItem(soup);
    290. p.getInventory().addItem(soup);
    291. p.getInventory().addItem(soup);
    292. p.getInventory().addItem(soup);
    293. p.getInventory().addItem(soup);
    294. p.getInventory().addItem(soup);
    295. p.getInventory().addItem(soup);
    296. p.getInventory().addItem(soup);
    297. p.getInventory().addItem(soup);
    298. p.getInventory().addItem(soup);
    299. p.getInventory().addItem(soup);
    300. p.getInventory().addItem(soup);
    301. p.getInventory().addItem(soup);
    302. p.getInventory().addItem(soup);
    303. p.getInventory().addItem(soup);
    304. p.getInventory().addItem(soup);
    305. p.getInventory().addItem(soup);
    306. p.getInventory().addItem(soup);
    307. p.getInventory().addItem(soup);
    308. p.getInventory().addItem(soup);
    309. p.getInventory().addItem(soup);
    310. p.getInventory().addItem(soup);
    311. p.getInventory().addItem(soup);
    312. p.getInventory().addItem(soup);
    313. p.getInventory().addItem(soup);
    314. p.getInventory().addItem(soup);
    315. p.getInventory().addItem(soup);
    316. p.getInventory().addItem(soup);
    317. p.getInventory().addItem(soup);
    318. p.getInventory().addItem(soup);
    319. p.getInventory().addItem(soup);
    320. p.getInventory().addItem(soup);
    321. p.getInventory().addItem(soup);
    322. p.getInventory().addItem(soup);
    323. p.getInventory().addItem(soup);
    324. Once.add(p);
    325. }
    326. }
    327.  
    328. }
    329. return true;
    330. }
    331. @Override
    332. public void onDisable() {
    333.  
    334. }
    335.  
    336.  
    337.  
    338. }
    339.  

    jKillstreak:
    Code:java
    1. package me.jKits;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.enchantments.Enchantment;
    6. import org.bukkit.entity.Entity;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.entity.PlayerDeathEvent;
    11. import org.bukkit.event.player.PlayerRespawnEvent;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.potion.PotionEffect;
    14. import org.bukkit.potion.PotionEffectType;
    15.  
    16. import me.jKits.Main;
    17.  
    18. public class jKillstreak extends Main implements Listener{
    19. public static Main plugin;
    20. @EventHandler
    21. public void onDeath(PlayerDeathEvent evt) {
    22. Entity e = evt.getEntity();
    23. if(e instanceof Player) {
    24. Player player = (Player) e;
    25. Player killer = player.getKiller();
    26. if(killer instanceof Player) {
    27. KS.put(player, 0);
    28. if(KS.containsKey(killer)) {
    29. int plus = KS.get(killer) + 1;
    30. KS.put(killer, plus); } else {
    31. KS.put(killer, 1);
    32. }
    33. int Score = KS.get(killer);
    34. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You are on a " + ChatColor.RED + "" + Score + ChatColor.GREEN + " killstreak!" );
    35. if(KS.get(killer) == 5) {
    36. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I " + ChatColor.GREEN + " for 30 seconds!");
    37. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 600, 0));
    38. }
    39. if(KS.get(killer) == 10) {
    40. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I " + ChatColor.GREEN + " for 60 seconds!");
    41. killer.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
    42. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 1200, 0));
    43. }
    44. if(KS.get(killer) == 15) {
    45. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I and Speed I " + ChatColor.GREEN + " for 120 seconds!");
    46. killer.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
    47. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 2400, 0));
    48. killer.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 2400, 0));
    49. }
    50. if(KS.get(killer) == 20) {
    51. killer.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
    52. killer.removePotionEffect(PotionEffectType.SPEED);
    53. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I and Speed I " + ChatColor.GREEN + " for 240 seconds!");
    54. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 4800, 0));
    55. killer.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 4800, 0));
    56. }
    57. if(KS.get(killer) == 25) {
    58. killer.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
    59. killer.removePotionEffect(PotionEffectType.SPEED);
    60. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I, Resistance I, and Speed I " + ChatColor.GREEN + " for 480 seconds!");
    61. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 9600, 0));
    62. killer.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 9600, 0));
    63. killer.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 9600, 0));
    64. }
    65. if(KS.get(killer) == 30) {
    66. killer.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
    67. killer.removePotionEffect(PotionEffectType.SPEED);
    68. killer.removePotionEffect(PotionEffectType.DAMAGE_RESISTANCE);
    69. killer.sendMessage(ChatColor.GREEN + "You have earned " + Score + ChatColor.GREEN + " kills! You now have " + ChatColor.RED + " Strength I, Resistance I, and Speed I " + ChatColor.GREEN + " for ever! Congrats on 30 kills! ;)");
    70. killer.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 500000000, 0));
    71. killer.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 500000000, 0));
    72. killer.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 500000000, 0)); } } }
    73. }
    74. @EventHandler
    75. public void onRespawn(PlayerRespawnEvent evt) {
    76. final Player p = evt.getPlayer();
    77. Once.remove(p);
    78. ItemStack soup = new ItemStack(Material.MUSHROOM_SOUP);
    79. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    80. ItemStack Helmet = new ItemStack(Material.IRON_HELMET);
    81. ItemStack Chest = new ItemStack(Material.IRON_CHESTPLATE);
    82. ItemStack Legs = new ItemStack(Material.IRON_LEGGINGS);
    83. ItemStack Boots = new ItemStack(Material.IRON_BOOTS);
    84. p.getInventory().setHelmet(Helmet);
    85. p.getInventory().setChestplate(Chest);
    86. p.getInventory().setLeggings(Legs);
    87. p.getInventory().setBoots(Boots);
    88. sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 1);
    89. p.getInventory().addItem(sword);
    90. p.getInventory().addItem(soup);
    91. p.getInventory().addItem(soup);
    92. p.getInventory().addItem(soup);
    93. p.getInventory().addItem(soup);
    94. p.getInventory().addItem(soup);
    95. p.getInventory().addItem(soup);
    96. p.getInventory().addItem(soup);
    97. p.getInventory().addItem(soup);
    98. p.getInventory().addItem(soup);
    99. p.getInventory().addItem(soup);
    100. p.getInventory().addItem(soup);
    101. p.getInventory().addItem(soup);
    102. p.getInventory().addItem(soup);
    103. p.getInventory().addItem(soup);
    104. p.getInventory().addItem(soup);
    105. p.getInventory().addItem(soup);
    106. p.getInventory().addItem(soup);
    107. p.getInventory().addItem(soup);
    108. p.getInventory().addItem(soup);
    109. p.getInventory().addItem(soup);
    110. p.getInventory().addItem(soup);
    111. p.getInventory().addItem(soup);
    112. p.getInventory().addItem(soup);
    113. p.getInventory().addItem(soup);
    114. p.getInventory().addItem(soup);
    115. p.getInventory().addItem(soup);
    116. p.getInventory().addItem(soup);
    117. p.getInventory().addItem(soup);
    118. p.getInventory().addItem(soup);
    119. p.getInventory().addItem(soup);
    120. p.getInventory().addItem(soup);
    121. p.getInventory().addItem(soup);
    122. p.getInventory().addItem(soup);
    123. p.getInventory().addItem(soup);
    124. p.getInventory().addItem(soup);
    125. p.getInventory().addItem(soup);
    126.  
    127.  
    128.  
    129. }
    130.  
    131.  
    132. }
     
  2. Offline

    Shevchik

    It is not the same player object after respawn i think.
    Never store players somewhere, store their names instead.
    This will also ensure that you won't get memory leaks when player quit or teleported to other world.
     
  3. Why not use a for loop for the soup?
     
    bloodless2010 likes this.
  4. Offline

    MayoDwarf

    I'm lazy lol

    So store their names in the array list instead?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  5. Offline

    bloodless2010

    @Datdenkiknie "Loop for soup" haha - loop 4 soop
     
  6. Offline

    SkillSam

    I'm sorry to say, but looking at your code was so difficult. I hope that it's alright with you, but I kinda optimized the code a bit.

    I would also have to agree upon what Shevchik was saying, using the player's name is more efficient.

    EDIT: I have found your error, because apparently you have to change the visibility of your HashMaps and ArrayLists to public.

    Main:
    Code:java
    1. package me.jKits;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.HashMap;
    5. import java.util.List;
    6. import java.util.Map;
    7.  
    8. import org.bukkit.Bukkit;
    9. import org.bukkit.ChatColor;
    10. import org.bukkit.Material;
    11. import org.bukkit.command.Command;
    12. import org.bukkit.command.CommandSender;
    13. import org.bukkit.enchantments.Enchantment;
    14. import org.bukkit.entity.Player;
    15. import org.bukkit.inventory.ItemStack;
    16. import org.bukkit.inventory.PlayerInventory;
    17. import org.bukkit.plugin.PluginManager;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19.  
    20. public class Main extends JavaPlugin {
    21.  
    22. public List<String> Once = new ArrayList<String>();
    23. public Map<String, Integer> KS = new HashMap<String, Integer>();
    24.  
    25. public void onEnable() {
    26. PluginManager pm = Bukkit.getPluginManager();
    27. pm.registerEvents(new jKillStreak(this), this);
    28. }
    29.  
    30. public boolean onCommand (CommandSender sender, Command cmd, String lbl, String[] args) {
    31.  
    32. if (!(sender instanceof Player)) {
    33. sender.sendMessage(ChatColor.RED + "You must be a player to perform this command");
    34. }
    35.  
    36. Player p = (Player) sender;
    37. PlayerInventory inv = p.getInventory();
    38.  
    39. if (cmd.getName().equalsIgnoreCase("PvP")) {
    40. if (!(p.hasPermission("nKits.pvp"))) {
    41. p.sendMessage(ChatColor.DARK_RED + "You do not have permission");
    42. return true;
    43. }
    44. if (Once.contains(p.getName())) {
    45. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    46. return true;
    47. }
    48. Once.add(p.getName());
    49. inv.clear();
    50. inv.setArmorContents(new ItemStack[] {
    51. new ItemStack(Material.IRON_BOOTS),
    52. new ItemStack(Material.IRON_LEGGINGS),
    53. new ItemStack(Material.IRON_CHESTPLATE),
    54. new ItemStack(Material.IRON_HELMET)
    55. });
    56. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    57. Sword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    58. inv.addItem(Sword);
    59. for (int i = 0; i < 36; i++) {
    60. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    61. }
    62. return true;
    63. }
    64. if (cmd.getName().equalsIgnoreCase("Archer")) {
    65. if (!(p.hasPermission("nKits.archer"))) {
    66. p.sendMessage(ChatColor.DARK_RED + "You do not have permission");
    67. return true;
    68. }
    69. if (Once.contains(p.getName())) {
    70. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    71. return true;
    72. }
    73. Once.add(p.getName());
    74. inv.clear();
    75. inv.setArmorContents(new ItemStack[] {
    76. new ItemStack(Material.IRON_BOOTS),
    77. new ItemStack(Material.IRON_LEGGINGS),
    78. new ItemStack(Material.IRON_CHESTPLATE),
    79. new ItemStack(Material.DIAMOND_HELMET)
    80. });
    81. inv.addItem(new ItemStack(Material.DIAMOND_SWORD));
    82. ItemStack Bow = new ItemStack(Material.BOW);
    83. Bow.addEnchantment(Enchantment.ARROW_DAMAGE, 2);
    84. Bow.addEnchantment(Enchantment.ARROW_INFINITE, 1);
    85. inv.addItem(Bow);
    86. for (int i = 0; i < 36; i++) {
    87. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    88. }
    89. inv.setItem(17, new ItemStack(Material.ARROW));
    90. return true;
    91. }
    92. if (cmd.getName().equalsIgnoreCase("Tank")) {
    93. if (!(p.hasPermission("nKits.tank"))) {
    94. p.sendMessage(ChatColor.DARK_RED + "You do not have permission");
    95. return true;
    96. }
    97. if (Once.contains(p.getName())) {
    98. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    99. return true;
    100. }
    101. Once.add(p.getName());
    102. inv.clear();
    103. inv.setArmorContents(new ItemStack[] {
    104. new ItemStack(Material.IRON_BOOTS),
    105. new ItemStack(Material.IRON_LEGGINGS),
    106. new ItemStack(Material.DIAMOND_CHESTPLATE),
    107. new ItemStack(Material.IRON_HELMET)
    108. });
    109. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    110. Sword.addEnchantment(Enchantment.DAMAGE_ALL, 2);
    111. Sword.addEnchantment(Enchantment.KNOCKBACK, 1);
    112. inv.addItem(Sword);
    113. for (int i = 0; i < 36; i++) {
    114. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    115. }
    116. return true;
    117. }
    118. if (cmd.getName().equalsIgnoreCase("Warrior")) {
    119. if (!(p.hasPermission("nKits.warrior"))) {
    120. p.sendMessage(ChatColor.DARK_RED + "You do not have permission");
    121. return true;
    122. }
    123. if (Once.contains(p.getName())) {
    124. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    125. return true;
    126. }
    127. Once.add(p.getName());
    128. inv.clear();
    129. inv.setArmorContents(new ItemStack[] {
    130. new ItemStack(Material.DIAMOND_BOOTS),
    131. new ItemStack(Material.DIAMOND_LEGGINGS),
    132. new ItemStack(Material.IRON_CHESTPLATE),
    133. new ItemStack(Material.IRON_HELMET)
    134. });
    135. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    136. Sword.addEnchantment(Enchantment.DAMAGE_ALL, 3);
    137. inv.addItem(Sword);
    138. for (int i = 0; i < 36; i++) {
    139. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    140. }
    141. return true;
    142. }
    143. if (cmd.getName().equalsIgnoreCase("Diamond")) {
    144. if (!(p.hasPermission("nKits.diamond"))) {
    145. p.sendMessage(ChatColor.DARK_RED + "You do not have permission");
    146. return true;
    147. }
    148. if (Once.contains(p.getName())) {
    149. p.sendMessage(ChatColor.DARK_RED + "You can only use one kit per life!");
    150. return true;
    151. }
    152. Once.add(p.getName());
    153. inv.clear();
    154. inv.setArmorContents(new ItemStack[] {
    155. new ItemStack(Material.DIAMOND_BOOTS),
    156. new ItemStack(Material.DIAMOND_LEGGINGS),
    157. new ItemStack(Material.DIAMOND_CHESTPLATE),
    158. new ItemStack(Material.DIAMOND_HELMET)
    159. });
    160. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    161. Sword.addEnchantment(Enchantment.DAMAGE_ALL, 2);
    162. inv.addItem(Sword);
    163. for (int i = 0; i < 36; i++) {
    164. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    165. }
    166. return true;
    167. }
    168. return true;
    169. }
    170.  
    171. }
    172.  



    jKillStreak:
    Code:java
    1. package me.jKits;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.enchantments.Enchantment;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.entity.PlayerDeathEvent;
    10. import org.bukkit.event.player.PlayerRespawnEvent;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.PlayerInventory;
    13. import org.bukkit.potion.PotionEffect;
    14. import org.bukkit.potion.PotionEffectType;
    15.  
    16. public class jKillStreak implements Listener {
    17.  
    18. public Main pl;
    19.  
    20. public jKillStreak (Main i) { pl = i; }
    21.  
    22. @EventHandler
    23. public void onPlayerDeath (PlayerDeathEvent e) {
    24. if (!(e.getEntity() instanceof Player)) return;
    25. e.getDrops().clear();
    26. e.setDroppedExp(0);
    27.  
    28. if (!(e.getEntity().getKiller() instanceof Player)) return;
    29. Player p = (Player) e.getEntity();
    30. Player k = (Player) e.getEntity().getKiller();
    31. pl.KS.put(p.getName(), 0);
    32. if (pl.KS.containsKey(k.getName())) {
    33. pl.KS.put(k.getName(), pl.KS.get(k.getName()) + 1);
    34. }
    35. int Score = pl.KS.get(k.getName());
    36. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You are on a " + ChatColor.RED + Score + ChatColor.GREEN + " KillStreak!");
    37. if (pl.KS.get(k.getName()) == 5) {
    38. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I " + ChatColor.GREEN + "for 30 seconds!");
    39. addEffect(k, PotionEffectType.INCREASE_DAMAGE, 30 * 20, 0);
    40. return;
    41. }
    42. if (pl.KS.get(k.getName()) == 10) {
    43. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I " + ChatColor.GREEN + "for 60 seconds!");
    44. removeEffect(k, PotionEffectType.INCREASE_DAMAGE);
    45. addEffect(k, PotionEffectType.INCREASE_DAMAGE, 60 * 20, 0);
    46. return;
    47. }
    48. if (pl.KS.get(k.getName()) == 15) {
    49. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I & Speed I " + ChatColor.GREEN + "for 120 seconds!");
    50. removeEffect(k, PotionEffectType.INCREASE_DAMAGE);
    51. addEffect(k, PotionEffectType.INCREASE_DAMAGE, 120 * 20, 0);
    52. addEffect(k, PotionEffectType.SPEED, 120 * 20, 0);
    53. return;
    54. }
    55. if (pl.KS.get(k.getName()) == 20) {
    56. removeEffect(k, PotionEffectType.INCREASE_DAMAGE);
    57. removeEffect(k, PotionEffectType.SPEED);
    58. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I & Speed I " + ChatColor.GREEN + "for 240 seconds!");
    59. addEffect(k, PotionEffectType.INCREASE_DAMAGE, 240 * 20, 0);
    60. addEffect(k, PotionEffectType.SPEED, 240 * 20, 0);
    61. return;
    62. }
    63. if (pl.KS.get(k.getName()) == 25) {
    64. removeEffect(k, PotionEffectType.INCREASE_DAMAGE);
    65. removeEffect(k, PotionEffectType.SPEED);
    66. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I, Resistance I, & Speed I " + ChatColor.GREEN + "for 480 seconds!");
    67. addEffect(k, PotionEffectType.INCREASE_DAMAGE, 480 * 20, 0);
    68. addEffect(k, PotionEffectType.SPEED, 480 * 20, 0);
    69. addEffect(k, PotionEffectType.DAMAGE_RESISTANCE, 480 * 20, 0);
    70. return;
    71. }
    72. if (pl.KS.get(k.getName()) == 30) {
    73. removeEffect(k, PotionEffectType.INCREASE_DAMAGE);
    74. removeEffect(k, PotionEffectType.SPEED);
    75. removeEffect(k, PotionEffectType.DAMAGE_RESISTANCE);
    76. k.sendMessage(ChatColor.GREEN + "You have earned " + Score + " Kills! You now have " + ChatColor.RED + "Strength I, Resistance I, & Speed I " + ChatColor.GREEN + "forever! Congrats on 30 Kills! :)");
    77. addEffect(k, PotionEffectType.INCREASE_DAMAGE, Integer.MAX_VALUE, 0);
    78. addEffect(k, PotionEffectType.SPEED, Integer.MAX_VALUE, 0);
    79. addEffect(k, PotionEffectType.DAMAGE_RESISTANCE, Integer.MAX_VALUE, 0);
    80. return;
    81. }
    82. }
    83.  
    84. @EventHandler
    85. public void onPlayerRespawn (PlayerRespawnEvent e) {
    86. Player p = e.getPlayer();
    87. PlayerInventory inv = p.getInventory();
    88. pl.Once.remove(p.getName());
    89. inv.setArmorContents(new ItemStack[] {
    90. new ItemStack(Material.IRON_BOOTS),
    91. new ItemStack(Material.IRON_LEGGINGS),
    92. new ItemStack(Material.IRON_CHESTPLATE),
    93. new ItemStack(Material.IRON_HELMET)
    94. });
    95. ItemStack Sword = new ItemStack(Material.DIAMOND_SWORD);
    96. Sword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    97. inv.addItem(Sword);
    98. for (int i = 0; i < 36; i++) {
    99. inv.addItem(new ItemStack(Material.MUSHROOM_SOUP));
    100. }
    101. return;
    102. }
    103.  
    104. public void addEffect (Player p, PotionEffectType type, int length, int amplifier) {
    105. p.addPotionEffect(new PotionEffect(type, length, amplifier));
    106. }
    107.  
    108. public void removeEffect (Player p, PotionEffectType type) {
    109. p.removePotionEffect(type);
    110. }
    111.  
    112. }
    113.  
     
    MayoDwarf likes this.
  7. Offline

    The_Doctor_123

    MayoDwarf
    Lazy? A for loop is a whole lot lazier than what you did. :p
     
    MayoDwarf likes this.
  8. Offline

    SkillSam

    MayoDwarf likes this.
  9. for loops are lazier then what you are doing (it saves +- 31 lines of code)
     
    MayoDwarf likes this.
  10. Offline

    MayoDwarf

    You my friend are a life saver! Thank you! ;)
     
  11. Offline

    SkillSam

    No problem. :) I love to help people when I can. :D
     
Thread Status:
Not open for further replies.

Share This Page