1 package org.bukkit.command.defaults;
3 import com.google.common.collect.ImmutableList;
4 import org.apache.commons.lang.Validate;
13 import java.util.ArrayList;
14 import java.util.Collections;
15 import java.util.List;
18 private static List<String> materials;
20 ArrayList<String> materialList =
new ArrayList<String>();
22 materialList.add(material.name());
24 Collections.sort(materialList);
25 materials = ImmutableList.copyOf(materialList);
30 this.description =
"Clears the player's inventory. Can specify item and data filters too.";
31 this.usageMessage =
"/clear <player> [item] [data]";
36 public boolean execute(
CommandSender sender, String currentAlias, String[] args) {
40 if (args.length > 0) {
42 }
else if (sender instanceof
Player) {
43 player = (Player) sender;
49 if (args.length > 1 && !(args[1].equals(
"-1"))) {
51 if (material == null) {
56 id = material.
getId();
61 int data = args.length >= 3 ? getInteger(sender, args[2], 0) : -1;
64 Command.broadcastCommandMessage(sender,
"Cleared the inventory of " + player.
getDisplayName() +
", removing " + count +
" items");
65 }
else if (args.length == 0) {
75 public List<String> tabComplete(
CommandSender sender, String alias, String[] args)
throws IllegalArgumentException {
76 Validate.notNull(sender,
"Sender cannot be null");
77 Validate.notNull(args,
"Arguments cannot be null");
78 Validate.notNull(alias,
"Alias cannot be null");
80 if (args.length == 1) {
81 return super.tabComplete(sender, alias, args);
83 if (args.length == 2) {
84 final String arg = args[1];
86 List<String> completion = null;
88 final int size = materials.size();
89 int i = Collections.binarySearch(materials, arg, String.CASE_INSENSITIVE_ORDER);
96 for ( ; i < size; i++) {
97 String material = materials.get(i);
99 if (completion == null) {
100 completion =
new ArrayList<String>();
102 completion.add(material);
108 if (completion != null) {
112 return ImmutableList.of();
boolean testPermission(CommandSender target)
PlayerInventory getInventory()
int clear(int id, int data)
void sendMessage(String message)
void setPermission(String permission)
static Material matchMaterial(final String name)
static boolean startsWithIgnoreCase(final String string, final String prefix)
static Player getPlayer(String name)