From f7fa6e2972c403228db088e940959b2b78d60152 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 18 Dec 2019 01:07:04 +0100 Subject: [PATCH] [CI skip] Reduced technical debt and tweaked Magnesium Salt --- .../Slimefun/Objects/Category.java | 10 ++-- .../Objects/SlimefunItem/EnhancedFurnace.java | 16 +++--- .../Objects/SlimefunItem/ItemState.java | 1 + .../Objects/SlimefunItem/JetBoots.java | 2 +- .../SlimefunItem/SlimefunArmorPiece.java | 2 +- .../SlimefunItem/SlimefunBackpack.java | 2 +- .../Objects/SlimefunItem/SlimefunBow.java | 1 + .../Objects/SlimefunItem/Talisman.java | 1 + .../Objects/SlimefunItem/VanillaItem.java | 1 + .../SlimefunItem/machines/BlockPlacer.java | 4 +- .../electric/AnimalGrowthAccelerator.java | 8 +-- .../machines/electric/AutoAnvil.java | 5 +- .../machines/electric/AutoDisenchanter.java | 20 ++++---- .../machines/electric/AutoDrier.java | 2 +- .../machines/electric/AutoEnchanter.java | 17 ++++--- .../electric/AutomatedCraftingChamber.java | 4 +- .../machines/electric/ChargingBench.java | 4 +- .../electric/CropGrowthAccelerator.java | 8 +-- .../machines/electric/ElectricDustWasher.java | 6 +-- .../machines/electric/ElectricFurnace.java | 4 +- .../machines/electric/ElectricGoldPan.java | 2 +- .../electric/ElectricIngotPulverizer.java | 2 +- .../machines/electric/FluidPump.java | 1 + .../electric/HeatedPressureChamber.java | 2 +- .../machines/electric/Refinery.java | 2 + .../machines/electric/WitherAssembler.java | 50 ++++++++----------- .../machines/electric/XPCollector.java | 6 +-- .../generators/MagnesiumGenerator.java | 2 +- .../machines/electric/geo/GEOMiner.java | 6 ++- .../electric/{ => gps}/ElevatorPlate.java | 3 +- .../SlimefunItem/multiblocks/ArmorForge.java | 3 ++ .../SlimefunItem/multiblocks/Compressor.java | 9 ++-- .../multiblocks/EnhancedCraftingTable.java | 5 +- .../SlimefunItem/multiblocks/Juicer.java | 5 +- .../multiblocks/MagicWorkbench.java | 13 +++-- .../SlimefunItem/multiblocks/OreCrusher.java | 5 +- .../SlimefunItem/multiblocks/TableSaw.java | 2 +- .../Slimefun/Setup/SlimefunSetup.java | 2 +- .../Slimefun/api/BlockInfoConfig.java | 2 +- .../Slimefun/api/BlockStorage.java | 45 ++++++++++++----- .../Slimefun/api/GuideHandler.java | 1 + 41 files changed, 161 insertions(+), 125 deletions(-) rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/{ => gps}/ElevatorPlate.java (99%) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java index becdae2e4..8103249b2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Category.java @@ -4,13 +4,17 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout; +import me.mrCookieSlime.Slimefun.SlimefunGuide; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.api.PlayerProfile; /** * Statically handles categories. @@ -25,9 +29,9 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; */ public class Category { - private ItemStack item; - private List items; - private int tier; + private final ItemStack item; + private final List items; + private final int tier; /** * Constructs a Category with the given display item. diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java index af32247d7..45a6f77dd 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/EnhancedFurnace.java @@ -15,9 +15,9 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class EnhancedFurnace extends SimpleSlimefunItem { - private int speed; - private int efficiency; - private int fortune; + private final int speed; + private final int efficiency; + private final int fortune; public EnhancedFurnace(int speed, int efficiency, int fortune, SlimefunItemStack item, ItemStack[] recipe) { super(Categories.MACHINES_1, item, RecipeType.ENHANCED_CRAFTING_TABLE, recipe); @@ -36,11 +36,11 @@ public class EnhancedFurnace extends SimpleSlimefunItem { } public int getOutput() { - int fortune = this.fortune; - fortune = new Random().nextInt(fortune + 2) - 1; - if (fortune <= 0) fortune = 0; - fortune++; - return fortune; + int bonus = this.fortune; + bonus = new Random().nextInt(bonus + 2) - 1; + if (bonus <= 0) bonus = 0; + bonus++; + return bonus; } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java index 80c611478..6bf0e1e72 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java @@ -6,6 +6,7 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; * @since 4.1.10 */ public enum ItemState { + /** * This SlimefunItem is enabled. */ diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/JetBoots.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/JetBoots.java index f06fa21ab..bd870f10b 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/JetBoots.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/JetBoots.java @@ -8,7 +8,7 @@ import org.bukkit.inventory.ItemStack; public class JetBoots extends DamagableChargableItem { - private double speed; + private final double speed; public JetBoots(SlimefunItemStack item, ItemStack[] recipe, double speed) { super(Categories.TECH, item, RecipeType.ENHANCED_CRAFTING_TABLE, recipe, "Jet Boots"); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java index 397993821..afd7dcde7 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunArmorPiece.java @@ -9,7 +9,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class SlimefunArmorPiece extends SlimefunItem { - private PotionEffect[] effects; + private final PotionEffect[] effects; public SlimefunArmorPiece(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, PotionEffect[] effects) { super(category, item, id, recipeType, recipe); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBackpack.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBackpack.java index 3e246c1fd..146d0d1af 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBackpack.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBackpack.java @@ -8,7 +8,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class SlimefunBackpack extends SlimefunItem { - private int size; + private final int size; public SlimefunBackpack(int size, Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBow.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBow.java index c1cf9e81e..802ac4f23 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBow.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunBow.java @@ -12,6 +12,7 @@ public class SlimefunBow extends SlimefunItem { super(Categories.WEAPONS, item, id, RecipeType.MAGIC_WORKBENCH, recipe); } + @Deprecated public SlimefunBow(SlimefunItemStack item, ItemStack[] recipe) { super(Categories.WEAPONS, item, RecipeType.MAGIC_WORKBENCH, recipe); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Talisman.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Talisman.java index 0869d07fe..65bffeac2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Talisman.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/Talisman.java @@ -100,6 +100,7 @@ public class Talisman extends SlimefunItem { public void install() { EnderTalisman talisman = (EnderTalisman) SlimefunItem.getByItem(upgrade()); Research research = Research.getByID(112); + if (talisman != null) { Slimefun.addOfficialWikiPage(talisman.getID(), "Talismans"); if (research != null) talisman.bindToResearch(research); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/VanillaItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/VanillaItem.java index 30a1707c3..5663346b3 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/VanillaItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/VanillaItem.java @@ -27,6 +27,7 @@ public class VanillaItem extends SlimefunItem { */ public VanillaItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { super(category, item, id, recipeType, recipe); + useableInWorkbench = true; } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java index 0b8f67514..765d7ece2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java @@ -10,7 +10,7 @@ import org.bukkit.inventory.BlockInventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockStateMeta; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem; +import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; @@ -77,7 +77,7 @@ public class BlockPlacer extends SimpleSlimefunItem { //Changing the inventory of the block based on the inventory of the block's itemstack (Currently only applies to shulker boxes) //Inventory has to be changed after blockState.update() as updating it will create a different Inventory for the object if (block.getState() instanceof BlockInventoryHolder) { - ((BlockInventoryHolder) block.getState()).getInventory().setContents(((BlockInventoryHolder) itemBlockState).getInventory().getContents());; + ((BlockInventoryHolder) block.getState()).getInventory().setContents(((BlockInventoryHolder) itemBlockState).getInventory().getContents()); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AnimalGrowthAccelerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AnimalGrowthAccelerator.java index e50d6cc96..a183ff773 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AnimalGrowthAccelerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AnimalGrowthAccelerator.java @@ -73,11 +73,7 @@ public class AnimalGrowthAccelerator extends SlimefunItem implements InventoryBl @Override public void tick(Block b, SlimefunItem sf, Config data) { - try { - AnimalGrowthAccelerator.this.tick(b); - } catch (Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Error occured while ticking an Animal Growth Accelerator for Slimefun " + Slimefun.getVersion(), x); - } + AnimalGrowthAccelerator.this.tick(b); } @Override @@ -89,7 +85,7 @@ public class AnimalGrowthAccelerator extends SlimefunItem implements InventoryBl protected void tick(Block b) { for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), 3.0, 3.0, 3.0, n -> n instanceof Ageable && n.isValid() && !((Ageable) n).isAdult())) { - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.ORGANIC_FOOD, false)) { if (ChargableBlock.getCharge(b) < energyConsumption) return; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoAnvil.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoAnvil.java index 2b98d2bf2..1d58de3c3 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoAnvil.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoAnvil.java @@ -75,7 +75,7 @@ public abstract class AutoAnvil extends AContainer { else { MachineRecipe recipe = null; - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { ItemStack target = menu.getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1]: getInputSlots()[0]); ItemStack item = menu.getItemInSlot(slot); @@ -96,9 +96,10 @@ public abstract class AutoAnvil extends AContainer { if (recipe != null) { if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return; - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1)); } + processing.put(b, recipe); progress.put(b, recipe.getTicks()); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDisenchanter.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDisenchanter.java index c8454ca91..418b195e5 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDisenchanter.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDisenchanter.java @@ -81,7 +81,7 @@ public class AutoDisenchanter extends AContainer { else { MachineRecipe recipe = null; Map enchantments = new HashMap<>(); - Set enchantments2 = new HashSet<>(); + Set emeraldEnchantments = new HashSet<>(); for (int slot : getInputSlots()) { ItemStack target = menu.getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1]: getInputSlots()[0]); @@ -108,15 +108,15 @@ public class AutoDisenchanter extends AContainer { if (item != null && target != null && target.getType() == Material.BOOK) { int amount = 0; - for (Map.Entry e : item.getEnchantments().entrySet()) { - enchantments.put(e.getKey(), e.getValue()); + for (Map.Entry entry : item.getEnchantments().entrySet()) { + enchantments.put(entry.getKey(), entry.getValue()); amount++; } if (SlimefunPlugin.getHooks().isEmeraldEnchantsInstalled()) { for (ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) { amount++; - enchantments2.add(enchantment); + emeraldEnchantments.add(enchantment); } } @@ -136,16 +136,16 @@ public class AutoDisenchanter extends AContainer { EnchantmentStorageMeta meta = (EnchantmentStorageMeta) book.getItemMeta(); - for (Map.Entry e : enchantments.entrySet()) { - newItem.removeEnchantment(e.getKey()); - meta.addStoredEnchant(e.getKey(), e.getValue(), true); + for (Map.Entry entry : enchantments.entrySet()) { + newItem.removeEnchantment(entry.getKey()); + meta.addStoredEnchant(entry.getKey(), entry.getValue(), true); } book.setItemMeta(meta); - for (ItemEnchantment e : enchantments2) { - EmeraldEnchants.getInstance().getRegistry().applyEnchantment(book, e.getEnchantment(), e.getLevel()); - EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, e.getEnchantment(), 0); + for (ItemEnchantment ench : emeraldEnchantments) { + EmeraldEnchants.getInstance().getRegistry().applyEnchantment(book, ench.getEnchantment(), ench.getLevel()); + EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, ench.getEnchantment(), 0); } recipe = new MachineRecipe(100 * amount, new ItemStack[] {target, item}, new ItemStack[] {newItem, book}); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java index 0d1cc6d73..f8b891f72 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java @@ -113,7 +113,7 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem { MachineRecipe r = null; int inputSlot = -1; - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { ItemStack item = menu.getItemInSlot(slot); if (item != null) { Material mat = item.getType(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoEnchanter.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoEnchanter.java index e96796373..a6a8beaa8 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoEnchanter.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoEnchanter.java @@ -74,7 +74,7 @@ public class AutoEnchanter extends AContainer { else { MachineRecipe recipe = null; - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { ItemStack target = menu.getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1]: getInputSlots()[0]); // Check if enchantable SlimefunItem sfTarget = SlimefunItem.getByItem(target); @@ -85,7 +85,7 @@ public class AutoEnchanter extends AContainer { // Enchant if (item != null && item.getType() == Material.ENCHANTED_BOOK && target != null) { Map enchantments = new HashMap<>(); - Set enchantments2 = new HashSet<>(); + Set emeraldEnchantments = new HashSet<>(); int amount = 0; int specialAmount = 0; EnchantmentStorageMeta meta = (EnchantmentStorageMeta) item.getItemMeta(); @@ -98,11 +98,11 @@ public class AutoEnchanter extends AContainer { } if (SlimefunPlugin.getHooks().isEmeraldEnchantsInstalled()) { - for (ItemEnchantment enchantment: EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) { + for (ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(item)) { if (EmeraldEnchants.getInstance().getRegistry().isApplicable(target, enchantment.getEnchantment()) && EmeraldEnchants.getInstance().getRegistry().getEnchantmentLevel(target, enchantment.getEnchantment().getName()) < enchantment.getLevel()) { amount++; specialAmount++; - enchantments2.add(enchantment); + emeraldEnchantments.add(enchantment); } } specialAmount += EmeraldEnchants.getInstance().getRegistry().getEnchantments(target).size(); @@ -110,12 +110,13 @@ public class AutoEnchanter extends AContainer { if (amount > 0 && specialAmount <= SlimefunPlugin.getSettings().emeraldEnchantsLimit) { ItemStack newItem = target.clone(); - for (Map.Entry e: enchantments.entrySet()) { - newItem.addUnsafeEnchantment(e.getKey(), e.getValue()); + + for (Map.Entry entry : enchantments.entrySet()) { + newItem.addUnsafeEnchantment(entry.getKey(), entry.getValue()); } - for (ItemEnchantment e: enchantments2) { - EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, e.getEnchantment(), e.getLevel()); + for (ItemEnchantment ench: emeraldEnchantments) { + EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, ench.getEnchantment(), ench.getLevel()); } recipe = new MachineRecipe(75 * amount, new ItemStack[] {target, item}, new ItemStack[] {newItem, new ItemStack(Material.BOOK)}); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java index 93ac9de05..7e319abe9 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutomatedCraftingChamber.java @@ -110,13 +110,13 @@ public abstract class AutomatedCraftingChamber extends SlimefunItem implements I public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { BlockMenu inv = BlockStorage.getInventory(b); if (inv != null) { - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); inv.replaceExistingItem(slot, null); } } - for (int slot: getOutputSlots()) { + for (int slot : getOutputSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); inv.replaceExistingItem(slot, null); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java index 0164ca0e3..b452fe158 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java @@ -39,13 +39,15 @@ public class ChargingBench extends AContainer { if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return; BlockMenu menu = BlockStorage.getInventory(b); - for (int slot: getInputSlots()) { + + for (int slot : getInputSlots()) { ItemStack stack = menu.getItemInSlot(slot); if (ItemEnergy.getMaxEnergy(stack) > 0) { if (ItemEnergy.getStoredEnergy(stack) < ItemEnergy.getMaxEnergy(stack)) { ChargableBlock.addCharge(b, -getEnergyConsumption()); float rest = ItemEnergy.addStoredEnergy(stack, getEnergyConsumption() / 2F); + if (rest > 0F) { if (menu.fits(stack, getOutputSlots())) { menu.pushItem(stack, getOutputSlots()); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CropGrowthAccelerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CropGrowthAccelerator.java index 1789b0f3d..da7032542 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CropGrowthAccelerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CropGrowthAccelerator.java @@ -49,7 +49,7 @@ public abstract class CropGrowthAccelerator extends SlimefunItem implements Inve registerBlockHandler(getID(), (p, b, tool, reason) -> { BlockMenu inv = BlockStorage.getInventory(b); if (inv != null) { - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); inv.replaceExistingItem(slot, null); @@ -88,11 +88,7 @@ public abstract class CropGrowthAccelerator extends SlimefunItem implements Inve @Override public void tick(Block b, SlimefunItem sf, Config data) { - try { - CropGrowthAccelerator.this.tick(b); - } catch (Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Error occured while ticking a Crop Growth Accelerator for Slimefun " + Slimefun.getVersion(), x); - } + CropGrowthAccelerator.this.tick(b); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricDustWasher.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricDustWasher.java index dcadb222a..f31815163 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricDustWasher.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricDustWasher.java @@ -68,13 +68,13 @@ public abstract class ElectricDustWasher extends AContainer { else { ItemStack[] items = SlimefunPlugin.getUtilities().oreWasherOutputs; - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.SIFTED_ORE, true)) { if (!SlimefunPlugin.getSettings().legacyDustWasher) { boolean emptySlot = false; - for (int output_slot: getOutputSlots()) { - if (menu.getItemInSlot(output_slot) == null) { + for (int outputSlot : getOutputSlots()) { + if (menu.getItemInSlot(outputSlot) == null) { emptySlot = true; break; } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java index fec068a96..552a3207c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java @@ -31,8 +31,8 @@ public abstract class ElectricFurnace extends AContainer { } //Bukkit Recipe Iterator does not seem to include _LOG's of any type for charcoal... Manually adding them all. - for (Material mat:Tag.LOGS.getValues()) { - registerRecipe(4, new ItemStack[] {new ItemStack(mat,1)}, new ItemStack[] {new ItemStack(Material.CHARCOAL, 1)}); + for (Material log : Tag.LOGS.getValues()) { + registerRecipe(4, new ItemStack[] {new ItemStack(log, 1)}, new ItemStack[] {new ItemStack(Material.CHARCOAL, 1)}); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java index 445642067..53abda614 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java @@ -115,7 +115,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla } } else { - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.GRAVEL), true)) { ItemStack output = randomizer.getRandom(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java index 5a24e08aa..f5763d35e 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java @@ -47,7 +47,7 @@ public class ElectricIngotPulverizer extends AContainer implements RecipeDisplay public List getDisplayRecipes() { List displayRecipes = new ArrayList<>(recipes.size() * 2); - for (MachineRecipe recipe: recipes) { + for (MachineRecipe recipe : recipes) { displayRecipes.add(recipe.getInput()[0]); displayRecipes.add(recipe.getOutput()[0]); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FluidPump.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FluidPump.java index d7a49a850..be3ae3c5f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FluidPump.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FluidPump.java @@ -92,6 +92,7 @@ public class FluidPump extends SlimefunItem implements InventoryBlock { if (output != null && ChargableBlock.getCharge(b) >= energyConsumption) { BlockMenu menu = BlockStorage.getInventory(b); + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.BUCKET), true)) { if (!menu.fits(output, getOutputSlots())) return; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java index 73a48e86f..d73ce1b6f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java @@ -95,7 +95,7 @@ public abstract class HeatedPressureChamber extends AContainer { registerRecipe(90, new ItemStack[] {SlimefunItems.PLUTONIUM, SlimefunItems.URANIUM}, new ItemStack[] {SlimefunItems.BOOSTED_URANIUM}); registerRecipe(60, new ItemStack[] {SlimefunItems.NETHER_ICE, SlimefunItems.PLUTONIUM}, new ItemStack[] {new CustomItem(SlimefunItems.ENRICHED_NETHER_ICE, 4)}); registerRecipe(45, new ItemStack[] {SlimefunItems.ENRICHED_NETHER_ICE}, new ItemStack[] {new CustomItem(SlimefunItems.NETHER_ICE_COOLANT_CELL, 8)}); - registerRecipe(12, new ItemStack[] {SlimefunItems.MAGNESIUM_DUST, SlimefunItems.SALT}, new ItemStack[] {SlimefunItems.MAGNESIUM_SALT}); + registerRecipe(8, new ItemStack[] {SlimefunItems.MAGNESIUM_DUST, SlimefunItems.SALT}, new ItemStack[] {SlimefunItems.MAGNESIUM_SALT}); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java index 0e1f33053..7063baa91 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java @@ -78,7 +78,9 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem { for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.BUCKET_OF_OIL, true)) { MachineRecipe r = new MachineRecipe(40, new ItemStack[0], new ItemStack[] {SlimefunItems.BUCKET_OF_FUEL}); + if (!menu.fits(SlimefunItems.BUCKET_OF_FUEL, getOutputSlots())) return; + menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1)); processing.put(b, r); progress.put(b, r.getTicks()); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java index ab3a5140a..6820f810e 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java @@ -1,7 +1,5 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; -import java.util.logging.Level; - import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -52,36 +50,32 @@ public class WitherAssembler extends SlimefunItem { @Override public void newInstance(final BlockMenu menu, final Block b) { - try { - if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "enabled") == null || BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) { - menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.GUNPOWDER), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine")); - menu.addMenuClickHandler(22, (p, slot, item, action) -> { - BlockStorage.addBlockInfo(b, "enabled", "true"); - newInstance(menu, b); - return false; - }); - } - else { - menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.REDSTONE), "&7Enabled: &2\u2714", "", "&e> Click to disable this Machine")); - menu.addMenuClickHandler(22, (p, slot, item, action) -> { - BlockStorage.addBlockInfo(b, "enabled", "false"); - newInstance(menu, b); - return false; - }); - } - - double offset = (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "offset") == null) ? 3.0F: Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset")); - - menu.replaceExistingItem(31, new CustomItem(new ItemStack(Material.PISTON), "&7Offset: &3" + offset + " Block(s)", "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1")); - menu.addMenuClickHandler(31, (p, slot, item, action) -> { - double offsetv = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset")) + (action.isRightClicked() ? -0.1F : 0.1F)); - BlockStorage.addBlockInfo(b, "offset", String.valueOf(offsetv)); + if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "enabled") == null || BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) { + menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.GUNPOWDER), "&7Enabled: &4\u2718", "", "&e> Click to enable this Machine")); + menu.addMenuClickHandler(22, (p, slot, item, action) -> { + BlockStorage.addBlockInfo(b, "enabled", "true"); newInstance(menu, b); return false; }); - } catch(Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Error occured while creating a Wither Assembler for Slimefun " + Slimefun.getVersion(), x); } + else { + menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.REDSTONE), "&7Enabled: &2\u2714", "", "&e> Click to disable this Machine")); + menu.addMenuClickHandler(22, (p, slot, item, action) -> { + BlockStorage.addBlockInfo(b, "enabled", "false"); + newInstance(menu, b); + return false; + }); + } + + double offset = (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), "offset") == null) ? 3.0F: Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset")); + + menu.replaceExistingItem(31, new CustomItem(new ItemStack(Material.PISTON), "&7Offset: &3" + offset + " Block(s)", "", "&rLeft Click: &7+0.1", "&rRight Click: &7-0.1")); + menu.addMenuClickHandler(31, (p, slot, item, action) -> { + double offsetv = DoubleHandler.fixDouble(Double.valueOf(BlockStorage.getLocationInfo(b.getLocation(), "offset")) + (action.isRightClicked() ? -0.1F : 0.1F)); + BlockStorage.addBlockInfo(b, "offset", String.valueOf(offsetv)); + newInstance(menu, b); + return false; + }); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java index 48f878cee..f5e2336fb 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java @@ -81,11 +81,7 @@ public class XPCollector extends SlimefunItem implements InventoryBlock { @Override public void tick(Block b, SlimefunItem sf, Config data) { - try { - XPCollector.this.tick(b); - } catch (Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Error occured while ticking an Exp Collector for Slimefun " + Slimefun.getVersion(), x); - } + XPCollector.this.tick(b); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java index 40cb1ed87..36ae4be0b 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java @@ -18,7 +18,7 @@ public abstract class MagnesiumGenerator extends AGenerator { @Override public void registerDefaultRecipes() { - registerFuel(new MachineFuel(10, SlimefunItems.MAGNESIUM_SALT)); + registerFuel(new MachineFuel(12, SlimefunItems.MAGNESIUM_SALT)); } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java index 3c70437be..cad09950d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java @@ -109,7 +109,8 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec @Override public List getDisplayRecipes() { List displayRecipes = new LinkedList<>(); - for (OreGenResource resource: OreGenSystem.listResources()) { + + for (OreGenResource resource : OreGenSystem.listResources()) { if (!resource.isLiquid()) { displayRecipes.add(new CustomItem(resource.getItem(), "&r" + resource.getName())); } @@ -174,7 +175,7 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec else { Chunk chunk = b.getChunk(); - for (OreGenResource resource: OreGenSystem.listResources()) { + for (OreGenResource resource : OreGenSystem.listResources()) { if (!resource.isLiquid()) { if (!OreGenSystem.wasResourceGenerated(resource, chunk)) { SimpleHologram.update(b, "&4GEO-Scan required!"); @@ -182,6 +183,7 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec } else { int supplies = OreGenSystem.getSupplies(resource, chunk, false); + if (supplies > 0) { MachineRecipe r = new MachineRecipe(getProcessingTime() / getSpeed(), new ItemStack[0], new ItemStack[] {resource.getItem().clone()}); if (!menu.fits(r.getOutput()[0], getOutputSlots())) return; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElevatorPlate.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/ElevatorPlate.java similarity index 99% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElevatorPlate.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/ElevatorPlate.java index 9db54096e..e290ca4c7 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElevatorPlate.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/gps/ElevatorPlate.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -44,6 +44,7 @@ public class ElevatorPlate extends SimpleSlimefunItem { public ItemInteractionHandler getItemHandler() { return (e, p, item) -> { if (e.getClickedBlock() == null) return false; + String id = BlockStorage.checkID(e.getClickedBlock()); if (id == null || !id.equals(getID())) return false; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java index cf43a72ec..a66e3506d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/ArmorForge.java @@ -52,8 +52,10 @@ public class ArmorForge extends MultiBlockMachine { if (craft) { final ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone(); + if (Slimefun.hasUnlocked(p, adding, true)) { Inventory outputInv = findOutputInventory(adding, dispBlock, inv); + if (outputInv != null) { for (int j = 0; j < 9; j++) { ItemStack item = inv.getContents()[j]; @@ -64,6 +66,7 @@ public class ArmorForge extends MultiBlockMachine { for (int j = 0; j < 4; j++) { int current = j; + Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> { if (current < 3) { p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ANVIL_USE, 1F, 2F); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java index 63294b1c5..8341f43e6 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Compressor.java @@ -46,15 +46,18 @@ public class Compressor extends MultiBlockMachine { Block dispBlock = b.getRelative(BlockFace.DOWN); Dispenser disp = (Dispenser) dispBlock.getState(); Inventory inv = disp.getInventory(); - for (ItemStack current: inv.getContents()) { - for (ItemStack convert: RecipeType.getRecipeInputs(this)) { + + for (ItemStack current : inv.getContents()) { + for (ItemStack convert : RecipeType.getRecipeInputs(this)) { if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) { final ItemStack adding = RecipeType.getRecipeOutput(this, convert); Inventory outputInv = findOutputInventory(adding, dispBlock, inv); + if (outputInv != null) { ItemStack removing = current.clone(); removing.setAmount(convert.getAmount()); inv.removeItem(removing); + for (int i = 0; i < 4; i++) { int j = i; @@ -66,7 +69,7 @@ public class Compressor extends MultiBlockMachine { p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F); outputInv.addItem(adding); } - }, i*20L); + }, i * 20L); } } else SlimefunPlugin.getLocal().sendMessage(p, "machines.full-inventory", true); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java index 13bac965e..75a4eceba 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/EnhancedCraftingTable.java @@ -54,6 +54,7 @@ public class EnhancedCraftingTable extends MultiBlockMachine { for (int i = 0; i < inputs.size(); i++) { boolean craft = true; + for (int j = 0; j < inv.getContents().length; j++) { if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], true)) { if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) { @@ -92,11 +93,12 @@ public class EnhancedCraftingTable extends MultiBlockMachine { break; } } + String id = ""; int size = ((SlimefunBackpack) sfItem).getSize(); if (backpack != null) { - for (String line: backpack.getItemMeta().getLore()) { + for (String line : backpack.getItemMeta().getLore()) { if (line.startsWith(ChatColor.translateAlternateColorCodes('&', "&7ID: ")) && line.contains("#")) { id = line.replace(ChatColor.translateAlternateColorCodes('&', "&7ID: "), ""); PlayerProfile.fromUUID(UUID.fromString(id.split("#")[0])).getBackpack(Integer.parseInt(id.split("#")[1])).setSize(size); @@ -131,6 +133,7 @@ public class EnhancedCraftingTable extends MultiBlockMachine { for (int j = 0; j < 9; j++) { ItemStack item = inv.getContents()[j]; + if (item != null && item.getType() != Material.AIR) { ItemUtils.consumeItem(item, true); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java index 274076b2a..2706f9cf1 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/Juicer.java @@ -43,8 +43,9 @@ public class Juicer extends MultiBlockMachine { Block dispBlock = b.getRelative(BlockFace.DOWN); Dispenser disp = (Dispenser) dispBlock.getState(); Inventory inv = disp.getInventory(); - for (ItemStack current: inv.getContents()) { - for (ItemStack convert: RecipeType.getRecipeInputs(this)) { + + for (ItemStack current : inv.getContents()) { + for (ItemStack convert : RecipeType.getRecipeInputs(this)) { if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) { ItemStack adding = RecipeType.getRecipeOutput(this, convert); Inventory outputInv = findOutputInventory(adding, dispBlock, inv); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java index e6dbc03fb..f9e573b03 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MagicWorkbench.java @@ -52,11 +52,12 @@ public class MagicWorkbench extends MultiBlockMachine { else if (b.getRelative(0, 0, -1).getType() == Material.DISPENSER) dispBlock = b.getRelative(0, 0, -1); Dispenser disp = (Dispenser) dispBlock.getState(); - final Inventory inv = disp.getInventory(); + Inventory inv = disp.getInventory(); List inputs = RecipeType.getRecipeInputList(this); for (int i = 0; i < inputs.size(); i++) { boolean craft = true; + for (int j = 0; j < inv.getContents().length; j++) { if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], true)) { if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) { @@ -73,7 +74,8 @@ public class MagicWorkbench extends MultiBlockMachine { } if (craft) { - final ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone(); + ItemStack adding = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone(); + if (Slimefun.hasUnlocked(p, adding, true)) { Inventory inv2 = Bukkit.createInventory(null, 9, "test"); @@ -99,7 +101,7 @@ public class MagicWorkbench extends MultiBlockMachine { int size = ((SlimefunBackpack) sfItem).getSize(); if (backpack != null) { - for (String line: backpack.getItemMeta().getLore()) { + for (String line : backpack.getItemMeta().getLore()) { if (line.startsWith(ChatColor.translateAlternateColorCodes('&', "&7ID: ")) && line.contains("#")) { id = line.replace(ChatColor.translateAlternateColorCodes('&', "&7ID: "), ""); PlayerProfile.fromUUID(UUID.fromString(id.split("#")[0])).getBackpack(Integer.parseInt(id.split("#")[1])).setSize(size); @@ -137,14 +139,17 @@ public class MagicWorkbench extends MultiBlockMachine { else inv.setItem(j, null); } } + for (int j = 0; j < 4; j++) { int current = j; Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> { p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); p.getWorld().playEffect(b.getLocation(), Effect.ENDER_SIGNAL, 1); + if (current < 3) { p.getWorld().playSound(b.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1F, 1F); - } else { + } + else { p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F); outputInv.addItem(adding); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java index 911713838..5f715e9d8 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java @@ -59,8 +59,9 @@ public class OreCrusher extends MultiBlockMachine { Block dispBlock = b.getRelative(BlockFace.DOWN); Dispenser disp = (Dispenser) dispBlock.getState(); Inventory inv = disp.getInventory(); - for (ItemStack current: inv.getContents()) { - for (ItemStack convert: RecipeType.getRecipeInputs(this)) { + + for (ItemStack current : inv.getContents()) { + for (ItemStack convert : RecipeType.getRecipeInputs(this)) { if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) { ItemStack adding = RecipeType.getRecipeOutput(this, convert); Inventory outputInv = findOutputInventory(adding, dispBlock, inv); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java index 6240228b2..a9b401e86 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java @@ -33,7 +33,7 @@ public class TableSaw extends MultiBlockMachine { BlockFace.SELF ); - for (Material log: Tag.LOGS.getValues()) { + for (Material log : Tag.LOGS.getValues()) { Optional planks = MaterialConverter.getPlanksFromLog(log); if (planks.isPresent()) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 64f2ec24d..aa5bd297e 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -132,7 +132,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.Electric import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.ElectricPress; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.ElectricSmeltery; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.ElectrifiedCrucible; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.ElevatorPlate; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.EnergyRegulator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.FluidPump; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.FoodComposter; @@ -151,6 +150,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOM import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOScannerBlock; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.NetherDrill; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilPump; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.ArmorForge; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.AutomatedPanningMachine; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java index d0251dc5a..06176b74d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockInfoConfig.java @@ -142,4 +142,4 @@ public class BlockInfoConfig extends Config { return new GsonBuilder().create().toJson(data); } -} +} \ No newline at end of file diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java index e923dac80..f6e2c46e9 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/BlockStorage.java @@ -96,7 +96,7 @@ public class BlockStorage { long totalBlocks = 0; try { - for (File file: f.listFiles()) { + for (File file : f.listFiles()) { if (file.getName().equals("null.sfb")) { Slimefun.getLogger().log(Level.WARNING, "Corrupted file detected!"); Slimefun.getLogger().log(Level.WARNING, "Slimefun will simply skip this File, but you"); @@ -110,7 +110,7 @@ public class BlockStorage { } FileConfiguration cfg = YamlConfiguration.loadConfiguration(file); - for (String key: cfg.getKeys(false)) { + for (String key : cfg.getKeys(false)) { Location l = deserializeLocation(key); String chunkString = locationToChunkString(l); try { @@ -158,9 +158,11 @@ public class BlockStorage { else f.mkdirs(); File chunks = new File(path_chunks + "chunks.sfc"); + if (chunks.exists()) { FileConfiguration cfg = YamlConfiguration.loadConfiguration(chunks); - for (String key: cfg.getKeys(false)) { + + for (String key : cfg.getKeys(false)) { try { if (world.getName().equals(key.split(";")[0])) { SlimefunPlugin.getUtilities().mapChunks.put(key, new BlockInfoConfig(parseJSON(cfg.getString(key)))); @@ -173,13 +175,14 @@ public class BlockStorage { SlimefunPlugin.getUtilities().worlds.put(world.getName(), this); - for (File file: new File("data-storage/Slimefun/stored-inventories").listFiles()) { + for (File file : new File("data-storage/Slimefun/stored-inventories").listFiles()) { if (file.getName().startsWith(w.getName()) && file.getName().endsWith(".sfi")) { Location l = deserializeLocation(file.getName().replace(".sfi", "")); Config cfg = new Config(file); try { BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset")); + if (preset == null) { preset = BlockMenuPreset.getPreset(checkID(l)); } @@ -194,7 +197,7 @@ public class BlockStorage { } } - for (File file: new File("data-storage/Slimefun/universal-inventories").listFiles()) { + for (File file : new File("data-storage/Slimefun/universal-inventories").listFiles()) { if (file.getName().endsWith(".sfi")) { Config cfg = new Config(file); BlockMenuPreset preset = BlockMenuPreset.getPreset(cfg.getString("preset")); @@ -213,12 +216,12 @@ public class BlockStorage { changes = blocksCache.size() + chunkChanges; Map inventories2 = new HashMap<>(inventories); - for (Map.Entry entry: inventories2.entrySet()) { + for (Map.Entry entry : inventories2.entrySet()) { changes += entry.getValue().getUnsavedChanges(); } Map universalInventories2 = new HashMap<>(SlimefunPlugin.getUtilities().universalInventories); - for (Map.Entry entry: universalInventories2.entrySet()) { + for (Map.Entry entry : universalInventories2.entrySet()) { changes += entry.getValue().getUnsavedChanges(); } } @@ -239,7 +242,7 @@ public class BlockStorage { Map cache = new HashMap<>(blocksCache); - for (Map.Entry entry: cache.entrySet()) { + for (Map.Entry entry : cache.entrySet()) { blocksCache.remove(entry.getKey()); Config cfg = entry.getValue(); @@ -263,13 +266,13 @@ public class BlockStorage { Map inventories2 = new HashMap<>(inventories); - for (Map.Entry entry: inventories2.entrySet()) { + for (Map.Entry entry : inventories2.entrySet()) { entry.getValue().save(entry.getKey()); } Map universalInventories2 = new HashMap<>(SlimefunPlugin.getUtilities().universalInventories); - for (Map.Entry entry: universalInventories2.entrySet()) { + for (Map.Entry entry : universalInventories2.entrySet()) { entry.getValue().save(); } @@ -277,7 +280,7 @@ public class BlockStorage { File chunks = new File(path_chunks + "chunks.sfc"); Config cfg = new Config(path_chunks + "chunks.temp"); - for (Map.Entry entry: SlimefunPlugin.getUtilities().mapChunks.entrySet()) { + for (Map.Entry entry : SlimefunPlugin.getUtilities().mapChunks.entrySet()) { cfg.setValue(entry.getKey(), entry.getValue().toJSON()); } @@ -342,7 +345,8 @@ public class BlockStorage { if (json != null && json.length() > 2) { JsonParser parser = new JsonParser(); JsonObject obj = parser.parse(json).getAsJsonObject(); - for (Map.Entry entry: obj.entrySet()) { + + for (Map.Entry entry : obj.entrySet()) { map.put(entry.getKey(), entry.getValue().getAsString()); } } @@ -367,9 +371,11 @@ public class BlockStorage { private static String serializeBlockInfo(Config cfg) { JsonObject json = new JsonObject(); + for (String key : cfg.getKeys()) { json.add(key, new JsonPrimitive(cfg.getString(key))); } + return json.toString(); } @@ -426,6 +432,7 @@ public class BlockStorage { public static void setBlockInfo(Location l, Config cfg, boolean updateTicker) { BlockStorage storage = getStorage(l.getWorld()); storage.storage.put(l, cfg); + if (BlockMenuPreset.isInventory(cfg.getString("id"))) { if (BlockMenuPreset.isUniversalInventory(cfg.getString("id"))) { if (!SlimefunPlugin.getUtilities().universalInventories.containsKey(cfg.getString("id"))) { @@ -439,6 +446,7 @@ public class BlockStorage { else storage.loadInventory(l, BlockMenuPreset.getPreset(cfg.getString("id"))); } } + refreshCache(getStorage(l.getWorld()), l, cfg.getString("id"), serializeBlockInfo(cfg), updateTicker); } @@ -470,6 +478,7 @@ public class BlockStorage { public static void _integrated_removeBlockInfo(Location l, boolean destroy) { BlockStorage storage = getStorage(l.getWorld()); + if (hasBlockInfo(l)) { refreshCache(storage, l, getLocationInfo(l).getString("id"), null, destroy); storage.storage.remove(l); @@ -477,14 +486,17 @@ public class BlockStorage { if (destroy) { if (storage.hasInventory(l)) storage.clearInventory(l); + if (storage.hasUniversalInventory(l)) { storage.getUniversalInventory(l).close(); storage.getUniversalInventory(l).save(); } + String chunkString = locationToChunkString(l); if (SlimefunPlugin.getUtilities().tickingChunks.containsKey(chunkString)) { Set locations = SlimefunPlugin.getUtilities().tickingChunks.get(chunkString); locations.remove(l); + if (locations.isEmpty()) { SlimefunPlugin.getUtilities().tickingChunks.remove(chunkString); SlimefunPlugin.getUtilities().loadedTickers.remove(chunkString); @@ -513,6 +525,7 @@ public class BlockStorage { BlockStorage storage = getStorage(from.getWorld()); setBlockInfo(to, getLocationInfo(from), true); + if (storage.inventories.containsKey(from)) { BlockMenu menu = storage.inventories.get(from); storage.inventories.put(to, menu); @@ -524,9 +537,11 @@ public class BlockStorage { storage.storage.remove(from); String chunkString = locationToChunkString(from); + if (SlimefunPlugin.getUtilities().tickingChunks.containsKey(chunkString)) { Set locations = SlimefunPlugin.getUtilities().tickingChunks.get(chunkString); locations.remove(from); + if (locations.isEmpty()) { SlimefunPlugin.getUtilities().tickingChunks.remove(chunkString); SlimefunPlugin.getUtilities().loadedTickers.remove(chunkString); @@ -541,8 +556,10 @@ public class BlockStorage { if (updateTicker) { SlimefunItem item = SlimefunItem.getByID(key); + if (item != null && item.isTicking()) { String chunkString = locationToChunkString(l); + if (value != null) { Set locations = SlimefunPlugin.getUtilities().tickingChunks.get(chunkString); if (locations == null) locations = new HashSet<>(); @@ -615,9 +632,11 @@ public class BlockStorage { @Deprecated public static Set getTickingBlocks(String chunk) { Set ret = new HashSet<>(); - for (Location l: getTickingLocations(chunk)) { + + for (Location l : getTickingLocations(chunk)) { ret.add(l.getBlock()); } + return ret; } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/GuideHandler.java b/src/main/java/me/mrCookieSlime/Slimefun/api/GuideHandler.java index 0ca3fc145..6f9750946 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/GuideHandler.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/GuideHandler.java @@ -7,6 +7,7 @@ import org.bukkit.entity.Player; import me.mrCookieSlime.CSCoreLibPlugin.PlayerRunnable; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; +@Deprecated public interface GuideHandler { public abstract void addEntry(List texts, List tooltips);