Re-Add local templates to SubServers.Host
Local templates are now stored in `/Templates` Template cache files are still stored in `/Cache/Templates` Remote templates are now stored in `/Cache/Remote/Templates`
This commit is contained in:
parent
3fc249cf07
commit
0e8bae4187
|
@ -3,7 +3,6 @@ package net.ME1312.SubServers.Bungee.Host.External;
|
||||||
import com.google.common.collect.Range;
|
import com.google.common.collect.Range;
|
||||||
import net.ME1312.Galaxi.Library.*;
|
import net.ME1312.Galaxi.Library.*;
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
import net.ME1312.Galaxi.Library.Callback.Callback;
|
||||||
import net.ME1312.Galaxi.Library.Callback.ReturnCallback;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
|
@ -14,11 +13,12 @@ import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
||||||
import net.ME1312.SubServers.Bungee.Library.ReplacementScanner;
|
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExConfigureHost;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExConfigureHost;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExCreateServer;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExCreateServer;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExDownloadTemplates;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExDownloadTemplates;
|
||||||
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExUploadTemplates;
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
import net.ME1312.SubServers.Bungee.SubProxy;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -32,6 +32,8 @@ import java.util.*;
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class ExternalSubCreator extends SubCreator {
|
public class ExternalSubCreator extends SubCreator {
|
||||||
private HashMap<String, ServerTemplate> templates = new HashMap<String, ServerTemplate>();
|
private HashMap<String, ServerTemplate> templates = new HashMap<String, ServerTemplate>();
|
||||||
|
private HashMap<String, ServerTemplate> templatesR = new HashMap<String, ServerTemplate>();
|
||||||
|
private Boolean enableRT = false;
|
||||||
private ExternalHost host;
|
private ExternalHost host;
|
||||||
private Range<Integer> ports;
|
private Range<Integer> ports;
|
||||||
private Container<Boolean> log;
|
private Container<Boolean> log;
|
||||||
|
@ -59,13 +61,13 @@ public class ExternalSubCreator extends SubCreator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
templates.clear();
|
templatesR.clear();
|
||||||
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists()) for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
|
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists()) for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
|
||||||
try {
|
try {
|
||||||
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
||||||
ObjectMap<String> config = (new UniversalFile(file, "template.yml").exists())?new YAMLConfig(new UniversalFile(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()):new ObjectMap<String>();
|
ObjectMap<String> config = (new UniversalFile(file, "template.yml").exists())?new YAMLConfig(new UniversalFile(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()):new ObjectMap<String>();
|
||||||
ServerTemplate template = new ServerTemplate(file.getName(), config.getBoolean("Enabled", true), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
ServerTemplate template = new ServerTemplate(file.getName(), config.getBoolean("Enabled", true), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
||||||
templates.put(file.getName().toLowerCase(), template);
|
templatesR.put(file.getName().toLowerCase(), template);
|
||||||
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -74,9 +76,10 @@ public class ExternalSubCreator extends SubCreator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (host.available) {
|
if (host.available && !Util.getDespiteException(() -> Util.reflect(SubProxy.class.getDeclaredField("reloading"), host.plugin), false)) {
|
||||||
host.queue(new PacketExConfigureHost(host.plugin, host));
|
host.queue(new PacketExConfigureHost(host.plugin, host));
|
||||||
host.queue(new PacketExDownloadTemplates(host.plugin, host));
|
host.queue(new PacketExUploadTemplates(host.plugin));
|
||||||
|
if (enableRT == null || enableRT) host.queue(new PacketExDownloadTemplates(host.plugin, host));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +139,7 @@ public class ExternalSubCreator extends SubCreator {
|
||||||
SubServer subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), fport, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"), server.getRawString("Directory"),
|
SubServer subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), fport, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"), server.getRawString("Directory"),
|
||||||
server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
||||||
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
||||||
subserver.setTemplate(getTemplate(server.getRawString("Template")));
|
subserver.setTemplate(server.getRawString("Template"));
|
||||||
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
||||||
if (action != null) subserver.setStopAction(action);
|
if (action != null) subserver.setStopAction(action);
|
||||||
|
@ -315,7 +318,10 @@ public class ExternalSubCreator extends SubCreator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, ServerTemplate> getTemplates() {
|
public Map<String, ServerTemplate> getTemplates() {
|
||||||
return new TreeMap<String, ServerTemplate>(templates);
|
TreeMap<String, ServerTemplate> map = new TreeMap<String, ServerTemplate>();
|
||||||
|
if (enableRT != null && enableRT) map.putAll(templatesR);
|
||||||
|
map.putAll(templates);
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,7 +4,6 @@ import com.google.common.collect.Range;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import net.ME1312.Galaxi.Library.*;
|
import net.ME1312.Galaxi.Library.*;
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
import net.ME1312.Galaxi.Library.Callback.Callback;
|
||||||
import net.ME1312.Galaxi.Library.Callback.ReturnCallback;
|
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
||||||
|
@ -295,7 +294,7 @@ public class InternalSubCreator extends SubCreator {
|
||||||
subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"), server.getRawString("Directory"),
|
subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"), server.getRawString("Directory"),
|
||||||
server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
||||||
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
||||||
subserver.setTemplate(getTemplate(server.getRawString("Template")));
|
subserver.setTemplate(server.getRawString("Template"));
|
||||||
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
||||||
if (action != null) subserver.setStopAction(action);
|
if (action != null) subserver.setStopAction(action);
|
||||||
|
|
|
@ -240,6 +240,13 @@ public interface SubServer extends Server {
|
||||||
*/
|
*/
|
||||||
void setTemplate(SubCreator.ServerTemplate value);
|
void setTemplate(SubCreator.ServerTemplate value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the Template this Server was created from
|
||||||
|
*
|
||||||
|
* @param value Value
|
||||||
|
*/
|
||||||
|
void setTemplate(String value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is this Host Available?
|
* Is this Host Available?
|
||||||
*
|
*
|
||||||
|
|
|
@ -16,7 +16,8 @@ import java.util.*;
|
||||||
*/
|
*/
|
||||||
public abstract class SubServerImpl extends ServerImpl implements SubServer {
|
public abstract class SubServerImpl extends ServerImpl implements SubServer {
|
||||||
private List<NamedContainer<String, String>> incompatibilities = new ArrayList<NamedContainer<String, String>>();
|
private List<NamedContainer<String, String>> incompatibilities = new ArrayList<NamedContainer<String, String>>();
|
||||||
private String template = null;
|
private SubCreator.ServerTemplate templateV = null;
|
||||||
|
private String templateS = null;
|
||||||
protected boolean started;
|
protected boolean started;
|
||||||
private boolean updating;
|
private boolean updating;
|
||||||
|
|
||||||
|
@ -84,16 +85,26 @@ public abstract class SubServerImpl extends ServerImpl implements SubServer {
|
||||||
return !updating && getHost().isAvailable();
|
return !updating && getHost().isAvailable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTemplate(String template) {
|
||||||
|
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new NamedContainer<String, Object>("template", template), false));
|
||||||
|
this.templateV = null;
|
||||||
|
this.templateS = template;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTemplate(SubCreator.ServerTemplate template) {
|
public void setTemplate(SubCreator.ServerTemplate template) {
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new NamedContainer<String, Object>("template", (template != null)?template.getName():null), false));
|
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new NamedContainer<String, Object>("template", (template != null)?template.getName():null), false));
|
||||||
this.template = (template != null)?template.getName():null;
|
this.templateV = template;
|
||||||
|
this.templateS = (template != null)?template.getName():null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SubCreator.ServerTemplate getTemplate() {
|
public SubCreator.ServerTemplate getTemplate() {
|
||||||
if (template != null && getHost().getCreator().getTemplates().keySet().contains(template.toLowerCase())) {
|
if (templateV != null) {
|
||||||
return getHost().getCreator().getTemplate(template.toLowerCase());
|
return templateV;
|
||||||
|
} else if (templateS != null && getHost().getCreator().getTemplates().keySet().contains(templateS.toLowerCase())) {
|
||||||
|
return getHost().getCreator().getTemplate(templateS.toLowerCase());
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
import net.ME1312.SubServers.Bungee.Host.External.ExternalHost;
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalHost;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalSubCreator;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketIn;
|
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectOut;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectOut;
|
||||||
import net.ME1312.SubServers.Bungee.SubProxy;
|
import net.ME1312.SubServers.Bungee.SubProxy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* External Host Configuration Packet
|
* External Host Configuration Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExConfigureHost implements PacketIn, PacketObjectOut<Integer> {
|
public class PacketExConfigureHost implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private SubProxy plugin;
|
private SubProxy plugin;
|
||||||
private ExternalHost host;
|
private ExternalHost host;
|
||||||
|
|
||||||
|
@ -34,25 +35,15 @@ public class PacketExConfigureHost implements PacketIn, PacketObjectOut<Integer>
|
||||||
public ObjectMap<Integer> send(SubDataClient client) {
|
public ObjectMap<Integer> send(SubDataClient client) {
|
||||||
ObjectMap<Integer> data = new ObjectMap<Integer>();
|
ObjectMap<Integer> data = new ObjectMap<Integer>();
|
||||||
data.set(0x0000, plugin.config.get().getMap("Hosts").getMap(host.getName()).clone());
|
data.set(0x0000, plugin.config.get().getMap("Hosts").getMap(host.getName()).clone());
|
||||||
ObjectMap<String> templates = new ObjectMap<String>();
|
|
||||||
for (SubCreator.ServerTemplate template : host.getCreator().getTemplates().values()) {
|
|
||||||
ObjectMap<String> tinfo = new ObjectMap<String>();
|
|
||||||
tinfo.set("enabled", template.isEnabled());
|
|
||||||
tinfo.set("display", template.getDisplayName());
|
|
||||||
tinfo.set("icon", template.getIcon());
|
|
||||||
tinfo.set("build", template.getBuildOptions().clone());
|
|
||||||
tinfo.set("settings", template.getConfigOptions().clone());
|
|
||||||
templates.set(template.getName(), tinfo);
|
|
||||||
}
|
|
||||||
data.set(0x0001, templates);
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost && plugin.config.get().getMap("Hosts").getKeys().contains(((ExternalHost) client.getHandler()).getName())) {
|
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost && plugin.config.get().getMap("Hosts").getKeys().contains(((ExternalHost) client.getHandler()).getName())) {
|
||||||
client.sendPacket(new PacketExConfigureHost(plugin, (ExternalHost) client.getHandler()));
|
client.sendPacket(new PacketExConfigureHost(plugin, (ExternalHost) client.getHandler()));
|
||||||
|
Util.isException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), ((ExternalHost) client.getHandler()).getCreator(), ((data == null || data.getBoolean(0x0000, false))?null:false)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketIn;
|
import net.ME1312.SubData.Server.Protocol.PacketIn;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketStreamOut;
|
import net.ME1312.SubData.Server.Protocol.PacketStreamOut;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalSubCreator;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
||||||
import net.ME1312.SubServers.Bungee.SubProxy;
|
import net.ME1312.SubServers.Bungee.SubProxy;
|
||||||
|
|
||||||
|
@ -38,6 +39,8 @@ public class PacketExDownloadTemplates implements PacketIn, PacketStreamOut {
|
||||||
try {
|
try {
|
||||||
Util.zip(new UniversalFile(plugin.dir, "SubServers:Templates"), stream);
|
Util.zip(new UniversalFile(plugin.dir, "SubServers:Templates"), stream);
|
||||||
stream.close();
|
stream.close();
|
||||||
|
|
||||||
|
Util.isException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), host.getCreator(), true));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.get("SubData").info("Problem encoding template files for Host: " + host.getName());
|
Logger.get("SubData").info("Problem encoding template files for Host: " + host.getName());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.UniversalFile;
|
||||||
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
|
import net.ME1312.SubData.Server.Protocol.PacketOut;
|
||||||
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalHost;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalSubCreator;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||||
|
import net.ME1312.SubServers.Bungee.SubProxy;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External Host Template Upload Packet
|
||||||
|
*/
|
||||||
|
public class PacketExUploadTemplates implements PacketObjectIn<Integer>, PacketOut {
|
||||||
|
private SubProxy plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* New PacketExUploadTemplates
|
||||||
|
*/
|
||||||
|
public PacketExUploadTemplates(SubProxy plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
|
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost) {
|
||||||
|
HashMap<String, SubCreator.ServerTemplate> map = Util.getDespiteException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("templates"), ((ExternalHost) client.getHandler()).getCreator()), new HashMap<>());
|
||||||
|
UniversalFile templatedir = new UniversalFile(plugin.dir, "SubServers:Cache:Remote:Templates");
|
||||||
|
ObjectMap<String> templates = new ObjectMap<>((Map<String, ?>) data.getObject(0x0000));
|
||||||
|
templatedir.mkdirs();
|
||||||
|
for (String name : templates.getKeys()) {
|
||||||
|
try {
|
||||||
|
UniversalFile dir = new UniversalFile(templatedir, name);
|
||||||
|
SubCreator.ServerTemplate template = new SubCreator.ServerTemplate(name, templates.getMap(name).getBoolean("enabled"), templates.getMap(name).getRawString("icon"), dir,
|
||||||
|
templates.getMap(name).getMap("build").clone(), templates.getMap(name).getMap("settings").clone());
|
||||||
|
map.put(name.toLowerCase(), template);
|
||||||
|
if (!templates.getMap(name).getRawString("display").equals(name)) template.setDisplayName(templates.getMap(name).getRawString("display"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.getLogger("SubServers").severe("Couldn't load template: " + name);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int version() {
|
||||||
|
return 0x0001;
|
||||||
|
}
|
||||||
|
}
|
|
@ -96,26 +96,28 @@ public class SubProtocol extends SubDataProtocol {
|
||||||
|
|
||||||
// 50-6F: External Host Packets
|
// 50-6F: External Host Packets
|
||||||
instance.registerPacket(0x0050, PacketExConfigureHost.class);
|
instance.registerPacket(0x0050, PacketExConfigureHost.class);
|
||||||
instance.registerPacket(0x0051, PacketExDownloadTemplates.class);
|
instance.registerPacket(0x0051, PacketExUploadTemplates.class);
|
||||||
//instance.registerPacket(0x0052, PacketInExRequestQueue.class);
|
instance.registerPacket(0x0052, PacketExDownloadTemplates.class);
|
||||||
instance.registerPacket(0x0053, PacketExCreateServer.class);
|
//instance.registerPacket(0x0053, PacketInExRequestQueue.class);
|
||||||
instance.registerPacket(0x0054, PacketExAddServer.class);
|
instance.registerPacket(0x0054, PacketExCreateServer.class);
|
||||||
instance.registerPacket(0x0055, PacketExEditServer.class);
|
instance.registerPacket(0x0055, PacketExAddServer.class);
|
||||||
//instance.registerPacket(0x0056, PacketInExLogMessage.class);
|
instance.registerPacket(0x0056, PacketExEditServer.class);
|
||||||
instance.registerPacket(0x0057, PacketExRemoveServer.class);
|
//instance.registerPacket(0x0057, PacketInExLogMessage.class);
|
||||||
instance.registerPacket(0x0058, PacketExDeleteServer.class);
|
instance.registerPacket(0x0058, PacketExRemoveServer.class);
|
||||||
//instance.registerPacket(0x0059, PacketExRestoreServer.class);
|
instance.registerPacket(0x0059, PacketExDeleteServer.class);
|
||||||
|
//instance.registerPacket(0x005A, PacketExRestoreServer.class);
|
||||||
|
|
||||||
instance.registerPacket(0x0050, new PacketExConfigureHost(plugin));
|
instance.registerPacket(0x0050, new PacketExConfigureHost(plugin));
|
||||||
instance.registerPacket(0x0051, new PacketExDownloadTemplates(plugin));
|
instance.registerPacket(0x0051, new PacketExUploadTemplates(plugin));
|
||||||
instance.registerPacket(0x0052, new PacketInExRequestQueue(plugin));
|
instance.registerPacket(0x0052, new PacketExDownloadTemplates(plugin));
|
||||||
instance.registerPacket(0x0053, new PacketExCreateServer(null));
|
instance.registerPacket(0x0053, new PacketInExRequestQueue(plugin));
|
||||||
instance.registerPacket(0x0054, new PacketExAddServer());
|
instance.registerPacket(0x0054, new PacketExCreateServer(null));
|
||||||
instance.registerPacket(0x0055, new PacketExEditServer(plugin));
|
instance.registerPacket(0x0055, new PacketExAddServer());
|
||||||
instance.registerPacket(0x0056, new PacketInExLogMessage());
|
instance.registerPacket(0x0056, new PacketExEditServer(plugin));
|
||||||
instance.registerPacket(0x0057, new PacketExRemoveServer());
|
instance.registerPacket(0x0057, new PacketInExLogMessage());
|
||||||
instance.registerPacket(0x0058, new PacketExDeleteServer());
|
instance.registerPacket(0x0058, new PacketExRemoveServer());
|
||||||
//instance.registerPacket(0x0059, new PacketExRestoreServer());
|
instance.registerPacket(0x0059, new PacketExDeleteServer());
|
||||||
|
//instance.registerPacket(0x005A, new PacketExRestoreServer());
|
||||||
|
|
||||||
|
|
||||||
// 70-7F: External Misc Packets
|
// 70-7F: External Misc Packets
|
||||||
|
|
|
@ -83,6 +83,7 @@ public final class SubProxy extends BungeeCord implements Listener {
|
||||||
public final boolean isGalaxi;
|
public final boolean isGalaxi;
|
||||||
public long resetDate = 0;
|
public long resetDate = 0;
|
||||||
private boolean running = false;
|
private boolean running = false;
|
||||||
|
private boolean reloading = false;
|
||||||
private boolean posted = false;
|
private boolean posted = false;
|
||||||
private static BigInteger lastSignature = BigInteger.valueOf(-1);
|
private static BigInteger lastSignature = BigInteger.valueOf(-1);
|
||||||
|
|
||||||
|
@ -284,6 +285,7 @@ public final class SubProxy extends BungeeCord implements Listener {
|
||||||
long begin = Calendar.getInstance().getTime().getTime();
|
long begin = Calendar.getInstance().getTime().getTime();
|
||||||
boolean status;
|
boolean status;
|
||||||
if (!(status = running)) resetDate = begin;
|
if (!(status = running)) resetDate = begin;
|
||||||
|
reloading = true;
|
||||||
|
|
||||||
ConfigUpdater.updateConfig(new UniversalFile(dir, "SubServers:config.yml"));
|
ConfigUpdater.updateConfig(new UniversalFile(dir, "SubServers:config.yml"));
|
||||||
ConfigUpdater.updateServers(new UniversalFile(dir, "SubServers:servers.yml"));
|
ConfigUpdater.updateServers(new UniversalFile(dir, "SubServers:servers.yml"));
|
||||||
|
@ -505,7 +507,7 @@ public final class SubProxy extends BungeeCord implements Listener {
|
||||||
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Display") && ((this.servers.get().getMap("Servers").getMap(name).getRawString("Display").length() == 0 && !server.getName().equals(server.getDisplayName())) || (this.servers.get().getMap("Servers").getMap(name).getRawString("Display").length() > 0 && !this.servers.get().getMap("Servers").getMap(name).getRawString("Display").equals(server.getDisplayName()))))
|
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Display") && ((this.servers.get().getMap("Servers").getMap(name).getRawString("Display").length() == 0 && !server.getName().equals(server.getDisplayName())) || (this.servers.get().getMap("Servers").getMap(name).getRawString("Display").length() > 0 && !this.servers.get().getMap("Servers").getMap(name).getRawString("Display").equals(server.getDisplayName()))))
|
||||||
server.setDisplayName(this.servers.get().getMap("Servers").getMap(name).getRawString("Display"));
|
server.setDisplayName(this.servers.get().getMap("Servers").getMap(name).getRawString("Display"));
|
||||||
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Template") && ((this.servers.get().getMap("Servers").getMap(name).getRawString("Template").length() == 0 && server.getTemplate() != null) || (this.servers.get().getMap("Servers").getMap(name).getRawString("Template").length() > 0 && server.getTemplate() == null) || (server.getTemplate() != null && !this.servers.get().getMap("Servers").getMap(name).getString("Template").equalsIgnoreCase(server.getTemplate().getName()))))
|
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Template") && ((this.servers.get().getMap("Servers").getMap(name).getRawString("Template").length() == 0 && server.getTemplate() != null) || (this.servers.get().getMap("Servers").getMap(name).getRawString("Template").length() > 0 && server.getTemplate() == null) || (server.getTemplate() != null && !this.servers.get().getMap("Servers").getMap(name).getString("Template").equalsIgnoreCase(server.getTemplate().getName()))))
|
||||||
server.setTemplate(server.getHost().getCreator().getTemplate(this.servers.get().getMap("Servers").getMap(name).getString("Template")));
|
server.setTemplate(this.servers.get().getMap("Servers").getMap(name).getRawString("Template"));
|
||||||
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Group")) {
|
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Group")) {
|
||||||
for (String group : server.getGroups()) server.removeGroup(group);
|
for (String group : server.getGroups()) server.removeGroup(group);
|
||||||
for (String group : this.servers.get().getMap("Servers").getMap(name).getStringList("Group")) server.addGroup(group);
|
for (String group : this.servers.get().getMap("Servers").getMap(name).getStringList("Group")) server.addGroup(group);
|
||||||
|
@ -609,6 +611,7 @@ public final class SubProxy extends BungeeCord implements Listener {
|
||||||
for (Server server : api.getServers().values()) if (server.getSubData()[0] != null) ((SubDataClient) server.getSubData()[0]).sendPacket(new PacketOutExReload(null));
|
for (Server server : api.getServers().values()) if (server.getSubData()[0] != null) ((SubDataClient) server.getSubData()[0]).sendPacket(new PacketOutExReload(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reloading = false;
|
||||||
Logger.get("SubServers").info(((plugins > 0)?plugins+" Plugin"+((plugins == 1)?"":"s")+", ":"") + ((proxies > 1)?proxies+" Proxies, ":"") + hosts + " Host"+((hosts == 1)?"":"s")+", " + servers + " Server"+((servers == 1)?"":"s")+", and " + subservers + " SubServer"+((subservers == 1)?"":"s")+" "+((status)?"re":"")+"loaded in " + new DecimalFormat("0.000").format((Calendar.getInstance().getTime().getTime() - begin) / 1000D) + "s");
|
Logger.get("SubServers").info(((plugins > 0)?plugins+" Plugin"+((plugins == 1)?"":"s")+", ":"") + ((proxies > 1)?proxies+" Proxies, ":"") + hosts + " Host"+((hosts == 1)?"":"s")+", " + servers + " Server"+((servers == 1)?"":"s")+", and " + subservers + " SubServer"+((subservers == 1)?"":"s")+" "+((status)?"re":"")+"loaded in " + new DecimalFormat("0.000").format((Calendar.getInstance().getTime().getTime() - begin) / 1000D) + "s");
|
||||||
|
|
||||||
long scd = TimeUnit.SECONDS.toMillis(this.servers.get().getMap("Settings").getLong("Run-On-Launch-Timeout", 0L));
|
long scd = TimeUnit.SECONDS.toMillis(this.servers.get().getMap("Settings").getLong("Run-On-Launch-Timeout", 0L));
|
||||||
|
|
|
@ -104,14 +104,14 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
gui.back();
|
gui.back();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Undo"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Undo"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).undo();
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).undo();
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Creator.Submit"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Creator.Submit"))) {
|
||||||
String host = ((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).getHost().toLowerCase();
|
String host = ((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).getHost().toLowerCase();
|
||||||
if (player.hasPermission("subservers.host.*.*") || player.hasPermission("subservers.host.*.create") || player.hasPermission("subservers.host." + host + ".*") || player.hasPermission("subservers.host." + host + ".create")) {
|
if (player.hasPermission("subservers.host.*.*") || player.hasPermission("subservers.host.*.create") || player.hasPermission("subservers.host." + host + ".*") || player.hasPermission("subservers.host." + host + ".create")) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketCreateServer(player.getUniqueId(), ((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]), data -> {
|
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketCreateServer(player.getUniqueId(), ((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), data -> {
|
||||||
gui.back();
|
gui.back();
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
|
@ -125,7 +125,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
if (m.getString("message").contains(" ")) {
|
if (m.getString("message").contains(" ")) {
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Invalid-Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Invalid-Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Invalid"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Invalid"));
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]), 4 * 20);
|
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
|
||||||
} else {
|
} else {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
plugin.api.getSubServer(m.getString("message"), server -> {
|
plugin.api.getSubServer(m.getString("message"), server -> {
|
||||||
|
@ -133,26 +133,26 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
gui.setDownloading(null);
|
gui.setDownloading(null);
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Exists-Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Exists-Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Exists"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Name.Exists"));
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]), 4 * 20);
|
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
|
||||||
} else {
|
} else {
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setName(m.getString("message"));
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setName(m.getString("message"));
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template")))) {
|
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template")))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostCreatorTemplates(1, (UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreatorTemplates(1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version")))) {
|
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version")))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version.Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version.Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version.Message"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Version.Message"));
|
||||||
input.put(player.getUniqueId(), m -> {
|
input.put(player.getUniqueId(), m -> {
|
||||||
if (m.getString("message").length() <= 0) {
|
if (m.getString("message").length() <= 0) {
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setVersion(null);
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setVersion(null);
|
||||||
} else ((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setVersion(new Version(m.getString("message")));
|
} else ((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setVersion(new Version(m.getString("message")));
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
});
|
});
|
||||||
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port")))) {
|
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port")))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
|
@ -160,15 +160,15 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Message"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Message"));
|
||||||
input.put(player.getUniqueId(), m -> {
|
input.put(player.getUniqueId(), m -> {
|
||||||
if (m.getString("message").length() <= 0) {
|
if (m.getString("message").length() <= 0) {
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setPort(null);
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setPort(null);
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (Util.isException(() -> Integer.parseInt(m.getString("message"))) || Integer.parseInt(m.getString("message")) <= 0 || Integer.parseInt(m.getString("message")) > 65535) {
|
} else if (Util.isException(() -> Integer.parseInt(m.getString("message"))) || Integer.parseInt(m.getString("message")) <= 0 || Integer.parseInt(m.getString("message")) > 65535) {
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid-Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid-Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid"));
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]), 4 * 20);
|
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
|
||||||
} else {
|
} else {
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setPort(Integer.valueOf(m.getString("message")));
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setPort(Integer.valueOf(m.getString("message")));
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -180,13 +180,13 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
||||||
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostCreatorTemplates(gui.lastPage - 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreatorTemplates(gui.lastPage - 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostCreatorTemplates(gui.lastPage + 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreatorTemplates(gui.lastPage + 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else {
|
} else {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
String obj;
|
String obj;
|
||||||
|
@ -195,8 +195,8 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
} else {
|
} else {
|
||||||
obj = ChatColor.stripColor(item);
|
obj = ChatColor.stripColor(item);
|
||||||
}
|
}
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]).setTemplate(obj);
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setTemplate(obj);
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjectz[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[0]) && // Host Plugin
|
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[0]) && // Host Plugin
|
||||||
|
@ -206,10 +206,10 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
||||||
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostPlugin(gui.lastPage - 1, ((Host) gui.lastVisitedObjectz[0]).getName());
|
gui.hostPlugin(gui.lastPage - 1, ((Host) gui.lastVisitedObjects[0]).getName());
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostPlugin(gui.lastPage + 1, ((Host) gui.lastVisitedObjectz[0]).getName());
|
gui.hostPlugin(gui.lastPage + 1, ((Host) gui.lastVisitedObjects[0]).getName());
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.back();
|
gui.back();
|
||||||
|
@ -222,8 +222,8 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
if (plugin.get() == null) {
|
if (plugin.get() == null) {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
} else {
|
} else {
|
||||||
gui.setDownloading(ChatColor.stripColor(this.plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").replace("$str$", ((Host) gui.lastVisitedObjectz[0]).getName())));
|
gui.setDownloading(ChatColor.stripColor(this.plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").replace("$str$", ((Host) gui.lastVisitedObjects[0]).getName())));
|
||||||
this.plugin.api.getHost(((Host) gui.lastVisitedObjectz[0]).getName(), host -> {
|
this.plugin.api.getHost(((Host) gui.lastVisitedObjects[0]).getName(), host -> {
|
||||||
if (host != null) {
|
if (host != null) {
|
||||||
gui.setDownloading(null);
|
gui.setDownloading(null);
|
||||||
plugin.get().open(player, host);
|
plugin.get().open(player, host);
|
||||||
|
@ -265,10 +265,10 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
|
|
||||||
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.serverMenu(gui.lastPage - 1, (String) gui.lastVisitedObjectz[0], (String) gui.lastVisitedObjectz[1]);
|
gui.serverMenu(gui.lastPage - 1, (String) gui.lastVisitedObjects[0], (String) gui.lastVisitedObjects[1]);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.serverMenu(gui.lastPage + 1, (String) gui.lastVisitedObjectz[0], (String) gui.lastVisitedObjectz[1]);
|
gui.serverMenu(gui.lastPage + 1, (String) gui.lastVisitedObjects[0], (String) gui.lastVisitedObjects[1]);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Server-Menu.Host-Menu"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Server-Menu.Host-Menu"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostMenu(1);
|
gui.hostMenu(1);
|
||||||
|
@ -297,15 +297,15 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
gui.back();
|
gui.back();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.Creator"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.Creator"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + ((Host) gui.lastVisitedObjectz[0]).getName().toLowerCase())) {
|
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + ((Host) gui.lastVisitedObjects[0]).getName().toLowerCase())) {
|
||||||
gui.hostCreator(new UIRenderer.CreatorOptions(((Host) gui.lastVisitedObjectz[0]).getName()));
|
gui.hostCreator(new UIRenderer.CreatorOptions(((Host) gui.lastVisitedObjects[0]).getName()));
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.SubServers"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.SubServers"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.serverMenu(1, ((Host) gui.lastVisitedObjectz[0]).getName(), null);
|
gui.serverMenu(1, ((Host) gui.lastVisitedObjects[0]).getName(), null);
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.Plugins"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Host-Admin.Plugins"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.hostPlugin(1, ((Host) gui.lastVisitedObjectz[0]).getName());
|
gui.hostPlugin(1, ((Host) gui.lastVisitedObjects[0]).getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[0]) && // SubServer Admin
|
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[0]) && // SubServer Admin
|
||||||
|
@ -319,12 +319,12 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
gui.back();
|
gui.back();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (((SubServer) gui.lastVisitedObjectz[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.update")) {
|
if (((SubServer) gui.lastVisitedObjects[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.update")) {
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update.Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update.Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update.Message"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Update.Message"));
|
||||||
input.put(player.getUniqueId(), m -> {
|
input.put(player.getUniqueId(), m -> {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketUpdateServer(player.getUniqueId(), ((SubServer) gui.lastVisitedObjectz[0]).getName(),
|
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketUpdateServer(player.getUniqueId(), ((SubServer) gui.lastVisitedObjects[0]).getName(),
|
||||||
(m.getString("message").length() == 0 || m.getString("message").equals("/"))?null:new Version((m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message")), data -> {
|
(m.getString("message").length() == 0 || m.getString("message").equals("/"))?null:new Version((m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message")), data -> {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
}));
|
}));
|
||||||
|
@ -332,23 +332,23 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Start"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Start"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (((SubServer) gui.lastVisitedObjectz[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.start")) {
|
if (((SubServer) gui.lastVisitedObjects[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.start")) {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
((SubServer) gui.lastVisitedObjectz[0]).start(player.getUniqueId(), response -> {
|
((SubServer) gui.lastVisitedObjects[0]).start(player.getUniqueId(), response -> {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Start.Title"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Start.Title"));
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, gui::reopen, 30);
|
Bukkit.getScheduler().runTaskLater(plugin, gui::reopen, 30);
|
||||||
});
|
});
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Stop"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Stop"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (((SubServer) gui.lastVisitedObjectz[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.stop")) {
|
if (((SubServer) gui.lastVisitedObjects[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.stop")) {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
final Container<Boolean> listening = new Container<Boolean>(true);
|
final Container<Boolean> listening = new Container<Boolean>(true);
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> json) {
|
public void run(ObjectMap<String> json) {
|
||||||
try {
|
try {
|
||||||
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjectz[0]).getName())) {
|
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
||||||
} else {
|
} else {
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, gui::reopen, 5);
|
Bukkit.getScheduler().runTaskLater(plugin, gui::reopen, 5);
|
||||||
|
@ -356,23 +356,23 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
((SubServer) gui.lastVisitedObjectz[0]).stop(player.getUniqueId(), response -> {
|
((SubServer) gui.lastVisitedObjects[0]).stop(player.getUniqueId(), response -> {
|
||||||
if (response != 0) {
|
if (response != 0) {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
listening.set(false);
|
listening.set(false);
|
||||||
} else gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Stop.Title").replace("$str$", ((SubServer) gui.lastVisitedObjectz[0]).getName()));
|
} else gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Stop.Title").replace("$str$", ((SubServer) gui.lastVisitedObjects[0]).getName()));
|
||||||
});
|
});
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Terminate"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Terminate"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (((SubServer) gui.lastVisitedObjectz[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.terminate")) {
|
if (((SubServer) gui.lastVisitedObjects[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.terminate")) {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
final Container<Boolean> listening = new Container<Boolean>(true);
|
final Container<Boolean> listening = new Container<Boolean>(true);
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> json) {
|
public void run(ObjectMap<String> json) {
|
||||||
try {
|
try {
|
||||||
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjectz[0]).getName())) {
|
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
||||||
} else {
|
} else {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
|
@ -380,28 +380,28 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
((SubServer) gui.lastVisitedObjectz[0]).terminate(player.getUniqueId(), response -> {
|
((SubServer) gui.lastVisitedObjects[0]).terminate(player.getUniqueId(), response -> {
|
||||||
if (response != 0) {
|
if (response != 0) {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
listening.set(false);
|
listening.set(false);
|
||||||
} else gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Terminate.Title").replace("$str$", ((SubServer) gui.lastVisitedObjectz[0]).getName()));
|
} else gui.setDownloading(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Terminate.Title").replace("$str$", ((SubServer) gui.lastVisitedObjects[0]).getName()));
|
||||||
});
|
});
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
if (((SubServer) gui.lastVisitedObjectz[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.command")) {
|
if (((SubServer) gui.lastVisitedObjects[0]).permits(player, "subservers.subserver.%.*", "subservers.subserver.%.command")) {
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command.Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command.Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command.Message"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Command.Message"));
|
||||||
input.put(player.getUniqueId(), m -> {
|
input.put(player.getUniqueId(), m -> {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
((SubServer) gui.lastVisitedObjectz[0]).command(player.getUniqueId(), (m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message"), response -> {
|
((SubServer) gui.lastVisitedObjects[0]).command(player.getUniqueId(), (m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message"), response -> {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else gui.reopen();
|
} else gui.reopen();
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Plugins"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Plugins"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.subserverPlugin(1, ((SubServer) gui.lastVisitedObjectz[0]).getName());
|
gui.subserverPlugin(1, ((SubServer) gui.lastVisitedObjects[0]).getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[0]) && // SubServer Plugin
|
} else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[0]) && // SubServer Plugin
|
||||||
|
@ -411,10 +411,10 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
||||||
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.subserverPlugin(gui.lastPage - 1, ((SubServer) gui.lastVisitedObjectz[0]).getName());
|
gui.subserverPlugin(gui.lastPage - 1, ((SubServer) gui.lastVisitedObjects[0]).getName());
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Next-Arrow"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.subserverPlugin(gui.lastPage + 1, ((SubServer) gui.lastVisitedObjectz[0]).getName());
|
gui.subserverPlugin(gui.lastPage + 1, ((SubServer) gui.lastVisitedObjects[0]).getName());
|
||||||
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
} else if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
gui.back();
|
gui.back();
|
||||||
|
@ -427,8 +427,8 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
if (plugin.get() == null) {
|
if (plugin.get() == null) {
|
||||||
gui.reopen();
|
gui.reopen();
|
||||||
} else {
|
} else {
|
||||||
gui.setDownloading(ChatColor.stripColor(this.plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").replace("$str$", ((SubServer) gui.lastVisitedObjectz[0]).getName())));
|
gui.setDownloading(ChatColor.stripColor(this.plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").replace("$str$", ((SubServer) gui.lastVisitedObjects[0]).getName())));
|
||||||
this.plugin.api.getSubServer(((SubServer) gui.lastVisitedObjectz[0]).getName(), subserver -> {
|
this.plugin.api.getSubServer(((SubServer) gui.lastVisitedObjects[0]).getName(), subserver -> {
|
||||||
if (subserver != null) {
|
if (subserver != null) {
|
||||||
gui.setDownloading(null);
|
gui.setDownloading(null);
|
||||||
plugin.get().open(player, subserver);
|
plugin.get().open(player, subserver);
|
||||||
|
|
|
@ -3,7 +3,6 @@ package net.ME1312.SubServers.Client.Bukkit.Graphic;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
|
|
||||||
import net.ME1312.SubServers.Client.Bukkit.Network.API.Host;
|
import net.ME1312.SubServers.Client.Bukkit.Network.API.Host;
|
||||||
import net.ME1312.SubServers.Client.Bukkit.Network.API.Server;
|
import net.ME1312.SubServers.Client.Bukkit.Network.API.Server;
|
||||||
import net.ME1312.SubServers.Client.Bukkit.Network.API.SubCreator;
|
import net.ME1312.SubServers.Client.Bukkit.Network.API.SubCreator;
|
||||||
|
@ -26,7 +25,7 @@ import java.util.*;
|
||||||
public class DefaultUIRenderer extends UIRenderer {
|
public class DefaultUIRenderer extends UIRenderer {
|
||||||
private static int MAX_VISITED_OBJECTS = 2;
|
private static int MAX_VISITED_OBJECTS = 2;
|
||||||
private List<Runnable> windowHistory = new LinkedList<Runnable>();
|
private List<Runnable> windowHistory = new LinkedList<Runnable>();
|
||||||
Object[] lastVisitedObjectz = new Object[MAX_VISITED_OBJECTS];
|
Object[] lastVisitedObjects = new Object[MAX_VISITED_OBJECTS];
|
||||||
int lastPage = 1;
|
int lastPage = 1;
|
||||||
Runnable lastMenu = null;
|
Runnable lastMenu = null;
|
||||||
boolean open = false;
|
boolean open = false;
|
||||||
|
@ -84,7 +83,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title")));
|
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title")));
|
||||||
plugin.api.getHosts(hosts -> plugin.api.getGroups(groups -> {
|
plugin.api.getHosts(hosts -> plugin.api.getGroups(groups -> {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = null;
|
lastVisitedObjects[0] = null;
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
lastMenu = () -> hostMenu(1);
|
lastMenu = () -> hostMenu(1);
|
||||||
windowHistory.add(() -> hostMenu(page));
|
windowHistory.add(() -> hostMenu(page));
|
||||||
|
@ -220,7 +219,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = host;
|
lastVisitedObjects[0] = host;
|
||||||
|
|
||||||
ItemStack block;
|
ItemStack block;
|
||||||
ItemMeta blockMeta;
|
ItemMeta blockMeta;
|
||||||
|
@ -328,11 +327,11 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
public void hostCreator(final CreatorOptions options) {
|
public void hostCreator(final CreatorOptions options) {
|
||||||
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").replace("$str$", options.getHost())));
|
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").replace("$str$", options.getHost())));
|
||||||
if (!options.init()) windowHistory.add(() -> hostCreator(options));
|
if (!options.init()) windowHistory.add(() -> hostCreator(options));
|
||||||
lastVisitedObjectz[0] = options;
|
lastVisitedObjects[0] = options;
|
||||||
|
|
||||||
plugin.api.getHost(options.getHost(), host -> {
|
plugin.api.getHost(options.getHost(), host -> {
|
||||||
if (host == null || !host.isAvailable() || !host.isEnabled()) {
|
if (host == null || !host.isAvailable() || !host.isEnabled()) {
|
||||||
lastVisitedObjectz[0] = null;
|
lastVisitedObjects[0] = null;
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
|
@ -455,10 +454,10 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
public void hostCreatorTemplates(final int page, final CreatorOptions options) {
|
public void hostCreatorTemplates(final int page, final CreatorOptions options) {
|
||||||
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").replace("$str$", options.getHost())));
|
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").replace("$str$", options.getHost())));
|
||||||
options.init();
|
options.init();
|
||||||
lastVisitedObjectz[0] = options;
|
lastVisitedObjects[0] = options;
|
||||||
plugin.api.getHost(options.getHost(), host -> {
|
plugin.api.getHost(options.getHost(), host -> {
|
||||||
if (host == null || !host.isAvailable() || !host.isEnabled()) {
|
if (host == null || !host.isAvailable() || !host.isEnabled()) {
|
||||||
lastVisitedObjectz[0] = null;
|
lastVisitedObjects[0] = null;
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
|
@ -573,7 +572,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = host;
|
lastVisitedObjects[0] = host;
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
List<String> renderers = new LinkedList<String>();
|
List<String> renderers = new LinkedList<String>();
|
||||||
for (String renderer : renderers) {
|
for (String renderer : renderers) {
|
||||||
|
@ -677,7 +676,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Group-Menu.Title")));
|
setDownloading(ChatColor.stripColor(plugin.api.getLang("SubServers", "Interface.Group-Menu.Title")));
|
||||||
plugin.api.getGroups(groups -> {
|
plugin.api.getGroups(groups -> {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = null;
|
lastVisitedObjects[0] = null;
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
lastMenu = () -> groupMenu(1);
|
lastMenu = () -> groupMenu(1);
|
||||||
windowHistory.add(() -> groupMenu(page));
|
windowHistory.add(() -> groupMenu(page));
|
||||||
|
@ -791,8 +790,8 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
|
|
||||||
List<Server> servers = servercontainer.get();
|
List<Server> servers = servercontainer.get();
|
||||||
lastVisitedObjectz[0] = host;
|
lastVisitedObjects[0] = host;
|
||||||
lastVisitedObjectz[1] = group;
|
lastVisitedObjects[1] = group;
|
||||||
windowHistory.add(() -> serverMenu(page, host, group));
|
windowHistory.add(() -> serverMenu(page, host, group));
|
||||||
|
|
||||||
ItemStack block;
|
ItemStack block;
|
||||||
|
@ -985,7 +984,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = subserver;
|
lastVisitedObjects[0] = subserver;
|
||||||
ItemStack block;
|
ItemStack block;
|
||||||
ItemMeta blockMeta;
|
ItemMeta blockMeta;
|
||||||
ItemStack div = createItem("STAINED_GLASS_PANE", "BLACK_STAINED_GLASS_PANE", (short) 15);
|
ItemStack div = createItem("STAINED_GLASS_PANE", "BLACK_STAINED_GLASS_PANE", (short) 15);
|
||||||
|
@ -1191,7 +1190,7 @@ public class DefaultUIRenderer extends UIRenderer {
|
||||||
if (hasHistory()) back();
|
if (hasHistory()) back();
|
||||||
} else {
|
} else {
|
||||||
setDownloading(null);
|
setDownloading(null);
|
||||||
lastVisitedObjectz[0] = subserver;
|
lastVisitedObjects[0] = subserver;
|
||||||
lastPage = page;
|
lastPage = page;
|
||||||
List<String> renderers = new LinkedList<String>();
|
List<String> renderers = new LinkedList<String>();
|
||||||
for (String renderer : renderers) {
|
for (String renderer : renderers) {
|
||||||
|
|
|
@ -46,6 +46,7 @@ import java.util.jar.Manifest;
|
||||||
public final class ExHost {
|
public final class ExHost {
|
||||||
HashMap<Integer, SubDataClient> subdata = new HashMap<Integer, SubDataClient>();
|
HashMap<Integer, SubDataClient> subdata = new HashMap<Integer, SubDataClient>();
|
||||||
NamedContainer<Long, Map<String, Map<String, String>>> lang = null;
|
NamedContainer<Long, Map<String, Map<String, String>>> lang = null;
|
||||||
|
public HashMap<String, SubCreatorImpl.ServerTemplate> templatesR = new HashMap<String, SubCreatorImpl.ServerTemplate>();
|
||||||
public HashMap<String, SubCreatorImpl.ServerTemplate> templates = new HashMap<String, SubCreatorImpl.ServerTemplate>();
|
public HashMap<String, SubCreatorImpl.ServerTemplate> templates = new HashMap<String, SubCreatorImpl.ServerTemplate>();
|
||||||
public HashMap<String, SubServerImpl> servers = new HashMap<String, SubServerImpl>();
|
public HashMap<String, SubServerImpl> servers = new HashMap<String, SubServerImpl>();
|
||||||
public SubCreatorImpl creator;
|
public SubCreatorImpl creator;
|
||||||
|
@ -122,7 +123,7 @@ public final class ExHost {
|
||||||
config = new YAMLConfig(new UniversalFile(engine.getRuntimeDirectory(), "config.yml"));
|
config = new YAMLConfig(new UniversalFile(engine.getRuntimeDirectory(), "config.yml"));
|
||||||
|
|
||||||
if (!(new UniversalFile(engine.getRuntimeDirectory(), "Templates").exists())) {
|
if (!(new UniversalFile(engine.getRuntimeDirectory(), "Templates").exists())) {
|
||||||
new UniversalFile(engine.getRuntimeDirectory(), "Templates").mkdir();
|
new UniversalFile(engine.getRuntimeDirectory(), "Templates").mkdirs();
|
||||||
log.info.println("Created ./Templates/");
|
log.info.println("Created ./Templates/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,6 +235,7 @@ public final class ExHost {
|
||||||
|
|
||||||
ConfigUpdater.updateConfig(new UniversalFile(engine.getRuntimeDirectory(), "config.yml"));
|
ConfigUpdater.updateConfig(new UniversalFile(engine.getRuntimeDirectory(), "config.yml"));
|
||||||
config.reload();
|
config.reload();
|
||||||
|
creator.load(false);
|
||||||
|
|
||||||
subprotocol.unregisterCipher("AES");
|
subprotocol.unregisterCipher("AES");
|
||||||
subprotocol.unregisterCipher("AES-128");
|
subprotocol.unregisterCipher("AES-128");
|
||||||
|
@ -347,7 +349,7 @@ public final class ExHost {
|
||||||
log.error.println(e);
|
log.error.println(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new File(engine.getRuntimeDirectory(), "Templates").exists()) Util.deleteDirectory(new File(engine.getRuntimeDirectory(), "Templates"));
|
if (new UniversalFile(engine.getRuntimeDirectory(), "Cache:Remote").exists()) Util.deleteDirectory(new UniversalFile(engine.getRuntimeDirectory(), "Cache:Remote"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package net.ME1312.SubServers.Host.Executable;
|
package net.ME1312.SubServers.Host.Executable;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Engine.GalaxiEngine;
|
import net.ME1312.Galaxi.Engine.GalaxiEngine;
|
||||||
|
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
import net.ME1312.Galaxi.Library.Container.NamedContainer;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
@ -201,7 +202,32 @@ public class SubCreatorImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads Template Metadata
|
||||||
|
*
|
||||||
|
* @param remote Loads from the Remote Templates directory when true
|
||||||
|
*/
|
||||||
|
public void load(boolean remote) {
|
||||||
|
HashMap<String, ServerTemplate> templates = (remote)?host.templatesR:host.templates;
|
||||||
|
UniversalFile dir = new UniversalFile(GalaxiEngine.getInstance().getRuntimeDirectory(), ((remote)?"Cache:Remote:":"") + "Templates");
|
||||||
|
templates.clear();
|
||||||
|
if (dir.exists()) for (File file : dir.listFiles()) {
|
||||||
|
try {
|
||||||
|
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
||||||
|
ObjectMap<String> config = (new UniversalFile(file, "template.yml").exists())?new YAMLConfig(new UniversalFile(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()):new ObjectMap<String>();
|
||||||
|
ServerTemplate template = new ServerTemplate(file.getName(), config.getBoolean("Enabled", true), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
||||||
|
templates.put(file.getName().toLowerCase(), template);
|
||||||
|
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
host.log.error.println("Couldn't load template: " + file.getName());
|
||||||
|
host.log.error.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class CreatorTask extends Thread {
|
private class CreatorTask extends Thread {
|
||||||
|
private final HashMap<String, ServerTemplate> templates;
|
||||||
private final SubServerImpl update;
|
private final SubServerImpl update;
|
||||||
private final UUID player;
|
private final UUID player;
|
||||||
private final String name;
|
private final String name;
|
||||||
|
@ -216,6 +242,7 @@ public class SubCreatorImpl {
|
||||||
|
|
||||||
private CreatorTask(UUID player, String name, ServerTemplate template, Version version, int port, UUID address, UUID tracker) {
|
private CreatorTask(UUID player, String name, ServerTemplate template, Version version, int port, UUID address, UUID tracker) {
|
||||||
super(SubAPI.getInstance().getAppInfo().getName() + "::SubCreator_Process_Handler(" + name + ')');
|
super(SubAPI.getInstance().getAppInfo().getName() + "::SubCreator_Process_Handler(" + name + ')');
|
||||||
|
this.templates = new HashMap<String, ServerTemplate>();
|
||||||
this.update = host.servers.getOrDefault(name.toLowerCase(), null);
|
this.update = host.servers.getOrDefault(name.toLowerCase(), null);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -226,6 +253,9 @@ public class SubCreatorImpl {
|
||||||
this.replacements = new HashMap<String, String>();
|
this.replacements = new HashMap<String, String>();
|
||||||
this.address = address;
|
this.address = address;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
templates.putAll(host.templatesR);
|
||||||
|
templates.putAll(host.templates);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ObjectMap<String> build(File dir, ServerTemplate template, List<ServerTemplate> history) throws SubCreatorException {
|
private ObjectMap<String> build(File dir, ServerTemplate template, List<ServerTemplate> history) throws SubCreatorException {
|
||||||
|
@ -236,11 +266,11 @@ public class SubCreatorImpl {
|
||||||
if (history.contains(template)) throw new IllegalStateException("Template Import loop detected");
|
if (history.contains(template)) throw new IllegalStateException("Template Import loop detected");
|
||||||
history.add(template);
|
history.add(template);
|
||||||
for (String other : template.getBuildOptions().getStringList("Import", new ArrayList<String>())) {
|
for (String other : template.getBuildOptions().getStringList("Import", new ArrayList<String>())) {
|
||||||
if (host.templates.keySet().contains(other.toLowerCase())) {
|
if (templates.keySet().contains(other.toLowerCase())) {
|
||||||
if (host.templates.get(other.toLowerCase()).isEnabled()) {
|
if (templates.get(other.toLowerCase()).isEnabled()) {
|
||||||
if (version != null || !host.templates.get(other.toLowerCase()).requiresVersion()) {
|
if (version != null || !templates.get(other.toLowerCase()).requiresVersion()) {
|
||||||
if (update == null || host.templates.get(other.toLowerCase()).canUpdate()) {
|
if (update == null || templates.get(other.toLowerCase()).canUpdate()) {
|
||||||
ObjectMap<String> config = build(dir, host.templates.get(other.toLowerCase()), history);
|
ObjectMap<String> config = build(dir, templates.get(other.toLowerCase()), history);
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
throw new SubCreatorException();
|
throw new SubCreatorException();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -46,9 +46,13 @@ public class ConfigUpdater {
|
||||||
|
|
||||||
existing = updated.clone();
|
existing = updated.clone();
|
||||||
i++;
|
i++;
|
||||||
|
} if (was.compareTo(new Version("20w24c")) <= 0) {
|
||||||
|
// additions only this time
|
||||||
|
|
||||||
|
i++;
|
||||||
}// if (was.compareTo(new Version("99w99a")) <= 0) {
|
}// if (was.compareTo(new Version("99w99a")) <= 0) {
|
||||||
// // do something
|
// // do something
|
||||||
// i++
|
// i++;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if (i > 0) SubAPI.getInstance().getAppInfo().getLogger().info.println("Updated ./config.yml (" + i + " pass" + ((i != 1)?"es":"") + ")");
|
if (i > 0) SubAPI.getInstance().getAppInfo().getLogger().info.println("Updated ./config.yml (" + i + " pass" + ((i != 1)?"es":"") + ")");
|
||||||
|
@ -59,6 +63,7 @@ public class ConfigUpdater {
|
||||||
settings.set("Version", ((now.compareTo(was) <= 0)?was:now).toString());
|
settings.set("Version", ((now.compareTo(was) <= 0)?was:now).toString());
|
||||||
settings.set("Console-Log", updated.getMap("Settings", new YAMLSection()).getBoolean("Console-Log", true));
|
settings.set("Console-Log", updated.getMap("Settings", new YAMLSection()).getBoolean("Console-Log", true));
|
||||||
settings.set("Network-Log", updated.getMap("Settings", new YAMLSection()).getBoolean("Network-Log", true));
|
settings.set("Network-Log", updated.getMap("Settings", new YAMLSection()).getBoolean("Network-Log", true));
|
||||||
|
settings.set("Download-Templates", updated.getMap("Settings", new YAMLSection()).getBoolean("Download-Templates", true));
|
||||||
settings.set("Server-Bind", updated.getMap("Settings", new YAMLSection()).getRawString("Server-Bind", "127.0.0.1"));
|
settings.set("Server-Bind", updated.getMap("Settings", new YAMLSection()).getRawString("Server-Bind", "127.0.0.1"));
|
||||||
|
|
||||||
YAMLSection upnp = new YAMLSection();
|
YAMLSection upnp = new YAMLSection();
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
package net.ME1312.SubServers.Host.Network.Packet;
|
package net.ME1312.SubServers.Host.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Engine.GalaxiEngine;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
|
||||||
import net.ME1312.SubData.Client.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Client.Protocol.PacketObjectIn;
|
||||||
import net.ME1312.SubData.Client.Protocol.PacketOut;
|
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
|
||||||
import net.ME1312.SubData.Client.SubDataSender;
|
import net.ME1312.SubData.Client.SubDataSender;
|
||||||
import net.ME1312.SubServers.Host.Executable.SubCreatorImpl;
|
|
||||||
import net.ME1312.SubServers.Host.ExHost;
|
import net.ME1312.SubServers.Host.ExHost;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -15,7 +11,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* External Host Configuration Packet
|
* External Host Configuration Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExConfigureHost implements PacketObjectIn<Integer>, PacketOut {
|
public class PacketExConfigureHost implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static boolean first = false;
|
private static boolean first = false;
|
||||||
private ExHost host;
|
private ExHost host;
|
||||||
|
|
||||||
|
@ -27,35 +23,20 @@ public class PacketExConfigureHost implements PacketObjectIn<Integer>, PacketOut
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sending(SubDataSender client) {
|
public ObjectMap<Integer> send(SubDataSender client) {
|
||||||
host.log.info.println("Downloading Host Settings...");
|
host.log.info.println("Downloading Host Settings...");
|
||||||
first = true;
|
first = true;
|
||||||
|
|
||||||
|
ObjectMap<Integer> data = new ObjectMap<Integer>();
|
||||||
|
data.set(0x0000, host.config.get().getMap("Settings").getBoolean("Download-Templates", true));
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataSender client, ObjectMap<Integer> data) {
|
public void receive(SubDataSender client, ObjectMap<Integer> data) {
|
||||||
host.host = new ObjectMap<>((Map<String, ?>) data.getObject(0x0000));
|
host.host = new ObjectMap<>((Map<String, ?>) data.getObject(0x0000));
|
||||||
for (SubCreatorImpl.ServerTemplate template : host.templates.values()) {
|
|
||||||
Util.deleteDirectory(template.getDirectory());
|
|
||||||
}
|
|
||||||
host.templates.clear();
|
|
||||||
UniversalFile templatedir = new UniversalFile(GalaxiEngine.getInstance().getRuntimeDirectory(), "Templates");
|
|
||||||
ObjectMap<String> templates = new ObjectMap<>((Map<String, ?>) data.getObject(0x0001));
|
|
||||||
Util.deleteDirectory(templatedir);
|
|
||||||
templatedir.mkdirs();
|
|
||||||
for (String name : templates.getKeys()) {
|
|
||||||
try {
|
|
||||||
UniversalFile dir = new UniversalFile(templatedir, name);
|
|
||||||
SubCreatorImpl.ServerTemplate template = new SubCreatorImpl.ServerTemplate(name, templates.getMap(name).getBoolean("enabled"), templates.getMap(name).getRawString("icon"), dir,
|
|
||||||
templates.getMap(name).getMap("build").clone(), templates.getMap(name).getMap("settings").clone());
|
|
||||||
host.templates.put(name.toLowerCase(), template);
|
|
||||||
if (!templates.getMap(name).getRawString("display").equals(name)) template.setDisplayName(templates.getMap(name).getRawString("display"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
host.log.error.println("Couldn't load template: " + name);
|
|
||||||
host.log.error.println(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
host.log.info.println(((first)?"":"New ") + "Host Settings Downloaded");
|
host.log.info.println(((first)?"":"New ") + "Host Settings Downloaded");
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.ME1312.SubData.Client.Protocol.PacketObjectIn;
|
||||||
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
|
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
|
||||||
import net.ME1312.SubData.Client.SubDataSender;
|
import net.ME1312.SubData.Client.SubDataSender;
|
||||||
import net.ME1312.SubServers.Host.ExHost;
|
import net.ME1312.SubServers.Host.ExHost;
|
||||||
|
import net.ME1312.SubServers.Host.Executable.SubCreatorImpl;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -90,7 +91,10 @@ public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObje
|
||||||
UUID log = data.getUUID(0x0006);
|
UUID log = data.getUUID(0x0006);
|
||||||
UUID player = (data.contains(0x0007)?data.getUUID(0x0007):null);
|
UUID player = (data.contains(0x0007)?data.getUUID(0x0007):null);
|
||||||
|
|
||||||
host.creator.create(player, name, host.templates.get(template.toLowerCase()), version, port, log, tracker);
|
SubCreatorImpl.ServerTemplate templateV = host.templates.get(template.toLowerCase());
|
||||||
|
if (templateV == null) templateV = host.templatesR.get(template.toLowerCase());
|
||||||
|
|
||||||
|
host.creator.create(player, name, templateV, version, port, log, tracker);
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
host.log.error.println(e);
|
host.log.error.println(e);
|
||||||
|
|
|
@ -27,13 +27,13 @@ public class PacketExDownloadTemplates implements PacketOut, PacketStreamIn {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sending(SubDataSender client) throws Throwable {
|
public void sending(SubDataSender client) throws Throwable {
|
||||||
host.log.info.println("Downloading Template Files...");
|
host.log.info.println("Downloading Remote Template Files...");
|
||||||
first = true;
|
first = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataSender client, InputStream stream) {
|
public void receive(SubDataSender client, InputStream stream) {
|
||||||
UniversalFile dir = new UniversalFile(GalaxiEngine.getInstance().getRuntimeDirectory(), "Templates");
|
UniversalFile dir = new UniversalFile(GalaxiEngine.getInstance().getRuntimeDirectory(), "Cache:Remote:Templates");
|
||||||
try {
|
try {
|
||||||
if (dir.exists()) Util.deleteDirectory(dir);
|
if (dir.exists()) Util.deleteDirectory(dir);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -41,8 +41,10 @@ public class PacketExDownloadTemplates implements PacketOut, PacketStreamIn {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
dir.mkdirs();
|
||||||
Util.unzip(stream, dir);
|
Util.unzip(stream, dir);
|
||||||
host.log.info.println(((first)?"":"New ") + "Template Files Downloaded");
|
host.creator.load(true);
|
||||||
|
host.log.info.println(((first)?"":"New ") + "Remote Template Files Downloaded");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SubAPI.getInstance().getAppInfo().getLogger().error.println("Problem decoding template files");
|
SubAPI.getInstance().getAppInfo().getLogger().error.println("Problem decoding template files");
|
||||||
SubAPI.getInstance().getAppInfo().getLogger().error.println(e);
|
SubAPI.getInstance().getAppInfo().getLogger().error.println(e);
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
package net.ME1312.SubServers.Host.Network.Packet;
|
||||||
|
|
||||||
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.SubData.Client.Protocol.PacketIn;
|
||||||
|
import net.ME1312.SubData.Client.Protocol.PacketObjectOut;
|
||||||
|
import net.ME1312.SubData.Client.SubDataSender;
|
||||||
|
import net.ME1312.SubServers.Host.ExHost;
|
||||||
|
import net.ME1312.SubServers.Host.Executable.SubCreatorImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External Host Template Upload Packet
|
||||||
|
*/
|
||||||
|
public class PacketExUploadTemplates implements PacketIn, PacketObjectOut<Integer> {
|
||||||
|
private boolean first;
|
||||||
|
private ExHost host;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* New PacketExUploadTemplates
|
||||||
|
*/
|
||||||
|
public PacketExUploadTemplates(ExHost host) {
|
||||||
|
this(host, true);
|
||||||
|
}
|
||||||
|
private PacketExUploadTemplates(ExHost host, boolean first) {
|
||||||
|
this.host = host;
|
||||||
|
this.first = first;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ObjectMap<Integer> send(SubDataSender client) {
|
||||||
|
host.log.info.println(((first)?"S":"Res") + "ending Local Template Metadata...");
|
||||||
|
if (!first) host.creator.load(false);
|
||||||
|
|
||||||
|
ObjectMap<Integer> data = new ObjectMap<Integer>();
|
||||||
|
ObjectMap<String> templates = new ObjectMap<String>();
|
||||||
|
for (SubCreatorImpl.ServerTemplate template : host.templates.values()) {
|
||||||
|
ObjectMap<String> tinfo = new ObjectMap<String>();
|
||||||
|
tinfo.set("enabled", template.isEnabled());
|
||||||
|
tinfo.set("display", template.getDisplayName());
|
||||||
|
tinfo.set("icon", template.getIcon());
|
||||||
|
tinfo.set("build", template.getBuildOptions().clone());
|
||||||
|
tinfo.set("settings", template.getConfigOptions().clone());
|
||||||
|
templates.set(template.getName(), tinfo);
|
||||||
|
}
|
||||||
|
data.set(0x0000, templates);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void receive(SubDataSender client) {
|
||||||
|
client.sendPacket(new PacketExUploadTemplates(host, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int version() {
|
||||||
|
return 0x0001;
|
||||||
|
}
|
||||||
|
}
|
|
@ -89,24 +89,26 @@ public class SubProtocol extends SubDataProtocol {
|
||||||
|
|
||||||
// 50-6F: External Host Packets
|
// 50-6F: External Host Packets
|
||||||
instance.registerPacket(0x0050, PacketExConfigureHost.class);
|
instance.registerPacket(0x0050, PacketExConfigureHost.class);
|
||||||
instance.registerPacket(0x0051, PacketExDownloadTemplates.class);
|
instance.registerPacket(0x0051, PacketExUploadTemplates.class);
|
||||||
instance.registerPacket(0x0052, PacketOutExRequestQueue.class);
|
instance.registerPacket(0x0052, PacketExDownloadTemplates.class);
|
||||||
instance.registerPacket(0x0053, PacketExCreateServer.class);
|
instance.registerPacket(0x0053, PacketOutExRequestQueue.class);
|
||||||
instance.registerPacket(0x0054, PacketExAddServer.class);
|
instance.registerPacket(0x0054, PacketExCreateServer.class);
|
||||||
instance.registerPacket(0x0055, PacketExEditServer.class);
|
instance.registerPacket(0x0055, PacketExAddServer.class);
|
||||||
instance.registerPacket(0x0056, PacketOutExLogMessage.class);
|
instance.registerPacket(0x0056, PacketExEditServer.class);
|
||||||
instance.registerPacket(0x0057, PacketExRemoveServer.class);
|
instance.registerPacket(0x0057, PacketOutExLogMessage.class);
|
||||||
instance.registerPacket(0x0058, PacketExDeleteServer.class);
|
instance.registerPacket(0x0058, PacketExRemoveServer.class);
|
||||||
|
instance.registerPacket(0x0059, PacketExDeleteServer.class);
|
||||||
|
|
||||||
instance.registerPacket(0x0050, new PacketExConfigureHost(host));
|
instance.registerPacket(0x0050, new PacketExConfigureHost(host));
|
||||||
instance.registerPacket(0x0051, new PacketExDownloadTemplates(host));
|
instance.registerPacket(0x0051, new PacketExUploadTemplates(host));
|
||||||
//instance.registerPacket(0x0052, new PacketOutExRequestQueue(host));
|
instance.registerPacket(0x0052, new PacketExDownloadTemplates(host));
|
||||||
instance.registerPacket(0x0053, new PacketExCreateServer(host));
|
//instance.registerPacket(0x0053, new PacketOutExRequestQueue(host));
|
||||||
instance.registerPacket(0x0054, new PacketExAddServer(host));
|
instance.registerPacket(0x0054, new PacketExCreateServer(host));
|
||||||
instance.registerPacket(0x0055, new PacketExEditServer(host));
|
instance.registerPacket(0x0055, new PacketExAddServer(host));
|
||||||
//instance.registerPacket(0x0056, new PacketOutExLogMessage());
|
instance.registerPacket(0x0056, new PacketExEditServer(host));
|
||||||
instance.registerPacket(0x0057, new PacketExRemoveServer(host));
|
//instance.registerPacket(0x0057, new PacketOutExLogMessage());
|
||||||
instance.registerPacket(0x0058, new PacketExDeleteServer(host));
|
instance.registerPacket(0x0058, new PacketExRemoveServer(host));
|
||||||
|
instance.registerPacket(0x0059, new PacketExDeleteServer(host));
|
||||||
|
|
||||||
|
|
||||||
// 70-7F: External Misc Packets
|
// 70-7F: External Misc Packets
|
||||||
|
@ -152,7 +154,9 @@ public class SubProtocol extends SubDataProtocol {
|
||||||
SubDataClient subdata = super.open(scheduler, logger, address, port);
|
SubDataClient subdata = super.open(scheduler, logger, address, port);
|
||||||
subdata.sendPacket(new PacketLinkExHost(host, 0));
|
subdata.sendPacket(new PacketLinkExHost(host, 0));
|
||||||
subdata.sendPacket(new PacketExConfigureHost(host));
|
subdata.sendPacket(new PacketExConfigureHost(host));
|
||||||
subdata.sendPacket(new PacketExDownloadTemplates(host));
|
subdata.sendPacket(new PacketExUploadTemplates(host));
|
||||||
|
if (host.config.get().getMap("Settings").getBoolean("Download-Templates", true))
|
||||||
|
subdata.sendPacket(new PacketExDownloadTemplates(host));
|
||||||
subdata.sendPacket(new PacketDownloadLang());
|
subdata.sendPacket(new PacketDownloadLang());
|
||||||
subdata.sendPacket(new PacketOutExRequestQueue());
|
subdata.sendPacket(new PacketOutExRequestQueue());
|
||||||
subdata.on.ready(client -> host.engine.getPluginManager().executeEvent(new SubNetworkConnectEvent((SubDataClient) client)));
|
subdata.on.ready(client -> host.engine.getPluginManager().executeEvent(new SubNetworkConnectEvent((SubDataClient) client)));
|
||||||
|
|
Loading…
Reference in New Issue