Creating Commands
You can create commands with 2 option, creating new command class and registering it to command map or creating onCommand function on your PluginBase and adding command to your plugin.yml.
Registering with onCommand
Add an onCommand override to your PluginBase subclass. Example:
public class ExamplePlugin extends PluginBase {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("greet")) {
if (args.length > 0) {
sender.sendMessage("Hello, " + args[0] + "!");
} else {
sender.sendMessage("Hello!");
}
return true;
}
return false;
}
}plugin.yml
name: ExamplePlugin
main: com.example.ExamplePlugin
version: 1.0.0
commands:
greet:
description: Greet a player
usage: /greet [name]
permission: greet.permissionUse onCommand for small or quick commands. For richer behavior (permissions, tab completion, subcommands) prefer registering a dedicated Command class.
Registering with new class
GreetCommand.java
package com.example.command;
import cn.nukkit.command.Command;
import cn.nukkit.command.CommandSender;
public class GreetCommand extends Command {
public GreetCommand() {
super("greet", "Greet a player", "/greet [name]");
this.setPermission("greet.permission");
}
@Override
public boolean execute(CommandSender sender, String label, String[] args) {
if (args.length > 0) {
sender.sendMessage("Hello, " + args[0] + "!");
} else {
sender.sendMessage("Hello!");
}
return true;
}
}You need to register your command class when your plugin is enabled.
@Override
public void onEnable() {
this.getServer().getCommandMap().register("greet", new GreetCommand());
}Don’t forget the import your command class.
Need Help?
If you need assistance, check out the Example Plugin or join our Discord server for support.