9
9
import net .minecraft .server .command .CommandManager ;
10
10
import net .minecraft .server .command .ServerCommandSource ;
11
11
import net .minecraft .server .network .ServerPlayerEntity ;
12
+ import net .minecraft .server .world .ServerWorld ;
12
13
import net .minecraft .text .Text ;
13
14
import net .minecraft .util .Formatting ;
14
15
import net .minecraft .util .math .BlockPos ;
16
+ import net .minecraft .world .World ;
15
17
16
18
public class spawn {
17
19
private static final CommandEntry defaultEntry = new CommandEntry ("spawn" , 0 , true );
@@ -30,15 +32,18 @@ public static void register(CommandDispatcher<ServerCommandSource> dispatcher) {
30
32
}
31
33
32
34
public static int execute (CommandContext <ServerCommandSource > context , ServerPlayerEntity player , boolean personal ) throws CommandSyntaxException {
33
- BlockPos spawnPoint = null ;
35
+ final ServerWorld dimension ;
36
+ final BlockPos spawnPoint ;
34
37
if (personal ) {
35
38
spawnPoint = player .getSpawnPointPosition ();
36
- }
37
- if ( spawnPoint == null ) {
39
+ dimension = context . getSource (). getServer (). getWorld ( player . getSpawnPointDimension ());
40
+ } else {
38
41
spawnPoint = context .getSource ().getWorld ().getSpawnPos ();
42
+ dimension = context .getSource ().getWorld ();
39
43
}
40
44
41
- player .requestTeleportAndDismount (spawnPoint .getX (), spawnPoint .getY (), spawnPoint .getZ ());
45
+ player .dismountVehicle ();
46
+ player .requestTeleport (spawnPoint .getX (), spawnPoint .getY (), spawnPoint .getZ ());
42
47
context .getSource ().sendFeedback (() -> Text .literal ("Teleported back to spawn." ).formatted (Formatting .GREEN ), false );
43
48
Commands .finishedExecution (context , defaultEntry );
44
49
return 1 ;
0 commit comments