Solved Anvil lore help plz

Discussion in 'Plugin Development' started by infern0g0d, Nov 11, 2013.

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

    infern0g0d

    ok i place a sword in anvil slot 0 and an enchantment book fireaspect 1 with lore that says peace in slot 1 and when i pick up the sword in slot 2 the enchantment transfered on it but the lore didnt

    Code:java
    1. package main;
    2.  
    3.  
    4. import org.bukkit.Material;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.EventPriority;
    7. import org.bukkit.event.inventory.InventoryClickEvent;
    8. import org.bukkit.event.inventory.InventoryType;
    9. import org.bukkit.inventory.Inventory;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.inventory.meta.ItemMeta;
    12. import org.bukkit.plugin.java.JavaPlugin;
    13.  
    14. public class Anvilstuff extends JavaPlugin {
    15. @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
    16. public void onInventoryClick(InventoryClickEvent event) {
    17. Inventory i = event.getView().getTopInventory();
    18. ItemStack c = event.getCurrentItem();
    19. if (i.getType() == InventoryType.ANVIL && event.getRawSlot() == 2 && c.getType() != Material.AIR) {
    20. ItemMeta im = c.getItemMeta();
    21. im.setLore(i.getItem(1).getItemMeta().getLore());
    22. c.setItemMeta(im);
    23. event.setCurrentItem(c);
    24. }
    25. }
    26. }
     
  2. Offline

    NinjaWAffles

    Something like this should work.
    Code:Java
    1. @EventHandler
    2. public void onInventoryClick(InventoryClickEvent e)
    3. {
    4. if(e.getWhoClicked() instanceof Player)
    5. {
    6. if(e.getView().getType().equals(InventoryType.ANVIL))
    7. {
    8. AnvilInventory anvilInv = (AnvilInventory) e.getInventory();
    9. int slot = e.getRawSlot();
    10.  
    11. if(slot == 2)
    12. {
    13. ItemStack c = e.getCurrentItem();
    14. ItemMeta itemMeta = c.getItemMeta();
    15. itemMeta.setLore(anvilInv.getContents()[1].getItemMeta().getLore());
    16. c.setItemMeta(itemMeta);
    17. e.setCurrentItem(c);
    18. }
    19. }
    20. }
    21. }
     
  3. Offline

    infern0g0d

    i tried it but didnt work eaither
     
  4. Offline

    NinjaWAffles

    Is the whole method not working? Are you registering the listener?
     
  5. Offline

    infern0g0d

    how do i register a listener?
     
  6. Offline

    NinjaWAffles

  7. Offline

    infern0g0d

    ok i added the listener still wont work =/



    Code:java
    1. package main;
    2.  
    3.  
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.event.inventory.InventoryClickEvent;
    8. import org.bukkit.event.inventory.InventoryType;
    9. import org.bukkit.inventory.AnvilInventory;
    10. import org.bukkit.inventory.ItemStack;
    11. import org.bukkit.inventory.meta.ItemMeta;
    12. import org.bukkit.plugin.java.JavaPlugin;
    13.  
    14.  
    15.  
    16. public class Anvilstuff extends JavaPlugin implements Listener{
    17.  
    18.  
    19. @EventHandler
    20. public void onInventoryClick(InventoryClickEvent e)
    21. {
    22. if(e.getWhoClicked() instanceof Player)
    23. {
    24. if(e.getView().getType().equals(InventoryType.ANVIL))
    25. {
    26. AnvilInventory anvilInv = (AnvilInventory) e.getInventory();
    27. int slot = e.getRawSlot();
    28.  
    29. if(slot == 2)
    30. {
    31. ItemStack c = e.getCurrentItem();
    32. ItemMeta itemMeta = c.getItemMeta();
    33. itemMeta.setLore(anvilInv.getContents()[1].getItemMeta().getLore());
    34. c.setItemMeta(itemMeta);
    35. e.setCurrentItem(c);
    36. }
    37. }
    38. }
    39. }
    40. }


    heres my listener


    Code:java
    1. package main;
    2.  
    3. import org.bukkit.plugin.PluginManager;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5.  
    6. public class NewEvents extends JavaPlugin{
    7.  
    8.  
    9.  
    10. /*define listener */
    11. public final Anvilstuff anvillistener = new Anvilstuff();
    12.  
    13.  
    14. /*handle plugin disable */
    15. public void onDisable() { }
    16.  
    17. /*handle plugin enable */
    18. public void onEnable() {
    19. PluginManager pm = getServer().getPluginManager();
    20.  
    21. pm.registerEvents(this.anvillistener, this);
    22. }
    23. }


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

    Myst3ryKid

    pm.registerListeners(this, (your class);
     
  9. Offline

    infern0g0d

    its working thankyou
     
Thread Status:
Not open for further replies.

Share This Page