From 38bcb6b731a076aaf60e3154987d109eb191122c Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Wed, 27 Mar 2019 20:25:50 +0200 Subject: [PATCH 1/4] Update FurnaceListener.java --- .../Slimefun/listeners/FurnaceListener.java | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java index 6482c2512..60575fd95 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java @@ -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,12 @@ 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.api.BlockStorage; + public class FurnaceListener implements Listener { public FurnaceListener(SlimefunStartup plugin) { @@ -22,24 +22,19 @@ 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()))); - } + EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); + if (furnace instanceof EnhancedFurnace && furnace.getFuelEfficiency() > 0) + e.setBurnTime(((int) ((1 + 0.2 * 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()); + EnhancedFurnace furnace = (EnhancedFurnace) 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") ? furnace.getOutput() : 1; + ItemStack result = f.getInventory().getResult() == null ? RecipeCalculator.getSmeltedOutput(f.getInventory().getSmelting().getType()) : f.getInventory().getResult().clone(); + f.getInventory().setResult(new CustomItem(result, result.getAmount() + amount > result.getMaxStackSize() ? result.getMaxStackSize() : result.getAmount() + amount)); } } From da16fee28bf2a72af3f67d0fe4778372bfe199c3 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Wed, 27 Mar 2019 20:45:45 +0200 Subject: [PATCH 2/4] Update FurnaceListener.java --- .../Slimefun/listeners/FurnaceListener.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java index 60575fd95..f8cf4b4a3 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java @@ -22,15 +22,17 @@ public class FurnaceListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBurn(FurnaceBurnEvent e) { - EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); - if (furnace instanceof EnhancedFurnace && furnace.getFuelEfficiency() > 0) - e.setBurnTime(((int) ((1 + 0.2 * furnace.getFuelEfficiency()) * e.getBurnTime()))); + if (BlockStorage.check(e.getBlock()) instanceof EnhancedFurnace) { + EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); + if (furnace.getFuelEfficiency() > 0) + e.setBurnTime(((int) ((1 + 0.2 * furnace.getFuelEfficiency()) * e.getBurnTime()))); + } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onSmelt(FurnaceSmeltEvent e) { - EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); - if (furnace instanceof EnhancedFurnace) { + if (BlockStorage.check(e.getBlock()) instanceof EnhancedFurnace) { + EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); Furnace f = (Furnace) e.getBlock().getState(); int amount = f.getInventory().getSmelting().getType().toString().endsWith("_ORE") ? furnace.getOutput() : 1; ItemStack result = f.getInventory().getResult() == null ? RecipeCalculator.getSmeltedOutput(f.getInventory().getSmelting().getType()) : f.getInventory().getResult().clone(); From 2337004c17e9ea76addda7964d8442bb8ca878c4 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Wed, 27 Mar 2019 20:51:23 +0200 Subject: [PATCH 3/4] Update FurnaceListener.java --- src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java index f8cf4b4a3..096cd46d2 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java @@ -36,7 +36,8 @@ public class FurnaceListener implements Listener { Furnace f = (Furnace) e.getBlock().getState(); int amount = f.getInventory().getSmelting().getType().toString().endsWith("_ORE") ? furnace.getOutput() : 1; ItemStack result = f.getInventory().getResult() == null ? RecipeCalculator.getSmeltedOutput(f.getInventory().getSmelting().getType()) : f.getInventory().getResult().clone(); - f.getInventory().setResult(new CustomItem(result, result.getAmount() + amount > result.getMaxStackSize() ? result.getMaxStackSize() : result.getAmount() + amount)); + if (result != null) + f.getInventory().setResult(new CustomItem(result, result.getAmount() + amount > result.getMaxStackSize() ? result.getMaxStackSize() : result.getAmount() + amount)); } } From fbf01b1c39cf36ec165151bed16755eed3869473 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Wed, 27 Mar 2019 20:58:47 +0200 Subject: [PATCH 4/4] Update FurnaceListener.java --- .../Slimefun/listeners/FurnaceListener.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java index 096cd46d2..2d36e16fb 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/FurnaceListener.java @@ -12,6 +12,7 @@ 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 { @@ -22,19 +23,19 @@ public class FurnaceListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBurn(FurnaceBurnEvent e) { - if (BlockStorage.check(e.getBlock()) instanceof EnhancedFurnace) { - EnhancedFurnace furnace = (EnhancedFurnace) BlockStorage.check(e.getBlock()); - if (furnace.getFuelEfficiency() > 0) - e.setBurnTime(((int) ((1 + 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()) 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; + 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));