diff --git a/LobbySystem/src/de/steamwar/lobby/particle/ParticleRequirement.java b/LobbySystem/src/de/steamwar/lobby/particle/ParticleRequirement.java index 8f6229c7..f5aa0186 100644 --- a/LobbySystem/src/de/steamwar/lobby/particle/ParticleRequirement.java +++ b/LobbySystem/src/de/steamwar/lobby/particle/ParticleRequirement.java @@ -39,7 +39,13 @@ public interface ParticleRequirement { String getRequirementName(Player player); - boolean test(UnlockContext context); + // Whether the player meets this requirement + boolean matches(UnlockContext context); + + // Administrators pass every requirement; lore still names the regular requirement + default boolean test(UnlockContext context) { + return context.getUser().hasPerm(UserPerm.ADMINISTRATION) || matches(context); + } ParticleRequirement SERVER_TEAM = new ParticleRequirement() { @Override @@ -48,7 +54,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().hasPerm(UserPerm.TEAM); } }; @@ -60,7 +66,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return true; } }; @@ -73,7 +79,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().getTeam() != 0; } }; @@ -84,7 +90,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return !context.getEvents().isEmpty(); } }.or(SERVER_TEAM); @@ -100,7 +106,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { String eggHuntConfig = context.getEggHuntConfig(); if (eggHuntConfig == null) return false; int count = 0; @@ -123,7 +129,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().getTeam() == teamId; } }.or(SERVER_TEAM); @@ -138,7 +144,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getEvents().contains(eventId); } }.or(SERVER_TEAM); @@ -155,7 +161,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { if (!teams.contains(context.getUser().getTeam())) return false; return context.getEvents().contains(eventId); } @@ -184,7 +190,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { String eggHuntConfig = context.getEggHuntConfig(); if (eggHuntConfig == null) return false; return eggs.stream().allMatch(id -> eggHuntConfig.length() > id && eggHuntConfig.charAt(id) == '1'); @@ -201,7 +207,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().getId() == userId; } }.or(SERVER_TEAM); @@ -216,7 +222,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().getId() == userId; } }.or(SERVER_TEAM); @@ -232,7 +238,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return context.getUser().getTeam() == teamId; } }.or(SERVER_TEAM); @@ -247,7 +253,7 @@ public interface ParticleRequirement { } @Override - public boolean test(UnlockContext context) { + public boolean matches(UnlockContext context) { return particleRequirement.test(context) || ParticleRequirement.this.test(context); } };