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.Material;
6import org.bukkit.command.Command;
7import org.bukkit.command.CommandSender;
8import org.bukkit.entity.Player;
9import org.bukkit.inventory.ItemStack;
10
11public class GiveCommand extends VanillaCommand {
12 public GiveCommand() {
13 super("give");
14 this.description = "Gives the specified player a certain amount of items";
15 this.usageMessage = "/give <player> <item> [amount]";
16 this.setPermission("bukkit.command.give");
17 }
18
19 @Override
20 public boolean execute(CommandSender sender, String currentAlias, String[] args) {
21 if (!testPermission(sender)) return true;
22 if ((args.length < 2) || (args.length > 3)) {
23 sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
24 return false;
25 }
26
27 Player player = Bukkit.getPlayerExact(args[0]);
28
29 if (player != null) {
30 Material material = Material.matchMaterial(args[1]);
31
32 if (material != null) {
33 Command.broadcastCommandMessage(sender, "Giving " + player.getName() + " some " + material.getId() + "(" + material + ")");
34
35 int amount = 1;
36
37 if (args.length >= 3) {
38 try {
39 amount = Integer.parseInt(args[2]);
40 } catch (NumberFormatException ex) {
41 }
42
43 if (amount < 1) amount = 1;
44 if (amount > 64) amount = 64;
45 }
46
47 player.getInventory().addItem(new ItemStack(material, amount));
48 } else {
49 sender.sendMessage("There's no item called " + args[1]);
50 }
51 } else {
52 sender.sendMessage("Can't find user " + args[0]);
53 }
54
55 return true;
56 }
57
58 @Override
59 public boolean matches(String input) {
60 return input.startsWith("give ");
61 }
62}