9
0
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:
Preva1l
2024-10-18 02:21:42 +11:00
committed by GitHub
parent 48f8c0c967
commit b449b5dee6

View File

@@ -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
};
} }
} }