diff --git a/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java b/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java index c6719bb..4a0596c 100644 --- a/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java +++ b/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java @@ -355,10 +355,13 @@ public class VanillaSync { } } - // Restore Effects + // FIX: ALWAYS clear effects before restoring to prevent stale local effects + // from persisting when DB has no saved effects (e.g. player had no effects on previous server) + serverPlayer.removeAllEffects(); + + // Restore Effects from DB (if any) String effectData = rs2.getString("effects"); if (effectData != null && effectData.length() > 2) { - serverPlayer.removeAllEffects(); Map effects = LocalJsonUtil.StringToEntryMap(effectData); for (Map.Entry entry : effects.entrySet()) { CompoundTag effectTag = NbtUtils.snbtToStructure(deserializeString(entry.getValue()));