From e131099f12a9889acc75e8c890ae7848358a29ca Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 10 Nov 2021 14:49:48 +0000 Subject: [PATCH 1/2] Fixed reforging an item giving you the same reforge you started with --- .../reforges/reforges/util/ReforgeHandler.java | 9 ++++++++- .../reforges/reforges/util/ReforgeUtils.java | 17 ++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeHandler.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeHandler.java index 9505a14..2d9363d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeHandler.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeHandler.java @@ -13,6 +13,7 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; import java.util.List; public class ReforgeHandler extends PluginDependent { @@ -34,6 +35,8 @@ public class ReforgeHandler extends PluginDependent { return; } + Reforge existingReforge = ReforgeUtils.getReforge(toReforge); + List target = ReforgeTarget.getForItem(toReforge); Reforge reforge = null; @@ -50,7 +53,11 @@ public class ReforgeHandler extends PluginDependent { } if (reforge == null) { - reforge = ReforgeUtils.getRandomReforge(target); + List existing = new ArrayList<>(); + if (existingReforge != null) { + existing.add(existingReforge); + } + reforge = ReforgeUtils.getRandomReforge(target, existing); } if (reforge == null) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeUtils.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeUtils.java index 3f438ac..8cf0746 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeUtils.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeUtils.java @@ -45,9 +45,22 @@ public class ReforgeUtils { /** * Get a random reforge for a target. * - * @param targets The targets. + * @param targets The targets. */ + @Nullable public static Reforge getRandomReforge(@NotNull final Collection targets) { + return getRandomReforge(targets, Collections.emptyList()); + } + + /** + * Get a random reforge for a target. + * + * @param targets The targets. + * @param disallowed The disallowed reforges. + */ + @Nullable + public static Reforge getRandomReforge(@NotNull final Collection targets, + @NotNull final Collection disallowed) { List applicable = new ArrayList<>(); for (Reforge reforge : Reforges.values()) { @@ -60,6 +73,8 @@ public class ReforgeUtils { Collections.shuffle(applicable); + applicable.removeAll(disallowed); + if (applicable.isEmpty()) { return null; } From 4279ca130f939bf9096b9334090df682fa94af0f Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 10 Nov 2021 14:49:58 +0000 Subject: [PATCH 2/2] Updated to 3.8.4 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ad14acb..50c3d2d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 3.8.3 +version = 3.8.4 plugin-name = Reforges \ No newline at end of file