fix skilltree wiping on death

This commit is contained in:
2026-04-07 08:46:10 +02:00
parent 0386027e99
commit 66f7f76e01
2 changed files with 11 additions and 6 deletions
@@ -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();
}
}
}