Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * CommandBook plugin for /head command
- *
- */
- package com.sk89q.commandbook;
- import org.bukkit.ChatColor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- //These seem to be necessary
- import com.sk89q.commandbook.util.ItemUtil;
- import com.sk89q.worldedit.blocks.ItemType;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.inventory.meta.SkullMeta;
- import org.bukkit.Material;
- import static com.sk89q.commandbook.CommandBookUtil.giveItem;
- import com.sk89q.commandbook.util.PlayerUtil;
- import com.sk89q.minecraft.util.commands.Command;
- import com.sk89q.minecraft.util.commands.CommandContext;
- import com.sk89q.minecraft.util.commands.CommandException;
- import com.sk89q.minecraft.util.commands.CommandPermissions;
- import com.zachsthings.libcomponents.ComponentInformation;
- import com.zachsthings.libcomponents.bukkit.BukkitComponent;
- @ComponentInformation(friendlyName = "Mob head", desc = "Mob head experiment")
- public class HeadComponent extends BukkitComponent {
- @Override
- public void enable() {
- registerCommands(Commands.class);
- }
- public class Commands {
- @Command(aliases = {"head", "gethead"},
- usage = "[player]", desc = "Get a player's head",
- flags = "c", min = 0, max = 64)
- @CommandPermissions({"commandbook.head"})
- public void head(CommandContext args,CommandSender sender) throws CommandException {
- Iterable<Player> targets = null;
- CommandBook.inst().checkPermission(sender, "commandbook.head");
- if (args.argsLength() == 0) {
- //Use current player
- targets = PlayerUtil.matchPlayers(PlayerUtil.checkPlayer(sender));
- } else if (args.argsLength() == 1) {
- try {
- //Use matched players
- targets = PlayerUtil.matchPlayers(sender, args.getString(0));
- }
- catch (CommandException e) {
- //use exact string if no players matched
- String name = args.getString(0);
- String displayName = "";
- //Only allow valid minecraft usernames
- if(!name.matches("^[a-zA-Z0-9_]{3,16}$")) {
- throw new CommandException("Invalid username. Head cannot be created.");
- }
- ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
- SkullMeta meta = (SkullMeta)head.getItemMeta();
- meta.setOwner(name);
- //Special coloring for known mob-heads
- if(name.equals("MHF_Pig"))
- displayName = ChatColor.RESET.toString()+ChatColor.LIGHT_PURPLE.toString() + "Pig's"+ChatColor.RESET.toString();
- else if(name.equals("MHF_PigZombie"))
- displayName = (ChatColor.RESET.toString()+ChatColor.GREEN.toString() + "Zombie pig's"+ChatColor.RESET.toString());
- else if(name.equals("MHF_Sheep"))
- displayName = (ChatColor.RESET.toString() + "Sheep's");
- else if(name.equals("MHF_Villager"))
- displayName = (ChatColor.RESET.toString()+ChatColor.DARK_RED.toString() + "Villager's"+ChatColor.RESET.toString());
- else if(name.equals("MHF_Blaze"))
- displayName = (ChatColor.RESET.toString()+ChatColor.GOLD.toString() + "Blaze's"+ChatColor.RESET.toString());
- else if(name.equals("MHF_Herobrine"))
- displayName = (ChatColor.RESET.toString()+ChatColor.YELLOW.toString()+ChatColor.BOLD.toString() + "Herobrine's"+ChatColor.RESET.toString());
- else
- displayName = (ChatColor.RESET.toString() + name);
- //Set display name
- meta.setDisplayName(displayName+" head");
- head.setItemMeta(meta);
- PlayerUtil.checkPlayer(sender).getInventory().addItem(head);
- sender.sendMessage(ChatColor.YELLOW.toString() + "Giving you "+displayName+ChatColor.YELLOW+" head.");
- return;
- }
- }
- ItemStack head = null;
- int count = 0;
- //Is it fine to add items in loop?
- for (Player player : targets) {
- //head = ItemStack.makeHead(player.getName());//(Material.SKULL_ITEM, 1, (short) 3);
- head = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
- SkullMeta meta = (SkullMeta)head.getItemMeta();
- meta.setOwner(player.getName());
- meta.setDisplayName(ChatColor.RESET + player.getDisplayName() + "'s Head");
- head.setItemMeta(meta);
- //head.makeHead(player.getName());
- PlayerUtil.checkPlayer(sender).getInventory().addItem(head);
- count++;
- //CommandBookUtil.giveItem(sender, head, 1, sender, PlayerComponent.this);
- }
- sender.sendMessage(ChatColor.YELLOW.toString() + Integer.toString(count)+" heads given.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement