Fix respawning not loading chunks

We need to copy the real player field and view distance holder
object over, as Vanilla re-creates ServerPlayer objects unlike
CraftBukkit.
This commit is contained in:
Spottedleaf
2024-06-18 16:11:52 -07:00
parent ac971bee98
commit 502cee89cd

View File

@@ -66,4 +66,19 @@ public abstract class ServerPlayerMixin extends Player implements ChunkSystemSer
public final RegionizedPlayerChunkLoader.ViewDistanceHolder moonrise$getViewDistanceHolder() {
return this.viewDistanceHolder;
}
/**
* @reason Copy player state when respawning
* @author Spottedleaf
*/
@Inject(
method = "restoreFrom",
at = @At(
value = "HEAD"
)
)
private void copyRealPlayer(ServerPlayer from, boolean bl, CallbackInfo ci) {
this.isRealPlayer = ((ServerPlayerMixin)(Object)from).isRealPlayer;
this.viewDistanceHolder = ((ServerPlayerMixin)(Object)from).viewDistanceHolder;
}
}