diff --git a/Main Plugin/pom.xml b/Main Plugin/pom.xml index f6de4e2..ffdf6d2 100644 --- a/Main Plugin/pom.xml +++ b/Main Plugin/pom.xml @@ -11,7 +11,7 @@ PlayerBalancer Plugin playerbalancer-plugin - 2.1.3 + 2.1.4 PlayerBalancer diff --git a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/commands/ManageCommand.java b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/commands/ManageCommand.java index 5d9c8e0..ba7fecd 100644 --- a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/commands/ManageCommand.java +++ b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/commands/ManageCommand.java @@ -174,6 +174,7 @@ public class ManageCommand extends Command { section.getServers().forEach(server -> { ServerStatus status = plugin.getStatusManager().getStatus(server); + boolean accessible = plugin.getStatusManager().isAccessible(server); sender.sendMessage(new ComponentBuilder("\u2022 Server: ") .color(ChatColor.GRAY) .append(server.getName()) @@ -182,6 +183,10 @@ public class ManageCommand extends Command { .color(ChatColor.GRAY) .append(status.isOnline() ? "yes" : "no") .color(status.isOnline() ? ChatColor.GREEN : ChatColor.RED) + .append("\nAccessible: ") + .color(ChatColor.GRAY) + .append(accessible ? "yes" : "no") + .color(accessible ? ChatColor.GREEN : ChatColor.RED) .append("\nDescription: ") .color(ChatColor.GRAY) .append("\"") diff --git a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/ServerStatus.java b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/ServerStatus.java index 5ee41d6..303d6eb 100644 --- a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/ServerStatus.java +++ b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/ServerStatus.java @@ -1,5 +1,6 @@ package com.jaimemartz.playerbalancer.ping; +import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.config.ServerInfo; public class ServerStatus { @@ -26,7 +27,7 @@ public class ServerStatus { * @param server the server for providing basic info about itself */ public ServerStatus(ServerInfo server) { - this.description = server.getMotd(); + this.description = revertColor(server.getMotd()); this.players = server.getPlayers().size(); this.maximum = Integer.MAX_VALUE; this.online = true; @@ -40,7 +41,7 @@ public class ServerStatus { * @param maximum the maximum amount of players possible from the ping result */ public ServerStatus(String description, int players, int maximum) { - this.description = description; + this.description = revertColor(description); this.players = players; this.maximum = maximum; this.online = maximum != 0 && players < maximum; @@ -74,4 +75,8 @@ public class ServerStatus { public void setOutdated(boolean outdated) { this.outdated = outdated; } + + private static String revertColor(String string) { + return string.replace(ChatColor.COLOR_CHAR, '&'); + } } \ No newline at end of file diff --git a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/StatusManager.java b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/StatusManager.java index 98dd9ed..162c245 100644 --- a/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/StatusManager.java +++ b/Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/StatusManager.java @@ -5,7 +5,6 @@ import com.google.common.io.ByteStreams; import com.jaimemartz.playerbalancer.PlayerBalancer; import com.jaimemartz.playerbalancer.section.ServerSection; import com.jaimemartz.playerbalancer.settings.props.features.ServerCheckerProps; -import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.Server; import net.md_5.bungee.api.event.PluginMessageEvent; @@ -77,8 +76,8 @@ public class StatusManager implements Listener { if (props.isDebug()) { plugin.getLogger().info(String.format( - "Updated server %s, status: [Description: \"%s\", Players: %s, Maximum Players: %s, Accessible: %s]", - server.getName(), ChatColor.stripColor(status.getDescription()), status.getPlayers(), status.getMaximum(), isAccessible(server) + "Updated server %s, status: [Description: \"%s\", Players: %s, Maximum Players: %s, Online: %s]", + server.getName(), status.getDescription(), status.getPlayers(), status.getMaximum(), status.isOnline() )); } @@ -98,18 +97,23 @@ public class StatusManager implements Listener { } public boolean isAccessible(ServerInfo server) { - if (overriders.containsKey(server)) + if (overriders.containsKey(server)) { return overriders.get(server); + } ServerStatus status = getStatus(server); + if (!status.isOnline()) { + return false; + } + for (String pattern : props.getMarkerDescs()) { if (status.getDescription().matches(pattern)) { return false; } } - return status.isOnline(); + return true; } @EventHandler diff --git a/Main Plugin/src/main/resources/default.conf b/Main Plugin/src/main/resources/default.conf index eb6fef2..e9cf85f 100644 --- a/Main Plugin/src/main/resources/default.conf +++ b/Main Plugin/src/main/resources/default.conf @@ -139,6 +139,7 @@ features { debug-info=false # When the description of a server matches these, it will be set as non accessible + # Be aware of colors, it is recommended to use the "contains" rule below or some others marker-descs=[ "(?i).*maintenance*" # match if contains (regex) "Game in progress", # match if exactly equal diff --git a/Spigot Addon/pom.xml b/Spigot Addon/pom.xml index 9401be5..71fea06 100644 --- a/Spigot Addon/pom.xml +++ b/Spigot Addon/pom.xml @@ -11,7 +11,7 @@ PlayerBalancer Addon playerbalancer-addon - 1.2 for 2.1.2.0+ + 1.3 for 2.1.3+ PlayerBalancerAddon