diff --git a/gradle.properties b/gradle.properties index ac348ad..63dfa97 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ mod_name=Fretux's Skill Engine # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=1.2.9 +mod_version=1.3.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/net/fretux/skillengine/events/SkillEnginePlayerEvents.java b/src/main/java/net/fretux/skillengine/events/SkillEnginePlayerEvents.java index 3caecd0..2cb12b4 100644 --- a/src/main/java/net/fretux/skillengine/events/SkillEnginePlayerEvents.java +++ b/src/main/java/net/fretux/skillengine/events/SkillEnginePlayerEvents.java @@ -35,11 +35,16 @@ public class SkillEnginePlayerEvents { @SubscribeEvent public static void onClone(PlayerEvent.Clone event) { if (event.getEntity() instanceof ServerPlayer newPlayer && event.getOriginal() instanceof ServerPlayer oldPlayer) { - oldPlayer.getCapability(SkillEngineCapabilities.PLAYER_SKILLS).ifPresent(oldData -> - newPlayer.getCapability(SkillEngineCapabilities.PLAYER_SKILLS).ifPresent(newData -> { - newData.load(oldData.save()); - }) - ); + oldPlayer.reviveCaps(); + try { + oldPlayer.getCapability(SkillEngineCapabilities.PLAYER_SKILLS).ifPresent(oldData -> + newPlayer.getCapability(SkillEngineCapabilities.PLAYER_SKILLS).ifPresent(newData -> + newData.load(oldData.save()) + ) + ); + } finally { + oldPlayer.invalidateCaps(); + } } }