mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-19 14:59:21 +00:00
fix: cache save causes, fix Fabric data save on shutdown (#405)
Co-authored-by: seeruk <wright.elliot@gmail.com>
This commit is contained in:
@@ -913,6 +913,8 @@ public class DataSnapshot {
|
|||||||
|
|
||||||
private final boolean fireDataSaveEvent;
|
private final boolean fireDataSaveEvent;
|
||||||
|
|
||||||
|
private static Map<String, SaveCause> registry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get or create a {@link SaveCause} from a name
|
* Get or create a {@link SaveCause} from a name
|
||||||
*
|
*
|
||||||
@@ -921,7 +923,7 @@ public class DataSnapshot {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public static SaveCause of(@NotNull String name) {
|
public static SaveCause of(@NotNull String name) {
|
||||||
return new SaveCause(name.length() > 32 ? name.substring(0, 31) : name, true);
|
return of(name,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -933,7 +935,14 @@ public class DataSnapshot {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public static SaveCause of(@NotNull String name, boolean firesSaveEvent) {
|
public static SaveCause of(@NotNull String name, boolean firesSaveEvent) {
|
||||||
return new SaveCause(name.length() > 32 ? name.substring(0, 31) : name, firesSaveEvent);
|
name = name.length() > 32 ? name.substring(0, 31) : name;
|
||||||
|
|
||||||
|
if (registry == null) registry = new HashMap<>();
|
||||||
|
if (registry.containsKey(name)) return registry.get(name);
|
||||||
|
|
||||||
|
SaveCause cause = new SaveCause(name, firesSaveEvent);
|
||||||
|
registry.put(cause.name(), cause);
|
||||||
|
return cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -944,11 +953,10 @@ public class DataSnapshot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ApiStatus.Obsolete
|
||||||
public static SaveCause[] values() {
|
public static SaveCause[] values() {
|
||||||
return new SaveCause[]{
|
if (registry == null) registry = new HashMap<>();
|
||||||
DISCONNECT, WORLD_SAVE, DEATH, SERVER_SHUTDOWN, INVENTORY_COMMAND, ENDERCHEST_COMMAND,
|
return registry.values().toArray(new SaveCause[0]);
|
||||||
BACKUP_RESTORE, API, MPDB_MIGRATION, LEGACY_MIGRATION, CONVERTED_FROM_V2
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user