diff --git a/src/main/java/com/flemmli97/flan/mixin/PlayerClaimMixin.java b/src/main/java/com/flemmli97/flan/mixin/PlayerClaimMixin.java index c9f1475..d6a6f27 100644 --- a/src/main/java/com/flemmli97/flan/mixin/PlayerClaimMixin.java +++ b/src/main/java/com/flemmli97/flan/mixin/PlayerClaimMixin.java @@ -15,6 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ServerPlayerEntity.class) public abstract class PlayerClaimMixin implements IClaimData { + @Unique private PlayerClaimData claimData; @@ -41,6 +42,11 @@ public abstract class PlayerClaimMixin implements IClaimData { this.claimData.tick(); } + @Inject(method = "copyFrom", at = @At("RETURN")) + private void copyOld(ServerPlayerEntity oldPlayer, boolean alive, CallbackInfo info) { + this.claimData.clone(PlayerClaimData.get(oldPlayer)); + } + @Override public PlayerClaimData getClaimData() { return this.claimData; diff --git a/src/main/java/com/flemmli97/flan/player/PlayerClaimData.java b/src/main/java/com/flemmli97/flan/player/PlayerClaimData.java index f9fe7a0..3dd31df 100644 --- a/src/main/java/com/flemmli97/flan/player/PlayerClaimData.java +++ b/src/main/java/com/flemmli97/flan/player/PlayerClaimData.java @@ -213,6 +213,11 @@ public class PlayerClaimData { this.actionCooldown--; } + public void clone(PlayerClaimData data) { + this.claimBlocks = data.claimBlocks; + this.additionalClaimBlocks = data.additionalClaimBlocks; + } + public void save(MinecraftServer server) { Flan.log("Saving player data for player {} with uuid {}", this.player.getName(), this.player.getUuid()); File dir = new File(server.getSavePath(WorldSavePath.PLAYERDATA).toFile(), "/claimData/"); @@ -333,4 +338,4 @@ public class PlayerClaimData { } } } -} +} \ No newline at end of file