forked from SteamWar/SteamWar
Fix Check and CheckCommand permission
This commit is contained in:
@@ -25,6 +25,7 @@ import de.steamwar.fightsystem.FightSystem;
|
|||||||
import de.steamwar.fightsystem.states.FightState;
|
import de.steamwar.fightsystem.states.FightState;
|
||||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||||
import de.steamwar.linkage.Linked;
|
import de.steamwar.linkage.Linked;
|
||||||
|
import de.steamwar.sql.GameModeConfig;
|
||||||
import de.steamwar.sql.SchematicNode;
|
import de.steamwar.sql.SchematicNode;
|
||||||
import de.steamwar.sql.SteamwarUser;
|
import de.steamwar.sql.SteamwarUser;
|
||||||
import de.steamwar.sql.UserPerm;
|
import de.steamwar.sql.UserPerm;
|
||||||
@@ -44,12 +45,19 @@ public class Check implements Listener {
|
|||||||
new StateDependentListener(ArenaMode.Check, FightState.All, this);
|
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
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent e) {
|
public void onJoin(PlayerJoinEvent e) {
|
||||||
Player player = e.getPlayer();
|
Player player = e.getPlayer();
|
||||||
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
|
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
|
||||||
|
|
||||||
if (user.hasPerm(UserPerm.CHECK)) return;
|
if (!checkPermission(user)) return;
|
||||||
|
|
||||||
SchematicNode schem = SchematicNode.getSchematicNode(Config.CheckSchemID);
|
SchematicNode schem = SchematicNode.getSchematicNode(Config.CheckSchemID);
|
||||||
if (user.getId() == schem.getOwner()) return;
|
if (user.getId() == schem.getOwner()) return;
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ public class CheckCommand extends SWCommand {
|
|||||||
if (user.perms().contains(UserPerm.CHECK)) return true;
|
if (user.perms().contains(UserPerm.CHECK)) return true;
|
||||||
return GameModeConfig.getAll()
|
return GameModeConfig.getAll()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(GameModeConfig::isActive)
|
|
||||||
.anyMatch(gameMode -> gameMode.Checkers.contains(user.getId()));
|
.anyMatch(gameMode -> gameMode.Checkers.contains(user.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user