diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/server/management/PlayerListMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/server/management/PlayerListMixin.java index 291ed3f0..74157200 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/server/management/PlayerListMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/server/management/PlayerListMixin.java @@ -290,7 +290,7 @@ public abstract class PlayerListMixin implements PlayerListBridge { f2 = (float) Mth.wrapDegrees(Mth.atan2(vec3d2.z, vec3d2.x) * 57.2957763671875 - 90.0); } // playerIn.setLocationAndAngles(vec3d.x, vec3d.y, vec3d.z, f2, 0.0f); - playerIn.setRespawnPosition(spawnWorld.dimension(), pos, f, flag2, false); + playerIn.setRespawnPosition(spawnWorld.dimension(), pos, f2, flag2, false); flag3 = (!flag && flag4); isBedSpawn = true; location = new Location(((WorldBridge) spawnWorld).bridge$getWorld(), vec3d.x, vec3d.y, vec3d.z); @@ -408,7 +408,7 @@ public abstract class PlayerListMixin implements PlayerListBridge { f2 = (float) Mth.wrapDegrees(Mth.atan2(vec3d2.z, vec3d2.x) * 57.2957763671875 - 90.0); } // playerIn.setLocationAndAngles(vec3d.x, vec3d.y, vec3d.z, f2, 0.0f); - playerIn.setRespawnPosition(spawnWorld.dimension(), pos, f, flag2, false); + playerIn.setRespawnPosition(spawnWorld.dimension(), pos, f2, flag2, false); flag3 = (!flag2 && flag4); isBedSpawn = true; location = new Location(((WorldBridge) spawnWorld).bridge$getWorld(), vec3d.x, vec3d.y, vec3d.z); @@ -449,6 +449,8 @@ public abstract class PlayerListMixin implements PlayerListBridge { serverplayerentity.connection = playerIn.connection; serverplayerentity.restoreFrom(playerIn, conqueredEnd); + serverplayerentity.setRespawnPosition(playerIn.getRespawnDimension(), playerIn.getRespawnPosition(), + playerIn.getRespawnAngle(), playerIn.isRespawnForced(), false); if (!conqueredEnd) { // keep inventory here since inventory dropped at ServerPlayerEntity#onDeath serverplayerentity.getInventory().replaceWith(playerIn.getInventory()); }