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 d737b6d6..a229b8ca 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 @@ -177,9 +177,9 @@ public class ExternalHost extends Host implements ClientHandler { plugin.getPluginManager().callEvent(event); if (!event.isCancelled()) { queue(new PacketExAddServer(((ExternalSubServer) server), (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> { + ((ExternalSubServer) server).registered(true); if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002)); })); - ((ExternalSubServer) server).registered(true); servers.put(server.getName().toLowerCase(), server); return true; } else { 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 72c2fc26..adffab03 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 @@ -220,8 +220,14 @@ public class ExternalSubCreator extends SubCreator { } host.addSubServer(subserver); - if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true)) - subserver.start(); + if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true)) { + while (!subserver.isAvailable() && host.isAvailable()) { + Thread.sleep(250); + } + if (subserver.isAvailable()) { + subserver.start(); + } + } } host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, subserver, update != null, true));