Custom Commands
Creating Custom Commands
Allows you to register and handle custom commands in scripts
Method
addCommand(commandName: String, commandHandler: Object, permission?: String)Parameters:
commandName(String) The name of the command (without/)commandHandler(Object) Contains methods likeonCommandand optionallyonTabCompletepermission(optional) (String) The permission string required to execute or tab-complete this command. If there is no permission given, the command is available to all players (and ops by default)
commandHandler Methods
commandHandler MethodsonCommand(sender, args)(required) Called when the command is executed.sender: The player or console who executed the command.args: A Java array of arguments.
onTabComplete(sender, args)(optional) Called to provide tab-completion suggestions. Must return a Java List.
addCommand("hello", {
onCommand: function(sender, args) {
args = toArray(args); // Convert Java array to JS array
sender.sendMessage("Hello, " + sender.getName() + "!");
},
onTabComplete: function(sender, args) {
args = toArray(args);
if (args.length === 1) {
return toJavaList(["world", "everyone"]);
}
return toJavaList([]);
}
});addCommand("adminhello", {
onCommand: function(sender, args) {
sender.sendMessage("Hello from the admin command!");
},
onTabComplete: function(sender, args) {
return toJavaList(["secret", "adminzone"]);
}
}, "openjs.command.adminhello"); // <-- Optional permissionPlayers without
openjs.command.adminhellowill not see the command in suggestions or tab-complete. Ops do have all permission by default, unless restricted by permission plugins.
Notes
You can manage permissions via
/lp editorin LuckPerms or other permission systemsPermissions must be valid strings (e.g.,
pluginname.command.commandname)If
onTabCompleteis missing, tab completion is disabled for this command
Last updated
Was this helpful?