Correct default access rules for restricted servers

This commit is contained in:
ME1312 2018-11-21 16:52:03 -05:00
parent 4ca476c1fa
commit d877e80b9f
No known key found for this signature in database
GPG Key ID: FEFFE2F698E88FA8
4 changed files with 14 additions and 2 deletions

View File

@ -808,7 +808,7 @@ public final class SubCommand extends CommandX {
TextComponent serverm = new TextComponent(ChatColor.RESET.toString());
TextComponent div = new TextComponent(plugin.api.getLang("SubServers", "Bungee.Server.Divider"));
for (Server server : plugin.api.getServers().values()) {
if (!server.isHidden() && (!(server instanceof SubServer) || ((SubServer) server).isRunning())) {
if (!server.isHidden() && server.canAccess(sender) && (!(server instanceof SubServer) || ((SubServer) server).isRunning())) {
if (i != 0) serverm.addExtra(div);
TextComponent message = new TextComponent(plugin.api.getLang("SubServers", "Bungee.Server.List").replace("$str$", server.getDisplayName()));
try {

View File

@ -709,6 +709,7 @@ public final class SubPlugin extends BungeeCord implements Listener {
return servers;
}
@SuppressWarnings("deprecation")
@EventHandler(priority = Byte.MAX_VALUE)
public void reroute(ServerConnectEvent e) {
Map<String, ServerInfo> servers = new TreeMap<String, ServerInfo>(api.getServers());
@ -720,6 +721,11 @@ public final class SubPlugin extends BungeeCord implements Listener {
e.setTarget(servers.get(e.getTarget().getName()));
}
}
if (!e.getTarget().canAccess(e.getPlayer())) {
e.setCancelled(true);
e.getPlayer().sendMessage(getTranslation("no_server_permission"));
}
}
@SuppressWarnings("deprecation")

View File

@ -805,7 +805,7 @@ public final class SubCommand extends CommandX {
TextComponent serverm = new TextComponent(ChatColor.RESET.toString());
TextComponent div = new TextComponent(plugin.api.getLang("SubServers", "Bungee.Server.Divider"));
for (ServerContainer server : plugin.servers.values()) {
if (!server.isHidden() && (!(server instanceof SubServerContainer) || ((SubServerContainer) server).isRunning())) {
if (!server.isHidden() && server.canAccess(sender) && (!(server instanceof SubServerContainer) || ((SubServerContainer) server).isRunning())) {
if (i != 0) serverm.addExtra(div);
TextComponent message = new TextComponent(plugin.api.getLang("SubServers", "Bungee.Server.List").replace("$str$", server.getDisplayName()));
try {

View File

@ -238,6 +238,7 @@ public final class SubPlugin extends BungeeCord implements Listener {
super.stopListeners();
}
@SuppressWarnings("deprecation")
@EventHandler(priority = Byte.MAX_VALUE)
public void reroute(ServerConnectEvent e) {
Map<String, ServerInfo> servers = new TreeMap<String, ServerInfo>(this.servers);
@ -249,6 +250,11 @@ public final class SubPlugin extends BungeeCord implements Listener {
e.setTarget(servers.get(e.getTarget().getName()));
}
}
if (!e.getTarget().canAccess(e.getPlayer())) {
e.setCancelled(true);
e.getPlayer().sendMessage(getTranslation("no_server_permission"));
}
}
@SuppressWarnings("deprecation")