From bef0cfb41333854862c92d1c134785570596d486 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 10 Mar 2021 00:24:05 +0100 Subject: [PATCH] Fixed #2861 --- CHANGELOG.md | 1 + .../slimefun4/implementation/items/geo/GEOMiner.java | 6 ++++-- .../Slimefun/Objects/SlimefunItem/SlimefunItem.java | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbd90b7ce..a1ff7f54c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ * Fixed #2852 * Fixed some issues with the Book Binder * Fixed #2805 +* Fixed #2861 ## Release Candidate 20 (30 Jan 2021) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.java index c39f0a355..a6af65c34 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/geo/GEOMiner.java @@ -46,8 +46,10 @@ public class GEOMiner extends AContainer implements RecipeDisplayItem, HologramO public GEOMiner(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); - addItemHandler(onPlace()); - addItemHandler(onBreak()); + addItemHandler(onPlace(), onBreak()); + + // Unregister the Block handler from AContainer (Fixes #2861) + registerBlockHandler(getId(), null); } @Nonnull diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index 02c46fa50..86e5924bc 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -936,6 +936,7 @@ public class SlimefunItem implements Placeable { * * @return Whether or not an {@link ItemHandler} was found. */ + @ParametersAreNonnullByDefault public boolean callItemHandler(Class c, Consumer callable) { Optional handler = itemhandlers.get(c); @@ -1185,7 +1186,8 @@ public class SlimefunItem implements Placeable { return null; } - public static Set getPublicItemHandlers(Class identifier) { + @Nonnull + public static Set getPublicItemHandlers(@Nonnull Class identifier) { return SlimefunPlugin.getRegistry().getPublicItemHandlers().computeIfAbsent(identifier, c -> new HashSet<>()); } @@ -1200,7 +1202,7 @@ public class SlimefunItem implements Placeable { * The handler */ @Deprecated - public static void registerBlockHandler(String id, me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler handler) { + public static void registerBlockHandler(@Nonnull String id, @Nullable me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler handler) { SlimefunPlugin.getRegistry().getBlockHandlers().put(id, handler); }