From d877e80b9f0cf9ee25d6043357931f1dc06f20db Mon Sep 17 00:00:00 2001 From: ME1312 Date: Wed, 21 Nov 2018 16:52:03 -0500 Subject: [PATCH] Correct default access rules for restricted servers --- .../src/net/ME1312/SubServers/Bungee/SubCommand.java | 2 +- .../src/net/ME1312/SubServers/Bungee/SubPlugin.java | 6 ++++++ .../src/net/ME1312/SubServers/Sync/SubCommand.java | 2 +- .../src/net/ME1312/SubServers/Sync/SubPlugin.java | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java index 971d6717..e0b09c17 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java @@ -808,7 +808,7 @@ public void execute(CommandSender sender, String[] args) { 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 { diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java index 98cef728..125b2235 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java @@ -709,6 +709,7 @@ public Map getServers() { return servers; } + @SuppressWarnings("deprecation") @EventHandler(priority = Byte.MAX_VALUE) public void reroute(ServerConnectEvent e) { Map servers = new TreeMap(api.getServers()); @@ -720,6 +721,11 @@ public void reroute(ServerConnectEvent e) { 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") diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java index 395a353f..55324457 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java @@ -805,7 +805,7 @@ public void execute(CommandSender sender, String[] args) { 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 { diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java index b1e899a7..508ece1e 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java @@ -238,6 +238,7 @@ public void stopListeners() { super.stopListeners(); } + @SuppressWarnings("deprecation") @EventHandler(priority = Byte.MAX_VALUE) public void reroute(ServerConnectEvent e) { Map servers = new TreeMap(this.servers); @@ -249,6 +250,11 @@ public void reroute(ServerConnectEvent e) { 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")