mirror of
https://github.com/Auxilor/Reforges.git
synced 2026-01-03 14:22:19 +00:00
A reforge can now have multiple targets
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<Reforge> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user