Last active
August 6, 2017 07:01
-
-
Save bendem/8321525 to your computer and use it in GitHub Desktop.
Used to set the cookTime for bukkit
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.bukkit.block.Furnace; | |
import org.bukkit.event.block.BlockPlaceEvent; | |
import org.bukkit.event.inventory.FurnaceBurnEvent; | |
import org.bukkit.event.inventory.FurnaceSmeltEvent; | |
import org.bukkit.event.inventory.InventoryClickEvent; | |
import org.bukkit.event.EventHandler; | |
import org.bukkit.event.Listener; | |
import org.bukkit.inventory.FurnaceInventory; | |
import org.bukkit.Material; | |
import org.bukkit.plugin.java.JavaPlugin; | |
public class CookTimeSetter implements Listener { | |
public JavaPlugin plugin; | |
public Short cookTime = (short) 100; | |
CookTimeSetter(JavaPlugin plugin) { | |
this.plugin = plugin; | |
} | |
@EventHandler | |
public void furnaceBurn(FurnaceBurnEvent event) { | |
// Setting cookTime when the fuel is consumed | |
Furnace furnace = (Furnace) event.getBlock().getState(); | |
furnace.setCookTime(cookTime); | |
} | |
@EventHandler | |
public void furnaceSmeltEvent(FurnaceSmeltEvent event) { | |
// Setting cookTime after cooking an item (and the fuel is still burning) | |
Furnace furnace = (Furnace) event.getBlock().getState(); | |
furnace.setCookTime(cookTime); | |
} | |
@EventHandler | |
public void onInventoryClick(InventoryClickEvent event) { | |
if(event.getInventory() instanceof FurnaceInventory) { | |
return; | |
} | |
Furnace furnace = (Furnace) (event.getWhoClicked().getTargetBlock(null, 10)).getState(); | |
// Setting cookTime when the furnace is empty but already burning | |
if ((event.getSlot() == 0 || event.getSlot() == 1) // Click in one of the two slots | |
&& event.getCursor().getType() != Material.AIR // With an item | |
&& furnace.getCookTime() > cookTime) { // The furnace is not already burning something | |
furnace.setCookTime(cookTime); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment