mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Merge pull request #863 from SoSeDiK/furnace
Update FurnaceListener.java
This commit is contained in:
commit
7a0a98bb6d
@ -1,11 +1,5 @@
|
||||
package me.mrCookieSlime.Slimefun.listeners;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Recipe.RecipeCalculator;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.EnhancedFurnace;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
|
||||
import org.bukkit.block.Furnace;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
@ -14,6 +8,13 @@ import org.bukkit.event.inventory.FurnaceBurnEvent;
|
||||
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Recipe.RecipeCalculator;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.EnhancedFurnace;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
|
||||
public class FurnaceListener implements Listener {
|
||||
|
||||
public FurnaceListener(SlimefunStartup plugin) {
|
||||
@ -22,24 +23,22 @@ public class FurnaceListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBurn(FurnaceBurnEvent e) {
|
||||
if (BlockStorage.check(e.getBlock()) != null && BlockStorage.check(e.getBlock()) instanceof EnhancedFurnace) {
|
||||
EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock());
|
||||
if (furnace.getFuelEfficiency() > 0) e.setBurnTime(((int) ((1.0 + 0.2 * furnace.getFuelEfficiency()) * e.getBurnTime())));
|
||||
SlimefunItem furnace = BlockStorage.check(e.getBlock());
|
||||
if (furnace instanceof EnhancedFurnace) {
|
||||
if (((EnhancedFurnace) furnace).getFuelEfficiency() > 0)
|
||||
e.setBurnTime(((int) ((1 + 0.2 * ((EnhancedFurnace) furnace).getFuelEfficiency()) * e.getBurnTime())));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onSmelt(FurnaceSmeltEvent e) {
|
||||
if (BlockStorage.check(e.getBlock()) != null && BlockStorage.check(e.getBlock()) instanceof EnhancedFurnace) {
|
||||
EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock());
|
||||
SlimefunItem furnace = BlockStorage.check(e.getBlock());
|
||||
if (furnace instanceof EnhancedFurnace) {
|
||||
Furnace f = (Furnace) e.getBlock().getState();
|
||||
int amount = f.getInventory().getSmelting().getType().toString().endsWith("_ORE") ? furnace.getOutput(): 1;
|
||||
ItemStack output = RecipeCalculator.getSmeltedOutput(f.getInventory().getSmelting().getType());
|
||||
ItemStack result = f.getInventory().getResult();
|
||||
if (result != null) result = result.clone();
|
||||
f.getInventory().setResult(null);
|
||||
if (result != null) f.getInventory().setResult(new CustomItem(result, result.getAmount() + amount > result.getMaxStackSize() ? result.getMaxStackSize(): result.getAmount() + amount));
|
||||
else f.getInventory().setResult(new CustomItem(output, output.getAmount() + amount > output.getType().getMaxStackSize() ? output.getType().getMaxStackSize(): output.getAmount() + amount));
|
||||
int amount = f.getInventory().getSmelting().getType().toString().endsWith("_ORE") ? ((EnhancedFurnace) furnace).getOutput() : 1;
|
||||
ItemStack result = f.getInventory().getResult() == null ? RecipeCalculator.getSmeltedOutput(f.getInventory().getSmelting().getType()) : f.getInventory().getResult().clone();
|
||||
if (result != null)
|
||||
f.getInventory().setResult(new CustomItem(result, result.getAmount() + amount > result.getMaxStackSize() ? result.getMaxStackSize() : result.getAmount() + amount));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user