9
0
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:
Auxilor
2021-08-16 03:27:20 +01:00
parent bbe9ea7f87
commit 34456d170c
24 changed files with 56 additions and 42 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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.
*/

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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