Add a dedicated restart packet
I don't reccommend using this packet over the start & stop combination because of the lack of feedback you get in comparision. However, if the server sending the packet is requesting to restart itself then this is your only option, so that's why it's here.
This commit is contained in:
parent
cd5bdbaa35
commit
361acf7b17
|
@ -133,7 +133,7 @@ public class Client {
|
|||
*/
|
||||
public void sendPacket(PacketOut packet) {
|
||||
if (Util.isNull(packet)) throw new NullPointerException();
|
||||
try {
|
||||
if (!isClosed()) try {
|
||||
out.packValue(subdata.getCipher().encrypt(subdata.plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), SubDataServer.encodePacket(this, packet)));
|
||||
out.flush();
|
||||
} catch (Throwable e) {
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Restart Server Packet
|
||||
*/
|
||||
public class PacketRestartServer implements PacketIn, PacketOut {
|
||||
private SubPlugin plugin;
|
||||
private int response;
|
||||
private String message;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (In)
|
||||
*
|
||||
* @param plugin SubPlugin
|
||||
*/
|
||||
public PacketRestartServer(SubPlugin plugin) {
|
||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (Out)
|
||||
*
|
||||
* @param response Response ID
|
||||
* @param message Message
|
||||
* @param id Receiver ID
|
||||
*/
|
||||
public PacketRestartServer(int response, String message, String id) {
|
||||
if (Util.isNull(response, message)) throw new NullPointerException();
|
||||
this.response = response;
|
||||
this.message = message;
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public YAMLSection generate() {
|
||||
YAMLSection json = new YAMLSection();
|
||||
if (id != null) json.set("id", id);
|
||||
json.set("r", response);
|
||||
json.set("m", message);
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(Client client, YAMLSection data) {
|
||||
try {
|
||||
Runnable starter = () -> {
|
||||
Map<String, Server> servers = plugin.api.getServers();
|
||||
if (!servers.keySet().contains(data.getRawString("server").toLowerCase())) {
|
||||
} else if (!(servers.get(data.getRawString("server").toLowerCase()) instanceof SubServer)) {
|
||||
} else if (!((SubServer) servers.get(data.getRawString("server").toLowerCase())).getHost().isAvailable()) {
|
||||
} else if (!((SubServer) servers.get(data.getRawString("server").toLowerCase())).getHost().isEnabled()) {
|
||||
} else if (!((SubServer) servers.get(data.getRawString("server").toLowerCase())).isEnabled()) {
|
||||
} else if (((SubServer) servers.get(data.getRawString("server").toLowerCase())).isRunning()) {
|
||||
} else if (((SubServer) servers.get(data.getRawString("server").toLowerCase())).getCurrentIncompatibilities().size() != 0) {
|
||||
} else {
|
||||
((SubServer) servers.get(data.getRawString("server").toLowerCase())).start((data.contains("player"))?data.getUUID("player"):null);
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Server> servers = plugin.api.getServers();
|
||||
if (!servers.keySet().contains(data.getRawString("server").toLowerCase())) {
|
||||
client.sendPacket(new PacketRestartServer(3, "There is no server with that name", (data.contains("id"))?data.getRawString("id"):null));
|
||||
} else if (!(servers.get(data.getRawString("server").toLowerCase()) instanceof SubServer)) {
|
||||
client.sendPacket(new PacketRestartServer(4, "That Server is not a SubServer", (data.contains("id"))?data.getRawString("id"):null));
|
||||
} else {
|
||||
client.sendPacket(new PacketRestartServer(0, "Restarting SubServer", (data.contains("id"))?data.getRawString("id"):null));
|
||||
if (((SubServer) servers.get(data.getRawString("server").toLowerCase())).isRunning()) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
((SubServer) servers.get(data.getRawString("server").toLowerCase())).stop();
|
||||
((SubServer) servers.get(data.getRawString("server").toLowerCase())).waitFor();
|
||||
Thread.sleep(100);
|
||||
starter.run();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, "SubServers.Bungee::Server_Restart_Packet_Handler(" + servers.get(data.getRawString("server").toLowerCase()).getName() + ')').start();
|
||||
} else {
|
||||
starter.run();
|
||||
}
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
client.sendPacket(new PacketRestartServer(2, e.getClass().getCanonicalName() + ": " + e.getMessage(), (data.contains("id"))?data.getRawString("id"):null));
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
}
|
|
@ -106,6 +106,7 @@ public final class SubDataServer {
|
|||
registerPacket(new PacketLinkExHost(plugin), "SubServers", "LinkExHost");
|
||||
registerPacket(new PacketLinkProxy(plugin), "SubServers", "LinkProxy");
|
||||
registerPacket(new PacketLinkServer(plugin), "SubServers", "LinkServer");
|
||||
registerPacket(new PacketRestartServer(plugin), "SubServers", "RestartServer");
|
||||
registerPacket(new PacketStartServer(plugin), "SubServers", "StartServer");
|
||||
registerPacket(new PacketStopServer(plugin), "SubServers", "StopServer");
|
||||
|
||||
|
@ -133,6 +134,7 @@ public final class SubDataServer {
|
|||
registerPacket(PacketOutRunEvent.class, "SubServers", "RunEvent");
|
||||
registerPacket(PacketOutReload.class, "SubServers", "Reload");
|
||||
registerPacket(PacketOutReset.class, "SubServers", "Reset");
|
||||
registerPacket(PacketRestartServer.class, "SubServers", "RestartServer");
|
||||
registerPacket(PacketStartServer.class, "SubServers", "StartServer");
|
||||
registerPacket(PacketStopServer.class, "SubServers", "StopServer");
|
||||
}
|
||||
|
|
|
@ -455,7 +455,7 @@ public final class SubCommand extends CommandX {
|
|||
e.printStackTrace();
|
||||
}
|
||||
}, "SubServers.Bungee::Server_Restart_Command_Handler(" + servers.get(args[1].toLowerCase()).getName() + ')').start();
|
||||
} else {
|
||||
} else {
|
||||
starter.run();
|
||||
}
|
||||
} else {
|
||||
|
@ -639,7 +639,7 @@ public final class SubCommand extends CommandX {
|
|||
String last = (args.length > 0)?args[args.length - 1].toLowerCase():"";
|
||||
if (args.length <= 1) {
|
||||
List<String> cmds = new ArrayList<>();
|
||||
cmds.addAll(Arrays.asList("help", "list", "info", "status", "version", "start", "stop", "kill", "terminate", "cmd", "command", "create"));
|
||||
cmds.addAll(Arrays.asList("help", "list", "info", "status", "version", "start", "stop", "restart", "kill", "terminate", "cmd", "command", "create"));
|
||||
if (!(sender instanceof ProxiedPlayer)) cmds.addAll(Arrays.asList("reload", "sudo", "screen", "delete"));
|
||||
if (last.length() == 0) {
|
||||
return new NamedContainer<>(null, cmds);
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package net.ME1312.SubServers.Client.Bukkit.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Callback;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Util;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Network.PacketOut;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Restart Server Packet
|
||||
*/
|
||||
public class PacketRestartServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (In)
|
||||
*/
|
||||
public PacketRestartServer() {}
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketRestartServer(UUID player, String server, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, callback)) throw new NullPointerException();
|
||||
this.player = player;
|
||||
this.server = server;
|
||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID).toString();
|
||||
callbacks.put(id, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public YAMLSection generate() {
|
||||
YAMLSection data = new YAMLSection();
|
||||
data.set("id", id);
|
||||
if (player != null) data.set("player", player.toString());
|
||||
data.set("server", server);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(YAMLSection data) {
|
||||
for (Callback<YAMLSection> callback : callbacks.get(data.getRawString("id"))) callback.run(data);
|
||||
callbacks.remove(data.getRawString("id"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
}
|
|
@ -10,6 +10,9 @@ import net.ME1312.SubServers.Client.Bukkit.Network.PacketOut;
|
|||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Stop Server Packet
|
||||
*/
|
||||
public class PacketStopServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
|
@ -17,8 +20,19 @@ public class PacketStopServer implements PacketIn, PacketOut {
|
|||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketStopServer (In)
|
||||
*/
|
||||
public PacketStopServer() {}
|
||||
|
||||
/**
|
||||
* New PacketStopServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param force Force Stop
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketStopServer(UUID player, String server, boolean force, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, force, callback)) throw new NullPointerException();
|
||||
|
|
|
@ -113,6 +113,7 @@ public final class SubDataClient {
|
|||
registerPacket(new PacketInReload(plugin), "SubServers", "Reload");
|
||||
registerPacket(new PacketInReset(), "SubServers", "Reset");
|
||||
registerPacket(new PacketLinkServer(plugin), "SubServers", "LinkServer");
|
||||
registerPacket(new PacketRestartServer(), "SubServers", "RestartServer");
|
||||
registerPacket(new PacketStartServer(), "SubServers", "StartServer");
|
||||
registerPacket(new PacketStopServer(), "SubServers", "StopServer");
|
||||
|
||||
|
@ -128,6 +129,7 @@ public final class SubDataClient {
|
|||
registerPacket(PacketDownloadProxyInfo.class, "SubServers", "DownloadProxyInfo");
|
||||
registerPacket(PacketDownloadServerInfo.class, "SubServers", "DownloadServerInfo");
|
||||
registerPacket(PacketLinkServer.class, "SubServers", "LinkServer");
|
||||
registerPacket(PacketRestartServer.class, "SubServers", "RestartServer");
|
||||
registerPacket(PacketStartServer.class, "SubServers", "StartServer");
|
||||
registerPacket(PacketStopServer.class, "SubServers", "StopServer");
|
||||
}
|
||||
|
|
|
@ -414,7 +414,7 @@ public final class SubCommand implements CommandExecutor {
|
|||
}
|
||||
});
|
||||
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], false, data -> {
|
||||
Callback<YAMLSection> stopper = data -> {
|
||||
if (data.getInt("r") != 0) listening.set(false);
|
||||
switch (data.getInt("r")) {
|
||||
case 3:
|
||||
|
@ -433,7 +433,14 @@ public final class SubCommand implements CommandExecutor {
|
|||
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Restart"));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
};
|
||||
|
||||
if (plugin.subdata.getName().equalsIgnoreCase(args[1])) {
|
||||
listening.set(false);
|
||||
plugin.subdata.sendPacket(new PacketRestartServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], stopper));
|
||||
} else {
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], false, stopper));
|
||||
}
|
||||
} else if (!(sender.hasPermission("subservers.subserver.stop.*") || sender.hasPermission("subservers.subserver.stop." + args[1].toLowerCase()))) {
|
||||
sender.sendMessage(plugin.api.getLang("SubServers", "Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + args[1].toLowerCase()));
|
||||
} else {
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package net.ME1312.SubServers.Client.Sponge.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Client.Sponge.Library.Callback;
|
||||
import net.ME1312.SubServers.Client.Sponge.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Client.Sponge.Library.Util;
|
||||
import net.ME1312.SubServers.Client.Sponge.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Client.Sponge.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Client.Sponge.Network.PacketOut;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Restart Server Packet
|
||||
*/
|
||||
public class PacketRestartServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (In)
|
||||
*/
|
||||
public PacketRestartServer() {}
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketRestartServer(UUID player, String server, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, callback)) throw new NullPointerException();
|
||||
this.player = player;
|
||||
this.server = server;
|
||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID).toString();
|
||||
callbacks.put(id, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public YAMLSection generate() {
|
||||
YAMLSection data = new YAMLSection();
|
||||
data.set("id", id);
|
||||
if (player != null) data.set("player", player.toString());
|
||||
data.set("server", server);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(YAMLSection data) {
|
||||
for (Callback<YAMLSection> callback : callbacks.get(data.getRawString("id"))) callback.run(data);
|
||||
callbacks.remove(data.getRawString("id"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
}
|
|
@ -10,6 +10,9 @@ import net.ME1312.SubServers.Client.Sponge.Network.PacketOut;
|
|||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Stop Server Packet
|
||||
*/
|
||||
public class PacketStopServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
|
@ -17,8 +20,19 @@ public class PacketStopServer implements PacketIn, PacketOut {
|
|||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketStopServer (In)
|
||||
*/
|
||||
public PacketStopServer() {}
|
||||
|
||||
/**
|
||||
* New PacketStopServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param force Force Stop
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketStopServer(UUID player, String server, boolean force, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, force, callback)) throw new NullPointerException();
|
||||
|
|
|
@ -117,6 +117,7 @@ public final class SubDataClient {
|
|||
registerPacket(new PacketInReload(plugin), "SubServers", "Reload");
|
||||
registerPacket(new PacketInReset(), "SubServers", "Reset");
|
||||
registerPacket(new PacketLinkServer(plugin), "SubServers", "LinkServer");
|
||||
registerPacket(new PacketRestartServer(), "SubServers", "RestartServer");
|
||||
registerPacket(new PacketStartServer(), "SubServers", "StartServer");
|
||||
registerPacket(new PacketStopServer(), "SubServers", "StopServer");
|
||||
|
||||
|
@ -132,6 +133,7 @@ public final class SubDataClient {
|
|||
registerPacket(PacketDownloadProxyInfo.class, "SubServers", "DownloadProxyInfo");
|
||||
registerPacket(PacketDownloadServerInfo.class, "SubServers", "DownloadServerInfo");
|
||||
registerPacket(PacketLinkServer.class, "SubServers", "LinkServer");
|
||||
registerPacket(PacketRestartServer.class, "SubServers", "RestartServer");
|
||||
registerPacket(PacketStartServer.class, "SubServers", "StartServer");
|
||||
registerPacket(PacketStopServer.class, "SubServers", "StopServer");
|
||||
}
|
||||
|
|
|
@ -737,7 +737,7 @@ public final class SubCommand implements CommandExecutor {
|
|||
}
|
||||
});
|
||||
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player) ? ((Player) sender).getUniqueId():null, subserver.get(), false, data -> {
|
||||
Callback<YAMLSection> stopper = data -> {
|
||||
if (data.getInt("r") != 0) listening.set(false);
|
||||
switch (data.getInt("r")) {
|
||||
case 3:
|
||||
|
@ -756,7 +756,14 @@ public final class SubCommand implements CommandExecutor {
|
|||
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Restart")));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
};
|
||||
|
||||
if (plugin.subdata.getName().equalsIgnoreCase(subserver.get())) {
|
||||
listening.set(false);
|
||||
plugin.subdata.sendPacket(new PacketRestartServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), stopper));
|
||||
} else {
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), false, stopper));
|
||||
}
|
||||
return CommandResult.builder().successCount(1).build();
|
||||
} else if (!sender.hasPermission("subservers.subserver.stop." + subserver.get().toLowerCase())) {
|
||||
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + subserver.get().toLowerCase())));
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package net.ME1312.SubServers.Host.Network.Packet;
|
||||
|
||||
import net.ME1312.Galaxi.Library.Callback;
|
||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||
import net.ME1312.Galaxi.Library.Util;
|
||||
import net.ME1312.Galaxi.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Host.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Host.Network.PacketOut;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Restart Server Packet
|
||||
*/
|
||||
public class PacketRestartServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (In)
|
||||
*/
|
||||
public PacketRestartServer() {}
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketRestartServer(UUID player, String server, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, callback)) throw new NullPointerException();
|
||||
this.player = player;
|
||||
this.server = server;
|
||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID).toString();
|
||||
callbacks.put(id, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public YAMLSection generate() {
|
||||
YAMLSection data = new YAMLSection();
|
||||
data.set("id", id);
|
||||
if (player != null) data.set("player", player.toString());
|
||||
data.set("server", server);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(YAMLSection data) {
|
||||
for (Callback<YAMLSection> callback : callbacks.get(data.getRawString("id"))) callback.run(data);
|
||||
callbacks.remove(data.getRawString("id"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
}
|
|
@ -10,6 +10,9 @@ import net.ME1312.SubServers.Host.Network.PacketOut;
|
|||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Stop Server Packet
|
||||
*/
|
||||
public class PacketStopServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
|
@ -17,8 +20,19 @@ public class PacketStopServer implements PacketIn, PacketOut {
|
|||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketStopServer (In)
|
||||
*/
|
||||
public PacketStopServer() {}
|
||||
|
||||
/**
|
||||
* New PacketStopServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param force Force Stop
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketStopServer(UUID player, String server, boolean force, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, force, callback)) throw new NullPointerException();
|
||||
|
|
|
@ -128,6 +128,7 @@ public final class SubDataClient {
|
|||
registerPacket(new PacketInReset(host), "SubServers", "Reset");
|
||||
registerPacket(new PacketInRunEvent(), "SubServers", "RunEvent");
|
||||
registerPacket(new PacketLinkExHost(host), "SubServers", "LinkExHost");
|
||||
registerPacket(new PacketRestartServer(), "SubServers", "RestartServer");
|
||||
registerPacket(new PacketStartServer(), "SubServers", "StartServer");
|
||||
registerPacket(new PacketStopServer(), "SubServers", "StopServer");
|
||||
|
||||
|
@ -152,6 +153,7 @@ public final class SubDataClient {
|
|||
registerPacket(PacketLinkExHost.class, "SubServers", "LinkExHost");
|
||||
registerPacket(PacketOutExLogMessage.class, "SubServers", "ExLogMessage");
|
||||
registerPacket(PacketOutExRequestQueue.class, "SubServers", "ExRequestQueue");
|
||||
registerPacket(PacketRestartServer.class, "SubServers", "RestartServer");
|
||||
registerPacket(PacketStartServer.class, "SubServers", "StartServer");
|
||||
registerPacket(PacketStopServer.class, "SubServers", "StopServer");
|
||||
}
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package net.ME1312.SubServers.Sync.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Sync.Library.Callback;
|
||||
import net.ME1312.SubServers.Sync.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Sync.Library.Util;
|
||||
import net.ME1312.SubServers.Sync.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Sync.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Sync.Network.PacketOut;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Restart Server Packet
|
||||
*/
|
||||
public class PacketRestartServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (In)
|
||||
*/
|
||||
public PacketRestartServer() {}
|
||||
|
||||
/**
|
||||
* New PacketRestartServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketRestartServer(UUID player, String server, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, callback)) throw new NullPointerException();
|
||||
this.player = player;
|
||||
this.server = server;
|
||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID).toString();
|
||||
callbacks.put(id, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public YAMLSection generate() {
|
||||
YAMLSection data = new YAMLSection();
|
||||
data.set("id", id);
|
||||
if (player != null) data.set("player", player.toString());
|
||||
data.set("server", server);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(YAMLSection data) {
|
||||
for (Callback<YAMLSection> callback : callbacks.get(data.getRawString("id"))) callback.run(data);
|
||||
callbacks.remove(data.getRawString("id"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
}
|
|
@ -10,6 +10,9 @@ import net.ME1312.SubServers.Sync.Network.PacketOut;
|
|||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Stop Server Packet
|
||||
*/
|
||||
public class PacketStopServer implements PacketIn, PacketOut {
|
||||
private static HashMap<String, Callback<YAMLSection>[]> callbacks = new HashMap<String, Callback<YAMLSection>[]>();
|
||||
private UUID player;
|
||||
|
@ -17,8 +20,19 @@ public class PacketStopServer implements PacketIn, PacketOut {
|
|||
private String server;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* New PacketStopServer (In)
|
||||
*/
|
||||
public PacketStopServer() {}
|
||||
|
||||
/**
|
||||
* New PacketStopServer (Out)
|
||||
*
|
||||
* @param player Player Starting
|
||||
* @param server Server
|
||||
* @param force Force Stop
|
||||
* @param callback Callbacks
|
||||
*/
|
||||
@SafeVarargs
|
||||
public PacketStopServer(UUID player, String server, boolean force, Callback<YAMLSection>... callback) {
|
||||
if (Util.isNull(server, force, callback)) throw new NullPointerException();
|
||||
|
|
|
@ -146,6 +146,7 @@ public final class SubDataClient {
|
|||
registerPacket(new PacketInRunEvent(plugin), "SubServers", "RunEvent");
|
||||
registerPacket(new PacketInReset(), "SubServers", "Reset");
|
||||
registerPacket(new PacketLinkProxy(plugin), "SubServers", "LinkProxy");
|
||||
registerPacket(new PacketRestartServer(), "SubServers", "RestartServer");
|
||||
registerPacket(new PacketStartServer(), "SubServers", "StartServer");
|
||||
registerPacket(new PacketStopServer(), "SubServers", "StopServer");
|
||||
|
||||
|
@ -161,6 +162,7 @@ public final class SubDataClient {
|
|||
registerPacket(PacketDownloadProxyInfo.class, "SubServers", "DownloadProxyInfo");
|
||||
registerPacket(PacketDownloadServerInfo.class, "SubServers", "DownloadServerInfo");
|
||||
registerPacket(PacketLinkProxy.class, "SubServers", "LinkProxy");
|
||||
registerPacket(PacketRestartServer.class, "SubServers", "RestartServer");
|
||||
registerPacket(PacketStartServer.class, "SubServers", "StartServer");
|
||||
registerPacket(PacketStopServer.class, "SubServers", "StopServer");
|
||||
}
|
||||
|
|
|
@ -608,7 +608,7 @@ public final class SubCommand extends CommandX {
|
|||
public NamedContainer<String, List<String>> suggestArguments(CommandSender sender, String[] args) {
|
||||
String last = (args.length > 0)?args[args.length - 1].toLowerCase():"";
|
||||
if (args.length <= 1) {
|
||||
List<String> cmds = Arrays.asList("help", "list", "info", "status", "version", "start", "stop", "kill", "terminate", "cmd", "command", "create");
|
||||
List<String> cmds = Arrays.asList("help", "list", "info", "status", "version", "start", "restart", "stop", "kill", "terminate", "cmd", "command", "create");
|
||||
if (last.length() == 0) {
|
||||
return new NamedContainer<>(null, cmds);
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue