I have 1 little problem. I don't have a clue how to disable cooking some item or burning ore in a furnace. Could anyone give a hand in help?
can u give me code ? this is dont work: Code: @EventHandler public void onBurn(FurnaceBurnEvent evt){ If (evt.getBlock(Material.getMaterial(15)) { evt.setCancelled(true); } }
Code: @EventHandler public void onBurn(FurnaceBurnEvent evt){ if (evt.getBlock() == Material.getMaterial(15)) { evt.setCancelled(true); } } #not tested
Code: @EventHandler public void onBurn(FurnaceBurnEvent evt){ if (evt.getBlock().getType() == Material.getMaterial(319)) { evt.setCancelled(true); } } No erros but dont work, still burn
Everyonc Looks like evt.getBlock() gives the furnace itself, you'll have to do something like this Code: if(evt.getBlock().getState() instanceof FurnaceInventory){ FurnaceInventory fi = ((Furnace) evt.getBlock().getState()).getInventory(); if(fi.getSmelting().getType() == Material.YOUR_ITEM){ // It is your Item } } This basically gets the Furnace from the block and then uses the Furnace to get the FurnaceInventory (Both can be found on BukkitDev if you want to use them more)
Code: @EventHandler public void onBurn(FurnaceBurnEvent evt){ if(evt.getBlock().getState() instanceof FurnaceInventory){ FurnaceInventory fi = ((Furnace) evt.getBlock().getState()).getInventory(); if(fi.getSmelting().getType() == Material.getMaterial(319)){ evt.setCancelled(true); } } }
This code seems to work: (no errors) Everyonc Code:java @EventHandler public void onBurn(FurnaceBurnEvent evt){ Furnace f = (Furnace) evt.getBlock().getState(); FurnaceInventory inv = f.getInventory(); ItemStack burning = inv.getSmelting(); if(burning.getType().equals(Material.getMaterial(319))){ evt.setCancelled(true); evt.setBurning(false); } }
Oh okay Edit: I looked into it, and the FurnaceBurnEvent is the event for fuel, not the item smelting