Fix Check and CheckCommand permission

This commit is contained in:
2026-08-11 21:05:36 +02:00
parent 9d5b7893f1
commit 4aa7c99a6e
2 changed files with 9 additions and 2 deletions
@@ -25,6 +25,7 @@ import de.steamwar.fightsystem.FightSystem;
import de.steamwar.fightsystem.states.FightState;
import de.steamwar.fightsystem.states.StateDependentListener;
import de.steamwar.linkage.Linked;
import de.steamwar.sql.GameModeConfig;
import de.steamwar.sql.SchematicNode;
import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserPerm;
@@ -44,12 +45,19 @@ 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()));
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player player = e.getPlayer();
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
if (user.hasPerm(UserPerm.CHECK)) return;
if (!checkPermission(user)) return;
SchematicNode schem = SchematicNode.getSchematicNode(Config.CheckSchemID);
if (user.getId() == schem.getOwner()) return;
@@ -85,7 +85,6 @@ public class CheckCommand extends SWCommand {
if (user.perms().contains(UserPerm.CHECK)) return true;
return GameModeConfig.getAll()
.stream()
.filter(GameModeConfig::isActive)
.anyMatch(gameMode -> gameMode.Checkers.contains(user.getId()));
}