Clean the Recently Deleted directory periodically

This commit is contained in:
ME1312 2019-04-25 23:24:10 -04:00
parent 09c8c4665b
commit 7f23668623
No known key found for this signature in database
GPG Key ID: FEFFE2F698E88FA8
2 changed files with 50 additions and 37 deletions

View File

@ -83,27 +83,27 @@ public class SubProtocol extends SubDataProtocol {
// 30-49: Control Packets
//instance.registerPacket(0x0030, PacketInReload.class); TODO
//instance.registerPacket(0x0030, PacketInReload.class); // TODO
instance.registerPacket(0x0031, PacketCreateServer.class);
//instance.registerPacket(0x0032, PacketAddServer.class); TODO
//instance.registerPacket(0x0032, PacketAddServer.class); // TODO
instance.registerPacket(0x0033, PacketStartServer.class);
//instance.registerPacket(0x0034, PacketEditServer.class); TODO
//instance.registerPacket(0x0034, PacketEditServer.class); // TODO
instance.registerPacket(0x0035, PacketRestartServer.class);
instance.registerPacket(0x0036, PacketCommandServer.class);
instance.registerPacket(0x0037, PacketStopServer.class);
//instance.registerPacket(0x0038, PacketRemoveServer.class); TODO
//instance.registerPacket(0x0039, PacketDeleteServer.class); TODO
//instance.registerPacket(0x0038, PacketRemoveServer.class); // TODO
//instance.registerPacket(0x0039, PacketDeleteServer.class); // TODO
//instance.registerPacket(0x0030, new PacketInReload(plugin)); TODO
//instance.registerPacket(0x0030, new PacketInReload(plugin)); // TODO
instance.registerPacket(0x0031, new PacketCreateServer(plugin));
//instance.registerPacket(0x0032, new PacketAddServer(plugin)); TODO
//instance.registerPacket(0x0032, new PacketAddServer(plugin)); // TODO
instance.registerPacket(0x0033, new PacketStartServer(plugin));
//instance.registerPacket(0x0034, new PacketEditServer(plugin)); TODO
//instance.registerPacket(0x0034, new PacketEditServer(plugin)); // TODO
instance.registerPacket(0x0035, new PacketRestartServer(plugin));
instance.registerPacket(0x0036, new PacketCommandServer(plugin));
instance.registerPacket(0x0037, new PacketStopServer(plugin));
//instance.registerPacket(0x0038, new PacketRemoveServer(plugin)); TODO
//instance.registerPacket(0x0039, new PacketDeleteServer(plugin)); TODO
//instance.registerPacket(0x0038, new PacketRemoveServer(plugin)); // TODO
//instance.registerPacket(0x0039, new PacketDeleteServer(plugin)); // TODO
// 50-69: External Host Packets

View File

@ -149,46 +149,59 @@ public final class SubPlugin extends BungeeCord implements Listener {
}
}
if (new UniversalFile(dir, "Recently Deleted").exists()) {
int f = new UniversalFile(dir, "Recently Deleted").listFiles().length;
for (File file : new UniversalFile(dir, "Recently Deleted").listFiles()) {
try {
if (file.isDirectory()) {
if (new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json").exists()) {
FileReader reader = new FileReader(new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json"));
YAMLSection info = new YAMLSection(new Gson().fromJson(Util.readAll(reader), Map.class));
reader.close();
if (info.contains("Timestamp")) {
if (TimeUnit.MILLISECONDS.toDays(Calendar.getInstance().getTime().getTime() - info.getLong("Timestamp")) >= 7) {
Runnable clean = () -> {
try {
if (new UniversalFile(dir, "Recently Deleted").exists()) {
int f = new UniversalFile(dir, "Recently Deleted").listFiles().length;
for (File file : new UniversalFile(dir, "Recently Deleted").listFiles()) {
try {
if (file.isDirectory()) {
if (new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json").exists()) {
FileReader reader = new FileReader(new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json"));
YAMLSection info = new YAMLSection(new Gson().fromJson(Util.readAll(reader), Map.class));
reader.close();
if (info.contains("Timestamp")) {
if (TimeUnit.MILLISECONDS.toDays(Calendar.getInstance().getTime().getTime() - info.getLong("Timestamp")) >= 7) {
Util.deleteDirectory(file);
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
}
} else {
Util.deleteDirectory(file);
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
}
} else {
Util.deleteDirectory(file);
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
}
} else {
Util.deleteDirectory(file);
Files.delete(file.toPath());
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
}
} else {
Util.deleteDirectory(file);
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
} catch (Exception e) {
System.out.println("SubServers > Problem scanning ~/SubServers/Recently Deleted/" + file.getName());
e.printStackTrace();
Files.delete(file.toPath());
}
} else {
Files.delete(file.toPath());
f--;
System.out.println("SubServers > Removed ~/SubServers/Recently Deleted/" + file.getName());
}
} catch (Exception e) {
System.out.println("SubServers > Problem scanning ~/SubServers/Recently Deleted/" + file.getName());
e.printStackTrace();
Files.delete(file.toPath());
if (f <= 0) {
Files.delete(new UniversalFile(dir, "Recently Deleted").toPath());
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (f <= 0) {
Files.delete(new UniversalFile(dir, "Recently Deleted").toPath());
};
clean.run();
new Timer("SubServers.Bungee::Recycle_Cleaner").scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
clean.run();
}
}
}, TimeUnit.DAYS.toMillis(7), TimeUnit.DAYS.toMillis(7));
api.addHostDriver(net.ME1312.SubServers.Bungee.Host.Internal.InternalHost.class, "built-in");
api.addHostDriver(net.ME1312.SubServers.Bungee.Host.External.ExternalHost.class, "network");