From 0580a873ec204f3372dca87e233c29c6731fcf34 Mon Sep 17 00:00:00 2001 From: Silent Date: Sat, 10 Oct 2020 18:50:41 +0200 Subject: [PATCH 1/5] Stop unwanted actions with StrangeNetherGoo and HeavyCream --- .../implementation/items/food/HeavyCream.java | 28 +++++++++++++++++++ .../items/misc/StrangeNetherGoo.java | 7 +++++ .../setup/SlimefunItemSetup.java | 3 +- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java new file mode 100644 index 000000000..2a10fb906 --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java @@ -0,0 +1,28 @@ +package io.github.thebusybiscuit.slimefun4.implementation.items.food; + +import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; +import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; +import org.bukkit.inventory.ItemStack; + +/** + * This {@link SlimefunItem} can be obtained by crafting and, it's + * used for various food recipes recipes + * + * @author TheSilentPro + */ +public class HeavyCream extends SlimefunItem { + + public HeavyCream(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, recipeType, recipe, recipeOutput); + } + + @Override + public void preRegister() { + addItemHandler((ItemUseHandler) PlayerRightClickEvent::cancel); + } + +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java index eb6aa7716..05b6e812d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java @@ -1,5 +1,7 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.misc; +import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; +import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; import org.bukkit.entity.Piglin; import org.bukkit.inventory.ItemStack; @@ -36,4 +38,9 @@ public class StrangeNetherGoo extends SlimefunItem implements PiglinBarterDrop { return chance.getValue(); } + @Override + public void preRegister() { + addItemHandler((ItemUseHandler) PlayerRightClickEvent::cancel); + } + } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java index 2ce593999..5015b8568 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java @@ -115,6 +115,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.food.Juice; import io.github.thebusybiscuit.slimefun4.implementation.items.food.MagicSugar; import io.github.thebusybiscuit.slimefun4.implementation.items.food.MeatJerky; import io.github.thebusybiscuit.slimefun4.implementation.items.food.MonsterJerky; +import io.github.thebusybiscuit.slimefun4.implementation.items.food.HeavyCream; import io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOMiner; import io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOScanner; import io.github.thebusybiscuit.slimefun4.implementation.items.geo.OilPump; @@ -907,7 +908,7 @@ public final class SlimefunItemSetup { new ItemStack[] {new ItemStack(Material.SAND, 2), null, null, null, null, null, null, null, null}) .register(plugin); - new SlimefunItem(categories.misc, SlimefunItems.HEAVY_CREAM, RecipeType.ENHANCED_CRAFTING_TABLE, + new HeavyCream(categories.misc, SlimefunItems.HEAVY_CREAM, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.MILK_BUCKET), null, null, null, null, null, null, null, null}, new SlimefunItemStack(SlimefunItems.HEAVY_CREAM, 2)) .register(plugin); From f9928e5e109bdb57b02db1ba755cfad8e701251b Mon Sep 17 00:00:00 2001 From: Silent Date: Sat, 10 Oct 2020 20:20:08 +0200 Subject: [PATCH 2/5] Add requested changes --- .../implementation/items/food/HeavyCream.java | 27 +++++++++++++++---- .../items/misc/StrangeNetherGoo.java | 23 ++++++++++++---- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java index 2a10fb906..34f3018b4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java @@ -2,27 +2,44 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.food; import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; +import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import org.bukkit.inventory.ItemStack; +import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; + /** - * This {@link SlimefunItem} can be obtained by crafting and, it's - * used for various food recipes recipes + * This {@link SlimefunItem} can be obtained by crafting, it's + * used for various foods and recipes * * @author TheSilentPro */ -public class HeavyCream extends SlimefunItem { +public class HeavyCream extends SimpleSlimefunItem { + @ParametersAreNonnullByDefault public HeavyCream(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { super(category, item, recipeType, recipe, recipeOutput); } + @Nonnull @Override - public void preRegister() { - addItemHandler((ItemUseHandler) PlayerRightClickEvent::cancel); + public ItemUseHandler getItemHandler() { + return this::use; + } + + public void use(PlayerRightClickEvent e) { + if (e.getClickedBlock().isPresent()) { + if (!e.getClickedBlock().get().getType().isInteractable()) { + e.cancel(); + } + } + else { + e.cancel(); + } } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java index b84780f75..36c1ccbd0 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java @@ -1,19 +1,23 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.misc; -import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; -import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; +import org.bukkit.block.Block; import org.bukkit.entity.Piglin; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; import io.github.thebusybiscuit.slimefun4.api.items.settings.IntRangeSetting; +import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; +import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; import io.github.thebusybiscuit.slimefun4.core.attributes.PiglinBarterDrop; +import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.VillagerRune; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; +import javax.annotation.Nonnull; + /** * This {@link SlimefunItem} can only be obtained via bartering with a {@link Piglin}, its * only current uses is the recipe for crafting the {@link VillagerRune}. @@ -24,7 +28,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; * @see PiglinBarterDrop * */ -public class StrangeNetherGoo extends SlimefunItem implements PiglinBarterDrop { +public class StrangeNetherGoo extends SimpleSlimefunItem implements PiglinBarterDrop { private final ItemSetting chance = new IntRangeSetting("barter-chance", 0, 7, 100); @@ -39,9 +43,18 @@ public class StrangeNetherGoo extends SlimefunItem implements PiglinBarterDrop { return chance.getValue(); } + @Nonnull @Override - public void preRegister() { - addItemHandler((ItemUseHandler) PlayerRightClickEvent::cancel); + public ItemUseHandler getItemHandler() { + return this::use; + } + + public void use(PlayerRightClickEvent e) { + if (e.getClickedBlock().isPresent()) { + if (e.getClickedBlock().get().getType().name().contains("SIGN")) { + e.cancel(); + } + } } } From dfe33b35346c24552ed949b4d1756b43c7bfd447 Mon Sep 17 00:00:00 2001 From: Silent Date: Sat, 10 Oct 2020 22:05:50 +0200 Subject: [PATCH 3/5] Didn't know this existed --- .../slimefun4/implementation/items/misc/StrangeNetherGoo.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java index 36c1ccbd0..3a66362d6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java @@ -1,5 +1,6 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.misc; +import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.entity.Piglin; import org.bukkit.inventory.ItemStack; @@ -51,7 +52,7 @@ public class StrangeNetherGoo extends SimpleSlimefunItem impleme public void use(PlayerRightClickEvent e) { if (e.getClickedBlock().isPresent()) { - if (e.getClickedBlock().get().getType().name().contains("SIGN")) { + if (Tag.SIGNS.isTagged(e.getClickedBlock().get().getType())) { e.cancel(); } } From 2902f74d10bf547fb92615d284b3c1cbd80d2608 Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 11 Oct 2020 12:14:58 +0200 Subject: [PATCH 4/5] Changes --- .../implementation/items/food/HeavyCream.java | 21 +++++++++---------- .../items/misc/StrangeNetherGoo.java | 13 +++++------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java index 34f3018b4..9d9459dac 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java @@ -1,16 +1,17 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.food; -import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; +import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Optional; /** * This {@link SlimefunItem} can be obtained by crafting, it's @@ -28,18 +29,16 @@ public class HeavyCream extends SimpleSlimefunItem { @Nonnull @Override public ItemUseHandler getItemHandler() { - return this::use; - } - - public void use(PlayerRightClickEvent e) { - if (e.getClickedBlock().isPresent()) { - if (!e.getClickedBlock().get().getType().isInteractable()) { + return e -> { + Optional block = e.getClickedBlock(); + if (block.isPresent()) { + if (!block.get().getType().isInteractable()) { + e.cancel(); + } + } else { e.cancel(); } - } - else { - e.cancel(); - } + }; } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java index 3a66362d6..146563aae 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java @@ -7,7 +7,6 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; import io.github.thebusybiscuit.slimefun4.api.items.settings.IntRangeSetting; -import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler; import io.github.thebusybiscuit.slimefun4.core.attributes.PiglinBarterDrop; import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem; @@ -18,6 +17,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import javax.annotation.Nonnull; +import java.util.Optional; /** * This {@link SlimefunItem} can only be obtained via bartering with a {@link Piglin}, its @@ -47,15 +47,12 @@ public class StrangeNetherGoo extends SimpleSlimefunItem impleme @Nonnull @Override public ItemUseHandler getItemHandler() { - return this::use; - } - - public void use(PlayerRightClickEvent e) { - if (e.getClickedBlock().isPresent()) { - if (Tag.SIGNS.isTagged(e.getClickedBlock().get().getType())) { + return e -> { + Optional block = e.getClickedBlock(); + if (block.isPresent() && Tag.SIGNS.isTagged(block.get().getType())) { e.cancel(); } - } + }; } } From 7177946aaef78cb0ac0de5371ceac09a4047bdb7 Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 11 Oct 2020 12:44:15 +0200 Subject: [PATCH 5/5] Changes pt2 --- .../slimefun4/implementation/items/food/HeavyCream.java | 9 +++------ .../implementation/items/misc/StrangeNetherGoo.java | 1 + 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java index 9d9459dac..fdb6b60a9 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/food/HeavyCream.java @@ -31,14 +31,11 @@ public class HeavyCream extends SimpleSlimefunItem { public ItemUseHandler getItemHandler() { return e -> { Optional block = e.getClickedBlock(); - if (block.isPresent()) { - if (!block.get().getType().isInteractable()) { - e.cancel(); - } - } else { + + if (!block.isPresent() || !block.get().getType().isInteractable()) { e.cancel(); } }; } -} +} \ No newline at end of file diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java index 146563aae..a1b0ab966 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/misc/StrangeNetherGoo.java @@ -49,6 +49,7 @@ public class StrangeNetherGoo extends SimpleSlimefunItem impleme public ItemUseHandler getItemHandler() { return e -> { Optional block = e.getClickedBlock(); + if (block.isPresent() && Tag.SIGNS.isTagged(block.get().getType())) { e.cancel(); }