Solved Help with my kitpvp plugin.

Discussion in 'Plugin Development' started by MooshViolet, Dec 7, 2013.

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

    MooshViolet

    Hey! I have a kit plugin set up so they only get one kit per life, so when they die, they can use another kit, etc. For some reason, everything is working, but when they die, it still says they can only use one kit per life.... Its like it is not taking them out of the usedkit arraylist. Here is my code, if you can help, that would be awesome!
    Code:java
    1. package me.MooshViolet.McPractice;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Color;
    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.event.Listener;
    13. import org.bukkit.event.entity.PlayerDeathEvent;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.PlayerInventory;
    16. import org.bukkit.inventory.meta.ItemMeta;
    17. import org.bukkit.inventory.meta.LeatherArmorMeta;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19. import org.bukkit.potion.PotionEffect;
    20. import org.bukkit.potion.PotionEffectType;
    21.  
    22. public class McPractice extends JavaPlugin implements Listener{
    23.  
    24. public ArrayList<String> pvp = new ArrayList<String>();
    25. public ArrayList<String> archer = new ArrayList<String>();
    26. public ArrayList<String> elite = new ArrayList<String>();
    27. public ArrayList<String> flash = new ArrayList<String>();
    28. public ArrayList<String> knight = new ArrayList<String>();
    29. public ArrayList<String> kangaroo = new ArrayList<String>();
    30. public ArrayList<String> ninja = new ArrayList<String>();
    31. public ArrayList<String> stomper = new ArrayList<String>();
    32. public ArrayList<String> tank = new ArrayList<String>();
    33. public ArrayList<String> fisherman = new ArrayList<String>();
    34. public ArrayList<String> usedkit = new ArrayList<String>();
    35.  
    36. public void onEnable (){
    37. this.getServer().getPluginManager().registerEvents(this, this);
    38. this.getLogger().info("McPractice has been enabled!");
    39. }
    40.  
    41. public void removeAbilitys(Player player) {
    42. pvp.remove(player.getName());
    43. archer.remove(player.getName());
    44. elite.remove(player.getName());
    45. flash.remove(player.getName());
    46. knight.remove(player.getName());
    47. kangaroo.remove(player.getName());
    48. ninja.remove(player.getName());
    49. stomper.remove(player.getName());
    50. tank.remove(player.getName());
    51. fisherman.remove(player.getName());
    52. usedkit.remove(player.getName());
    53. }
    54. public void onPlayerDeath(PlayerDeathEvent event) {
    55. Player victim = event.getEntity();
    56. removeAbilitys(victim);
    57. }
    58.  
    59. @Override
    60. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    61. Player player = (Player) sender;
    62. PlayerInventory inv = player.getInventory();
    63. if (label.equalsIgnoreCase("kit") && args.length == 0) {
    64. sender.sendMessage(ChatColor.GRAY + "Invalid Usage. /Kit [KitName]");
    65. }
    66. //PvP Kit
    67. if (label.equalsIgnoreCase("kit") && args.length == 1 && args[0].equalsIgnoreCase("pvp")){
    68. if (usedkit.contains(player.getName())) {
    69. player.sendMessage(ChatColor.RED + "You have already used a kit this life!");
    70. return true;
    71. }
    72. usedkit.add(player.getName());
    73. pvp.add(player.getName());
    74. inv.setArmorContents(null);
    75. inv.clear();
    76. for (PotionEffect effect : player.getActivePotionEffects()) {
    77. player.removePotionEffect(effect.getType());
    78. }
    79. ItemStack helm = new ItemStack(Material.IRON_HELMET);
    80. ItemMeta helmMeta = helm.getItemMeta();
    81. helm.setItemMeta(helmMeta);
    82. ItemStack chest = new ItemStack(Material.IRON_CHESTPLATE);
    83. ItemMeta chestMeta = helm.getItemMeta();
    84. chest.setItemMeta(chestMeta);
    85. ItemStack legs = new ItemStack(Material.IRON_LEGGINGS);
    86. ItemMeta legsMeta = helm.getItemMeta();
    87. legs.setItemMeta(legsMeta);
    88. ItemStack boots = new ItemStack(Material.IRON_BOOTS);
    89. ItemMeta bootsMeta = helm.getItemMeta();
    90. boots.setItemMeta(bootsMeta);
    91. inv.setArmorContents(new ItemStack[] {
    92. boots,
    93. legs,
    94. chest,
    95. helm });
    96. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    97. ItemMeta swordMeta = sword.getItemMeta();
    98. swordMeta.addEnchant(Enchantment.DAMAGE_ALL, 1, true);
    99. sword.setItemMeta(swordMeta);
    100. inv.setItem(0, sword);
    101. ItemStack mushroomsoup = new ItemStack(Material.MUSHROOM_SOUP, 1);
    102. for (int i = 0; i <35; i++) {
    103. player.getInventory().addItem(mushroomsoup);
    104. }
    105. player.sendMessage(ChatColor.GREEN + "PvP Kit Received");
    106. return true;
    107. }
    108. //Archer Kit
    109. if (label.equalsIgnoreCase("kit") && args.length == 1 && args[0].equalsIgnoreCase("archer")){
    110. if (usedkit.contains(player.getName())) {
    111. player.sendMessage(ChatColor.RED + "You have already used a kit this life!");
    112. return true;
    113. }
    114. usedkit.add(player.getName());
    115. archer.add(player.getName());
    116. inv.setArmorContents(null);
    117. inv.clear();
    118. for (PotionEffect effect : player.getActivePotionEffects()) {
    119. player.removePotionEffect(effect.getType());
    120. }
    121. player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 2147483647, 0));
    122. ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
    123. ItemMeta helmMeta = helm.getItemMeta();
    124. helmMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    125. helm.setItemMeta(helmMeta);
    126. ItemStack chest = new ItemStack(Material.IRON_CHESTPLATE);
    127. ItemMeta chestMeta = helm.getItemMeta();
    128. chest.setItemMeta(chestMeta);
    129. ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
    130. ItemMeta legsMeta = helm.getItemMeta();
    131. legsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    132. legs.setItemMeta(legsMeta);
    133. ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
    134. ItemMeta bootsMeta = helm.getItemMeta();
    135. bootsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    136. boots.setItemMeta(bootsMeta);
    137. inv.setArmorContents(new ItemStack[] {
    138. boots,
    139. legs,
    140. chest,
    141. helm });
    142. ItemStack bow = new ItemStack(Material.BOW);
    143. ItemMeta bowMeta = bow.getItemMeta();
    144. bowMeta.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    145. bowMeta.addEnchant(Enchantment.ARROW_DAMAGE, 3, true);
    146. bow.setItemMeta(bowMeta);
    147. inv.setItem(1, bow);
    148. ItemStack sword = new ItemStack(Material.IRON_SWORD);
    149. ItemMeta swordMeta = sword.getItemMeta();
    150. sword.setItemMeta(swordMeta);
    151. inv.setItem(0, sword);
    152. ItemStack arrow = new ItemStack(Material.ARROW);
    153. ItemMeta arrowMeta = sword.getItemMeta();
    154. sword.setItemMeta(arrowMeta);
    155. inv.setItem(9, arrow);
    156. ItemStack mushroomsoup = new ItemStack(Material.MUSHROOM_SOUP, 1);
    157. for (int i = 0; i <35; i++) {
    158. player.getInventory().addItem(mushroomsoup);
    159. }
    160. player.sendMessage(ChatColor.GREEN + "Archer Kit Received");
    161. return true;
    162. }
    163.  
    164. //Elite Kit
    165. if (label.equalsIgnoreCase("kit") && args.length == 1 && args[0].equalsIgnoreCase("elite")) {
    166. if (usedkit.contains(player.getName())) {
    167. player.sendMessage(ChatColor.RED + "You have already used a kit this life!");
    168. return true;
    169. }
    170. usedkit.add(player.getName());
    171. elite.add(player.getName());
    172. inv.setArmorContents(null);
    173. inv.clear();
    174. for (PotionEffect effect : player.getActivePotionEffects()) {
    175. player.removePotionEffect(effect.getType());
    176. }
    177. ItemStack helm = new ItemStack(Material.IRON_HELMET);
    178. ItemMeta helmMeta = helm.getItemMeta();
    179. helm.setItemMeta(helmMeta);
    180. ItemStack chest = new ItemStack(Material.IRON_CHESTPLATE);
    181. ItemMeta chestMeta = helm.getItemMeta();
    182. chest.setItemMeta(chestMeta);
    183. ItemStack legs = new ItemStack(Material.IRON_LEGGINGS);
    184. ItemMeta legsMeta = helm.getItemMeta();
    185. legs.setItemMeta(legsMeta);
    186. ItemStack boots = new ItemStack(Material.IRON_BOOTS);
    187. ItemMeta bootsMeta = helm.getItemMeta();
    188. boots.setItemMeta(bootsMeta);
    189. inv.setArmorContents(new ItemStack[] {
    190. boots,
    191. legs,
    192. chest,
    193. helm });
    194. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
    195. ItemMeta swordMeta = sword.getItemMeta();
    196. sword.setItemMeta(swordMeta);
    197. inv.setItem(0, sword);
    198. ItemStack mushroomsoup = new ItemStack(Material.MUSHROOM_SOUP, 1);
    199. for (int i = 0; i <35; i++) {
    200. player.getInventory().addItem(mushroomsoup);
    201. }
    202. player.sendMessage(ChatColor.GREEN + "Elite Kit Received");
    203. return true;
    204. }
    205. //Flash Kit
    206. if (label.equalsIgnoreCase("kit") && args.length == 1 && args[0].equalsIgnoreCase("flash")) {
    207. if (usedkit.contains(player.getName())) {
    208. player.sendMessage(ChatColor.RED + "You have already used a kit this life!");
    209. return true;
    210. }
    211. usedkit.add(player.getName());
    212. elite.add(player.getName());
    213. inv.setArmorContents(null);
    214. inv.clear();
    215. for (PotionEffect effect : player.getActivePotionEffects()) {
    216. player.removePotionEffect(effect.getType());
    217. }
    218. player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 2147483647, 2));
    219. ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
    220. LeatherArmorMeta helmMeta = (LeatherArmorMeta)helm.getItemMeta();
    221. helmMeta.setColor(Color.RED);
    222. helmMeta.addEnchant(Enchantment.DURABILITY, 3, true);
    223. helmMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    224. helm.setItemMeta(helmMeta);
    225. ItemStack chest = new ItemStack(Material.LEATHER_CHESTPLATE);
    226. LeatherArmorMeta chestMeta = (LeatherArmorMeta)chest.getItemMeta();
    227. chestMeta.setColor(Color.RED);
    228. chestMeta.addEnchant(Enchantment.DURABILITY, 3, true);
    229. chestMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    230. chest.setItemMeta(chestMeta);
    231. ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
    232. LeatherArmorMeta legsMeta = (LeatherArmorMeta)legs.getItemMeta();
    233. legsMeta.setColor(Color.RED);
    234. legsMeta.addEnchant(Enchantment.DURABILITY, 3, true);
    235. legsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    236. legs.setItemMeta(legsMeta);
    237. ItemStack boots = new ItemStack(Material.IRON_BOOTS);
    238. ItemMeta bootsMeta = boots.getItemMeta();
    239. bootsMeta.addEnchant(Enchantment.DURABILITY, 3, true);
    240. bootsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    241. boots.setItemMeta(bootsMeta);
    242. inv.setArmorContents(new ItemStack[] {
    243. boots,
    244. legs,
    245. chest,
    246. helm });
    247. ItemStack axe = new ItemStack(Material.DIAMOND_AXE);
    248. ItemMeta axeMeta = axe.getItemMeta();
    249. axeMeta.addEnchant(Enchantment.DAMAGE_ALL, 2, true);
    250. axe.setItemMeta(axeMeta);
    251. inv.setItem(0, axe);
    252. ItemStack stick = new ItemStack(Material.STICK);
    253. ItemMeta stickMeta = stick.getItemMeta();
    254. stickMeta.addEnchant(Enchantment.KNOCKBACK, 2, true);
    255. stick.setItemMeta(stickMeta);
    256. inv.setItem(1, stick);
    257. ItemStack mushroomsoup = new ItemStack(Material.MUSHROOM_SOUP, 1);
    258. for (int i = 0; i <35; i++) {
    259. player.getInventory().addItem(mushroomsoup);
    260. }
    261. player.sendMessage(ChatColor.GREEN + "Flash Kit Received");
    262. return true;
    263. }
    264. //Knight Kit
    265. if (label.equalsIgnoreCase("kit") && args.length == 1 && args[0].equalsIgnoreCase("knight")) {
    266. if (usedkit.contains(player.getName())) {
    267. player.sendMessage(ChatColor.RED + "You have already used a kit this life!");
    268. return true;
    269. }
    270. usedkit.add(player.getName());
    271. knight.add(player.getName());
    272. inv.setArmorContents(null);
    273. inv.clear();
    274. for (PotionEffect effect : player.getActivePotionEffects()) {
    275. player.removePotionEffect(effect.getType());
    276. }
    277.  
    278. ItemStack helm = new ItemStack(Material.CHAINMAIL_HELMET);
    279. ItemMeta helmMeta = helm.getItemMeta();
    280. helmMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    281. helm.setItemMeta(helmMeta);
    282.  
    283. ItemStack chest = new ItemStack(Material.CHAINMAIL_CHESTPLATE);
    284. ItemMeta chestMeta = chest.getItemMeta();
    285. chestMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    286. chest.setItemMeta(chestMeta);
    287.  
    288. ItemStack legs = new ItemStack(Material.CHAINMAIL_LEGGINGS);
    289. ItemMeta legsMeta = legs.getItemMeta();
    290. legsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    291. legs.setItemMeta(legsMeta);
    292.  
    293. ItemStack boots = new ItemStack(Material.CHAINMAIL_BOOTS);
    294. ItemMeta bootsMeta = boots.getItemMeta();
    295. bootsMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    296. boots.setItemMeta(bootsMeta);
    297.  
    298. inv.setArmorContents(new ItemStack[] {
    299. boots,
    300. legs,
    301. chest,
    302. helm });
    303.  
    304. ItemStack sword = new ItemStack(Material.IRON_SWORD);
    305. ItemMeta swordMeta = sword.getItemMeta();
    306. swordMeta.addEnchant(Enchantment.DAMAGE_ALL, 2, true);
    307. sword.setItemMeta(swordMeta);
    308. inv.setItem(0, sword);
    309. ItemStack mushroomsoup = new ItemStack(Material.MUSHROOM_SOUP, 1);
    310. for (int i = 0; i <35; i++) {
    311. player.getInventory().addItem(mushroomsoup);
    312. }
    313. player.sendMessage(ChatColor.GREEN + "Knight Kit Received");
    314. return true;
    315. }
    316. return false;
    317.  
    318.  
    319.  
    320.  
    321.  
    322.  
    323.  
    324.  
    325.  
    326.  
    327.  
    328.  
    329.  
    330.  
    331.  
    332.  
    333.  
    334.  
    335. }
    336.  
    337.  
    338.  
    339.  
    340.  
    341.  
    342.  
    343.  
    344.  
    345.  
    346.  
    347.  
    348.  
    349.  
    350.  
    351.  
    352.  
    353.  
    354.  
    355. }


    Bump :)

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

    XDSiLeNtKiLlXD

    Hi there, maye you could try removing the RemoveAbility method as it is pretty useless, just put them all on the OnDeath function and for each of them check first if they are in the list you are trying to remove them from. Just a suggestion dont know if it will work, Good Luck.
     
  3. Offline

    Wolfey

    You forgot your @EventHandler on top of your death event.
     
    Phinary likes this.
  4. Offline

    Phinary

  5. Offline

    MooshViolet

    Wolfey Phinary that fixed it! Thanks, I didn't even notice I forgot it!
     
  6. Offline

    MayoDwarf

    Please set this as solved.
     
Thread Status:
Not open for further replies.

Share This Page