Merge pull request #228 from KAMKEEL/fix-quest-and-dialog-syncing-issues

Reset sync caches between worlds
This commit is contained in:
Kam authored and GitHub committed 2025-11-05 16:52:59 -05:00
commit a7100daa77
2 files changed
+18

No files matched your search

@@ -86,6 +86,15 @@ public class SyncController {
registerCache(EnumSyncType.MAGIC_CYCLE, SyncController::magicCyclesNBT);
}
public static void resetServerState() {
for (SyncCacheEntry entry : CACHE_ENTRIES.values()) {
if (entry != null) {
entry.reset();
}
}
PLAYER_SYNC_STATE.clear();
}
public static void syncPlayer(EntityPlayerMP player) {
syncPlayer(player, true);
}
@@ -939,6 +948,12 @@ public class SyncController {
return revision;
}
private synchronized void reset() {
dirty = true;
payload = null;
revision = 0;
}
private static byte[][] splitIntoChunks(byte[] payload) {
int totalSize = payload.length;
int chunkCount = (totalSize + LargeAbstractPacket.CHUNK_SIZE - 1) / LargeAbstractPacket.CHUNK_SIZE;
@@ -19,6 +19,7 @@ import kamkeel.npcs.command.CommandKamkeel;
import kamkeel.npcs.command.profile.CommandProfile;
import kamkeel.npcs.controllers.AttributeController;
import kamkeel.npcs.controllers.ProfileController;
import kamkeel.npcs.controllers.SyncController;
import kamkeel.npcs.controllers.data.profile.CNPCData;
import kamkeel.npcs.developer.Developer;
import kamkeel.npcs.network.PacketHandler;
@@ -303,6 +304,7 @@ public class CustomNpcs {
//Loading items in the about to start event was corrupting items with a damage value
@EventHandler
public void started(FMLServerStartedEvent event) {
SyncController.resetServerState();
RecipeController.Instance.load();
new BankController();
DialogController.Instance.load();
@@ -315,6 +317,7 @@ public class CustomNpcs {
@EventHandler
public void stopped(FMLServerStoppedEvent event) {
SyncController.resetServerState();
ServerCloneController.Instance = null;
GlobalDataController.Instance.saveData();
ScriptController.Instance.saveForgeScripts();