Java源码示例:cn.nukkit.inventory.PlayerInventory

示例1
@Override
public void onCollideWithPlayer(Player player) {
    if(this.getPickupDelay() > 0) {
        return;
    }

    Item item = this.getItem();
    PlayerInventory playerInventory = player.getInventory();

    if(!(item instanceof Item) || (player.isSurvival() && !playerInventory.canAddItem(item))) {
        return;
    }

    InventoryPickupItemEvent ev;
    this.server.getPluginManager().callEvent(ev = new InventoryPickupItemEvent(playerInventory, this));
    if(ev.isCancelled()) {
        return;
    }

    TakeItemEntityPacket pk = new TakeItemEntityPacket();
    pk.entityRuntimeId = player.getId();
    pk.target = this.getId();
    Server.broadcastPacket(this.getViewers().values(), pk);

    playerInventory.addItem(item);
    this.kill();
}
 
示例2
@Override
public void onCollideWithPlayer(Player player) {
    if(!this.hadCollision) {
        return;
    }

    Item item = new Item(Item.ARROW, 0, 1);
    PlayerInventory playerInventory = player.getInventory();

    if(player.isSurvival() && playerInventory.canAddItem(item)) {
        return;
    }

    InventoryPickupArrowEvent ev;
    this.server.getPluginManager().callEvent(ev = new InventoryPickupArrowEvent(playerInventory, this));
    if(ev.isCancelled()) {
        return;
    }

    TakeItemEntityPacket pk = new TakeItemEntityPacket();
    pk.entityRuntimeId = player.getId();
    pk.target = this.getId();
    Server.broadcastPacket(this.getViewers().values(), pk);

    playerInventory.addItem(item);
    this.kill();
}
 
示例3
protected void sendInventories() {
    for (Inventory inventory : this.inventories) {
        inventory.sendContents(this.source);
        if (inventory instanceof PlayerInventory) {
            ((PlayerInventory) inventory).sendArmorContents(this.source);
        }
    }
}
 
示例4
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerItemHoldEvent(final PlayerItemHeldEvent event) {
    Player nukkitPlayer = event.getPlayer();
    if (nukkitPlayer.isSneaking()) {
        return;
    }
    FawePlayer<Object> fp = FawePlayer.wrap(nukkitPlayer);
    com.sk89q.worldedit.entity.Player player = fp.getPlayer();
    LocalSession session = fp.getSession();
    Tool tool = session.getTool(player);
    if (tool instanceof ScrollTool) {
        final int slot = event.getInventorySlot();
        final int oldSlot = event.getSlot();
        final int ri;
        if ((((slot - oldSlot) <= 4) && ((slot - oldSlot) > 0)) || (((slot - oldSlot) < -4))) {
            ri = 1;
        } else {
            ri = -1;
        }
        ScrollTool scrollable = (ScrollTool) tool;
        if (scrollable.increment(player, ri)) {
            final PlayerInventory inv = nukkitPlayer.getInventory();
            final Item item = inv.getItem(slot);
            final Item newItem = inv.getItem(oldSlot);
            inv.setItem(slot, newItem);
            inv.setItem(oldSlot, item);
            inv.sendContents(nukkitPlayer);
        }
    }
}
 
示例5
/**
 * Loads inventory on first use.
 */
private void loadInventory() {
    if (items == null) {
        PlayerInventory inv = player.getInventory();
        items = inv.getContents();
        this.size = inv.getSize();
    }
}
 
示例6
@Override
public BaseBlock getBlockInHand() throws WorldEditException {
    PlayerInventory inv = player.getInventory();
    Item itemStack = inv.getItemInHand();
    if (itemStack == null) {
        return EditSession.nullBlock;
    }
    return new BaseBlock(itemStack.getId(), itemStack.getMaxDurability() != 0 ? 0 : itemStack.getDamage());
}
 
示例7
protected void sendInventories() {
    for (Inventory inventory : this.inventories) {
        inventory.sendContents(this.source);
        if (inventory instanceof PlayerInventory) {
            ((PlayerInventory) inventory).sendArmorContents(this.source);
        }
    }
}
 
示例8
@Override
public PlayerInventory getInventory() {
    return inventory;
}
 
示例9
@Override
public PlayerInventory getInventory() {
    return inventory;
}
 
示例10
@Override
public int getItemInHand() {
    PlayerInventory inv = player.getInventory();
    Item itemStack = inv.getItemInHand();
    return itemStack != null ? itemStack.getId() : 0;
}
 
示例11
@Override
public PlayerInventory getInventory() {
    return inventory;
}