mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-06-22 12:44:51 +02:00
75b9b688cc
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.
118 lines
4.7 KiB
Java
118 lines
4.7 KiB
Java
package net.ME1312.SubServers.Host.Network.Packet;
|
|
|
|
import net.ME1312.SubServers.Host.Executable.SubServer;
|
|
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.File;
|
|
import java.io.FileWriter;
|
|
import java.lang.reflect.Field;
|
|
|
|
/**
|
|
* Create Server Packet
|
|
*/
|
|
public class PacketExDeleteServer implements PacketIn, PacketOut {
|
|
private ExHost host;
|
|
private int response;
|
|
private String message;
|
|
private String id;
|
|
private Logger log = null;
|
|
|
|
/**
|
|
* New PacketExDeleteServer (In)
|
|
*
|
|
* @param host SubPlugin
|
|
*/
|
|
public PacketExDeleteServer(ExHost host) {
|
|
if (Util.isNull(host)) throw new NullPointerException();
|
|
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) {}
|
|
}
|
|
|
|
/**
|
|
* New PacketExDeleteServer (Out)
|
|
*
|
|
* @param response Response ID
|
|
* @param message Message
|
|
* @param id Receiver ID
|
|
*/
|
|
public PacketExDeleteServer(int response, String message, String id) {
|
|
if (Util.isNull(response, message)) throw new NullPointerException();
|
|
this.response = response;
|
|
this.message = message;
|
|
this.id = id;
|
|
}
|
|
|
|
@Override
|
|
public YAMLSection generate() {
|
|
YAMLSection data = new YAMLSection();
|
|
data.set("id", id);
|
|
data.set("r", response);
|
|
data.set("m", message);
|
|
return data;
|
|
}
|
|
|
|
@Override
|
|
public void execute(YAMLSection data) {
|
|
try {
|
|
if (!host.servers.keySet().contains(data.getRawString("server").toLowerCase())) {
|
|
host.subdata.sendPacket(new PacketExDeleteServer(0, "Server Didn't Exist", (data.contains("id"))?data.getRawString("id"):null));
|
|
} else if (host.servers.get(data.getRawString("server").toLowerCase()).isRunning()) {
|
|
host.subdata.sendPacket(new PacketExDeleteServer(2, "That server is still running.", (data.contains("id"))?data.getRawString("id"):null));
|
|
} else {
|
|
SubServer server = host.servers.get(data.getRawString("server").toLowerCase());
|
|
host.servers.remove(data.getRawString("server").toLowerCase());
|
|
new Thread(() -> {
|
|
UniversalFile to = new UniversalFile(host.dir, "Recently Deleted:" + server.getName().toLowerCase());
|
|
try {
|
|
File from = new File(host.host.getRawString("Directory"), server.getDirectory());
|
|
if (from.exists()) {
|
|
log.info.println("Removing Files...");
|
|
if (to.exists()) {
|
|
if (to.isDirectory()) Util.deleteDirectory(to);
|
|
else to.delete();
|
|
}
|
|
to.mkdirs();
|
|
Util.copyDirectory(from, to);
|
|
Util.deleteDirectory(from);
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
log.info.println("Saving...");
|
|
try {
|
|
if (!to.exists()) to.mkdirs();
|
|
FileWriter writer = new FileWriter(new File(to, "info.json"));
|
|
data.getSection("info").toJSON().write(writer);
|
|
writer.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
log.info.println("Deleted SubServer: " + data.getRawString("server"));
|
|
host.subdata.sendPacket(new PacketExDeleteServer(0, "Server Deleted Successfully", (data.contains("id"))?data.getRawString("id"):null));
|
|
}).start();
|
|
}
|
|
} catch (Throwable e) {
|
|
host.subdata.sendPacket(new PacketExDeleteServer(1, e.getClass().getCanonicalName() + ": " + e.getMessage(), (data.contains("id"))?data.getRawString("id"):null));
|
|
host.log.error.println(e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Version getVersion() {
|
|
return new Version("2.11.0a");
|
|
}
|
|
} |