Certain kits not working

Discussion in 'Plugin Development' started by Paradrakor, Jul 20, 2014.

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

    Paradrakor

    Hello,

    I am developing a KitPvP server plugin. I am trying to code some kits right now. 2 kits that are actually for fighting are "/kit standard" and "/kit pyro". Standard works PERFECTLY, but Pyro prints "An internal error occurred while attempting to perform this command." I do not see any differences in the general code format I set up for my kits.

    I also have "/kit soup" and "/kit refill" which only give some soup and negative potion effects for a few seconds, and those work great.

    Here is my code for "/kit standard" and "/kit pyro".

    Code:java
    1. package eliteKits.cmds;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandExecutor;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.enchantments.Enchantment;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.entity.PlayerDeathEvent;
    15. import org.bukkit.inventory.ItemStack;
    16. import org.bukkit.inventory.PlayerInventory;
    17. import org.bukkit.potion.PotionEffect;
    18. import org.bukkit.potion.PotionEffectType;
    19.  
    20. public class KitCommand implements CommandExecutor, Listener {
    21.  
    22. public static ArrayList<String> kits = new ArrayList<String>();
    23.  
    24.  
    25. @Override
    26. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    27. if(!(sender instanceof Player)){
    28. return false;
    29. }
    30.  
    31. final Player player = (Player)sender;
    32.  
    33. if(args[0].equalsIgnoreCase("standard")) {
    34. if (!kits.contains(player.getName())){
    35. clearInventory(player.getInventory());
    36. ItemStack pvpSword = new ItemStack(Material.DIAMOND_SWORD);
    37. pvpSword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    38. player.getInventory().addItem(pvpSword);
    39. player.getInventory().setHelmet(new ItemStack (Material.IRON_HELMET,1));
    40. player.getInventory().setChestplate(new ItemStack (Material.IRON_CHESTPLATE,1));
    41. player.getInventory().setLeggings(new ItemStack (Material.IRON_LEGGINGS,1));
    42. player.getInventory().setBoots(new ItemStack (Material.IRON_BOOTS,1));
    43. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    44. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    45. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    46. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    47. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    48. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    49. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    50. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    51. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    52. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    53. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    54. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    55. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    56. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    57. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    58. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    59. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    60. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP,18));
    61. player.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 30000, 0));
    62.  
    63. player.sendMessage(ChatColor.GREEN + "You have chosen the standard PvP kit.");
    64. kits.add(player.getName());
    65. }
    66.  
    67. else if (kits.contains(player.getName())){
    68. player.sendMessage(ChatColor.RED + "You have already chosen a kit!");
    69. }
    70.  
    71. }
    72.  
    73. else if(args[0].equalsIgnoreCase("pyro")) {
    74. if (!kits.contains(player.getName())){
    75. clearInventory(player.getInventory());
    76. ItemStack pyroSword = new ItemStack(Material.IRON_SWORD);
    77. pyroSword.addEnchantment(Enchantment.FIRE_ASPECT, 3);
    78. pyroSword.addEnchantment(Enchantment.DURABILITY, 1);
    79. ItemStack pyroHelmet = new ItemStack(Material.GOLD_HELMET);
    80. pyroHelmet.addEnchantment(Enchantment.DURABILITY, 5);
    81. pyroHelmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL , 1);
    82. ItemStack pyroBoots = new ItemStack(Material.GOLD_BOOTS);
    83. pyroBoots.addEnchantment(Enchantment.DURABILITY, 5);
    84. pyroHelmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL , 1);
    85. player.getInventory().addItem(pyroSword);
    86. player.getInventory().setHelmet(pyroHelmet);
    87. player.getInventory().setChestplate(new ItemStack (Material.IRON_CHESTPLATE, 1));
    88. player.getInventory().setLeggings(new ItemStack (Material.IRON_LEGGINGS, 1));
    89. player.getInventory().setBoots(pyroBoots);
    90. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    91. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    92. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    93. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    94. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    95. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    96. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    97. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    98. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    99. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    100. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    101. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    102. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    103. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    104. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    105. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    106. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP, 1));
    107. player.getInventory().addItem(new ItemStack (Material.MUSHROOM_SOUP,18));
    108. player.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 30000, 0));
    109. player.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE , 30000, 1));
    110.  
    111. player.sendMessage(ChatColor.GREEN + "You have chosen the Pyro kit.");
    112. kits.add(player.getName());
    113. }
    114. else if (kits.contains(player.getName())){
    115. player.sendMessage(ChatColor.RED + "You have already chosen a kit!");
    116. }
    117. }


    Thanks in advance! :)
     
  2. Offline

    xmarinusx

    Paradrakor
    Please give us the stack trace you're getting in console when it's says an internal error has occured.
     
  3. Offline

    CynutsBR

    1- in line 67 just use else, dont use else if!
    2- try to return true when the command is correctly!
     
  4. Offline

    Paradrakor

    xmarinusx
    What does that mean? What it says in the console when I do /kit pyro is this:

    Code:text
    1.  
    2. [11:01:30 INFO]: Paradrakor issued server command: /kit pyro
    3. [11:01:30 ERROR]: null
    4. org.bukkit.command.CommandException: Unhandled exception executing command 'kit' in plugin eliteKits v1.0
    5. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    6. at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    7. at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    8. at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:957) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    9. at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:818) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    10. at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    11. at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    12. at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    13. at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    14. at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    15. at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    16. at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    17. at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    18. at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    19. Caused by: java.lang.IllegalArgumentException: Enchantment level is either too low or too high (given 3, bounds are 1 to 2)
    20. at org.bukkit.inventory.ItemStack.addEnchantment(ItemStack.java:430) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    21. at eliteKits.cmds.KitCommand.onCommand(KitCommand.java:77) ~[?:?]
    22. at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-16-g37c7969-b3105jnks]
    23. ... 13 more
    24.  
    25. >



    Oh, looking at that it seems to be that I used fire aspect III for the pyro's sword. I'm not sure how to allow "unsafe" enchantments though.

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

    xmarinusx

    I believe that's addUnsafeEnchantment();
     
    Paradrakor likes this.
  6. Offline

    Paradrakor

    Does this replace addEnchantment? xmarinusx
     
  7. Offline

    xmarinusx

    Paradrakor likes this.
Thread Status:
Not open for further replies.

Share This Page