So I want to create a command to teleport between dimensions, for testing, but when I try to run it, the game says
"Unknown Command"
"...dimension_name_here <--[HERE]"
And I also tried using breakpoints but they didn't trigger whatsoever??
Command Class:
public class TeleportDimensionCommand {
public static void register(CommandDispatcher<CommandSource> dispatcher) {
LiteralArgumentBuilder<CommandSource> builder = Commands.literal("teleport_dimension").requires(source -> source.hasPermissionLevel(2));
builder.then(Commands.argument("dimension", DimensionArgument.getDimension()));
builder.executes(TeleportDimensionCommand::teleport); //Only breakpoint which triggered
LiteralCommandNode<CommandSource> teleport_dimension = dispatcher.register(builder);
dispatcher.register(Commands.literal("tp_dim").requires(source -> source.hasPermissionLevel(2)).redirect(teleport_dimension));
}
private static int teleport(CommandContext<CommandSource> context) {
ServerPlayerEntity player;
try {
player = context.getSource().asPlayer(); //Put a breakpoint here..
player.sendMessage(new StringTextComponent("Attempting teleport...")); //When I didn't put any arguments, this popped up in chat
} catch (CommandSyntaxException e) {
Main.getLogger().error(Markers.ERROR, "Could not get player from source");
e.printStackTrace();
return 0; //Also tried a breakpoint here
}
if(player.changeDimension(DimensionArgument.getDimensionArgument(context, "dimension")) == null) {
Main.getLogger().error(Markers.ERROR, "Could not teleport player"); //Put a breakpoint here
player.sendMessage(new StringTextComponent("Could not teleport"));
} else {
player.sendMessage(new StringTextComponent("Teleported!")); //Put a breakpoint here
}
return 1;
}
}
In my main class:
package sdt.undergroundadditions;
//Imports here...
@Mod("undergroundadditions")
public class Main {
public Main() {
//Some more code here..
IEventBus forge = MinecraftForge.EVENT_BUS;
//Adding listeners here...
forge.addListener(this::serverStarting);
}
//Some more methods in between here
private void serverStarting(FMLServerStartingEvent event) {
TeleportDimensionCommand.register(event.getCommandDispatcher());
logger.info(Markers.SERVER_STARTING, "Initialized server starting events");
}
}
And, there's no error in the logs too. What's wrong?