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;
}