PlayerItemConsumeEvent Error

Discussion in 'Plugin Development' started by rlagur55, Jan 23, 2014.

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

    rlagur55

    Hello, I made some plugin for my server. but My plugin have error
    -Source-
    Code:java
    1. package lego;
    2.  
    3. import com.herocraftonline.heroes.Heroes;
    4. import com.herocraftonline.heroes.characters.CharacterManager;
    5. import com.herocraftonline.heroes.characters.Hero;
    6. import com.herocraftonline.heroes.characters.classes.HeroClass;
    7. import com.herocraftonline.heroes.characters.classes.HeroClassManager;
    8. import java.io.IOException;
    9.  
    10. import org.bukkit.Bukkit;
    11. import org.bukkit.ChatColor;
    12. import org.bukkit.Material;
    13.  
    14. import org.bukkit.configuration.file.FileConfiguration;
    15. import org.bukkit.entity.Player;
    16. import org.bukkit.event.EventHandler;
    17. import org.bukkit.event.Listener;
    18. import org.bukkit.event.block.Action;
    19. import org.bukkit.event.player.PlayerInteractEvent;
    20. import org.bukkit.event.player.PlayerItemConsumeEvent;
    21. import org.bukkit.event.player.PlayerJoinEvent;
    22. import org.bukkit.event.player.PlayerMoveEvent;
    23. import org.bukkit.plugin.PluginManager;
    24. import org.bukkit.plugin.RegisteredServiceProvider;
    25. import org.bukkit.plugin.java.JavaPlugin;
    26.  
    27. public class legopotion extends JavaPlugin implements Listener {
    28.  
    29. private static CharacterManager heroes;
    30. private static HeroClassManager heroes1;
    31.  
    32. //Startup
    33.  
    34. public void onEnable(){
    35.  
    36. PluginManager PluginM = getServer().getPluginManager();
    37. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    38.  
    39. //I'm starting the engine! Vroom! Vroom!
    40. if(this.getServer().getPluginManager().getPlugin("Heroes") != null){
    41. heroes = ((Heroes)PluginM.getPlugin("Heroes")).getCharacterManager();
    42. log(0,"히어로즈 발견");
    43. }else{
    44. log(0,"[ConfigurableMessages] Heroes not found");
    45. }
    46.  
    47.  
    48.  
    49.  
    50. log(0, "Enabled!");
    51. }
    52.  
    53.  
    54.  
    55. public void onDisable(){
    56. log(0, "Disabled!");
    57. }
    58.  
    59. /*
    60. * Vault
    61. * -----
    62. */
    63.  
    64.  
    65.  
    66. /*
    67. * -----
    68. */
    69.  
    70. public void log(int level, String out){
    71. if(level == 0) getLogger().info(out);
    72. if(level == 1) getLogger().warning(out);
    73. if(level == 2) getLogger().severe(out);
    74. }
    75.  
    76.  
    77. public static CharacterManager getHeroes() {
    78. return heroes;
    79. }
    80.  
    81. public static HeroClassManager getHeroes1() {
    82. return heroes1;
    83. }
    84.  
    85. public void addMana(Player player)
    86. {
    87. Hero hero = getHeroes().getHero(player);
    88. int mana = 30;
    89. if (hero.getMana() + mana > hero.getMaxMana()) {
    90. hero.setMana(hero.getMaxMana());
    91. } else {
    92. hero.setMana(hero.getMana() + mana);
    93. }
    94. player.sendMessage(ChatColor.AQUA + "You regained " + ChatColor.DARK_AQUA + mana + ChatColor.AQUA + " mana");
    95. if (player.getItemInHand() != null) {
    96. if (player.getItemInHand().getAmount() == 1)
    97. {
    98. player.setItemInHand(null);
    99. player.updateInventory();
    100. }
    101. else
    102. {
    103. player.getItemInHand().setAmount(player.getItemInHand().getAmount() - 1);
    104. }
    105. }
    106. }
    107.  
    108. @EventHandler
    109. public void onPlayerInteract(PlayerItemConsumeEvent event)
    110. {
    111. short potionID = event.getItem().getDurability();
    112. if (potionID == 0) {
    113. addMana(event.getPlayer());
    114.  
    115. }
    116.  
    117. }
    118. }


    -server.log-
    Code:
    2014-01-24 00:58:52 [SEVERE] Could not pass event PlayerItemConsumeEvent to Legopotion v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:437)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
        at net.minecraft.entity.player.EntityPlayer.func_71036_o(EntityPlayer.java:499)
        at net.minecraft.entity.player.EntityPlayerMP.func_71036_o(EntityPlayerMP.java:1237)
        at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:325)
        at net.minecraft.entity.player.EntityPlayerMP.func_71127_g(EntityPlayerMP.java:424)
        at net.minecraft.network.NetServerHandler.func_72498_a(NetServerHandler.java:509)
        at net.minecraft.network.packet.Packet10Flying.func_73279_a(Packet10Flying.java:51)
        at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:470)
        at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:233)
        at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
        at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:34)
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:914)
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:781)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:663)
        at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
    Caused by: java.lang.NullPointerException
        at lego.legopotion.addMana(legopotion.java:87)
        at lego.legopotion.onPlayerInteract(legopotion.java:113)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
        ... 19 more
    English is my second language, so please excuse any English mistakes.
    Thanks
     
  2. Offline

    random_username

    Code:
    Caused by: java.lang.NullPointerException
        at lego.legopotion.addMana(legopotion.java:87)
        at lego.legopotion.onPlayerInteract(legopotion.java:113)
    Check line 87 in your addMana() method.
    Code:java
    1. Hero hero = getHeroes().getHero(player);

    Perhaps the hero is null?
     
Thread Status:
Not open for further replies.

Share This Page