fix #29 player claimdata lost on death
This commit is contained in:
parent
6b59f18377
commit
07c3c1a69f
|
@ -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;
|
||||
|
|
|
@ -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 {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user