diff --git a/VelocityCore/src/de/steamwar/velocitycore/commands/SendCommand.java b/VelocityCore/src/de/steamwar/velocitycore/commands/SendCommand.java index 887829e5..660a4ec3 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/commands/SendCommand.java +++ b/VelocityCore/src/de/steamwar/velocitycore/commands/SendCommand.java @@ -49,10 +49,28 @@ public class SendCommand extends SWCommand { @ClassMapper(value = RegisteredServer.class, local = true) public TypeMapper subserverTypeMapper() { return new TypeMapper<>() { + private boolean check(SteamwarUser user, RegisteredServer registeredServer) { + ServerInfo serverInfo = registeredServer.getServerInfo(); + String name = serverInfo.getName(); + if (name.contains(" ")) return false; + + Subserver subserver = Subserver.getSubserver(serverInfo); + if (subserver == null) { + return true; + } + + return switch (subserver.getType()) { + case ARENA -> true; + case BUILDER -> user.hasPerm(UserPerm.BUILD); + default -> false; + }; + } + @Override public RegisteredServer map(Chatter sender, PreviousArguments previousArguments, String s) { + SteamwarUser user = sender.user(); for (RegisteredServer registeredServer : VelocityCore.getProxy().getAllServers()) { - if (registeredServer.getServerInfo().getName().equals(s)) { + if (check(user, registeredServer)) { return registeredServer; } } @@ -64,27 +82,8 @@ public class SendCommand extends SWCommand { SteamwarUser user = sender.user(); List tabCompletes = new ArrayList<>(); for (RegisteredServer registeredServer : VelocityCore.getProxy().getAllServers()) { - ServerInfo serverInfo = registeredServer.getServerInfo(); - String name = serverInfo.getName(); - if (name.contains(" ")) continue; - - Subserver subserver = Subserver.getSubserver(serverInfo); - if (subserver == null) { - tabCompletes.add(name); - continue; - } - - switch (subserver.getType()) { - case ARENA: - tabCompletes.add(name); - break; - case BUILDER: - if (user.hasPerm(UserPerm.BUILD)) { - tabCompletes.add(name); - } - break; - default: - break; + if (check(user, registeredServer)) { + tabCompletes.add(registeredServer.getServerInfo().getName()); } } return tabCompletes; diff --git a/VelocityCore/src/de/steamwar/velocitycore/listeners/ConnectionListener.java b/VelocityCore/src/de/steamwar/velocitycore/listeners/ConnectionListener.java index 4fb3d0df..ec8d1726 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/listeners/ConnectionListener.java +++ b/VelocityCore/src/de/steamwar/velocitycore/listeners/ConnectionListener.java @@ -49,7 +49,7 @@ public class ConnectionListener extends BasicListener { newPlayers.add(player); } - private static final Set TEAM_PERMISSIONS = Set.of("velocity.command.send", "velocity.command.glist"); + private static final Set TEAM_PERMISSIONS = Set.of("velocity.command.glist"); @Subscribe public void onPermissionSetup(PermissionsSetupEvent event) {