forked from SteamWar/SteamWar
Update SendCommand
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user