forked from SteamWar/SteamWar
Fixed deletion of old traces
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+12
-7
@@ -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();
|
||||
|
||||
+2
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user