From 5fa4e8b083823ed492bcfbf81c9ef243c27d5f27 Mon Sep 17 00:00:00 2001 From: Poma123 Date: Tue, 21 Jul 2020 13:51:08 +0200 Subject: [PATCH 1/7] Added BONE_BLOCK to GrindStone --- .../slimefun4/implementation/items/multiblocks/GrindStone.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java index 80d475ae9..884c4a1ca 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java @@ -26,7 +26,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class GrindStone extends MultiBlockMachine { public GrindStone(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, new ItemStack[] { new ItemStack(Material.BLAZE_ROD), new ItemStack(Material.BLAZE_POWDER, 4), new ItemStack(Material.BONE), new ItemStack(Material.BONE_MEAL, 4), new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.ENDER_EYE), new CustomItem(SlimefunItems.ENDER_LUMP_1, 2), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.GRAVEL), new ItemStack(Material.ANDESITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIORITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.GRANITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIRT), SlimefunItems.STONE_CHUNK, new ItemStack(Material.SANDSTONE), new ItemStack(Material.SAND, 4), new ItemStack(Material.RED_SANDSTONE), new ItemStack(Material.RED_SAND, 4), new ItemStack(Material.PRISMARINE_BRICKS), new ItemStack(Material.PRISMARINE, 2), new ItemStack(Material.PRISMARINE), new ItemStack(Material.PRISMARINE_SHARD, 4) }, BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, new ItemStack[] { new ItemStack(Material.BLAZE_ROD), new ItemStack(Material.BLAZE_POWDER, 4), new ItemStack(Material.BONE), new ItemStack(Material.BONE_MEAL, 4), new ItemStack(Material.BONE_BLOCK), new ItemStack(Material.BONE_MEAL, 9), new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.ENDER_EYE), new CustomItem(SlimefunItems.ENDER_LUMP_1, 2), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.GRAVEL), new ItemStack(Material.ANDESITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIORITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.GRANITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIRT), SlimefunItems.STONE_CHUNK, new ItemStack(Material.SANDSTONE), new ItemStack(Material.SAND, 4), new ItemStack(Material.RED_SANDSTONE), new ItemStack(Material.RED_SAND, 4), new ItemStack(Material.PRISMARINE_BRICKS), new ItemStack(Material.PRISMARINE, 2), new ItemStack(Material.PRISMARINE), new ItemStack(Material.PRISMARINE_SHARD, 4) }, BlockFace.SELF); } @Override From 86c253c929829b96249a6cdcec1acbef8cba71a5 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 22 Jul 2020 15:32:26 +0200 Subject: [PATCH 2/7] [CI skip] Updated change log --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d5ac5d68d..d29b03420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,9 @@ ## Release Candidate 15 (TBD) +#### Additions +* Added "Bone Block -> Bone meal" recipe to the Grind Stone + #### Changes * Refactored and reworked the Generator API * Small performance improvements to Energy networks From d2754f06fc48da139c4cf585f2692e54dcd28879 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 22 Jul 2020 18:11:43 +0200 Subject: [PATCH 3/7] [CI skip] A bit refactoring --- .../core/multiblocks/MultiBlockMachine.java | 10 ++++ .../items/multiblocks/AbstractSmeltery.java | 4 +- .../items/multiblocks/ArmorForge.java | 2 +- .../multiblocks/AutomatedPanningMachine.java | 2 +- .../items/multiblocks/BackpackCrafter.java | 4 +- .../items/multiblocks/Compressor.java | 11 ++++- .../multiblocks/EnhancedCraftingTable.java | 2 +- .../items/multiblocks/GrindStone.java | 47 ++++++++++++++++++- .../items/multiblocks/Juicer.java | 2 +- .../items/multiblocks/MagicWorkbench.java | 2 +- .../items/multiblocks/MakeshiftSmeltery.java | 2 +- .../items/multiblocks/OreCrusher.java | 17 ++++++- .../items/multiblocks/OreWasher.java | 2 +- .../items/multiblocks/PressureChamber.java | 2 +- .../items/multiblocks/Smeltery.java | 8 +++- .../items/multiblocks/TableSaw.java | 2 +- .../multiblocks/miner/IndustrialMiner.java | 2 +- 17 files changed, 103 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java index 369e8e472..78ec599a1 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java @@ -54,6 +54,16 @@ public abstract class MultiBlockMachine extends SlimefunItem implements NotPlace this.displayRecipes = new ArrayList<>(); this.displayRecipes.addAll(Arrays.asList(machineRecipes)); this.multiblock = new MultiBlock(this, convertItemStacksToMaterial(recipe), trigger); + + registerDefaultRecipes(displayRecipes); + } + + public MultiBlockMachine(Category category, SlimefunItemStack item, ItemStack[] recipe, BlockFace trigger) { + this(category, item, recipe, new ItemStack[0], trigger); + } + + protected void registerDefaultRecipes(List recipes) { + // Override this method to register some default recipes } public List getRecipes() { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AbstractSmeltery.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AbstractSmeltery.java index 7dc424c89..a0b97afd4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AbstractSmeltery.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AbstractSmeltery.java @@ -30,8 +30,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; */ abstract class AbstractSmeltery extends MultiBlockMachine { - public AbstractSmeltery(Category category, SlimefunItemStack item, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { - super(category, item, recipe, machineRecipes, trigger); + public AbstractSmeltery(Category category, SlimefunItemStack item, ItemStack[] recipe, BlockFace trigger) { + super(category, item, recipe, trigger); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.java index 6539b17c3..cd97b214f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/ArmorForge.java @@ -26,7 +26,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class ArmorForge extends MultiBlockMachine { public ArmorForge(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.ANVIL), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.ANVIL), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, BlockFace.SELF); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.java index a81a5706b..fb7f4ceff 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/AutomatedPanningMachine.java @@ -29,7 +29,7 @@ public class AutomatedPanningMachine extends MultiBlockMachine { private final GoldPan netherGoldPan = (GoldPan) SlimefunItems.NETHER_GOLD_PAN.getItem(); public AutomatedPanningMachine(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_TRAPDOOR), null, null, new ItemStack(Material.CAULDRON), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_TRAPDOOR), null, null, new ItemStack(Material.CAULDRON), null }, BlockFace.SELF); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java index 51375c919..46a8c72b5 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java @@ -26,8 +26,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; abstract class BackpackCrafter extends MultiBlockMachine { - public BackpackCrafter(Category category, SlimefunItemStack item, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { - super(category, item, recipe, machineRecipes, trigger); + public BackpackCrafter(Category category, SlimefunItemStack item, ItemStack[] recipe, BlockFace trigger) { + super(category, item, recipe, trigger); } protected Inventory createVirtualInventory(Inventory inv) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.java index c9aaecdac..854e047e0 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Compressor.java @@ -27,7 +27,16 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Compressor extends MultiBlockMachine { public Compressor(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.PISTON), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.PISTON) }, new ItemStack[] { new CustomItem(SlimefunItems.STONE_CHUNK, 4), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.FLINT, 8), new ItemStack(Material.COBBLESTONE) }, BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.PISTON), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.PISTON) }, BlockFace.SELF); + } + + @Override + protected void registerDefaultRecipes(List recipes) { + recipes.add(new SlimefunItemStack(SlimefunItems.STONE_CHUNK, 4)); + recipes.add(new ItemStack(Material.COBBLESTONE)); + + recipes.add(new ItemStack(Material.FLINT, 8)); + recipes.add(new ItemStack(Material.COBBLESTONE)); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java index 11513919c..97b72b81a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java @@ -26,7 +26,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class EnhancedCraftingTable extends BackpackCrafter { public EnhancedCraftingTable(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.CRAFTING_TABLE), null, null, new ItemStack(Material.DISPENSER), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.CRAFTING_TABLE), null, null, new ItemStack(Material.DISPENSER), null }, BlockFace.SELF); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java index 884c4a1ca..cff9d414e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/GrindStone.java @@ -26,7 +26,52 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class GrindStone extends MultiBlockMachine { public GrindStone(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, new ItemStack[] { new ItemStack(Material.BLAZE_ROD), new ItemStack(Material.BLAZE_POWDER, 4), new ItemStack(Material.BONE), new ItemStack(Material.BONE_MEAL, 4), new ItemStack(Material.BONE_BLOCK), new ItemStack(Material.BONE_MEAL, 9), new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.ENDER_EYE), new CustomItem(SlimefunItems.ENDER_LUMP_1, 2), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.GRAVEL), new ItemStack(Material.ANDESITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIORITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.GRANITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIRT), SlimefunItems.STONE_CHUNK, new ItemStack(Material.SANDSTONE), new ItemStack(Material.SAND, 4), new ItemStack(Material.RED_SANDSTONE), new ItemStack(Material.RED_SAND, 4), new ItemStack(Material.PRISMARINE_BRICKS), new ItemStack(Material.PRISMARINE, 2), new ItemStack(Material.PRISMARINE), new ItemStack(Material.PRISMARINE_SHARD, 4) }, BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.OAK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, BlockFace.SELF); + } + + @Override + protected void registerDefaultRecipes(List recipes) { + recipes.add(new ItemStack(Material.BLAZE_ROD)); + recipes.add(new ItemStack(Material.BLAZE_POWDER, 4)); + + recipes.add(new ItemStack(Material.BONE)); + recipes.add(new ItemStack(Material.BONE_MEAL, 4)); + + recipes.add(new ItemStack(Material.BONE_BLOCK)); + recipes.add(new ItemStack(Material.BONE_MEAL, 9)); + + recipes.add(new ItemStack(Material.GRAVEL)); + recipes.add(new ItemStack(Material.FLINT)); + + recipes.add(new ItemStack(Material.ENDER_EYE)); + recipes.add(new SlimefunItemStack(SlimefunItems.ENDER_LUMP_1, 2)); + + recipes.add(new ItemStack(Material.COBBLESTONE)); + recipes.add(new ItemStack(Material.GRAVEL)); + + recipes.add(new ItemStack(Material.ANDESITE)); + recipes.add(new ItemStack(Material.GRAVEL)); + + recipes.add(new ItemStack(Material.DIORITE)); + recipes.add(new ItemStack(Material.GRAVEL)); + + recipes.add(new ItemStack(Material.GRANITE)); + recipes.add(new ItemStack(Material.GRAVEL)); + + recipes.add(new ItemStack(Material.DIRT)); + recipes.add(SlimefunItems.STONE_CHUNK); + + recipes.add(new ItemStack(Material.SANDSTONE)); + recipes.add(new ItemStack(Material.SAND, 4)); + + recipes.add(new ItemStack(Material.RED_SANDSTONE)); + recipes.add(new ItemStack(Material.RED_SAND, 4)); + + recipes.add(new ItemStack(Material.PRISMARINE_BRICKS)); + recipes.add(new ItemStack(Material.PRISMARINE, 2)); + + recipes.add(new ItemStack(Material.PRISMARINE)); + recipes.add(new ItemStack(Material.PRISMARINE_SHARD, 4)); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.java index 4bb603c36..abd6e6f4d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Juicer.java @@ -26,7 +26,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Juicer extends MultiBlockMachine { public Juicer(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, new ItemStack(Material.GLASS), null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, new ItemStack(Material.GLASS), null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, null, new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), null }, BlockFace.SELF); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.java index 4beeeb59b..1b0de4047 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MagicWorkbench.java @@ -27,7 +27,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class MagicWorkbench extends BackpackCrafter { public MagicWorkbench(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, null, null, new ItemStack(Material.BOOKSHELF), new ItemStack(Material.CRAFTING_TABLE), new ItemStack(Material.DISPENSER) }, new ItemStack[0], BlockFace.UP); + super(category, item, new ItemStack[] { null, null, null, null, null, null, new ItemStack(Material.BOOKSHELF), new ItemStack(Material.CRAFTING_TABLE), new ItemStack(Material.DISPENSER) }, BlockFace.UP); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MakeshiftSmeltery.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MakeshiftSmeltery.java index 513b8b3e3..83b044271 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MakeshiftSmeltery.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/MakeshiftSmeltery.java @@ -18,7 +18,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class MakeshiftSmeltery extends AbstractSmeltery { public MakeshiftSmeltery(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, new ItemStack(Material.OAK_FENCE), null, new ItemStack(Material.BRICKS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.BRICKS), null, new ItemStack(Material.FLINT_AND_STEEL), null }, new ItemStack[0], BlockFace.DOWN); + super(category, item, new ItemStack[] { null, new ItemStack(Material.OAK_FENCE), null, new ItemStack(Material.BRICKS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.BRICKS), null, new ItemStack(Material.FLINT_AND_STEEL), null }, BlockFace.DOWN); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java index c825d9eda..d5b52795a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java @@ -32,11 +32,26 @@ public class OreCrusher extends MultiBlockMachine { private final DoubleOreSetting doubleOres = new DoubleOreSetting(); public OreCrusher(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.IRON_BARS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.IRON_BARS) }, new ItemStack[] { new ItemStack(Material.COBBLESTONE, 8), new ItemStack(Material.SAND, 1), SlimefunItems.GOLD_4K, SlimefunItems.GOLD_DUST, new ItemStack(Material.GRAVEL), new ItemStack(Material.SAND), new ItemStack(Material.MAGMA_BLOCK, 4), SlimefunItems.SULFATE }, BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.IRON_BARS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.IRON_BARS) }, BlockFace.SELF); addItemSetting(doubleOres); } + @Override + protected void registerDefaultRecipes(List recipes) { + recipes.add(new ItemStack(Material.COBBLESTONE, 8)); + recipes.add(new ItemStack(Material.SAND, 1)); + + recipes.add(SlimefunItems.GOLD_4K); + recipes.add(SlimefunItems.GOLD_DUST); + + recipes.add(new ItemStack(Material.GRAVEL)); + recipes.add(new ItemStack(Material.SAND)); + + recipes.add(new ItemStack(Material.MAGMA_BLOCK, 4)); + recipes.add(SlimefunItems.SULFATE); + } + public boolean isOreDoublingEnabled() { return doubleOres.getValue(); } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java index 0f1860988..73e2a4fe3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreWasher.java @@ -29,7 +29,7 @@ public class OreWasher extends MultiBlockMachine { private final ItemStack[] dusts; public OreWasher(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, new ItemStack(Material.DISPENSER), null, null, new ItemStack(Material.OAK_FENCE), null, null, new ItemStack(Material.CAULDRON), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, new ItemStack(Material.DISPENSER), null, null, new ItemStack(Material.OAK_FENCE), null, null, new ItemStack(Material.CAULDRON), null }, BlockFace.SELF); legacyMode = SlimefunPlugin.getCfg().getBoolean("options.legacy-ore-washer"); dusts = new ItemStack[] { SlimefunItems.IRON_DUST, SlimefunItems.GOLD_DUST, SlimefunItems.COPPER_DUST, SlimefunItems.TIN_DUST, SlimefunItems.ZINC_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.MAGNESIUM_DUST, SlimefunItems.LEAD_DUST, SlimefunItems.SILVER_DUST }; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.java index 2a6937b4a..b10c5fcbc 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/PressureChamber.java @@ -29,7 +29,7 @@ public class PressureChamber extends MultiBlockMachine { public PressureChamber(Category category, SlimefunItemStack item) { super(category, item, new ItemStack[] { SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14) ? new ItemStack(Material.SMOOTH_STONE_SLAB) : new ItemStack(Material.STONE_SLAB), new CustomItem(Material.DISPENSER, "Dispenser (Facing down)"), SlimefunPlugin.getMinecraftVersion() - .isAtLeast(MinecraftVersion.MINECRAFT_1_14) ? new ItemStack(Material.SMOOTH_STONE_SLAB) : new ItemStack(Material.STONE_SLAB), new ItemStack(Material.PISTON), new ItemStack(Material.GLASS), new ItemStack(Material.PISTON), new ItemStack(Material.PISTON), new ItemStack(Material.CAULDRON), new ItemStack(Material.PISTON) }, new ItemStack[0], BlockFace.UP); + .isAtLeast(MinecraftVersion.MINECRAFT_1_14) ? new ItemStack(Material.SMOOTH_STONE_SLAB) : new ItemStack(Material.STONE_SLAB), new ItemStack(Material.PISTON), new ItemStack(Material.GLASS), new ItemStack(Material.PISTON), new ItemStack(Material.PISTON), new ItemStack(Material.CAULDRON), new ItemStack(Material.PISTON) }, BlockFace.UP); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.java index 565d0369f..5adce87a3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/Smeltery.java @@ -34,11 +34,17 @@ public class Smeltery extends AbstractSmeltery { private final ItemSetting fireBreakingChance = new ItemSetting<>("fire-breaking-chance", 34); public Smeltery(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.NETHER_BRICKS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.NETHER_BRICKS), null, new ItemStack(Material.FLINT_AND_STEEL), null }, new ItemStack[] { SlimefunItems.IRON_DUST, new ItemStack(Material.IRON_INGOT) }, BlockFace.DOWN); + super(category, item, new ItemStack[] { null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.NETHER_BRICKS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.NETHER_BRICKS), null, new ItemStack(Material.FLINT_AND_STEEL), null }, BlockFace.DOWN); addItemSetting(fireBreakingChance); } + @Override + protected void registerDefaultRecipes(List recipes) { + recipes.add(SlimefunItems.IRON_DUST); + recipes.add(new ItemStack(Material.IRON_INGOT)); + } + @Override public List getDisplayRecipes() { List items = new ArrayList<>(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.java index 05916a9b5..22caf32c7 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/TableSaw.java @@ -36,7 +36,7 @@ public class TableSaw extends MultiBlockMachine { private final List displayedRecipes = new ArrayList<>(); public TableSaw(Category category, SlimefunItemStack item) { - super(category, item, new ItemStack[] { null, null, null, new ItemStack(Material.SMOOTH_STONE_SLAB), new ItemStack(Material.STONECUTTER), new ItemStack(Material.SMOOTH_STONE_SLAB), null, new ItemStack(Material.IRON_BLOCK), null }, new ItemStack[0], BlockFace.SELF); + super(category, item, new ItemStack[] { null, null, null, new ItemStack(Material.SMOOTH_STONE_SLAB), new ItemStack(Material.STONECUTTER), new ItemStack(Material.SMOOTH_STONE_SLAB), null, new ItemStack(Material.IRON_BLOCK), null }, BlockFace.SELF); for (Material log : Tag.LOGS.getValues()) { Optional planks = MaterialConverter.getPlanksFromLog(log); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/IndustrialMiner.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/IndustrialMiner.java index 7caf4b073..deb98ba23 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/IndustrialMiner.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/IndustrialMiner.java @@ -49,7 +49,7 @@ public class IndustrialMiner extends MultiBlockMachine { private final boolean silkTouch; public IndustrialMiner(Category category, SlimefunItemStack item, Material baseMaterial, boolean silkTouch, int range) { - super(category, item, new ItemStack[] { null, null, null, new CustomItem(Material.PISTON, "Piston (facing up)"), new ItemStack(Material.CHEST), new CustomItem(Material.PISTON, "Piston (facing up)"), new ItemStack(baseMaterial), new ItemStack(SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14) ? Material.BLAST_FURNACE : Material.FURNACE), new ItemStack(baseMaterial) }, new ItemStack[0], BlockFace.UP); + super(category, item, new ItemStack[] { null, null, null, new CustomItem(Material.PISTON, "Piston (facing up)"), new ItemStack(Material.CHEST), new CustomItem(Material.PISTON, "Piston (facing up)"), new ItemStack(baseMaterial), new ItemStack(SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14) ? Material.BLAST_FURNACE : Material.FURNACE), new ItemStack(baseMaterial) }, BlockFace.UP); this.range = range; this.silkTouch = silkTouch; From 5e3eccfaa4dd3eb02dbe47d62e65e799e9dcf989 Mon Sep 17 00:00:00 2001 From: Daniel Walsh Date: Wed, 22 Jul 2020 18:06:42 +0100 Subject: [PATCH 4/7] Fix some regex, finals and replace isPresent with ifPresent --- .../slimefun4/api/events/ResearchUnlockEvent.java | 4 ++-- .../github/thebusybiscuit/slimefun4/api/gps/Waypoint.java | 4 ++-- .../thebusybiscuit/slimefun4/api/network/Network.java | 2 +- .../slimefun4/api/player/PlayerProfile.java | 4 +--- .../slimefun4/core/attributes/RechargeableHelper.java | 2 +- .../slimefun4/core/networks/cargo/CargoNetworkTask.java | 4 +--- .../core/networks/cargo/ChestTerminalNetwork.java | 4 +--- .../slimefun4/core/researching/Research.java | 2 +- .../slimefun4/core/services/github/GitHubService.java | 4 +--- .../slimefun4/core/services/github/GitHubTask.java | 4 +--- .../slimefun4/implementation/guide/RecipeChoiceTask.java | 2 +- .../implementation/items/androids/WoodcutterAndroid.java | 4 +--- .../implementation/items/blocks/BlockPlacer.java | 2 +- .../implementation/items/cargo/CargoManager.java | 2 +- .../slimefun4/implementation/items/food/MeatJerky.java | 2 +- .../implementation/items/geo/PortableGEOScanner.java | 4 +--- .../implementation/items/multiblocks/BackpackCrafter.java | 4 +--- .../implementation/listeners/PlayerProfileListener.java | 8 ++------ .../thebusybiscuit/slimefun4/utils/NumberUtils.java | 2 +- .../thebusybiscuit/slimefun4/utils/PatternUtils.java | 3 +-- .../Objects/SlimefunItem/abstractItems/MachineRecipe.java | 4 ++-- .../Slimefun/api/inventory/BlockMenuPreset.java | 2 +- .../Slimefun/api/inventory/DirtyChestMenu.java | 4 ++-- .../testing/tests/listeners/TestBackpackListener.java | 2 +- 24 files changed, 29 insertions(+), 50 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/ResearchUnlockEvent.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/ResearchUnlockEvent.java index eae5367c4..cd517ea68 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/ResearchUnlockEvent.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/ResearchUnlockEvent.java @@ -19,8 +19,8 @@ public class ResearchUnlockEvent extends Event implements Cancellable { private static final HandlerList handlers = new HandlerList(); - private Player player; - private Research research; + private final Player player; + private final Research research; private boolean cancelled; public HandlerList getHandlers() { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/Waypoint.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/Waypoint.java index d27a53d18..58ed699c6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/Waypoint.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/Waypoint.java @@ -28,8 +28,8 @@ public class Waypoint { private final PlayerProfile profile; private final String id; - private String name; - private Location location; + private final String name; + private final Location location; public Waypoint(PlayerProfile profile, String id, Location l, String name) { Validate.notNull(profile, "Profile must never be null!"); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/network/Network.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/network/Network.java index 495211b1d..0158dbbd4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/network/Network.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/network/Network.java @@ -29,7 +29,7 @@ public abstract class Network { private final NetworkManager manager; protected Location regulator; - private Queue nodeQueue = new ArrayDeque<>(); + private final Queue nodeQueue = new ArrayDeque<>(); protected final Set connectedLocations = new HashSet<>(); protected final Set regulatorNodes = new HashSet<>(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerProfile.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerProfile.java index 45e7062df..efeec7e47 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerProfile.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerProfile.java @@ -441,9 +441,7 @@ public final class PlayerProfile { fromUUID(UUID.fromString(uuid), profile -> { Optional backpack = profile.getBackpack(number); - if (backpack.isPresent()) { - callback.accept(backpack.get()); - } + backpack.ifPresent(callback); }); } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RechargeableHelper.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RechargeableHelper.java index ec46fc522..97aa0dc8a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RechargeableHelper.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RechargeableHelper.java @@ -29,7 +29,7 @@ final class RechargeableHelper { private static final NamespacedKey CHARGE_KEY = new NamespacedKey(SlimefunPlugin.instance(), "item_charge"); private static final String LORE_PREFIX = ChatColors.color("&8\u21E8 &e\u26A1 &7"); - private static final Pattern REGEX = Pattern.compile(ChatColors.color("(&c&o)?" + LORE_PREFIX) + "[0-9\\.]+ \\/ [0-9\\.]+ J"); + private static final Pattern REGEX = Pattern.compile(ChatColors.color("(&c&o)?" + LORE_PREFIX) + "[0-9.]+ / [0-9.]+ J"); private RechargeableHelper() {} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/CargoNetworkTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/CargoNetworkTask.java index d43d985b9..eec1652df 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/CargoNetworkTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/CargoNetworkTask.java @@ -68,9 +68,7 @@ class CargoNetworkTask implements Runnable { Location input = entry.getKey(); Optional attachedBlock = network.getAttachedBlock(input); - if (attachedBlock.isPresent()) { - routeItems(input, attachedBlock.get(), entry.getValue(), outputs); - } + attachedBlock.ifPresent(block -> routeItems(input, block, entry.getValue(), outputs)); // This will prevent this timings from showing up for the Cargo Manager timestamp += SlimefunPlugin.getProfiler().closeEntry(entry.getKey(), SlimefunItems.CARGO_INPUT_NODE.getItem(), nodeTimestamp); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/ChestTerminalNetwork.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/ChestTerminalNetwork.java index d9f7150f9..d7d1a0cfe 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/ChestTerminalNetwork.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/ChestTerminalNetwork.java @@ -226,9 +226,7 @@ abstract class ChestTerminalNetwork extends Network { if (menu.getItemInSlot(17) != null) { Optional target = getAttachedBlock(bus); - if (target.isPresent()) { - menu.replaceExistingItem(17, CargoUtils.insert(inventories, bus.getBlock(), target.get(), menu.getItemInSlot(17))); - } + target.ifPresent(block -> menu.replaceExistingItem(17, CargoUtils.insert(inventories, bus.getBlock(), block, menu.getItemInSlot(17)))); } if (menu.getItemInSlot(17) == null) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/researching/Research.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/researching/Research.java index c3ce60dfc..410ed6b0e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/researching/Research.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/researching/Research.java @@ -41,7 +41,7 @@ public class Research implements Keyed { private final NamespacedKey key; private final int id; - private String name; + private final String name; private boolean enabled = true; private int cost; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubService.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubService.java index 1942eeb52..0364140d0 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubService.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubService.java @@ -206,9 +206,7 @@ public class GitHubService { for (Contributor contributor : contributors.values()) { Optional uuid = contributor.getUniqueId(); - if (uuid.isPresent()) { - uuidCache.setValue(contributor.getName(), uuid.get()); - } + uuid.ifPresent(value -> uuidCache.setValue(contributor.getName(), value)); if (contributor.hasTexture()) { String texture = contributor.getTexture(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubTask.java index 2f8ebe478..de91ac576 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/GitHubTask.java @@ -116,9 +116,7 @@ class GitHubTask implements Runnable { if (!uuid.isPresent()) { uuid = MinecraftAccount.getUUID(contributor.getMinecraftName()); - if (uuid.isPresent()) { - contributor.setUniqueId(uuid.get()); - } + uuid.ifPresent(contributor::setUniqueId); } if (uuid.isPresent()) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/RecipeChoiceTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/RecipeChoiceTask.java index 642ff0b58..c2facc104 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/RecipeChoiceTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/guide/RecipeChoiceTask.java @@ -31,7 +31,7 @@ class RecipeChoiceTask implements Runnable { private Inventory inventory; private int id; - private Map> iterators = new HashMap<>(); + private final Map> iterators = new HashMap<>(); /** * This will start this task for the given {@link Inventory}. diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/WoodcutterAndroid.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/WoodcutterAndroid.java index 60c85e59e..f0900fa58 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/WoodcutterAndroid.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/WoodcutterAndroid.java @@ -69,9 +69,7 @@ public abstract class WoodcutterAndroid extends ProgrammableAndroid { if (log.getY() == android.getRelative(face).getY()) { Optional sapling = MaterialConverter.getSaplingFromLog(log.getType()); - if (sapling.isPresent()) { - log.setType(sapling.get()); - } + sapling.ifPresent(log::setType); } else { log.setType(Material.AIR); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/BlockPlacer.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/BlockPlacer.java index 7a0c7ee02..096941e03 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/BlockPlacer.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/BlockPlacer.java @@ -31,7 +31,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class BlockPlacer extends SimpleSlimefunItem { - private ItemSetting> blacklist = new ItemSetting<>("unplaceable-blocks", MaterialCollections.getAllUnbreakableBlocks().stream().map(Material::name).collect(Collectors.toList())); + private final ItemSetting> blacklist = new ItemSetting<>("unplaceable-blocks", MaterialCollections.getAllUnbreakableBlocks().stream().map(Material::name).collect(Collectors.toList())); public BlockPlacer(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/CargoManager.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/CargoManager.java index 29ff47e5b..be3bb5d5d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/CargoManager.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/CargoManager.java @@ -46,7 +46,7 @@ public class CargoManager extends SlimefunItem { }, new BlockUseHandler() { - private String visualizerKey = "visualizer"; + private final String visualizerKey = "visualizer"; @Override public void onRightClick(PlayerRightClickEvent e) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/MeatJerky.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/MeatJerky.java index 3ca675d84..a0e935e5d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/MeatJerky.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/MeatJerky.java @@ -20,7 +20,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; */ public class MeatJerky extends SimpleSlimefunItem { - private ItemSetting saturation = new ItemSetting<>("saturation-level", 6); + private final ItemSetting saturation = new ItemSetting<>("saturation-level", 6); public MeatJerky(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/PortableGEOScanner.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/PortableGEOScanner.java index 1c336c348..19975c36a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/PortableGEOScanner.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/PortableGEOScanner.java @@ -24,9 +24,7 @@ public class PortableGEOScanner extends SimpleSlimefunItem { Optional block = e.getClickedBlock(); e.cancel(); - if (block.isPresent()) { - SlimefunPlugin.getGPSNetwork().getResourceManager().scan(e.getPlayer(), block.get(), 0); - } + block.ifPresent(value -> SlimefunPlugin.getGPSNetwork().getResourceManager().scan(e.getPlayer(), value, 0)); }; } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java index 51375c919..e02c390f1 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/BackpackCrafter.java @@ -92,9 +92,7 @@ abstract class BackpackCrafter extends MultiBlockMachine { PlayerProfile.fromUUID(UUID.fromString(idSplit[0]), profile -> { Optional optional = profile.getBackpack(Integer.parseInt(idSplit[1])); - if (optional.isPresent()) { - optional.get().setSize(size); - } + optional.ifPresent(playerBackpack -> playerBackpack.setSize(size)); }); return Optional.of(id); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/PlayerProfileListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/PlayerProfileListener.java index f88b582c0..7911b117e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/PlayerProfileListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/PlayerProfileListener.java @@ -31,9 +31,7 @@ public class PlayerProfileListener implements Listener { Optional profile = PlayerProfile.find(e.getPlayer()); // if we still have a profile of this Player in memory, delete it - if (profile.isPresent()) { - profile.get().markForDeletion(); - } + profile.ifPresent(PlayerProfile::markForDeletion); } @EventHandler(ignoreCancelled = true) @@ -41,9 +39,7 @@ public class PlayerProfileListener implements Listener { Optional profile = PlayerProfile.find(e.getPlayer()); // if we still have a profile of this Player in memory, delete it - if (profile.isPresent()) { - profile.get().markForDeletion(); - } + profile.ifPresent(PlayerProfile::markForDeletion); } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java index dbf6a0c74..6bbb7837e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java @@ -74,7 +74,7 @@ public final class NumberUtils { } String number = roundDecimalNumber(nanoseconds / 1000000.0); - String[] parts = PatternUtils.NUMBER_SEPERATOR.split(number); + String[] parts = PatternUtils.NUMBER_SEPARATOR.split(number); if (parts.length == 1) { return parts[0] + "ms"; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/PatternUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/PatternUtils.java index cf61255d9..5922adeee 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/PatternUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/PatternUtils.java @@ -26,6 +26,5 @@ public final class PatternUtils { public static final Pattern ALPHANUMERIC = Pattern.compile("[A-Fa-f0-9]+"); public static final Pattern NUMERIC = Pattern.compile("[0-9]+"); - public static final Pattern NUMBER_SEPERATOR = Pattern.compile(",|\\."); - + public static final Pattern NUMBER_SEPARATOR = Pattern.compile("[,.]"); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.java index c573ffa66..94678a387 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineRecipe.java @@ -5,8 +5,8 @@ import org.bukkit.inventory.ItemStack; public class MachineRecipe { private int ticks; - private ItemStack[] input; - private ItemStack[] output; + private final ItemStack[] input; + private final ItemStack[] output; public MachineRecipe(int seconds, ItemStack[] input, ItemStack[] output) { this.ticks = seconds * 2; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java index ce50bdb17..4cf2a02cf 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java @@ -25,7 +25,7 @@ public abstract class BlockMenuPreset extends ChestMenu { // -1 means "automatically update according to the contents" private int size = -1; - private boolean universal; + private final boolean universal; private boolean locked; private ItemManipulationEvent event; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java index f89bef612..f00223c45 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java @@ -143,8 +143,8 @@ public class DirtyChestMenu extends ChestMenu { public static class SaveHandler implements MenuOpeningHandler { - private DirtyChestMenu menu; - private MenuOpeningHandler handler; + private final DirtyChestMenu menu; + private final MenuOpeningHandler handler; public SaveHandler(DirtyChestMenu menu, MenuOpeningHandler handler) { this.menu = menu; diff --git a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/listeners/TestBackpackListener.java b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/listeners/TestBackpackListener.java index 47f7d276a..a7c6dd4f1 100644 --- a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/listeners/TestBackpackListener.java +++ b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/listeners/TestBackpackListener.java @@ -41,7 +41,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class TestBackpackListener { - private static int BACKPACK_SIZE = 27; + private static final int BACKPACK_SIZE = 27; private static ServerMock server; private static SlimefunPlugin plugin; private static BackpackListener listener; From 8c867c09b6f63517b733b4ba9b833c73c7c3ff8c Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 22 Jul 2020 21:17:25 +0200 Subject: [PATCH 5/7] [CI skip] Some documentation --- .../slimefun4/core/SlimefunRegistry.java | 12 ++++++++---- .../implementation/listeners/MobDropListener.java | 13 ++++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java index 35bee27cc..710cd83e4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/SlimefunRegistry.java @@ -29,6 +29,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.guide.BookSlimefunGuide; import io.github.thebusybiscuit.slimefun4.implementation.guide.CheatSheetSlimefunGuide; import io.github.thebusybiscuit.slimefun4.implementation.guide.ChestSlimefunGuide; +import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutomatedCraftingChamber; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; @@ -196,10 +197,6 @@ public class SlimefunRegistry { return mobDrops; } - public Set getMobDrops(EntityType entity) { - return mobDrops.get(entity); - } - public Set getRadioactiveItems() { return radioactive; } @@ -256,6 +253,13 @@ public class SlimefunRegistry { return geoResources; } + /** + * This method returns a list of recipes for the {@link AutomatedCraftingChamber} + * + * @deprecated This just a really bad way to do this. Someone needs to rewrite this. + * + * @return A list of recipes for the {@link AutomatedCraftingChamber} + */ @Deprecated public Map getAutomatedCraftingChamberRecipes() { return automatedCraftingChamberRecipes; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MobDropListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MobDropListener.java index 204db964a..ad90481bd 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MobDropListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MobDropListener.java @@ -14,9 +14,20 @@ import io.github.thebusybiscuit.slimefun4.core.attributes.RandomMobDrop; import io.github.thebusybiscuit.slimefun4.core.handlers.EntityKillHandler; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.items.misc.BasicCircuitBoard; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.Slimefun; +/** + * This {@link Listener} is responsible for handling any custom mob drops. + * These drops can also be randomized using the interface {@link RandomMobDrop}, otherwise + * they will be handled via {@link RecipeType}. + * + * @author TheBusyBiscuit + * + * @see RandomMobDrop + * + */ public class MobDropListener implements Listener { public MobDropListener(SlimefunPlugin plugin) { @@ -29,7 +40,7 @@ public class MobDropListener implements Listener { Player p = e.getEntity().getKiller(); ItemStack item = p.getInventory().getItemInMainHand(); - Set customDrops = SlimefunPlugin.getRegistry().getMobDrops(e.getEntityType()); + Set customDrops = SlimefunPlugin.getRegistry().getMobDrops().get(e.getEntityType()); if (customDrops != null && !customDrops.isEmpty()) { for (ItemStack drop : customDrops) { From 916fb554d018911323634e3f9bdfb35b3458d6ac Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Thu, 23 Jul 2020 00:52:59 +0200 Subject: [PATCH 6/7] Fixes #2086 --- CHANGELOG.md | 1 + .../slimefun4/implementation/tasks/ArmorTask.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d29b03420..bac3a6a9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ #### Fixes * Fixed #2075 * Fixed #2093 +* Fixed #2086 ## Release Candidate 14 (12 Jul 2020) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java index a64607702..62fbf22f7 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/ArmorTask.java @@ -75,7 +75,9 @@ public class ArmorTask implements Runnable { if (armorpiece.hasDiverged(item)) { SlimefunItem sfItem = SlimefunItem.getByItem(item); - if (!(sfItem instanceof SlimefunArmorPiece) || !Slimefun.hasUnlocked(p, sfItem, true)) { + + if (!(sfItem instanceof SlimefunArmorPiece)) { + // If it isn't actually Armor, then we won't care about it. sfItem = null; } @@ -84,9 +86,13 @@ public class ArmorTask implements Runnable { if (item != null && armorpiece.getItem().isPresent()) { Slimefun.runSync(() -> { - for (PotionEffect effect : armorpiece.getItem().get().getPotionEffects()) { - p.removePotionEffect(effect.getType()); - p.addPotionEffect(effect); + SlimefunArmorPiece slimefunArmor = armorpiece.getItem().get(); + + if (Slimefun.hasUnlocked(p, slimefunArmor, true)) { + for (PotionEffect effect : slimefunArmor.getPotionEffects()) { + p.removePotionEffect(effect.getType()); + p.addPotionEffect(effect); + } } }); } From ee62a9b004bb26f96787cdd23d6c27b0580b34f2 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Thu, 23 Jul 2020 01:23:03 +0200 Subject: [PATCH 7/7] Optimized Enhanced Furnaces for Paper and fixes #1894 --- CHANGELOG.md | 4 ++ .../listeners/EnhancedFurnaceListener.java | 38 +++++++++++++------ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bac3a6a9e..383c72bcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,11 +31,15 @@ * Big performance improvements to Cargo networks when using ChestTerminal * Slight changes to /sf timings * Huge performance improvements when using Paper +* Optimized Cargo networks for Paper +* Optimized Multiblocks for Paper +* Optimized Enhanced Furnaces for Paper #### Fixes * Fixed #2075 * Fixed #2093 * Fixed #2086 +* Fixed #1894 ## Release Candidate 14 (12 Jul 2020) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java index 8cc56d8eb..fcfb83f4f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java @@ -2,17 +2,20 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners; import java.util.Optional; +import org.bukkit.Material; +import org.bukkit.block.BlockState; import org.bukkit.block.Furnace; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.FurnaceBurnEvent; import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.inventory.FurnaceInventory; import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.items.blocks.EnhancedFurnace; +import io.papermc.lib.PaperLib; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.BlockStorage; @@ -33,31 +36,44 @@ public class EnhancedFurnaceListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onFuelBurn(FurnaceBurnEvent e) { + if (e.getBlock().getType() != Material.FURNACE) { + // We don't care about Smokers, Blast Furnaces and all that fancy stuff + return; + } + SlimefunItem furnace = BlockStorage.check(e.getBlock()); if (furnace instanceof EnhancedFurnace && ((EnhancedFurnace) furnace).getFuelEfficiency() > 0) { int burnTime = e.getBurnTime(); int newBurnTime = ((EnhancedFurnace) furnace).getFuelEfficiency() * burnTime; - e.setBurnTime(Math.min(newBurnTime, Short.MAX_VALUE)); + + e.setBurnTime(Math.min(newBurnTime, Short.MAX_VALUE - 1)); } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onItemSmelt(FurnaceSmeltEvent e) { + if (e.getBlock().getType() != Material.FURNACE) { + // We don't care about Smokers, Blast Furnaces and all that fancy stuff + return; + } + SlimefunItem sfItem = BlockStorage.check(e.getBlock()); if (sfItem instanceof EnhancedFurnace) { - Furnace furnace = (Furnace) e.getBlock().getState(); - int amount = furnace.getInventory().getSmelting().getType().toString().endsWith("_ORE") ? ((EnhancedFurnace) sfItem).getOutput() : 1; - Optional result = Optional.ofNullable(furnace.getInventory().getResult()); + BlockState state = PaperLib.getBlockState(e.getBlock(), false).getState(); - if (!result.isPresent()) { - result = SlimefunPlugin.getMinecraftRecipeService().getFurnaceOutput(furnace.getInventory().getSmelting()); - } + if (state instanceof Furnace) { + FurnaceInventory inventory = ((Furnace) state).getInventory(); + int amount = inventory.getSmelting().getType().toString().endsWith("_ORE") ? ((EnhancedFurnace) sfItem).getOutput() : 1; + Optional result = SlimefunPlugin.getMinecraftRecipeService().getFurnaceOutput(inventory.getSmelting()); - if (result.isPresent()) { - ItemStack item = result.get(); - furnace.getInventory().setResult(new CustomItem(item, Math.min(item.getAmount() + amount, item.getMaxStackSize()))); + if (result.isPresent()) { + ItemStack item = result.get(); + int previous = inventory.getResult() != null ? inventory.getResult().getAmount() : 0; + amount = Math.min(item.getMaxStackSize() - previous, amount); + e.setResult(new ItemStack(item.getType(), amount)); + } } } }