Skip to content

Commit 0eacf4d

Browse files
committed
Added new API subchannel and other small improvements
1 parent 27a3cff commit 0eacf4d

File tree

12 files changed

+82
-93
lines changed

12 files changed

+82
-93
lines changed

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/commands/ManageCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,8 @@ public void execute(CommandSender sender, String[] args) {
180180
.color(ChatColor.AQUA)
181181
.event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Accessible: ")
182182
.color(ChatColor.GRAY)
183-
.append(status.isAccessible(plugin) ? "yes" : "no")
184-
.color(status.isAccessible(plugin) ? ChatColor.GREEN : ChatColor.RED)
183+
.append(status.isAccessible() ? "yes" : "no")
184+
.color(status.isAccessible() ? ChatColor.GREEN : ChatColor.RED)
185185
.append("\nDescription: ")
186186
.color(ChatColor.GRAY)
187187
.append("\"")

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/connection/ConnectionIntent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ private ServerInfo fetchServer(ProxiedPlayer player, ServerSection section, Prov
7474
if (ServerAssignRegistry.hasAssignedServer(player, section)) {
7575
ServerInfo target = ServerAssignRegistry.getAssignedServer(player, section);
7676
ServerStatus status = plugin.getStatusManager().getStatus(target);
77-
if (status.isAccessible(plugin)) {
77+
if (status.isAccessible()) {
7878
return target;
7979
} else {
8080
ServerAssignRegistry.revokeTarget(player, section);
@@ -90,7 +90,7 @@ private ServerInfo fetchServer(ProxiedPlayer player, ServerSection section, Prov
9090
if (target == null) continue;
9191

9292
ServerStatus status = plugin.getStatusManager().getStatus(target);
93-
if (status.isAccessible(plugin)) {
93+
if (status.isAccessible()) {
9494
return target;
9595
} else {
9696
servers.remove(target);

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/manager/PasteHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public void send(PlayerBalancer plugin, CommandSender sender) {
101101
try {
102102
url = paste(plugin);
103103
} catch (PasteException e) {
104-
sender.sendMessage(new ComponentBuilder("An pastebin exception occurred: " + e.getMessage())
104+
sender.sendMessage(new ComponentBuilder("A pastebin exception occurred: " + e.getMessage())
105105
.color(ChatColor.RED)
106106
.create()
107107
);

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/PingTactic.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.jaimemartz.playerbalancer.ping;
22

3+
import com.jaimemartz.playerbalancer.PlayerBalancer;
34
import com.jaimemartz.playerbalancer.utils.ServerListPing;
45
import com.jaimemartz.playerbalancer.utils.ServerListPing.StatusResponse;
56
import net.md_5.bungee.api.Callback;
67
import net.md_5.bungee.api.config.ServerInfo;
7-
import net.md_5.bungee.api.plugin.Plugin;
88

99
import java.io.IOException;
1010

@@ -13,14 +13,15 @@ public enum PingTactic {
1313
ServerListPing utility = new ServerListPing();
1414

1515
@Override
16-
public void ping(ServerInfo server, Callback<ServerStatus> callback, Plugin plugin) {
16+
public void ping(ServerInfo server, Callback<ServerStatus> callback, PlayerBalancer plugin) {
1717
plugin.getProxy().getScheduler().runAsync(plugin, () -> {
1818
try {
1919
StatusResponse response = utility.ping(server.getAddress());
2020
callback.done(new ServerStatus(
2121
response.getDescription().toLegacyText(),
2222
response.getPlayers().getOnline(),
23-
response.getPlayers().getMax()),
23+
response.getPlayers().getMax(),
24+
plugin.getSettings().getServerCheckerProps().getMarkerDescs()),
2425
null);
2526
} catch (IOException e) {
2627
callback.done(null, e);
@@ -31,15 +32,16 @@ public void ping(ServerInfo server, Callback<ServerStatus> callback, Plugin plug
3132

3233
GENERIC {
3334
@Override
34-
public void ping(ServerInfo server, Callback<ServerStatus> callback, Plugin plugin) {
35+
public void ping(ServerInfo server, Callback<ServerStatus> callback, PlayerBalancer plugin) {
3536
try {
3637
server.ping((ping, throwable) -> {
3738
if (ping != null) {
3839
//using deprecated method for 1.8 compatibility
3940
callback.done(new ServerStatus(
4041
ping.getDescription(),
4142
ping.getPlayers().getOnline(),
42-
ping.getPlayers().getMax()
43+
ping.getPlayers().getMax(),
44+
plugin.getSettings().getServerCheckerProps().getMarkerDescs()
4345
), throwable);
4446
} else {
4547
callback.done(null, throwable);
@@ -51,5 +53,5 @@ public void ping(ServerInfo server, Callback<ServerStatus> callback, Plugin plug
5153
}
5254
};
5355

54-
public abstract void ping(ServerInfo server, Callback<ServerStatus> callback, Plugin plugin);
56+
public abstract void ping(ServerInfo server, Callback<ServerStatus> callback, PlayerBalancer plugin);
5557
}

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/ServerStatus.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
11
package com.jaimemartz.playerbalancer.ping;
22

3-
import com.jaimemartz.playerbalancer.PlayerBalancer;
43
import net.md_5.bungee.api.config.ServerInfo;
54

5+
import java.util.Collections;
6+
import java.util.List;
7+
68
public final class ServerStatus {
79
private final String description;
810
private final int online, maximum;
911
private boolean outdated = true;
12+
private final boolean accessible;
1013

1114
public ServerStatus() {
12-
this("Server Unreachable", 0, 0);
15+
this("Server Unreachable", 0, 0, Collections.emptyList());
1316
}
1417

1518
public ServerStatus(ServerInfo server) {
16-
this(server.getMotd(), server.getPlayers().size(), Integer.MAX_VALUE);
19+
this(server.getMotd(), server.getPlayers().size(), Integer.MAX_VALUE, Collections.emptyList());
1720
}
1821

19-
public ServerStatus(String description, int online, int maximum) {
22+
public ServerStatus(String description, int online, int maximum, List<String> descs) {
2023
this.description = description;
2124
this.online = online;
2225
this.maximum = maximum;
23-
}
2426

25-
public boolean isAccessible(PlayerBalancer plugin) {
26-
if (maximum == 0) {
27-
return false;
28-
}
27+
this.accessible = (maximum != 0 && online < maximum && !isMarked(descs));
28+
}
2929

30-
for (String pattern : plugin.getSettings().getServerCheckerProps().getMarkerDescs()) {
30+
private boolean isMarked(List<String> descs) {
31+
for (String pattern : descs) {
3132
if (description.matches(pattern)) {
32-
return false;
33+
return true;
3334
}
3435
}
35-
36-
return online < maximum;
36+
return false;
3737
}
3838

3939
public String getDescription() {
@@ -55,4 +55,8 @@ public boolean isOutdated() {
5555
public void setOutdated(boolean outdated) {
5656
this.outdated = outdated;
5757
}
58+
59+
public boolean isAccessible() {
60+
return accessible;
61+
}
5862
}

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/ping/StatusManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private void update(ServerInfo server) {
6666
if (plugin.getSettings().getServerCheckerProps().isDebug()) {
6767
plugin.getLogger().info(String.format(
6868
"Updated server %s, status: [Description: \"%s\", Online Players: %s, Maximum Players: %s, Accessible: %s]",
69-
server.getName(), status.getDescription(), status.getOnline(), status.getMaximum(), status.isAccessible(plugin)
69+
server.getName(), status.getDescription(), status.getOnline(), status.getMaximum(), status.isAccessible()
7070
));
7171
}
7272

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/services/FallbackService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void execute(CommandSender sender, String[] args) {
4646
if (number <= 0) {
4747
MessageUtils.send(player, messages.getInvalidInputMessage());
4848
} else if (number > target.getServers().size()) {
49-
MessageUtils.send(player, messages.getFailureMessage());
49+
MessageUtils.send(player, messages.getInvalidInputMessage());
5050
} else {
5151
ServerInfo server = Iterables.get(target.getServers(), number - 1);
5252
ConnectionIntent.direct(plugin, player, server, (response, throwable) -> {});

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/services/MessagingService.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.google.gson.JsonSerializer;
88
import com.jaimemartz.playerbalancer.PlayerBalancer;
99
import com.jaimemartz.playerbalancer.connection.ConnectionIntent;
10+
import com.jaimemartz.playerbalancer.ping.ServerStatus;
1011
import com.jaimemartz.playerbalancer.section.ServerSection;
1112
import net.md_5.bungee.api.config.ServerInfo;
1213
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -163,6 +164,27 @@ public void onPluginMessage(PluginMessageEvent event) {
163164
sender.sendData("PlayerBalancer", stream.toByteArray());
164165
break;
165166
}
167+
168+
case "GetServerStatus": {
169+
ByteArrayOutputStream stream = new ByteArrayOutputStream();
170+
DataOutputStream out = new DataOutputStream(stream);
171+
172+
ServerInfo server = plugin.getProxy().getServerInfo(in.readUTF());
173+
if (server == null)
174+
break;
175+
176+
ServerStatus status = plugin.getStatusManager().getStatus(server);
177+
178+
try {
179+
String output = gson.toJson(status);
180+
out.writeUTF("GetServerStatus");
181+
out.writeUTF(output);
182+
} catch (IOException e) {
183+
e.printStackTrace();
184+
}
185+
186+
sender.sendData("PlayerBalancer", stream.toByteArray());
187+
}
166188
}
167189
}
168190
}

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/utils/ServerInfoAdapter.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

Main Plugin/src/main/java/com/jaimemartz/playerbalancer/utils/SpigotUpdater.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)