-
Notifications
You must be signed in to change notification settings - Fork 2
Custom Handling System
Traqueur edited this page Jul 25, 2024
·
4 revisions
The MessageHandler interface in CommandsAPI allows you to define custom messages for various command-related events, such as lacking permissions, missing arguments, and unrecognized arguments. This page will guide you through the process of creating your own message handling system by overriding the default messages.
Thanks to Robotv2 for the idea.
The MessageHandler interface provides methods to retrieve messages for different scenarios:
package fr.traqueur.commands.api.lang;
public interface MessageHandler {
String getNoPermissionMessage();
String getOnlyInGameMessage();
String getMissingArgsMessage();
String getArgNotRecognized();
default String getMessage(Messages type) {
return switch (type) {
case NO_PERMISSION -> getNoPermissionMessage();
case ONLY_IN_GAME -> getOnlyInGameMessage();
case MISSING_ARGS -> getMissingArgsMessage();
case ARG_NOT_RECOGNIZED -> getArgNotRecognized();
};
}
}To override the default messages, you need to implement the MessageHandler interface and provide your own versions of the message methods.
- Create a new class that implements
MessageHandler:
public class CustomMessagehandler extends MessageHandler {
@Override
public String getNoPermissionMessage() {
return /* your implementation */;
}
@Override
public String getOnlyInGameMessage() {
return /* your implementation */;
}
@Override
public String getMissingArgsMessage() {
return /* your implementation */;
}
@Override
public String getArgNotRecognized() {
return /* your implementation */;
}
}- Register the new class that implements
MessageHandler:
public class MyPlugin extends JavaPlugin {
private final CommandManager commandManager;
@Override
public void onEnable() {
commandManager = new CommandManager(this);
commandManager.setMessageHandler(new MyMessageHandler());
//or
Lang.setMessageHandler(new MyMessageHandler());
}
}