From 34456d170c3ca9f8639ba5569ddbe35bb94b0a67 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 16 Aug 2021 03:27:20 +0100 Subject: [PATCH] A reforge can now have multiple targets --- .../src/main/java/com/willfp/reforges/gui/ReforgeGUI.java | 3 ++- .../main/java/com/willfp/reforges/reforges/Reforge.java | 2 +- .../com/willfp/reforges/reforges/meta/ReforgeTarget.java | 5 +++++ .../willfp/reforges/reforges/reforges/ReforgeAerobic.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeAffluent.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeDynamic.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeEvasive.java | 4 ++-- .../reforges/reforges/reforges/ReforgeGravitated.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeLight.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeLucky.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeNautical.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgePointy.java | 4 ++-- .../reforges/reforges/reforges/ReforgeReinforced.java | 4 ++-- .../com/willfp/reforges/reforges/reforges/ReforgeRich.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeSharp.java | 4 ++-- .../reforges/reforges/reforges/ReforgeStreamlined.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeStrong.java | 4 ++-- .../com/willfp/reforges/reforges/reforges/ReforgeThin.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeTough.java | 4 ++-- .../reforges/reforges/reforges/ReforgeVersatile.java | 4 ++-- .../willfp/reforges/reforges/reforges/ReforgeWealthy.java | 4 ++-- .../com/willfp/reforges/reforges/reforges/ReforgeWise.java | 4 ++-- .../com/willfp/reforges/reforges/util/ReforgeUtils.java | 5 +++-- eco-core/core-plugin/src/main/resources/config.yml | 7 +++++++ 24 files changed, 56 insertions(+), 42 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/gui/ReforgeGUI.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/gui/ReforgeGUI.java index 5dc8a4d..9da8c79 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/gui/ReforgeGUI.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/gui/ReforgeGUI.java @@ -24,6 +24,7 @@ import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -160,7 +161,7 @@ public class ReforgeGUI { if (menu.getCaptiveItems(player).size() == 2) { Reforge stone = ReforgeUtils.getReforgeStone(menu.getCaptiveItems(player).get(1)); if (stone != null) { - if (stone.getTarget().getMaterials().contains(toReforge.getType())) { + if (Arrays.stream(stone.getTarget()).anyMatch(reforgeTarget -> reforgeTarget.getMaterials().contains(toReforge.getType()))) { reforge = stone; usedStone = true; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforge.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforge.java index b61bf45..eba716b 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforge.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforge.java @@ -135,7 +135,7 @@ public abstract class Reforge implements Listener, Watcher { /** * Get the reforge target. */ - public abstract ReforgeTarget getTarget(); + public abstract ReforgeTarget[] getTarget(); public void handleApplication(@NotNull final ItemStack itemStack) { // Override when needed diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/meta/ReforgeTarget.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/meta/ReforgeTarget.java index 93e8b81..efa60f3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/meta/ReforgeTarget.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/meta/ReforgeTarget.java @@ -40,6 +40,11 @@ public class ReforgeTarget { */ public static final ReforgeTarget BOW = new ReforgeTarget("bow"); + /** + * Pickaxes. + */ + public static final ReforgeTarget PICKAXE = new ReforgeTarget("pickaxe"); + /** * All registered targets. */ diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAerobic.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAerobic.java index 47a6bf2..a6273d1 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAerobic.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAerobic.java @@ -14,8 +14,8 @@ public class ReforgeAerobic extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.BOW; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.BOW}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAffluent.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAffluent.java index cc857ff..4634ff4 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAffluent.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeAffluent.java @@ -17,8 +17,8 @@ public class ReforgeAffluent extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.TRIDENT; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.TRIDENT}; } @EventHandler diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeDynamic.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeDynamic.java index fc1d7f9..c238541 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeDynamic.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeDynamic.java @@ -13,8 +13,8 @@ public class ReforgeDynamic extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeEvasive.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeEvasive.java index f3d0b43..472ba60 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeEvasive.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeEvasive.java @@ -14,8 +14,8 @@ public class ReforgeEvasive extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.ARMOR; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.ARMOR}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeGravitated.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeGravitated.java index f2c57f1..2f300c5 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeGravitated.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeGravitated.java @@ -13,8 +13,8 @@ public class ReforgeGravitated extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLight.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLight.java index e937b42..aceb492 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLight.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLight.java @@ -18,8 +18,8 @@ public class ReforgeLight extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLucky.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLucky.java index b2e5d44..5f56bd2 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLucky.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeLucky.java @@ -15,8 +15,8 @@ public class ReforgeLucky extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.BOW; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.BOW}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeNautical.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeNautical.java index 9604b62..50f50bb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeNautical.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeNautical.java @@ -14,8 +14,8 @@ public class ReforgeNautical extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.TRIDENT; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.TRIDENT}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgePointy.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgePointy.java index 8adc44b..1693960 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgePointy.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgePointy.java @@ -14,8 +14,8 @@ public class ReforgePointy extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.TRIDENT; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.TRIDENT}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeReinforced.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeReinforced.java index 728b431..27fa83f 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeReinforced.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeReinforced.java @@ -13,8 +13,8 @@ public class ReforgeReinforced extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.ARMOR; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.ARMOR}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeRich.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeRich.java index b69ef1f..d09bada 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeRich.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeRich.java @@ -19,8 +19,8 @@ public class ReforgeRich extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.BOW; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.BOW}; } @EventHandler diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeSharp.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeSharp.java index dc3291e..d469673 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeSharp.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeSharp.java @@ -13,8 +13,8 @@ public class ReforgeSharp extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStreamlined.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStreamlined.java index 294d419..9d1f9d8 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStreamlined.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStreamlined.java @@ -14,8 +14,8 @@ public class ReforgeStreamlined extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.BOW; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.BOW}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStrong.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStrong.java index 3c318b4..edbb5e4 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStrong.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeStrong.java @@ -18,8 +18,8 @@ public class ReforgeStrong extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeThin.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeThin.java index 7364117..d284598 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeThin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeThin.java @@ -18,8 +18,8 @@ public class ReforgeThin extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.ARMOR; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.ARMOR}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeTough.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeTough.java index 451cd64..405d3a4 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeTough.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeTough.java @@ -18,8 +18,8 @@ public class ReforgeTough extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.ARMOR; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.ARMOR}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeVersatile.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeVersatile.java index 64367c6..ee1856a 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeVersatile.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeVersatile.java @@ -13,8 +13,8 @@ public class ReforgeVersatile extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.TRIDENT; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.TRIDENT}; } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWealthy.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWealthy.java index 0042a99..7c052aa 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWealthy.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWealthy.java @@ -16,8 +16,8 @@ public class ReforgeWealthy extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @EventHandler diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWise.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWise.java index 6be9199..e12fc3a 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWise.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/reforges/ReforgeWise.java @@ -14,8 +14,8 @@ public class ReforgeWise extends Reforge { } @Override - public ReforgeTarget getTarget() { - return ReforgeTarget.MELEE; + public ReforgeTarget[] getTarget() { + return new ReforgeTarget[]{ReforgeTarget.MELEE}; } @EventHandler 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 e6bb372..f2f80d6 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 @@ -16,6 +16,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -50,7 +51,7 @@ public class ReforgeUtils { List applicable = new ArrayList<>(); for (Reforge reforge : Reforges.values()) { - if (reforge.getTarget().equals(target) && !reforge.isRequiresStone()) { + if (Arrays.asList(reforge.getTarget()).contains(target) && !reforge.isRequiresStone()) { applicable.add(reforge); } } @@ -86,7 +87,7 @@ public class ReforgeUtils { if (status == ReforgeStatus.ALLOW) { Reforge reforgeStone = getReforgeStone(stone); - if (reforgeStone != null && reforgeStone.getTarget().getMaterials().contains(toReforge.getType())) { + if (reforgeStone != null && Arrays.stream(reforgeStone.getTarget()).anyMatch(reforgeTarget -> reforgeTarget.getMaterials().contains(toReforge.getType()))) { status = ReforgeStatus.ALLOW_STONE; } } diff --git a/eco-core/core-plugin/src/main/resources/config.yml b/eco-core/core-plugin/src/main/resources/config.yml index f9ab415..d11f139 100644 --- a/eco-core/core-plugin/src/main/resources/config.yml +++ b/eco-core/core-plugin/src/main/resources/config.yml @@ -83,6 +83,13 @@ reforge: - "%reforge%&7 reforge!" targets: + pickaxe: + - wooden_pickaxe + - stone_pickaxe + - iron_pickaxe + - golden_pickaxe + - diamond_pickaxe + - netherite_pickaxe melee: - wooden_axe - stone_axe