Prepare for 1.19 dev
This commit is contained in:
		
					parent
					
						
							
								f34f678b20
							
						
					
				
			
			
				commit
				
					
						1148687a8d
					
				
			
		
					 1302 changed files with 120 additions and 61 deletions
				
			
		|  | @ -1,46 +0,0 @@ | |||
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||||
| From: Jake Potrebic <jake.m.potrebic@gmail.com> | ||||
| Date: Mon, 30 May 2022 16:03:36 -0700 | ||||
| Subject: [PATCH] Fix OfflinePlayer#getBedSpawnLocation | ||||
| 
 | ||||
| When calling getBedSpawnLocation on an | ||||
| instance of CraftOfflinePlayer the world was incorrect | ||||
| due to the logic for reading the NBT not being up-to-date. | ||||
| 
 | ||||
| diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 | ||||
| index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | ||||
| --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 | ||||
| +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
 | ||||
| @@ -0,0 +0,0 @@ import org.bukkit.profile.PlayerProfile;
 | ||||
|   | ||||
|  @SerializableAs("Player") | ||||
|  public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializable { | ||||
| +    private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger(); // Paper
 | ||||
|      private final GameProfile profile; | ||||
|      private final CraftServer server; | ||||
|      private final PlayerDataStorage storage; | ||||
| @@ -0,0 +0,0 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
 | ||||
|          if (data == null) return null; | ||||
|   | ||||
|          if (data.contains("SpawnX") && data.contains("SpawnY") && data.contains("SpawnZ")) { | ||||
| -            String spawnWorld = data.getString("SpawnWorld");
 | ||||
| -            if (spawnWorld.equals("")) {
 | ||||
| -                spawnWorld = this.server.getWorlds().get(0).getName();
 | ||||
| +            // Paper start - fix wrong world
 | ||||
| +            final float respawnAngle = data.getFloat("SpawnAngle");
 | ||||
| +            org.bukkit.World spawnWorld = this.server.getWorld(data.getString("SpawnWorld")); // legacy
 | ||||
| +            if (data.contains("SpawnDimension")) {
 | ||||
| +                com.mojang.serialization.DataResult<net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level>> result = net.minecraft.world.level.Level.RESOURCE_KEY_CODEC.parse(net.minecraft.nbt.NbtOps.INSTANCE, data.get("SpawnDimension"));
 | ||||
| +                net.minecraft.resources.ResourceKey<net.minecraft.world.level.Level> levelKey = result.resultOrPartial(LOGGER::error).orElse(net.minecraft.world.level.Level.OVERWORLD);
 | ||||
| +                net.minecraft.server.level.ServerLevel level = this.server.console.getLevel(levelKey);
 | ||||
| +                spawnWorld = level != null ? level.getWorld() : spawnWorld;
 | ||||
|              } | ||||
| -            return new Location(this.server.getWorld(spawnWorld), data.getInt("SpawnX"), data.getInt("SpawnY"), data.getInt("SpawnZ"));
 | ||||
| +            if (spawnWorld == null) {
 | ||||
| +                return null;
 | ||||
| +            }
 | ||||
| +            return new Location(spawnWorld, data.getInt("SpawnX"), data.getInt("SpawnY"), data.getInt("SpawnZ"), respawnAngle, 0);
 | ||||
| +            // Paper end
 | ||||
|          } | ||||
|          return null; | ||||
|      } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nassim Jahnke
				Nassim Jahnke