Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
SayCommand.java
Go to the documentation of this file.
1 package org.bukkit.command.defaults;
2 
3 import java.util.List;
4 
5 import org.apache.commons.lang.Validate;
6 import org.bukkit.Bukkit;
7 import org.bukkit.ChatColor;
8 import org.bukkit.command.CommandSender;
9 import org.bukkit.entity.Player;
10 
11 import com.google.common.collect.ImmutableList;
12 
13 public class SayCommand extends VanillaCommand {
14  public SayCommand() {
15  super("say");
16  this.description = "Broadcasts the given message as the console";
17  this.usageMessage = "/say <message>";
18  this.setPermission("bukkit.command.say");
19  }
20 
21  @Override
22  public boolean execute(CommandSender sender, String currentAlias, String[] args) {
23  if (!testPermission(sender)) return true;
24  if (args.length == 0) {
25  sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
26  return false;
27  }
28 
29  StringBuilder message = new StringBuilder();
30  if (args.length > 0) {
31  message.append(args[0]);
32  for (int i = 1; i < args.length; i++) {
33  message.append(" ");
34  message.append(args[i]);
35  }
36  }
37 
38  if (sender instanceof Player) {
39  Bukkit.getLogger().info("[" + sender.getName() + "] " + message);
40  }
41 
42  Bukkit.broadcastMessage(ChatColor.LIGHT_PURPLE + "[Server] " + message);
43 
44  return true;
45  }
46 
47  @Override
48  public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
49  Validate.notNull(sender, "Sender cannot be null");
50  Validate.notNull(args, "Arguments cannot be null");
51 
52  if (args.length >= 1) {
53  return super.tabComplete(sender, alias, args);
54  }
55  return ImmutableList.of();
56  }
57 }