Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package org.bukkit.command.defaults;
2
3import org.bukkit.Bukkit;
4import org.bukkit.ChatColor;
5import org.bukkit.command.CommandSender;
6import org.bukkit.command.ConsoleCommandSender;
7import org.bukkit.entity.Player;
8
9public class TellCommand extends VanillaCommand {
10 public TellCommand() {
11 super("tell");
12 this.description = "Sends a private message to the given player";
13 this.usageMessage = "/tell <player> <message>";
14 this.setPermission("bukkit.command.tell");
15 }
16
17 @Override
18 public boolean execute(CommandSender sender, String currentAlias, String[] args) {
19 if (!testPermission(sender)) return true;
20 if (args.length < 2) {
21 sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
22 return false;
23 }
24
25 Player player = Bukkit.getPlayerExact(args[0]);
26
27 if (player == null || (sender instanceof Player && !((Player) sender).canSee(player))) {
28 sender.sendMessage("There's no player by that name online.");
29 } else {
30 String message = "";
31
32 for (int i = 1; i < args.length; i++) {
33 if (i > 1) message += " ";
34 message += args[i];
35 }
36
37 String result = ChatColor.GRAY + sender.getName() + " whispers " + message;
38
39 if (sender instanceof ConsoleCommandSender) {
40 Bukkit.getLogger().info("[" + sender.getName() + "->" + player.getName() + "] " + message);
41 Bukkit.getLogger().info(result);
42 }
43
44 player.sendMessage(result);
45 }
46
47 return true;
48 }
49
50 @Override
51 public boolean matches(String input) {
52 return input.startsWith("tell ");
53 }
54}