InventoryClickEvent cast Furnace

Discussion in 'Plugin Development' started by Subtelny, Oct 28, 2015.

Thread Status:
Not open for further replies.
  1. Hello. (Sorry for my english)

    How can i cast inventory to furnace inv?

    Event: InventoryClickEvent

    Show Spoiler

    My think:
    Code:
    @EventHandler
        public void onPlayerFurnace(InventoryClickEvent e) {
            Player player = (Player) e.getWhoClicked();
           
            if(e.getInventory().getType().equals(InventoryType.FURNACE)) {
                Furnace furnace = (Furnace) e.getInventory();
               
                player.sendMessage("1: " + furnace.getBlock());
                player.sendMessage("2: " + furnace.getCookTime());
                player.sendMessage("3: " + furnace.getType());
            }
    
    Error:
    Code:
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R4.inventory.CraftInventoryFurnace cannot be cast to org.bukkit.block.Furnace
        at dgcraft.subtelny.achievements.listener.AchievePiekarz.onPlayerFurnace(AchievePiekarz.java:29) ~[?:?]
    
    At 29 line is furnace cast;
     
  2. Offline

    RoboticPlayer

    @Subtelny First, check for enum equality using == instead of #equals
    Which Furnace are you importing? org.bukkit.material or org.bukkit.block? Either way, you are looking for the FurnaceInventory class.
     
  3. Okey i got!

    I must add getHolder() at
    Code:
    Furnace furnace = (Furnace) e.getInventory().getHolder();
    
     
Thread Status:
Not open for further replies.

Share This Page