java类org.bukkit.event.player.PlayerPickupItemEvent的实例源码

RPGItemPatch.java 文件源码 项目:EscapeLag 阅读 21 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPickup(PlayerPickupItemEvent evt) {
    if (!fixRPGItemInfItem) return;

    if (evt.getRemaining() <= 0) {
        evt.getItem().remove();
    }
}
ItemPickupListener.java 文件源码 项目:Slimefun4-Chinese-Version 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onPickup(PlayerPickupItemEvent e) {
    if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true);
    else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith("&5&dALTAR &3Probe - &e")) {
        e.setCancelled(true);
        e.getItem().remove();
    }
}
ToolRepairMatchModule.java 文件源码 项目:ProjectAres 阅读 24 收藏 0 点赞 0 评论 0
private void doRepair(PlayerPickupItemEvent event, ItemStack stack) {
    ItemStack pickup = event.getItem().getItemStack();

    int hitsLeft = pickup.getType().getMaxDurability() - pickup.getDurability() + 1;
    stack.setDurability((short) Math.max(stack.getDurability() - hitsLeft, 0));

    event.setCancelled(true);
    event.getItem().remove();
    event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.5f, 1f);
}
ToolRepairMatchModule.java 文件源码 项目:ProjectAres 阅读 20 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void processRepair(PlayerPickupItemEvent event) {
    ItemStack pickup = event.getItem().getItemStack();

    if(this.toRepair.contains(pickup.getType())) {
        PlayerInventory inv = event.getPlayer().getInventory();
        for(ItemStack invStack : inv.contents()) {
            if(this.canRepair(pickup, invStack)) {
                this.doRepair(event, invStack);
                return;
            }
        }
    }
}
ItemTransferListener.java 文件源码 项目:ProjectAres 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
    // When this event is fired, the ItemStack in the Item being picked up is temporarily
    // set to the amount that will actually be picked up, while the difference from the
    // actual amount in the stack is available from getRemaining(). When the event returns,
    // the original amount is restored to the stack, meaning that we can't change the amount
    // from inside the event, so instead we replace the entire stack.

    int initialQuantity = event.getItem().getItemStack().getAmount();
    PlayerItemTransferEvent transferEvent = new PlayerItemTransferEvent(
        event, ItemTransferEvent.Type.PICKUP, event.getPlayer(),
        Optional.empty(),
        Optional.of(new InventorySlot<>(event.getPlayer().getInventory())),
        event.getItem().getItemStack(), event.getItem(),
        initialQuantity, event.getPlayer().getOpenInventory().getCursor()
    );

    this.callEvent(transferEvent);

    int quantity = Math.min(transferEvent.getQuantity(), initialQuantity);

    if(!event.isCancelled() && quantity < initialQuantity) {
        event.setCancelled(true);
        if(quantity > 0) {
            ItemStack stack = event.getItem().getItemStack().clone();
            stack.setAmount(stack.getAmount() - quantity);
            event.getItem().setItemStack(stack);

            stack = stack.clone();
            stack.setAmount(quantity);
            event.getPlayer().getInventory().addItem(stack);
            event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.ENTITY_ITEM_PICKUP, 1, 1);
        }
    }
}
BenchBlitz.java 文件源码 项目:OpenUHC 阅读 27 收藏 0 点赞 0 评论 0
/**
 * Limits the player to one workbench in their inventory at a time, by means of picking up an item.
 *
 * @param event The event
 */
@EventHandler(ignoreCancelled = true)
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
  Item item = event.getItem();
  Player player = event.getPlayer();
  if (item.getItemStack().getType().equals(Material.WORKBENCH)
      && player.getInventory().contains(Material.WORKBENCH)) {
    event.setCancelled(true);
    item.setPickupDelay(20);

    player.sendMessage(ChatColor.RED + "You may not pick up another workbench!");
  }
}
Bowless.java 文件源码 项目:OpenUHC 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Prevents a player from picking up a bow.
 *
 * @param event The event
 */
@EventHandler(ignoreCancelled = true)
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
  Item item = event.getItem();
  if (item.getItemStack().getType().equals(Material.BOW)) {
    event.setCancelled(true);
    item.setPickupDelay(20);

    event.getPlayer().sendMessage(ChatColor.RED + "You may not pick up a bow!");
  }
}
Core.java 文件源码 项目:kaosEssentials 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler
public void getEmerald(PlayerPickupItemEvent e){
    Player p = e.getPlayer();
    String uuid = p.getUniqueId().toString();
    if(e.getItem().getItemStack().getType().equals(Material.EMERALD)){
        e.setCancelled(true);
        int amount = e.getItem().getItemStack().getAmount();
        e.getItem().remove();
        setEmeralds(uuid, getEmeralds(uuid)+amount);
        p.playNote(p.getLocation(), Instrument.PIANO, Note.natural(1, Tone.A));
    }
}
GeneralEvents.java 文件源码 项目:mczone 阅读 32 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerDropItem(PlayerPickupItemEvent event) {
    Gamer g = Gamer.get(event.getPlayer());
    event.setCancelled(true);
    if (g.getVariable("edit") != null) {
        if ((boolean) g.getVariable("edit"))
            event.setCancelled(false);
    }
}
GeneralEvents.java 文件源码 项目:mczone 阅读 31 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerDropItem(PlayerPickupItemEvent event) {
    Gamer g = Gamer.get(event.getPlayer());
    event.setCancelled(true);
    if (g.getVariable("edit") != null) {
        if ((boolean) g.getVariable("edit"))
            event.setCancelled(false);
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号