cn.nukkit.command.defaults.TellCommand Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of powernukkit Show documentation
Show all versions of powernukkit Show documentation
A Minecraft Bedrock Edition server software implementation made in Java from scratch which supports all new features.
package cn.nukkit.command.defaults;
import cn.nukkit.Player;
import cn.nukkit.command.CommandSender;
import cn.nukkit.command.data.CommandParamType;
import cn.nukkit.command.data.CommandParameter;
import cn.nukkit.lang.TranslationContainer;
import cn.nukkit.utils.TextFormat;
import java.util.Objects;
/**
* @author xtypr
* @since 2015/11/12
*/
public class TellCommand extends VanillaCommand {
public TellCommand(String name) {
super(name, "%nukkit.command.tell.description", "%commands.message.usage", new String[]{"w", "msg"});
this.setPermission("nukkit.command.tell");
this.commandParameters.clear();
this.commandParameters.put("default", new CommandParameter[]{
CommandParameter.newType("player", CommandParamType.TARGET),
CommandParameter.newType("message", CommandParamType.MESSAGE)
});
}
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length < 2) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
String name = args[0].toLowerCase();
Player player = sender.getServer().getPlayer(name);
if (player == null) {
sender.sendMessage(new TranslationContainer("commands.generic.player.notFound"));
return true;
}
if (Objects.equals(player, sender)) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.message.sameTarget"));
return true;
}
StringBuilder msg = new StringBuilder();
for (int i = 1; i < args.length; i++) {
msg.append(args[i]).append(" ");
}
if (msg.length() > 0) {
msg = new StringBuilder(msg.substring(0, msg.length() - 1));
}
String displayName = (sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName());
sender.sendMessage("[" + sender.getName() + " -> " + player.getDisplayName() + "] " + msg);
player.sendMessage("[" + displayName + " -> " + player.getName() + "] " + msg);
return true;
}
}