Solved If query doesn't work (ItemStack with ItemMeta)

Discussion in 'Plugin Development' started by FlaveDrake, Mar 16, 2018.

Thread Status:
Not open for further replies.
  1. Hey i just wanted to ask you why the if query doesn't trigger when i interact with the item.

    I tried it without the query and this would work but i need it for certain items.

    The query if i'm in the ArrayList (modmode) is true and it goes through.

    The SuperAPI is made by me.

    Code:java
    1.  
    2. package com.FlaveDrake.ModMode.listener;
    3.  
    4. import org.bukkit.Material;
    5. import org.bukkit.enchantments.Enchantment;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerInteractEvent;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.inventory.meta.ItemMeta;
    12.  
    13. import com.FlaveDrake.ModMode.commands.ModMode;
    14. import com.FlaveDrake.SuperAPI.items.ItemBuilder;
    15. import com.FlaveDrake.SuperAPI.player.PlayerBuilder;
    16.  
    17. public class FlyListener implements Listener {
    18.  
    19. @EventHandler
    20. public void onInteract(PlayerInteractEvent e) {
    21. Player p = e.getPlayer();
    22.  
    23. ItemStack item = p.getItemInHand();
    24.  
    25. ItemStack fly = new ItemBuilder(Material.FEATHER, 1).setName("&fFly &7- &aActivated").build();
    26.  
    27. ItemMeta flymeta = fly.getItemMeta();
    28.  
    29. flymeta.addEnchant(Enchantment.PROTECTION_FALL, 10, true);
    30.  
    31. fly.setItemMeta(flymeta);
    32.  
    33. ItemStack nofly = new ItemBuilder(Material.FEATHER, 1).setName("&fFly &7- &cDeactivated").build();
    34.  
    35. if (ModMode.modmode.contains(p.getName())) {
    36. if (item.hasItemMeta() && item != null && item.getType() == Material.FEATHER
    37. && item.getItemMeta().getDisplayName().equalsIgnoreCase("&fFly &7- &cDeactivated")) {
    38. p = new PlayerBuilder(p).setFlymode(true).build();
    39.  
    40. p.sendMessage("activated"); // Fly Mode activate
    41.  
    42. p.getInventory().setItem(0, fly);
    43. } else if (item != null && item.hasItemMeta() && item.getType() == Material.FEATHER
    44. && item.getItemMeta().getDisplayName().equalsIgnoreCase("&fFly - &7 &aActivated")) {
    45.  
    46. p = new PlayerBuilder(p).setFlymode(false).build();
    47.  
    48. p.sendMessage("deactivated"); // Fly Mode deactivate
    49.  
    50. p.getInventory().setItem(0, nofly);
    51.  
    52. } else {
    53. p.sendMessage("error"); // Error check
    54. }
    55. }
    56. }
    57.  
    58. }
    59.  
    60.  
     
  2. Online

    timtower Administrator Administrator Moderator

    @FlaveDrake You probably need to translate the colors
     
  3. @timtower

    uhm no sorry it does it automatically in my API.
     
  4. Online

    timtower Administrator Administrator Moderator

    FlaveDrake likes this.
  5. @timtower

    Thank you that was the problem. ^^
     
    timtower likes this.
Thread Status:
Not open for further replies.

Share This Page