Fixed deletion of old traces

This commit is contained in:
D4rkr34lm
2024-08-16 17:18:02 +02:00
parent 963f798e7c
commit 642e9ffd50
4 changed files with 17 additions and 10 deletions
@@ -93,8 +93,8 @@ public class Trace {
this.date = new Date();
recordsCount = recordList.size();
records = new SoftReference<>(recordList);
recordsSaveFile = new File(TraceManager.tracesFolder, uuid + ".records");
metadataSaveFile = new File(TraceManager.tracesFolder, uuid + ".meta");
recordsSaveFile = new File(TraceRepository.tracesFolder, uuid + ".records");
metadataSaveFile = new File(TraceRepository.tracesFolder, uuid + ".meta");
}
/**
@@ -36,6 +36,8 @@ import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
import static de.steamwar.bausystem.features.tracer.TraceRepository.tracesFolder;
@Linked
public class TraceManager implements Listener {
@@ -45,10 +47,11 @@ public class TraceManager implements Listener {
instance = this;
}
public static File tracesFolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "traces");
@EventHandler
public void init(PluginEnableEvent event) {
if(!event.getPlugin().getName().equalsIgnoreCase("BauSystem")) {return;}
if (!tracesFolder.exists())
tracesFolder.mkdir();
@@ -61,12 +64,14 @@ public class TraceManager implements Listener {
continue;
if (TraceRepository.getVersion(traceFile) == TraceRepository.SERIALISATION_VERSION) {
add(TraceRepository.readTrace(traceFile));
Trace t = TraceRepository.readTrace(traceFile);
add(t);
System.out.println(t);
} else {
String uuid = traceFile.getName().replace(".records", "");
String uuid = traceFile.getName().replace(".meta", "");
new File(tracesFolder, uuid + ".records").delete();
new File(tracesFolder, uuid + ".meta").delete();
new File(tracesFolder, uuid + ".records").deleteOnExit();
new File(tracesFolder, uuid + ".meta").deleteOnExit();
}
}
@@ -170,8 +175,8 @@ public class TraceManager implements Listener {
tracesByRegion.getOrDefault(region, new HashMap<>())
.forEach((i, trace) -> {
if (trace.getRegion() != region) return;
trace.getMetadataSaveFile().delete();
trace.getRecordsSaveFile().delete();
trace.getMetadataSaveFile().deleteOnExit();
trace.getRecordsSaveFile().deleteOnExit();
});
tracesByRegion.getOrDefault(region, new HashMap<>()).clear();
}
@@ -73,6 +73,7 @@ public class TraceRecorder implements Listener {
@EventHandler
public void init(PluginEnableEvent event) {
if(!event.getPlugin().getName().equalsIgnoreCase("BauSystem")) {return;}
BauSystem.runTaskTimer(BauSystem.getInstance(), () -> {
record();
checkForAutoTraceFinish();
@@ -16,6 +16,7 @@ public class TraceRepository {
* Increment this when changing serialisation format
*/
public static final int SERIALISATION_VERSION = 1;
public static File tracesFolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "traces");
@SneakyThrows
protected static int getVersion(File metadataFile) {
@@ -39,7 +40,7 @@ public class TraceRepository {
UUID uuid = UUID.fromString(reader.readUTF());
Region region = Region.getREGION_MAP().get(reader.readUTF());
Date date = (Date) reader.readObject();
File recordsFile = new File(uuid + ".records");
File recordsFile = new File(tracesFolder,uuid + ".records");
int recordsCount = reader.readInt();
return new Trace(uuid, region, date, metadataFile, recordsFile, recordsCount);