From f19e4158e7bb34c082383d99d57db868877a5f04 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Thu, 13 Aug 2026 10:01:55 +0200 Subject: [PATCH] Fix Check --- .../de/steamwar/fightsystem/listener/Check.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java index 68792014..d5b40ee9 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Check.java @@ -45,11 +45,15 @@ public class Check implements Listener { new StateDependentListener(ArenaMode.Check, FightState.All, this); } - private boolean checkPermission(SteamwarUser user) { - if (user.perms().contains(UserPerm.CHECK)) return true; - return GameModeConfig.getAll() - .stream() - .anyMatch(gameMode -> gameMode.Checkers.contains(user.getId())); + private boolean checkPermission(SteamwarUser user, SchematicNode schematic) { + GameModeConfig gameModeConfig = GameModeConfig.getAll().stream() + .filter(gmc -> gmc.Schematic.Type != null && gmc.Schematic.Type.equals(schematic.getSchemtype())) + .findFirst() + .orElse(null); + if (gameModeConfig == null) gameModeConfig = GameModeConfig.getDefaults(); + if (user.hasPerm(UserPerm.ADMINISTRATION)) return true; + if (gameModeConfig.Checkers.isEmpty() && user.hasPerm(UserPerm.CHECK)) return true; + return gameModeConfig.Checkers.contains(user.getId()); } @EventHandler @@ -57,9 +61,8 @@ public class Check implements Listener { Player player = e.getPlayer(); SteamwarUser user = SteamwarUser.get(player.getUniqueId()); - if (checkPermission(user)) return; - SchematicNode schem = SchematicNode.getSchematicNode(Config.CheckSchemID); + if (checkPermission(user, schem)) return; if (user.getId() == schem.getOwner()) return; FightSystem.getMessage().send("CHECK_JOIN_DENIED", player);