Disable effect of Items

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

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

    Script1996

    Hey guys,

    sorry it's me again >.< ... but I'm learning Bukkit and you guys help so much and so fast :) (thanks to you on this).

    I created a new recipe which creates a "Material.POISONOUS_POTATO". Okay. Everything fine.
    Added new effect etc etc ..

    In the end I added "event.setCancelled(true);" normally this should disable the poison effect of the potato. Am I right? Because it sometimes poisons me and my buds..

    This is my Code:

    Code:java
    1. player.setFoodLevel(player.getFoodLevel() + 2);
    2. IteminHand.setAmount(amount - 1);
    3. player.setItemInHand(IteminHand);
    4. player.updateInventory();
    5. event.setCancelled(true);


    Greetings :)
     
  2. Offline

    dsouzamatt

    Script1996 What event is this in? I'd just try using .removePotionEffect() if I were you.
     
  3. Offline

    Script1996

    It's a PlayerInteractEvent.
    If i use .removePotionEffect() it would be healing poison if the player's got poisoned by something else just like an Antidote
     
  4. Offline

    fireblast709

    Script1996 PlayerConsumeItemEvent, check if you are eating a poisonous potato, then schedule a delayed task for 0 or 1 tick (0 ticks could work since the poison effect would be applied before the task would be run) which removes the poison effect as mentioned before.

    http://wiki.bukkit.org/Scheduler_Programming
     
    Script1996 likes this.
  5. Offline

    Script1996

    @fireblast709

    thanks but I cant import PlayerConsumeItemEvent it "doesn't exist"

    I have

    @EventHandler
    public void onItemConsume(PlayerConsumeItemEvent event){

    }
     
  6. Offline

    Necrodoom

  7. Offline

    fireblast709

    Necrodoom my bad for being too lazy to verify the event name xD
     
  8. Offline

    Script1996

    Thank you.

    Now i got

    Code:java
    1. @EventHandler
    2. public void onItemConsume(PlayerItemConsumeEvent event){
    3. if (event.getItem().hasItemMeta() && event.getItem().getType() == Material.POISONOUS_POTATO){
    4. event.setCancelled(true);
    5. }
    6. }


    And it doesn't poison me but if i stuck on rightclick it wouldn't eat after 2 Items.

    Another problem is, that if my foodlevel is full, the healthbar isn't rising.
     
  9. Offline

    fireblast709

    Script1996 don't cancel it.
     
  10. Offline

    Script1996

    Sorry I don't get that point with Scheduler..

    could you show me an example pls :/
     
  11. Offline

    fireblast709

    Script1996 that's the reason I included the wiki link
     
  12. Offline

    Script1996

    Yes sure. But I don't know what to do with the scheduler.

    I have
    Code:java
    1. @EventHandler
    2. public void onItemConsume(PlayerItemConsumeEvent event){
    3. if (event.getItem().hasItemMeta() && event.getItem().getType() == Material.POISONOUS_POTATO){
    4. this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    5. @Override
    6. public void run() {
    7.  
    8. }
    9. }, 1L);
    10. }
    11. }


    And it just causes Stackerror Plugin already Initialed
     
  13. Offline

    fireblast709

  14. Offline

    Script1996

    Code:java
    1. Error occurred while enabling ChefKoch v0.0.1 (Is it up to date?)
    2. java.lang.IllegalArgumentException: Plugin already initialized!
    3. at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:98) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    4. at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:59) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    5. at ch.r3steas.chefkoch.ItemBenutzung.<init>(ItemBenutzung.java:16) ~[?:?]
    6. at ch.r3steas.chefkoch.Java.onEnable(Java.java:23) ~[?:?]
    7. at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    8. at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    9. at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    10. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    11. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    12. at net.minecraft.server.v1_7_R1.MinecraftServer.m(MinecraftServer.java:342) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    13. at net.minecraft.server.v1_7_R1.MinecraftServer.g(MinecraftServer.java:319) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    14. at net.minecraft.server.v1_7_R1.MinecraftServer.a(MinecraftServer.java:275) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    15. at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:175) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    16. at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    17. at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    18. Caused by: java.lang.IllegalStateException: Initial initialization
    19. at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:101) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    20. at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:59) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    21. at ch.r3steas.chefkoch.Java.<init>(Java.java:16) ~[?:?]
    22. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_05]
    23. at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_05]
    24. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_05]
    25. at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_05]
    26. at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_05]
    27. at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    28. at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:127) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    29. at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:328) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    30. at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    31. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:350) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    32. at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:312) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    33. at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    34. at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    35. at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:126) ~[server.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    36. ... 2 more
    37. [16:54:41] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
    38.  


    Because I implemented JavaPlugin in Class..
     
  15. Offline

    fireblast709

    Script1996 is Java your main class? If so, post the source
     
  16. Offline

    Script1996

    yes it is.

    Source:

    Code:java
    1. //---------------------------
    2. package ch.r3steas.chefkoch;
    3. //---------------------------
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.Material;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.inventory.FurnaceRecipe;
    9. import org.bukkit.inventory.ItemStack;
    10. import org.bukkit.inventory.ShapedRecipe;
    11. import org.bukkit.inventory.meta.ItemMeta;
    12. import org.bukkit.plugin.Plugin;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14. //---------------------------
    15.  
    16. public class Java extends JavaPlugin implements Listener {
    17.  
    18. private static Plugin plugin;
    19.  
    20. @Override
    21. public void onEnable() {
    22. plugin = this;
    23. registerEvents(this, new ItemBenutzung());
    24. getServer().getPluginManager().registerEvents(this, this);
    25. System.out.println("[ChefKoch] Plugin wurde aktiviert");
    26. System.out.println(".~*R3STEAS*~.");
    27.  
    28. //Joint
    29. ItemStack joint = new ItemStack(Material.BONE);
    30. ItemMeta jointmeta = joint.getItemMeta();
    31. jointmeta.setDisplayName("Joint");
    32. joint.setItemMeta(jointmeta);
    33.  
    34. ShapedRecipe jointrezept = new ShapedRecipe(new ItemStack(joint));
    35. jointrezept.shape(" ", "PGP", " ");
    36. jointrezept.setIngredient('P', Material.PAPER);
    37. jointrezept.setIngredient('G', Material.getMaterial(31).getNewData((byte) 1));
    38. getServer().addRecipe(jointrezept);
    39. //Joint
    40.  
    41. //Crack
    42. ItemStack crack = new ItemStack(Material.SUGAR);
    43. ItemMeta crackmeta = crack.getItemMeta();
    44. crackmeta.setDisplayName("Crack");
    45. crack.setItemMeta(crackmeta);
    46.  
    47. ShapedRecipe crackrezept = new ShapedRecipe(new ItemStack(crack));
    48. crackrezept.shape(" ", "ZMZ", " ");
    49. crackrezept.setIngredient('Z', Material.SUGAR);
    50. crackrezept.setIngredient('M', Material.getMaterial(351).getNewData((byte) 15));
    51. getServer().addRecipe(crackrezept);
    52. //Crack
    53.  
    54. //Rührei
    55. ItemStack ruehrei = new ItemStack(Material.POISONOUS_POTATO);
    56. ItemMeta ruehreimeta = ruehrei.getItemMeta();
    57. ruehreimeta.setDisplayName("Rührei");
    58. ruehrei.setItemMeta(ruehreimeta);
    59.  
    60. FurnaceRecipe ruehreirezept = new FurnaceRecipe(new ItemStack(ruehrei), Material.EGG);
    61. ruehreirezept.setInput(Material.EGG);
    62. getServer().addRecipe(ruehreirezept);
    63. //Rührei
    64. }
    65.  
    66. @Override
    67. public void onDisable() {
    68. System.out.println("[ChefKoch] Plugin wurde deaktiviert");
    69. plugin = null;
    70. }
    71.  
    72. public static void registerEvents(org.bukkit.plugin.Plugin plugin, Listener... listeners) {
    73. for (Listener listener : listeners) {
    74. Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
    75. }
    76. }
    77.  
    78. public static Plugin getPlugin() {
    79. return plugin;
    80. }
    81. }
    82.  
     
  17. Offline

    Script1996

Thread Status:
Not open for further replies.

Share This Page