← Back to Roadmap

Commands

25 min

Create player commands with arguments and permissions.

Creating Commands

Commands let players interact with your plugin via chat.

Basic Command

java
public class HelloCommand extends AbstractPlayerCommand {

public HelloCommand() { super("hello"); }

@Override public void execute(ServerPlayer player, Arguments args) { player.sendMessage(Component.text("Hello, " + player.getName() + "!")); } }

Registering Commands

java
@Override
public void setup() {
    getServer().getCommandManager()
        .register(new HelloCommand());
}

Command Arguments

java
public class TeleportCommand extends AbstractPlayerCommand {

public TeleportCommand() { super("tp"); // Define arguments addArgument(new DoubleArgument("x")); addArgument(new DoubleArgument("y")); addArgument(new DoubleArgument("z")); }

@Override public void execute(ServerPlayer player, Arguments args) { double x = args.get("x", Double.class); double y = args.get("y", Double.class); double z = args.get("z", Double.class);

// Teleport using Teleport component Ref<EntityStore> ref = player.getEntityRef(); ref.add(Teleport.getComponentType(), new Teleport(new Vector3d(x, y, z)));

player.sendMessage(Component.text("Teleported!")); } }

Available Argument Types

  • StringArgument - text
  • IntegerArgument - whole numbers
  • DoubleArgument - decimal numbers
  • PlayerArgument - online player
  • BooleanArgument - true/false