Carpet

Carpet

2M Downloads

Running `/player <name> spawn` in non-Overworld dimension results in bot spawning in Overworld at same coordinates

ASchneider-GitHub opened this issue · 3 comments

commented

Mod Version: fabric-carpet-1.21-1.4.147+v240613.jar
Fabric API: fabric-api-0.100.3+1.21.jar
Fabric Loader: v0.15.11

When running the command /player <name> spawn in either the Nether or The End the bot that spawns will arrive in the Overworld, but will keep the coordinates of where you were standing in the non-Overworld dimension. See screenshots for explanation.

Nether - Command:
NetherCommand

Nether - Result:
NetherResult

The End - Command:
TheEndCommand

The End - Result:
TheEndResult

commented

In my limited testing this also extends to bots always spawning in creative, although I have seen exceptions to both of these cases that I can't seem to figure out why.
When I run /player <name> spawn at <coords> facing 0 0 in minecraft:nether it will spawn the bot initially in the nether (granting the bot the achievement) and then in the next tick, teleport the bot into the overworld. Not sure if OP is as well, but I am running VPM on the server as well for performance reasons. I haven't tested without it yet due to it hard to find a time to restart without affecting players.

commented

I've managed to reproduce the issue using carpet mod fabric-carpet-1.21-1.4.147+v240613 on Velocity 3.3.0-SNAPSHOT (git-9d25d309-b400). The player seems to first spawn in the nether then, one tick later, gets warped to the overworld, without getting any advancements. When trying to spawn a player in the overworld then sending it in the nether through a portal, everything goes fine.

Once the player has passed the portal, I can kill it and spawn it back in the nether. I can also kill it in the nether and spawn it back in the overworld, but once it has reached the overworld I cannot spawn it back in the nether without making it go through a portal first.

commented

On 1.21 (Carpet 1.4.147+v240613), spawning in a player in the Overworld that has never joined the world before will get spawned at the world spawn:

[Server thread/INFO]: totallynewign[local] logged in with entity id 1091787 at (1963.5, 65.0, -2280.5)
[Server thread/WARN]: User 97f07847-9d9a-36c4-938c-a8d95b2badd7 - totallynewign doesn't currently have data pre-loaded - denying login.
[Server thread/INFO]: totallynewign joined the game

…whereas a player seen before:

[Server thread/INFO]: 010[local] logged in with entity id 1090494 at (1350.288483, 30.0, 1502.999092)
[Server thread/WARN]: User a774a83f-6719-4a60-b627-bc852b8c29ea - 010 doesn't currently have data pre-loaded - denying login.
[Server thread/INFO]: §8[§6§lBOT§r§8] 010 joined the game

(Spawned at my coordinates)

All of this coordinate handling appears to happen before the player joined the world, and not in subsequent ticks.