mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-06-22 12:44:51 +02:00
This commit removes the org.JSON library where alternatives are already provided (Bungee & Bukkit provide Gson). This change was made to improve compatability with BungeeCord plugins and reduce file sizes. This means big changes to the SubData API, which heavily relied on org.JSON. Now we submit our data through YAMLSection to be converted and sent over the network.
79 lines
3.2 KiB
Java
79 lines
3.2 KiB
Java
package net.ME1312.SubServers.Host.Network.Packet;
|
|
|
|
import net.ME1312.SubServers.Host.Executable.SubCreator;
|
|
import net.ME1312.SubServers.Host.Library.Config.YAMLSection;
|
|
import net.ME1312.SubServers.Host.Library.Log.Logger;
|
|
import net.ME1312.SubServers.Host.Library.UniversalFile;
|
|
import net.ME1312.SubServers.Host.Library.Util;
|
|
import net.ME1312.SubServers.Host.Library.Version.Version;
|
|
import net.ME1312.SubServers.Host.Network.PacketIn;
|
|
import net.ME1312.SubServers.Host.Network.PacketOut;
|
|
import net.ME1312.SubServers.Host.Network.SubDataClient;
|
|
import net.ME1312.SubServers.Host.ExHost;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.lang.reflect.Field;
|
|
import java.util.Base64;
|
|
|
|
/**
|
|
* External Host Configuration Packet
|
|
*/
|
|
public class PacketExConfigureHost implements PacketIn, PacketOut {
|
|
private static boolean first = false;
|
|
private ExHost host;
|
|
private Logger log = null;
|
|
|
|
/**
|
|
* New PacketExConfigureHost
|
|
*/
|
|
public PacketExConfigureHost(ExHost host) {
|
|
this.host = host;
|
|
try {
|
|
Field f = SubDataClient.class.getDeclaredField("log");
|
|
f.setAccessible(true);
|
|
this.log = (Logger) f.get(null);
|
|
f.setAccessible(false);
|
|
} catch (IllegalAccessException | NoSuchFieldException e) {}
|
|
}
|
|
|
|
@Override
|
|
public YAMLSection generate() {
|
|
host.log.info.println("Downloading Host Settings...");
|
|
first = true;
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void execute(YAMLSection data) {
|
|
host.host = data.getSection("host").clone();
|
|
for (SubCreator.ServerTemplate template : host.templates.values()) {
|
|
Util.deleteDirectory(template.getDirectory());
|
|
}
|
|
host.templates.clear();
|
|
UniversalFile templates = new UniversalFile(host.dir, "Templates");
|
|
Util.deleteDirectory(templates);
|
|
templates.mkdirs();
|
|
for (String name : data.getSection("templates").getKeys()) {
|
|
try {
|
|
UniversalFile dir = new UniversalFile(templates, name);
|
|
dir.mkdirs();
|
|
Util.unzip(new ByteArrayInputStream(Base64.getDecoder().decode(data.getSection("templates").getSection(name).getRawString("files"))), dir);
|
|
SubCreator.ServerTemplate template = new SubCreator.ServerTemplate(name, data.getSection("templates").getSection(name).getBoolean("enabled"), data.getSection("templates").getSection(name).getRawString("icon"), dir,
|
|
data.getSection("templates").getSection(name).getSection("build").clone(), data.getSection("templates").getSection(name).getSection("settings").clone());
|
|
host.templates.put(name.toLowerCase(), template);
|
|
if (!data.getSection("templates").getSection(name).getRawString("display").equals(name)) template.setDisplayName(data.getSection("templates").getSection(name).getRawString("display"));
|
|
} catch (Exception e) {
|
|
host.log.error.println("Couldn't load template: " + name);
|
|
host.log.error.println(e);
|
|
}
|
|
}
|
|
log.info.println(((first)?"":"New ") + "Host Settings Downloaded");
|
|
first = false;
|
|
}
|
|
|
|
@Override
|
|
public Version getVersion() {
|
|
return new Version("2.11.0a");
|
|
}
|
|
}
|