diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml
index 6b737f92..cc9699a1 100644
--- a/SubServers.Bungee/pom.xml
+++ b/SubServers.Bungee/pom.xml
@@ -30,13 +30,13 @@
net.ME1312.Galaxi
GalaxiUtil
- 19w19c
+ 19w20a
compile
net.ME1312.SubData
Server
- 19w19f
+ 19w20f
compile
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java
index 64e72e39..2a4abe72 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java
@@ -188,7 +188,7 @@ public class ExternalHost extends Host implements ClientHandler {
getSubServer(server).waitFor();
}
queue(new PacketExRemoveServer(server, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
servers.remove(server.toLowerCase());
}
}));
@@ -207,7 +207,7 @@ public class ExternalHost extends Host implements ClientHandler {
getSubServer(server).terminate();
}
queue(new PacketExRemoveServer(server, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
servers.remove(server.toLowerCase());
}
}));
@@ -242,7 +242,7 @@ public class ExternalHost extends Host implements ClientHandler {
System.out.println("SubServers > Moving Files...");
queue(new PacketExDeleteServer(server, info, true, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
servers.remove(server.toLowerCase());
System.out.println("SubServers > Deleted SubServer: " + server);
} else {
@@ -279,7 +279,7 @@ public class ExternalHost extends Host implements ClientHandler {
System.out.println("SubServers > Moving Files...");
queue(new PacketExDeleteServer(server, info, true, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
for (String group : getSubServer(server).getGroups()) getSubServer(server).removeGroup(group);
servers.remove(server.toLowerCase());
System.out.println("SubServers > Deleted SubServer: " + server);
@@ -318,7 +318,7 @@ public class ExternalHost extends Host implements ClientHandler {
System.out.println("SubServers > Removing Files...");
queue(new PacketExDeleteServer(server, info, false, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
servers.remove(server.toLowerCase());
System.out.println("SubServers > Deleted SubServer: " + server);
} else {
@@ -355,7 +355,7 @@ public class ExternalHost extends Host implements ClientHandler {
System.out.println("SubServers > Removing Files...");
queue(new PacketExDeleteServer(server, info, false, data -> {
- if (data.getInt(0x0001) == 0) {
+ if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
for (String group : getSubServer(server).getGroups()) getSubServer(server).removeGroup(group);
servers.remove(server.toLowerCase());
System.out.println("SubServers > Deleted SubServer: " + server);
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubCreator.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubCreator.java
index 697e225e..69dcf512 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubCreator.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubCreator.java
@@ -114,7 +114,7 @@ public class ExternalSubCreator extends SubCreator {
server.set("Port", fport);
server.set("Motd", "Some SubServer");
server.set("Log", true);
- server.set("Directory", "." + File.separatorChar + name);
+ server.set("Directory", "./" + name);
server.set("Executable", "java -Xmx1024M -jar " + template.getType().toString() + ".jar");
server.set("Stop-Command", "stop");
server.set("Stop-Action", "NONE");
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalHost.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalHost.java
index 570698e8..68ccec6c 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalHost.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalHost.java
@@ -241,15 +241,9 @@ public class InternalHost extends Host {
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
if (removeSubServer(player, server)) {
new Thread(() -> {
- UniversalFile to = new UniversalFile(plugin.dir, "SubServers:Recently Deleted:" + server.toLowerCase());
try {
if (from.exists()) {
System.out.println("SubServers > Removing Files...");
- if (to.exists()) {
- if (to.isDirectory()) Util.deleteDirectory(to);
- else to.delete();
- }
- to.mkdirs();
Util.deleteDirectory(from);
}
} catch (Exception e) {
@@ -257,18 +251,11 @@ public class InternalHost extends Host {
}
System.out.println("SubServers > Saving...");
- YAMLSection info = (plugin.servers.get().getMap("Servers").getKeys().contains(server))?new YAMLSection(plugin.servers.get().getMap("Servers").getMap(server).get()):new YAMLSection();
- info.set("Name", server);
- info.set("Timestamp", Calendar.getInstance().getTime().getTime());
try {
if (plugin.servers.get().getMap("Servers").getKeys().contains(server)) {
plugin.servers.get().getMap("Servers").remove(server);
plugin.servers.save();
}
- if (!to.exists()) to.mkdirs();
- FileWriter writer = new FileWriter(new File(to, "info.json"));
- writer.write(info.toJSON().toString());
- writer.close();
} catch (Exception e) {
e.printStackTrace();
}
@@ -285,16 +272,9 @@ public class InternalHost extends Host {
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
if (forceRemoveSubServer(player, server)) {
new Thread(() -> {
- UniversalFile to = new UniversalFile(plugin.dir, "SubServers:Recently Deleted:" + server.toLowerCase());
try {
if (from.exists()) {
System.out.println("SubServers > Removing Files...");
- if (to.exists()) {
- if (to.isDirectory()) Util.deleteDirectory(to);
- else to.delete();
- }
- to.mkdirs();
- Util.copyDirectory(from, to);
Util.deleteDirectory(from);
}
} catch (Exception e) {
@@ -302,18 +282,11 @@ public class InternalHost extends Host {
}
System.out.println("SubServers > Saving...");
- YAMLSection info = (plugin.servers.get().getMap("Servers").getKeys().contains(server))?new YAMLSection(plugin.servers.get().getMap("Servers").getMap(server).get()):new YAMLSection();
- info.set("Name", server);
- info.set("Timestamp", Calendar.getInstance().getTime().getTime());
try {
if (plugin.servers.get().getMap("Servers").getKeys().contains(server)) {
plugin.servers.get().getMap("Servers").remove(server);
plugin.servers.save();
}
- if (!to.exists()) to.mkdirs();
- FileWriter writer = new FileWriter(new File(to, "info.json"), false);
- writer.write(info.toJSON().toString());
- writer.close();
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java
index 7c7857df..5919fc73 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java
@@ -210,7 +210,7 @@ public class InternalSubCreator extends SubCreator {
server.set("Port", port);
server.set("Motd", "Some SubServer");
server.set("Log", true);
- server.set("Directory", "." + File.separatorChar + name);
+ server.set("Directory", "./" + name);
server.set("Executable", "java -Xmx1024M -jar " + template.getType().toString() + ".jar");
server.set("Stop-Command", "stop");
server.set("Stop-Action", "NONE");
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java
index d1dad1d5..ea5fc4f8 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java
@@ -43,7 +43,7 @@ public class PacketExCreateServer implements PacketObjectIn, PacketObje
*/
@SafeVarargs
public PacketExCreateServer(String name, SubCreator.ServerTemplate template, Version version, int port, UUID log, Callback>... callback) {
- if (Util.isNull(name, template, version, port, log, callback)) throw new NullPointerException();
+ if (Util.isNull(name, template, port, log, callback)) throw new NullPointerException();
this.name = name;
this.template = template;
this.version = version;
@@ -64,7 +64,7 @@ public class PacketExCreateServer implements PacketObjectIn, PacketObje
data.set(0x0003, template.getName());
data.set(0x0004, version);
data.set(0x0005, port);
- data.set(0x0006, log.toString());
+ data.set(0x0006, log);
}
return data;
}
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDownloadTemplates.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDownloadTemplates.java
index 89abfc6a..462adf67 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDownloadTemplates.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDownloadTemplates.java
@@ -36,6 +36,7 @@ public class PacketExDownloadTemplates implements PacketIn, PacketStreamOut {
public void send(SubDataClient client, OutputStream stream) throws Throwable {
try {
Util.zip(new UniversalFile(plugin.dir, "SubServers:Templates"), stream);
+ stream.close();
} catch (Exception e) {
System.out.println("SubData > Problem encoding template files for Host: " + host.getName());
e.printStackTrace();
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java
index 145cc550..892d8d40 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java
@@ -21,6 +21,7 @@ import java.util.Map;
public class PacketLinkExHost implements InitialPacket, PacketObjectIn, PacketObjectOut {
private SubPlugin plugin;
private int response;
+ private String message;
/**
* New PacketLinkExHost (In)
@@ -36,15 +37,19 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn,
* New PacketLinkExHost (Out)
*
* @param response Response ID
+ * @param message Message
*/
- public PacketLinkExHost(int response) {
+ public PacketLinkExHost(int response, String message) {
+ if (Util.isNull(response)) throw new NullPointerException();
this.response = response;
+ this.message = message;
}
@Override
public ObjectMap send(SubDataClient client) {
ObjectMap data = new ObjectMap();
data.set(0x0001, response);
+ if (message != null) data.set(0x0002, message);
return data;
}
@@ -59,20 +64,20 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn,
HashMap subdata = Util.getDespiteException(() -> Util.reflect(ExternalHost.class.getDeclaredField("subdata"), host), null);
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
((ExternalHost) host).setSubData(client, channel);
- System.out.println("SubData > " + client.getAddress().toString() + " has been defined as Host: " + host.getName() + ((channel > 0)?" (Sub "+channel+")":""));
- client.sendPacket(new PacketLinkExHost(0));
+ System.out.println("SubData > " + client.getAddress().toString() + " has been defined as Host: " + host.getName() + ((channel > 0)?" (Sub-"+channel+")":""));
+ client.sendPacket(new PacketLinkExHost(0, null));
setReady(client, true);
} else {
- client.sendPacket(new PacketLinkExHost(3));
+ client.sendPacket(new PacketLinkExHost(3, "Host already linked"));
}
} else {
- client.sendPacket(new PacketLinkExHost(4));
+ client.sendPacket(new PacketLinkExHost(4, "That host does not support a network interface"));
}
} else {
- client.sendPacket(new PacketLinkExHost(2));
+ client.sendPacket(new PacketLinkExHost(2, "There is no host with name: " + data.getRawString(0x0000)));
}
} catch (Throwable e) {
- client.sendPacket(new PacketLinkExHost(1));
+ client.sendPacket(new PacketLinkExHost(1, null));
e.printStackTrace();
}
}
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java
index 98642a2b..3c588204 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java
@@ -21,6 +21,7 @@ import java.util.Map;
public class PacketLinkProxy implements InitialPacket, PacketObjectIn, PacketObjectOut {
private SubPlugin plugin;
private int response;
+ private String message;
private String name;
/**
@@ -39,9 +40,10 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn,
* @param name The name that was generated
* @param response Response ID
*/
- public PacketLinkProxy(String name, int response) {
+ public PacketLinkProxy(String name, int response, String message) {
this.name = name;
this.response = response;
+ this.message = message;
}
@Override
@@ -49,6 +51,7 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn,
ObjectMap json = new ObjectMap();
json.set(0x0000, name);
json.set(0x0001, response);
+ if (message != null) json.set(0x0002, message);
return json;
}
@@ -69,15 +72,15 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn,
HashMap subdata = Util.getDespiteException(() -> Util.reflect(Proxy.class.getDeclaredField("subdata"), proxy), null);
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
proxy.setSubData(client, channel);
- System.out.println("SubData > " + client.getAddress().toString() + " has been defined as Proxy: " + proxy.getName() + ((channel > 0)?" (Sub "+channel+")":""));
- client.sendPacket(new PacketLinkProxy(proxy.getName(), 0));
+ System.out.println("SubData > " + client.getAddress().toString() + " has been defined as Proxy: " + proxy.getName() + ((channel > 0)?" (Sub-"+channel+")":""));
+ client.sendPacket(new PacketLinkProxy(proxy.getName(), 0, null));
setReady(client, true);
} else {
- client.sendPacket(new PacketLinkProxy(proxy.getName(), 2));
+ client.sendPacket(new PacketLinkProxy(proxy.getName(), 2, "Proxy already linked"));
}
} catch (Throwable e) {
- client.sendPacket(new PacketLinkProxy(null, 1));
+ client.sendPacket(new PacketLinkProxy(null, 1, null));
e.printStackTrace();
}
}
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java
index 0455194d..7623882c 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java
@@ -100,7 +100,7 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn,
HashMap subdata = Util.getDespiteException(() -> Util.reflect(ServerContainer.class.getDeclaredField("subdata"), server), null);
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
server.setSubData(client, channel);
- System.out.println("SubData > " + client.getAddress().toString() + " has been defined as " + ((server instanceof SubServer) ? "SubServer" : "Server") + ": " + server.getName() + ((channel > 0)?" (Sub "+channel+")":""));
+ System.out.println("SubData > " + client.getAddress().toString() + " has been defined as " + ((server instanceof SubServer) ? "SubServer" : "Server") + ": " + server.getName() + ((channel > 0)?" (Sub-"+channel+")":""));
if (server instanceof SubServer && !((SubServer) server).isRunning()) {
System.out.println("SubServers > Sending shutdown signal to rogue SubServer: " + server.getName());
client.sendPacket(new PacketOutExReset("Rogue SubServer Detected"));
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
index 7bd451c9..3103c264 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
@@ -285,7 +285,7 @@ public final class SubCommand extends CommandX {
sender.sendMessage(" -> Address: " + ChatColor.WHITE + server.getAddress().getAddress().getHostAddress()+':'+server.getAddress().getPort());
if (server instanceof SubServer) sender.sendMessage(" -> Running: " + ((((SubServer) server).isRunning())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
if (!(server instanceof SubServer) || ((SubServer) server).isRunning()) {
- sender.sendMessage(" -> Connected: " + ((server.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((server.getSubData().length > 1)?ChatColor.AQUA+" +"+(server.getSubData().length-1):""):ChatColor.RED+"no"));
+ sender.sendMessage(" -> Connected: " + ((server.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((server.getSubData().length > 1)?ChatColor.AQUA+" +"+(server.getSubData().length-1)+" subchannel"+((server.getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(" -> Players: " + ChatColor.AQUA + server.getPlayers().size() + " online");
}
sender.sendMessage(" -> MOTD: " + ChatColor.WHITE + ChatColor.stripColor(server.getMotd()));
@@ -330,7 +330,7 @@ public final class SubCommand extends CommandX {
sender.sendMessage(" -> Available: " + ((host.isAvailable())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
sender.sendMessage(" -> Enabled: " + ((host.isEnabled())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
sender.sendMessage(" -> Address: " + ChatColor.WHITE + host.getAddress().getHostAddress());
- if (host instanceof ClientHandler) sender.sendMessage(" -> Connected: " + ((((ClientHandler) host).getSubData()[0] != null)?ChatColor.GREEN+"yes"+((((ClientHandler) host).getSubData().length > 1)?ChatColor.AQUA+" +"+(((ClientHandler) host).getSubData().length-1):""):ChatColor.RED+"no"));
+ if (host instanceof ClientHandler) sender.sendMessage(" -> Connected: " + ((((ClientHandler) host).getSubData()[0] != null)?ChatColor.GREEN+"yes"+((((ClientHandler) host).getSubData().length > 1)?ChatColor.AQUA+" +"+(((ClientHandler) host).getSubData().length-1)+" subchannel"+((((ClientHandler) host).getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(" -> SubServers: " + ((host.getSubServers().keySet().size() <= 0)?ChatColor.GRAY + "(none)":ChatColor.AQUA.toString() + host.getSubServers().keySet().size()));
for (SubServer subserver : host.getSubServers().values()) sender.sendMessage(" - " + ((subserver.isEnabled())?ChatColor.WHITE:ChatColor.GRAY) + subserver.getDisplayName() + ((subserver.getName().equals(subserver.getDisplayName()))?"":" ("+subserver.getName()+')'));
sender.sendMessage(" -> Templates: " + ((host.getCreator().getTemplates().keySet().size() <= 0)?ChatColor.GRAY + "(none)":ChatColor.AQUA.toString() + host.getCreator().getTemplates().keySet().size()));
@@ -349,7 +349,7 @@ public final class SubCommand extends CommandX {
if (proxy != null) {
sender.sendMessage("SubServers > Info on Proxy: " + ChatColor.WHITE + proxy.getDisplayName());
if (!proxy.getName().equals(proxy.getDisplayName())) sender.sendMessage(" -> System Name: " + ChatColor.WHITE + proxy.getName());
- sender.sendMessage(" -> Connected: " + ((proxy.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((proxy.getSubData().length > 1)?ChatColor.AQUA+" +"+(proxy.getSubData().length-1):""):ChatColor.RED+"no"));
+ sender.sendMessage(" -> Connected: " + ((proxy.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((proxy.getSubData().length > 1)?ChatColor.AQUA+" +"+(proxy.getSubData().length-1)+" subchannel"+((proxy.getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(" -> Redis: " + ((proxy.isRedis())?ChatColor.GREEN:ChatColor.RED+"un") + "available");
if (proxy.isRedis()) sender.sendMessage(" -> Players: " + ChatColor.AQUA + proxy.getPlayers().size() + " online");
sender.sendMessage(" -> Signature: " + ChatColor.AQUA + proxy.getSignature());
diff --git a/SubServers.Client/Bukkit/pom.xml b/SubServers.Client/Bukkit/pom.xml
index ef3cbc1f..8b7e133e 100644
--- a/SubServers.Client/Bukkit/pom.xml
+++ b/SubServers.Client/Bukkit/pom.xml
@@ -48,13 +48,13 @@
net.ME1312.Galaxi
GalaxiUtil
- 19w19c
+ 19w20a
compile
net.ME1312.SubData
Client
- 19w19f
+ 19w20f
compile
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Metrics.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Metrics.java
index df718d68..a14bc425 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Metrics.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Metrics.java
@@ -234,7 +234,7 @@ public class Metrics {
} catch (NoSuchFieldException ignored) { }
}
- data.put("plugins", pluginData);
+ data.put("Plugins", pluginData);
// Create a new thread for the connection to the bStats server
new Thread(new Runnable() {
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketDownloadLang.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketDownloadLang.java
index e5e73388..8e405255 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketDownloadLang.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketDownloadLang.java
@@ -15,7 +15,7 @@ import java.util.Calendar;
/**
* Download Lang Packet
*/
-public class PacketDownloadLang implements PacketObjectIn, PacketObjectOut {
+public class PacketDownloadLang implements PacketObjectIn, PacketOut {
private SubPlugin plugin;
/**
@@ -33,11 +33,6 @@ public class PacketDownloadLang implements PacketObjectIn, PacketObject
*/
public PacketDownloadLang() {}
- @Override
- public ObjectMap send(SubDataClient subDataClient) throws Throwable {
- return null;
- }
-
@Override
public void receive(SubDataClient client, ObjectMap data) {
try {
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubProtocol.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubProtocol.java
index 8a7c286e..9e108a18 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubProtocol.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubProtocol.java
@@ -23,7 +23,6 @@ import java.util.logging.Logger;
public class SubProtocol extends SubDataProtocol {
private static SubProtocol instance;
- private static Logger log;
private SubProtocol() {}
@SuppressWarnings("deprecation")
@@ -32,33 +31,6 @@ public class SubProtocol extends SubDataProtocol {
instance = new SubProtocol();
SubPlugin plugin = SubAPI.getInstance().getInternals();
- log = Logger.getAnonymousLogger();
- log.setUseParentHandlers(false);
- log.addHandler(new Handler() {
- private boolean open = true;
-
- @Override
- public void publish(LogRecord record) {
- if (open) {
- if (plugin.isEnabled()) {
- Bukkit.getScheduler().runTask(plugin, () -> Bukkit.getLogger().log(record.getLevel(), "SubData > " + record.getMessage(), record.getParameters()));
- } else {
- Bukkit.getLogger().log(record.getLevel(), "SubData > " + record.getMessage(), record.getParameters());
- }
- }
- }
-
- @Override
- public void flush() {
-
- }
-
- @Override
- public void close() throws SecurityException {
- open = false;
- }
- });
-
instance.setName("SubServers 2");
instance.addVersion(new Version("2.14a+"));
@@ -125,16 +97,50 @@ public class SubProtocol extends SubDataProtocol {
return instance;
}
+ @SuppressWarnings("deprecation")
+ private Logger getLogger(int channel) {
+ SubPlugin plugin = SubAPI.getInstance().getInternals();
+ Logger log = Logger.getAnonymousLogger();
+ log.setUseParentHandlers(false);
+ log.addHandler(new Handler() {
+ private boolean open = true;
+ private String prefix = "SubData" + ((channel != 0)? "/Sub-"+channel:"");
+
+ @Override
+ public void publish(LogRecord record) {
+ if (open) {
+ if (plugin.isEnabled()) {
+ Bukkit.getScheduler().runTask(plugin, () -> Bukkit.getLogger().log(record.getLevel(), prefix + " > " + record.getMessage(), record.getParameters()));
+ } else {
+ Bukkit.getLogger().log(record.getLevel(), prefix + " > " + record.getMessage(), record.getParameters());
+ }
+ }
+ }
+
+ @Override
+ public void flush() {
+
+ }
+
+ @Override
+ public void close() throws SecurityException {
+ open = false;
+ }
+ });
+
+ return log;
+ }
+
@Override
protected SubDataClient sub(Callback scheduler, Logger logger, InetAddress address, int port) throws IOException {
SubPlugin plugin = SubAPI.getInstance().getInternals();
- SubDataClient subdata = super.open(scheduler, logger, address, port);
HashMap map = Util.getDespiteException(() -> Util.reflect(SubPlugin.class.getDeclaredField("subdata"), plugin), null);
int channel = 1;
while (map.keySet().contains(channel)) channel++;
final int fc = channel;
+ SubDataClient subdata = super.open(scheduler, getLogger(fc), address, port);
map.put(fc, subdata);
subdata.sendPacket(new PacketLinkServer(plugin, fc));
subdata.on.closed(client -> map.remove(fc));
@@ -193,6 +199,6 @@ public class SubProtocol extends SubDataProtocol {
}
public SubDataClient open(InetAddress address, int port) throws IOException {
- return open(log, address, port);
+ return open(getLogger(0), address, port);
}
}
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
index 135ab255..5a160cfa 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
@@ -237,7 +237,7 @@ public final class SubCommand extends BukkitCommand {
else sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Port") + ChatColor.AQUA.toString() + server.getAddress().getPort());
if (server instanceof SubServer) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Running") + ((((SubServer) server).isRunning())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
if (!(server instanceof SubServer) || ((SubServer) server).isRunning()) {
- sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((server.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((server.getSubData().length > 1)?ChatColor.AQUA+" +"+(server.getSubData().length-1):""):ChatColor.RED+"no"));
+ sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((server.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((server.getSubData().length > 1)?ChatColor.AQUA+" +"+(server.getSubData().length-1)+" subchannel"+((server.getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Players") + ChatColor.AQUA + server.getPlayers().size() + " online");
}
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "MOTD") + ChatColor.WHITE + ChatColor.stripColor(server.getMotd()));
@@ -280,7 +280,7 @@ public final class SubCommand extends BukkitCommand {
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Available") + ((host.isAvailable())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Enabled") + ((host.isEnabled())?ChatColor.GREEN+"yes":ChatColor.RED+"no"));
if (plugin.config.get().getMap("Settings").getBoolean("Show-Addresses", false)) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Address") + ChatColor.WHITE + host.getAddress().getHostAddress());
- if (host.getSubData().length > 0) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((host.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((host.getSubData().length > 1)?ChatColor.AQUA+" +"+(host.getSubData().length-1):""):ChatColor.RED+"no"));
+ if (host.getSubData().length > 0) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((host.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((host.getSubData().length > 1)?ChatColor.AQUA+" +"+(host.getSubData().length-1)+" subchannel"+((host.getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "SubServers") + ((host.getSubServers().keySet().size() <= 0)?ChatColor.GRAY + "(none)":ChatColor.AQUA.toString() + host.getSubServers().keySet().size()));
for (SubServer subserver : host.getSubServers().values()) sender.sendMessage(" " + plugin.api.getLang("SubServers", "Command.Info.List") + ((subserver.isEnabled())?ChatColor.WHITE:ChatColor.GRAY) + subserver.getDisplayName() + ((subserver.getName().equals(subserver.getDisplayName()))?"":" ("+subserver.getName()+')'));
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Templates") + ((host.getCreator().getTemplates().keySet().size() <= 0)?ChatColor.GRAY + "(none)":ChatColor.AQUA.toString() + host.getCreator().getTemplates().keySet().size()));
@@ -298,7 +298,7 @@ public final class SubCommand extends BukkitCommand {
if (proxy != null) {
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info").replace("$str$", "Proxy") + ChatColor.WHITE + proxy.getDisplayName());
if (!proxy.getName().equals(proxy.getDisplayName())) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "System Name") + ChatColor.WHITE + proxy.getName());
- sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((proxy.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((proxy.getSubData().length > 1)?ChatColor.AQUA+" +"+(proxy.getSubData().length-1):""):ChatColor.RED+"no"));
+ sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected") + ((proxy.getSubData()[0] != null)?ChatColor.GREEN+"yes"+((proxy.getSubData().length > 1)?ChatColor.AQUA+" +"+(proxy.getSubData().length-1)+" subchannel"+((proxy.getSubData().length == 2)?"":"s"):""):ChatColor.RED+"no"));
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Redis") + ((proxy.isRedis())?ChatColor.GREEN:ChatColor.RED+"un") + "available");
if (proxy.isRedis()) sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Players") + ChatColor.AQUA + proxy.getPlayers().size() + " online");
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Signature") + ChatColor.AQUA + proxy.getSignature());
diff --git a/SubServers.Client/Sponge/pom.xml b/SubServers.Client/Sponge/pom.xml
index 0f215bbf..9a198b1f 100644
--- a/SubServers.Client/Sponge/pom.xml
+++ b/SubServers.Client/Sponge/pom.xml
@@ -30,13 +30,13 @@
net.ME1312.Galaxi
GalaxiUtil
- 19w19c
+ 19w20a
compile
net.ME1312.SubData
Client
- 19w19f
+ 19w20f
compile
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Event/SubCreateEvent.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Event/SubCreateEvent.java
index c37a6d4e..84ca87db 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Event/SubCreateEvent.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Event/SubCreateEvent.java
@@ -30,7 +30,7 @@ public class SubCreateEvent extends AbstractEvent implements SubEvent {
* @param port Server Port Number
*/
public SubCreateEvent(UUID player, String host, String name, String template, Version version, int port) {
- if (Util.isNull(host, name, template, version, port)) throw new NullPointerException();
+ if (Util.isNull(host, name, template, port)) throw new NullPointerException();
this.player = player;
this.host = host;
this.name = name;
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketDownloadLang.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketDownloadLang.java
index 5f4f9cbb..489880cc 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketDownloadLang.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketDownloadLang.java
@@ -5,6 +5,7 @@ import net.ME1312.Galaxi.Library.NamedContainer;
import net.ME1312.Galaxi.Library.Util;
import net.ME1312.SubData.Client.Protocol.PacketObjectIn;
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
+import net.ME1312.SubData.Client.Protocol.PacketOut;
import net.ME1312.SubData.Client.SubDataClient;
import net.ME1312.SubServers.Client.Sponge.SubPlugin;
@@ -14,7 +15,7 @@ import java.util.logging.Logger;
/**
* Download Lang Packet
*/
-public class PacketDownloadLang implements PacketObjectIn, PacketObjectOut {
+public class PacketDownloadLang implements PacketObjectIn, PacketOut {
private SubPlugin plugin;
/**
@@ -32,11 +33,6 @@ public class PacketDownloadLang implements PacketObjectIn, PacketObject
*/
public PacketDownloadLang() {}
- @Override
- public ObjectMap send(SubDataClient subDataClient) throws Throwable {
- return null;
- }
-
@Override
public void receive(SubDataClient client, ObjectMap data) {
Logger log = Util.getDespiteException(() -> Util.reflect(SubDataClient.class.getDeclaredField("log"), client), null);
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubProtocol.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubProtocol.java
index c2482609..2fb59df0 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubProtocol.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubProtocol.java
@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
import org.spongepowered.api.GameState;
import org.spongepowered.api.Sponge;
+import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
@@ -28,7 +29,6 @@ import static java.util.logging.Level.*;
public class SubProtocol extends SubDataProtocol {
private static SubProtocol instance;
- private static Logger log;
private SubProtocol() {}
@SuppressWarnings("deprecation")
@@ -38,40 +38,6 @@ public class SubProtocol extends SubDataProtocol {
SubPlugin plugin = SubAPI.getInstance().getInternals();
- log = Logger.getAnonymousLogger();
- log.setUseParentHandlers(false);
- log.addHandler(new Handler() {
- private org.slf4j.Logger log = LoggerFactory.getLogger("SubData");
- private boolean open = true;
-
- @Override
- public void publish(LogRecord record) {
- if (open) {
- if (record.getLevel().intValue() == OFF.intValue()) {
- // do nothing
- } else if (record.getLevel().intValue() == FINE.intValue() || record.getLevel().intValue() == FINER.intValue() || record.getLevel().intValue() == FINEST.intValue()) {
- log.debug(record.getMessage());
- } else if (record.getLevel().intValue() == ALL.intValue() || record.getLevel().intValue() == CONFIG.intValue() || record.getLevel().intValue() == INFO.intValue()) {
- log.info(record.getMessage());
- } else if (record.getLevel().intValue() == WARNING.intValue()) {
- log.warn(record.getMessage());
- } else if (record.getLevel().intValue() == SEVERE.intValue()) {
- log.error(record.getMessage());
- }
- }
- }
-
- @Override
- public void flush() {
-
- }
-
- @Override
- public void close() throws SecurityException {
- open = false;
- }
- });
-
instance.setName("SubServers 2");
instance.addVersion(new Version("2.14a+"));
@@ -138,16 +104,54 @@ public class SubProtocol extends SubDataProtocol {
return instance;
}
+ private Logger getLogger(int channel) {
+ Logger log = Logger.getAnonymousLogger();
+ log.setUseParentHandlers(false);
+ log.addHandler(new Handler() {
+ private org.slf4j.Logger log = LoggerFactory.getLogger("SubData" + ((channel != 0)? "/Sub-"+channel:""));
+ private boolean open = true;
+
+ @Override
+ public void publish(LogRecord record) {
+ if (open) {
+ if (record.getLevel().intValue() == OFF.intValue()) {
+ // do nothing
+ } else if (record.getLevel().intValue() == FINE.intValue() || record.getLevel().intValue() == FINER.intValue() || record.getLevel().intValue() == FINEST.intValue()) {
+ log.debug(record.getMessage());
+ } else if (record.getLevel().intValue() == ALL.intValue() || record.getLevel().intValue() == CONFIG.intValue() || record.getLevel().intValue() == INFO.intValue()) {
+ log.info(record.getMessage());
+ } else if (record.getLevel().intValue() == WARNING.intValue()) {
+ log.warn(record.getMessage());
+ } else if (record.getLevel().intValue() == SEVERE.intValue()) {
+ log.error(record.getMessage());
+ }
+ }
+ }
+
+ @Override
+ public void flush() {
+
+ }
+
+ @Override
+ public void close() throws SecurityException {
+ open = false;
+ }
+ });
+
+ return log;
+ }
+
@Override
protected SubDataClient sub(Callback scheduler, Logger logger, InetAddress address, int port) throws IOException {
SubPlugin plugin = SubAPI.getInstance().getInternals();
- SubDataClient subdata = super.open(scheduler, logger, address, port);
HashMap map = Util.getDespiteException(() -> Util.reflect(SubPlugin.class.getDeclaredField("subdata"), plugin), null);
int channel = 1;
while (map.keySet().contains(channel)) channel++;
final int fc = channel;
+ SubDataClient subdata = super.open(scheduler, getLogger(fc), address, port);
map.put(fc, subdata);
subdata.sendPacket(new PacketLinkServer(plugin, fc));
subdata.on.closed(client -> map.remove(fc));
@@ -159,9 +163,9 @@ public class SubProtocol extends SubDataProtocol {
@Override
public SubDataClient open(Callback scheduler, Logger logger, InetAddress address, int port) throws IOException {
SubPlugin plugin = SubAPI.getInstance().getInternals();
- SubDataClient subdata = super.open(scheduler, logger, address, port);
HashMap map = Util.getDespiteException(() -> Util.reflect(SubPlugin.class.getDeclaredField("subdata"), plugin), null);
+ SubDataClient subdata = super.open(scheduler, logger, address, port);
subdata.sendPacket(new PacketLinkServer(plugin, 0));
subdata.sendPacket(new PacketDownloadLang());
subdata.on.ready(client -> Sponge.getEventManager().post(new SubNetworkConnectEvent((SubDataClient) client)));
@@ -205,6 +209,6 @@ public class SubProtocol extends SubDataProtocol {
}
public SubDataClient open(InetAddress address, int port) throws IOException {
- return open(log, address, port);
+ return open(getLogger(0), address, port);
}
}
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
index 9557ffe7..7692ab1a 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
@@ -526,7 +526,7 @@ public final class SubCommand implements CommandExecutor {
else sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Port")).toBuilder().append(Text.builder(Integer.toString(server.getAddress().getPort())).color(TextColors.AQUA).build()).build());
if (server instanceof SubServer) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Running")).toBuilder().append(Text.builder((((SubServer) server).isRunning())?"yes":"no").color((((SubServer) server).isRunning())?TextColors.GREEN:TextColors.RED).build()).build());
if (!(server instanceof SubServer) || ((SubServer) server).isRunning()) {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((server.getSubData()[0] != null)?"yes":"no").color((server.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((server.getSubData().length > 1)?" +"+(server.getSubData().length-1):"").color(TextColors.AQUA).build()).build());
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((server.getSubData()[0] != null)?"yes":"no").color((server.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((server.getSubData().length > 1)?" +"+(server.getSubData().length-1)+" subchannel"+((server.getSubData().length == 2)?"":"s"):"").color(TextColors.AQUA).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Players")).toBuilder().append(Text.builder(server.getPlayers().size() + " online").color(TextColors.AQUA).build()).build());
}
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "MOTD")).toBuilder().append(Text.builder(server.getMotd().replaceAll("\\u00A7[0-9a-fA-Fk-oK-ORr]", "")).color(TextColors.WHITE).build()).build());
@@ -569,7 +569,7 @@ public final class SubCommand implements CommandExecutor {
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Available")).toBuilder().append(Text.builder((host.isAvailable())?"yes":"no").color((host.isAvailable())?TextColors.GREEN:TextColors.RED).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Enabled")).toBuilder().append(Text.builder((host.isEnabled())?"yes":"no").color((host.isEnabled())?TextColors.GREEN:TextColors.RED).build()).build());
if (plugin.config.get().getMap("Settings").getBoolean("Show-Addresses", false)) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Address")).toBuilder().append(Text.builder(host.getAddress().getHostAddress()).color(TextColors.WHITE).build()).build());
- if (host.getSubData().length > 0) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((host.getSubData()[0] != null)?"yes":"no").color((host.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((host.getSubData().length > 1)?" +"+(host.getSubData().length-1):"").color(TextColors.AQUA).build()).build());
+ if (host.getSubData().length > 0) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((host.getSubData()[0] != null)?"yes":"no").color((host.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((host.getSubData().length > 1)?" +"+(host.getSubData().length-1)+" subchannel"+((host.getSubData().length == 2)?"":"s"):"").color(TextColors.AQUA).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "SubServers")).toBuilder().append(Text.builder((host.getSubServers().keySet().size() <= 0)?"(none)":Integer.toString(host.getSubServers().keySet().size())).color((host.getSubServers().keySet().size() <= 0)?TextColors.GRAY:TextColors.AQUA).build()).build());
for (SubServer subserver : host.getSubServers().values()) sender.sendMessage(ChatColor.convertColor(" " + plugin.api.getLang("SubServers", "Command.Info.List")).toBuilder().append(Text.builder(subserver.getDisplayName() + ((subserver.getName().equals(subserver.getDisplayName()))?"":" ("+subserver.getName()+')')).color((subserver.isEnabled())?TextColors.WHITE:TextColors.GRAY).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Templates")).toBuilder().append(Text.builder((host.getCreator().getTemplates().keySet().size() <= 0)?"(none)":Integer.toString(host.getCreator().getTemplates().keySet().size())).color((host.getCreator().getTemplates().keySet().size() <= 0)?TextColors.GRAY:TextColors.AQUA).build()).build());
@@ -587,7 +587,7 @@ public final class SubCommand implements CommandExecutor {
if (proxy != null) {
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info").replace("$str$", "Proxy")).toBuilder().append(Text.builder(proxy.getDisplayName()).color(TextColors.WHITE).build()).build());
if (!proxy.getName().equals(proxy.getDisplayName())) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "System Name")).toBuilder().append(Text.builder(proxy.getName()).color(TextColors.WHITE ).build()).build());
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((proxy.getSubData()[0] != null)?"yes":"no").color((proxy.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((proxy.getSubData().length > 1)?" +"+(proxy.getSubData().length-1):"").color(TextColors.AQUA).build()).build());
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Connected")).toBuilder().append(Text.builder((proxy.getSubData()[0] != null)?"yes":"no").color((proxy.getSubData()[0] != null)?TextColors.GREEN:TextColors.RED).build(), Text.builder((proxy.getSubData().length > 1)?" +"+(proxy.getSubData().length-1)+" subchannel"+((proxy.getSubData().length == 2)?"":"s"):"").color(TextColors.AQUA).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Redis") ).toBuilder().append(Text.builder(((proxy.isRedis())?"":"un") + "available").color((proxy.isRedis())?TextColors.GREEN:TextColors.RED).build()).build());
if (proxy.isRedis()) sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Players")).toBuilder().append(Text.builder(proxy.getPlayers().size() + " online").color(TextColors.AQUA).build()).build());
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers", "Command.Info.Format").replace("$str$", "Signature")).toBuilder().append(Text.builder(proxy.getSignature()).color(TextColors.AQUA).build()).build());
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
index ce8a4db3..d3cd72d7 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
@@ -57,7 +57,6 @@ public final class SubPlugin {
@Inject public Game game;
private boolean reconnect = false;
- private boolean scheduling = false;
@Listener
public void setup(GamePreInitializationEvent event) {
@@ -94,7 +93,6 @@ public final class SubPlugin {
Files.move(new UniversalFile(new File(System.getProperty("user.dir")), "subdata.rsa.key").toPath(), new UniversalFile(dir, "subdata.rsa.key").toPath());
}
- scheduling = true;
subprotocol = SubProtocol.get();
reload(false);
@@ -196,7 +194,6 @@ public final class SubPlugin {
*/
@Listener
public void disable(GameStoppingEvent event) {
- scheduling = false;
if (subdata != null) try {
reconnect = false;
diff --git a/SubServers.Client/config.yml b/SubServers.Client/config.yml
deleted file mode 100644
index 180f1f0c..00000000
--- a/SubServers.Client/config.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-Settings:
- Version: '2.11.2a+'
- Ingame-Access: true
- Show-Addresses: false
- Use-Title-Messages: true
- SubData:
- Address: '127.0.0.1:4391'
- Password: 'default'
- Encryption: 'AES'
\ No newline at end of file
diff --git a/SubServers.Console/src/bungee.yml b/SubServers.Console/src/bungee.yml
index 67a227e2..1cb11abc 100644
--- a/SubServers.Console/src/bungee.yml
+++ b/SubServers.Console/src/bungee.yml
@@ -1,4 +1,4 @@
name: SubServers-Console
main: net.ME1312.SubServers.Console.ConsolePlugin
-version: 2.13.2b
+version: 2.14a
author: ME1312
\ No newline at end of file
diff --git a/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java b/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java
index 420475ff..6ec41a14 100644
--- a/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java
+++ b/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java
@@ -1,5 +1,6 @@
package net.ME1312.SubServers.Console;
+import net.ME1312.Galaxi.Library.Callback.ExceptionReturnRunnable;
import net.ME1312.Galaxi.Library.Callback.ExceptionRunnable;
import net.ME1312.SubServers.Bungee.Host.SubCreator;
import net.ME1312.SubServers.Bungee.Host.SubLogFilter;
@@ -46,6 +47,8 @@ public final class ConsoleWindow implements SubLogFilter {
private int findO = 0;
private int findI = 0;
private boolean open = false;
+ private boolean running = true;
+ private LinkedList