|
16 | 16 | import net.minecraft.screen.ScreenHandlerType; |
17 | 17 | import net.minecraft.screen.slot.Slot; |
18 | 18 | import net.minecraft.server.MinecraftServer; |
| 19 | +import net.minecraft.server.PlayerConfigEntry; |
19 | 20 | import net.minecraft.server.command.ServerCommandSource; |
20 | 21 | import net.minecraft.server.network.ServerPlayerEntity; |
21 | 22 | import net.minecraft.server.world.ServerWorld; |
| 23 | +import net.minecraft.storage.NbtReadView; |
22 | 24 | import net.minecraft.storage.ReadView; |
23 | 25 | import net.minecraft.text.Text; |
24 | 26 | import net.minecraft.util.ErrorReporter; |
@@ -162,15 +164,16 @@ public static int eChest(CommandContext<ServerCommandSource> context) throws Com |
162 | 164 |
|
163 | 165 | private static ServerPlayerEntity getRequestedPlayer(CommandContext<ServerCommandSource> context) |
164 | 166 | throws CommandSyntaxException { |
165 | | - GameProfile requestedProfile = GameProfileArgumentType.getProfileArgument(context, "target").iterator().next(); |
166 | | - ServerPlayerEntity requestedPlayer = minecraftServer.getPlayerManager().getPlayer(requestedProfile.getName()); |
| 167 | + PlayerConfigEntry playerConfigEntry = GameProfileArgumentType.getProfileArgument(context, "target").iterator().next(); |
| 168 | + ServerPlayerEntity requestedPlayer = minecraftServer.getPlayerManager().getPlayer(playerConfigEntry.name()); |
167 | 169 |
|
168 | 170 | // If player is not currently online |
169 | 171 | if (requestedPlayer == null) { |
170 | | - requestedPlayer = new ServerPlayerEntity(minecraftServer, minecraftServer.getOverworld(), requestedProfile, |
| 172 | + requestedPlayer = new ServerPlayerEntity(minecraftServer, minecraftServer.getOverworld(), new GameProfile(playerConfigEntry.id(), playerConfigEntry.name()), |
171 | 173 | SyncedClientOptions.createDefault()); |
172 | 174 | Optional<ReadView> readViewOpt = minecraftServer.getPlayerManager() |
173 | | - .loadPlayerData(requestedPlayer, new ErrorReporter.Logging(LogUtils.getLogger())); |
| 175 | + .loadPlayerData(playerConfigEntry).map(playerData -> NbtReadView.create(new ErrorReporter.Logging(LogUtils.getLogger()), minecraftServer.getRegistryManager(), playerData)); |
| 176 | + readViewOpt.ifPresent(requestedPlayer::readData); |
174 | 177 |
|
175 | 178 | // Avoids player's dimension being reset to the overworld |
176 | 179 | if (readViewOpt.isPresent()) { |
|
0 commit comments