コード例 #1
0
 private int getCommandPearlSlot(Player player, String args[], int pos) {
   if (args.length <= pos) {
     ItemStack item = player.getItemInHand();
     if (item.getType() != Material.ENDER_PEARL) {
       player.sendMessage("You must hold a pearl or supply the player's name to use this command");
       return -1;
     }
     if (pearls.getByItemStack(item) == null) {
       player.sendMessage("This is an ordinary ender pearl");
       return -1;
     }
     return player.getInventory().getHeldItemSlot();
   } else {
     PrisonPearl pp = pearls.getByImprisoned(args[pos]);
     if (pp != null) {
       Inventory inv = player.getInventory();
       for (Entry<Integer, ? extends ItemStack> entry : inv.all(Material.ENDER_PEARL).entrySet()) {
         if (entry.getValue().getDurability() == pp.getID()) return entry.getKey();
       }
     }
     player.sendMessage("You don't possess " + args[0] + "'s prison pearl");
     return -1;
   }
 }
コード例 #2
0
 private boolean freeCmd(CommandSender sender, String args[], boolean any) {
   PrisonPearl pp;
   if (!any) {
     if (args.length > 1) return false;
     if (!(sender instanceof Player)) {
       sender.sendMessage("Must use freeany at console");
       return true;
     }
     Player player = (Player) sender;
     int slot = getCommandPearlSlot(player, args, 0);
     if (slot == -1) return true;
     pp = pearls.getByItemStack(player.getInventory().getItem(slot));
     player.getInventory().setItem(slot, null);
   } else {
     if (args.length != 1) return false;
     pp = pearls.getByImprisoned(args[0]);
     if (pp == null) {
       sender.sendMessage(args[0] + " is not imprisoned");
       return true;
     }
   }
   if (pearlman.freePearl(pp)) {
     plugin
         .getLogger()
         .info(
             pp.getImprisonedName()
                 + " is being freed. Reason: Freed via command by "
                 + sender.getName());
     if (pp.getImprisonedPlayer()
         != sender) // when freeing yourself, you're already going to get a message
     sender.sendMessage("You've freed " + pp.getImprisonedName());
   } else {
     sender.sendMessage("You failed to free " + pp.getImprisonedName());
   }
   return true;
 }
コード例 #3
0
 private PrisonPearl getCommandPearl(Player player, String args[], int pos) {
   int slot = getCommandPearlSlot(player, args, pos);
   if (slot != -1) return pearls.getByItemStack(player.getInventory().getItem(slot));
   else return null;
 }