// Simple command with string argument
public class GreetCommand extends Command {
public GreetCommand() {
super("greet");
var nameArg = ArgumentType.String("name");
addSyntax((sender, context) -> {
String name = context.get(nameArg);
sender.sendMessage("Hello, " + name + "!");
}, nameArg);
}
}
// Command with multiple arguments
public class TeleportCommand extends Command {
public TeleportCommand() {
super("tp");
var xArg = ArgumentType.Double("x");
var yArg = ArgumentType.Double("y");
var zArg = ArgumentType.Double("z");
addSyntax((sender, context) -> {
if (sender instanceof Player player) {
double x = context.get(xArg);
double y = context.get(yArg);
double z = context.get(zArg);
player.teleport(new Pos(x, y, z));
player.sendMessage("Teleported to " + x + ", " + y + ", " + z);
}
}, xArg, yArg, zArg);
}
}
// Command with player selector
public class HealCommand extends Command {
public HealCommand() {
super("heal");
var targetArg = ArgumentType.Entity("target")
.onlyPlayers(true);
addSyntax((sender, context) -> {
if (context.has(targetArg)) {
var target = context.get(targetArg);
if (target instanceof Player player) {
player.setHealth(player.getMaxHealth());
player.sendMessage("You have been healed!");
sender.sendMessage("Healed " + player.getUsername());
}
} else if (sender instanceof Player player) {
player.setHealth(player.getMaxHealth());
player.sendMessage("You have been healed!");
}
}, targetArg.setDefaultValue(() -> null));
}
}
// Register commands
var commandManager = MinecraftServer.getCommandManager();
commandManager.register(new GreetCommand());
commandManager.register(new TeleportCommand());
commandManager.register(new HealCommand());