What's wrong with my code?

Discussion in 'Plugin Development' started by BeaztX, Jul 17, 2013.

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

    BeaztX

    Code:
    package me.beaztx.opkits;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.Sound;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
     
    public class main extends JavaPlugin {
     
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            Player p = (Player) sender;
                            if (cmd.getName().equalsIgnoreCase("opkit")) {
                                PlayerInventory pi= p.getInventory();
                                p.getInventory().clear();
                               
                                ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
                                p.getInventory().getItem(0).addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
                                ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET);
                                ItemStack chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
                                ItemStack pants = new ItemStack(Material.DIAMOND_LEGGINGS);
                                ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
                                sword.addEnchantment(Enchantment.DAMAGE_ALL, 2);
                                helmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                                chestplate.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                                pants.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                                boots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                               
                                pi.addItem(new ItemStack(Material.GOLDEN_APPLE, 5));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                pi.addItem(new ItemStack(Material.MUSHROOM_SOUP));
                                for(PotionEffect effect : p.getActivePotionEffects())
                                {
                                    p.removePotionEffect(effect.getType());
                                }
                                p.sendMessage(ChatColor.GOLD + "[OP-KITS] Kit Standard has been applied!");
                                p.playSound(p.getLocation(), Sound.LEVEL_UP , 10.0F, 1.0F);
            }
                            return false;
           
        }
     
     
    }
     
  2. Error Code/Stacktrace?
     
  3. Offline

    BeaztX

    not a single error in eclipse or console.

    accually: org.bukkit.command.CommandException: Unhandles exception executing command ' opkit ' in plugin OpKitsMain c1.0

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

    JoshArgent

    Paste the full error message. :)
     
  5. Offline

    BeaztX

    INFO] BeaztX issued server command: /opkit
    2013-07-17 22:31:35 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'opkit' in plugin OpKitsMain v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
    at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:964)
    at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:882)
    at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:839)
    at net.minecraft.server.v1_6_R2.Packet3Chat.handle(SourceFile:49)
    at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
    at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:118)
    at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
    at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
    at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
    at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NullPointerException
    at me.beaztx.opkits.main.onCommand(main.java:24)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
     
  6. Whats on Line 24?


    //EDIT:
    This line:
    Code:java
    1.  
    2. p.getInventory().getItem(0).addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2)
    3.  


    Are you sure there is an Item in Slot 0?
    The Error says, there is a NULL-Pointer on Line 24, which should be the Line above.
     
  7. Offline

    BeaztX


    yeah, the diamondsword should've been, How would you suggest adding full diamond armor enchanted PROTECTION_ENVIORMENTAL... ?
     
  8. Offline

    caseif

    Do you even Google?
     
  9. Offline

    BeaztX

    well I wanna learn not copy / paste
     
  10. Offline

    Zach_1919

  11. And by the way:

    Your Code is pretty much non-sense.

    You're getting the Inventory and save it in a Variable.
    Next Line you dont use the variable and point to the Player object again :confused:

    Then, you're creating a lot Itemstacks, but you are never adding them to the Inventory
    And sometimes you use the ItemStack to add enchantments, but in the first try you acess the Inventory's First slot?
    Doesnt make sense....


    Johnny
     
  12. Offline

    Devil0s

    You should use a loop instead of write 20 times the same.
    DRY code (Don't repeat yourself) is clean code. ;)
     
  13. Offline

    caseif

    I second this. Back when I was first learning my way around Java (I knew a good amount, but was still a bit of a noob), I created a plugin which had a feature similar to PhysicalShop. However, though it used effectively the same code for both limited (chest) and infinite shops, I felt the need to use separate code for each one. When I finally fixed it to use the same code, I was able to remove some 200 lines from the class.
     
Thread Status:
Not open for further replies.

Share This Page