Solved Gapple

Discussion in 'Plugin Development' started by sonicwolfsdutch, Aug 29, 2014.

Thread Status:
Not open for further replies.
  1. oke im working on a plugin for UHC

    im trying to figure out how do u give a golden apple more potions effect like SPEED Golden apple's gives u Absorption and regeneration i want to give it SPEED

    Code:java
    1. package me.sonicwolfsdutch.apple;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.entity.PlayerDeathEvent;
    9. import org.bukkit.inventory.ItemStack;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11. import org.bukkit.potion.PotionEffect;
    12. import org.bukkit.potion.PotionEffectType;
    13.  
    14. public class Main extends JavaPlugin
    15.  
    16. implements Listener {
    17.  
    18. private Player cs;
    19. Player p = (Player)cs;
    20.  
    21.  
    22. public void onEnable()
    23. {
    24. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    25. }
    26. @EventHandler
    27. public void onPlayerDeath(PlayerDeathEvent event) {
    28. event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE));
    29. p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000, 3));
    30. }
    31. }


    thx for helping

    also its my 1st PL :D
     
  2. Offline

    Jimfutsu

    Unfortunately, there is no PlayerEatEvent, so you are forced to use the playerinteractevent.
     
  3. pff :/
     
  4. Offline

    Skionz

    wolfs25 I guess you could add a delay? But it will still give them the effect even if they don't eat it.
     
  5. if seen some PlayeritemConsumeEvent but im new at this D:
     
  6. Offline

    Skionz

    wolfs25 your right! try something like this
    Code:
        @EventHandler
        public void onConsume(PlayerItemConsumeEvent event) {
            Player player = event.getPlayer();
            if(event.getItem().getType() == Material.GOLDEN_APPLE) {
                if(event.getItem().getData().getData() == 1) {
                    //give potions and stuffs
                }
            }
        }
     
  7. Offline

    Jimfutsu

    wolfs25 Skionz
    Wow, I didn't know that existed, all I heard of was FoodLevelChangeEvent.

    Thanks for the info!
     
  8. nope nope nope im noobing this something is wrong
    Code:java
    1. public void onEnable()
    2. {
    3. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    4. }
    5. @EventHandler
    6. public void onPlayerDeath(PlayerDeathEvent event) {
    7. event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE)); { // somfing here ← it errors
    8.  
    9. @EventHandler
    10. public void onConsume(PlayerItemConsumeEvent event) {
    11. Player player = event.getPlayer();
    12. if(event.getItem().getType() == Material.GOLDEN_APPLE) {
    13. if(event.getItem().getData().getData() == 1) {
    14. p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000, 3));
    15. }
    16. }
    17. }
    18. }
    19. } // ← somfing whit that }


    np bro u learn something im learning stuff xD

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

    Skionz

    wolfs25 I always name my player variable "player" not "p" and this is code for checking if the player eats an enchanted golden apple so get rid of the check for data if you want it to be a normal golden apple
     
  10. Offline

    Gnat008

    wolfs25
    I think you have an extra '}'.
     
  11. nope nope nope still noobing it
    Code:java
    1. package me.sonicwolfsdutch.apple;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.entity.PlayerDeathEvent;
    9. import org.bukkit.event.player.PlayerItemConsumeEvent;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11. import org.bukkit.potion.PotionEffect;
    12. import org.bukkit.potion.PotionEffectType;
    13.  
    14. public class Main extends JavaPlugin
    15.  
    16. implements Listener {
    17.  
    18. private Player cs;
    19. Player p = (Player)cs;
    20.  
    21.  
    22. public void onEnable()
    23. {
    24. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    25. }
    26. @EventHandler
    27. public void onPlayerDeath(PlayerDeathEvent event) {
    28. event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE)); {
    29.  
    30. @EventHandler
    31. public void onConsume (PlayerItemConsumeEvent event)) {
    32. Player player = event.getPlayer();
    33. if(event.getItem().getType() == Material.GOLDEN_APPLE) {
    34. if(event.getItem().getData().getData() == 1) {
    35. player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000, 3));
    36. }
    37. }
    38. }
    39. }
    40. }
    41. }


    nope doesnt work i skrub i noob D:

    ohh nvm it works but i did the wrong apple im stupit u know the Golden Enchanted Apple i want just the normal Golden Apple but it works!

    but the weird part is i have
    event.getDrops().add(new ItemStack(Material.GOLDEN_APPLE)); line 28

    oke that gives me a normal apple

    but if(event.getItem().getType() == Material.GOLDEN_APPLE) line 33

    gives me the speed potion ?

    found it ! noice thx for the help @Skionz

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 10, 2016
Thread Status:
Not open for further replies.

Share This Page