fix #29 player claimdata lost on death

This commit is contained in:
Flemmli97 2021-01-21 21:12:08 +01:00
parent 6b59f18377
commit 07c3c1a69f
2 changed files with 12 additions and 1 deletions

View File

@ -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;

View File

@ -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 {
}
}
}
}
}