mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-05-12 06:56:02 +08:00
* Add targetRequirement annotation for Command * Added MTL lines for other langs * Fix TargetRequirement enum scoping * Adjust commands to targetRequirement system * Add translation message sugar to prevent future messages from being translated for wrong player * Temporarily disable offline targeting on /permission and /clear * Preliminary README cleanup * Readme commands cleanup * Clean up command table in README, including column shuffle Co-authored-by: AnimeGitB <AnimeGitB@bigblueball.in>
41 lines
1.3 KiB
Java
41 lines
1.3 KiB
Java
package emu.grasscutter.command;
|
|
|
|
import emu.grasscutter.Grasscutter;
|
|
import emu.grasscutter.game.player.Player;
|
|
import emu.grasscutter.server.event.game.CommandResponseEvent;
|
|
import emu.grasscutter.server.event.types.ServerEvent;
|
|
import static emu.grasscutter.utils.Language.translate;
|
|
|
|
import java.util.List;
|
|
|
|
public interface CommandHandler {
|
|
|
|
/**
|
|
* Send a message to the target.
|
|
*
|
|
* @param player The player to send the message to, or null for the server console.
|
|
* @param message The message to send.
|
|
*/
|
|
static void sendMessage(Player player, String message) {
|
|
if (player == null) {
|
|
Grasscutter.getLogger().info(message);
|
|
} else {
|
|
player.dropMessage(message);
|
|
}
|
|
CommandResponseEvent event = new CommandResponseEvent(ServerEvent.Type.GAME,player, message);
|
|
event.call();
|
|
}
|
|
|
|
static void sendTranslatedMessage(Player player, String messageKey, Object... args) {
|
|
sendMessage(player, translate(player, messageKey, args));
|
|
}
|
|
|
|
/**
|
|
* Called when a player/console invokes a command.
|
|
* @param sender The player/console that invoked the command.
|
|
* @param args The arguments to the command.
|
|
*/
|
|
default void execute(Player sender, Player targetPlayer, List<String> args) {
|
|
}
|
|
}
|