Update SendCommand

This commit is contained in:
2024-08-06 18:04:59 +02:00
parent 80ec327818
commit 5b730fc67d
2 changed files with 22 additions and 23 deletions
@@ -49,10 +49,28 @@ public class SendCommand extends SWCommand {
@ClassMapper(value = RegisteredServer.class, local = true)
public TypeMapper<RegisteredServer> 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<String> 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;
@@ -49,7 +49,7 @@ public class ConnectionListener extends BasicListener {
newPlayers.add(player);
}
private static final Set<String> TEAM_PERMISSIONS = Set.of("velocity.command.send", "velocity.command.glist");
private static final Set<String> TEAM_PERMISSIONS = Set.of("velocity.command.glist");
@Subscribe
public void onPermissionSetup(PermissionsSetupEvent event) {