Furnace help!

Discussion in 'Plugin Development' started by Everyonc, Feb 14, 2014.

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

    Everyonc

    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?
     
  2. Offline

    CopyableCougar4

    This:
    Code:java
    1. @EventHandler
    2. public void onBurn(FurnaceBurnEvent evt){
    3. evt.setCancelled(true);
    4. }
     
  3. Offline

    Everyonc


    And how to disable ex. iron_ore ?
     
  4. Offline

    Garris0n

  5. Offline

    Everyonc

    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);
            }
        }
     
  6. Offline

    WhatAaCow

    Code:
        @EventHandler
        public void onBurn(FurnaceBurnEvent evt){
            if (evt.getBlock() == Material.getMaterial(15)) {
                evt.setCancelled(true);
            }
        }
    #not tested
     
  7. Offline

    Everyonc


    error:
    [​IMG]
     
  8. Offline

    xTigerRebornx

    Everyonc Use evt.getBlock().getType() instead of evt.getBlock()
     
  9. Offline

    Everyonc

    Code:
        @EventHandler
        public void onBurn(FurnaceBurnEvent evt){
            if (evt.getBlock().getType()  == Material.getMaterial(319)) {
                evt.setCancelled(true);
            }
        }
    No erros but dont work, still burn
     
  10. Offline

    xTigerRebornx

    Everyonc Did you register your events?
     
  11. Offline

    Everyonc

    Yep
     
  12. Offline

    xTigerRebornx

    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)
     
  13. Offline

    Everyonc

    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);
                }
                }
        }
    [​IMG]
     
  14. Offline

    CopyableCougar4

    This code seems to work: (no errors)
    Everyonc
    Code:java
    1. @EventHandler
    2. public void onBurn(FurnaceBurnEvent evt){
    3. Furnace f = (Furnace) evt.getBlock().getState();
    4. FurnaceInventory inv = f.getInventory();
    5. ItemStack burning = inv.getSmelting();
    6. if(burning.getType().equals(Material.getMaterial(319))){
    7. evt.setCancelled(true);
    8. evt.setBurning(false);
    9. }
    10. }
     
  15. Offline

    Everyonc


    mBaxter help me on IRC and work.
    Use FurnaceSmeltEvent not FurnaceBurnEvent

    Ty all ;d
     
  16. Offline

    CopyableCougar4

    Oh okay :p
    Edit: I looked into it, and the FurnaceBurnEvent is the event for fuel, not the item smelting :p
     
Thread Status:
Not open for further replies.

Share This Page