use of cn.nukkit.network.protocol.ContainerClosePacket in project Nukkit by Nukkit.
the class ContainerInventory method onClose.
@Override
public void onClose(Player who) {
ContainerClosePacket pk = new ContainerClosePacket();
pk.windowId = who.getWindowId(this);
who.dataPacket(pk);
super.onClose(who);
}
use of cn.nukkit.network.protocol.ContainerClosePacket in project Nukkit by Nukkit.
the class PlayerEnderChestInventory method onClose.
@Override
public void onClose(Player who) {
ContainerClosePacket containerClosePacket = new ContainerClosePacket();
containerClosePacket.windowId = who.getWindowId(this);
who.dataPacket(containerClosePacket);
super.onClose(who);
BlockEnderChest chest = who.getViewingEnderChest();
if (chest != null && chest.getViewers().size() == 1) {
BlockEventPacket blockEventPacket = new BlockEventPacket();
blockEventPacket.x = (int) chest.getX();
blockEventPacket.y = (int) chest.getY();
blockEventPacket.z = (int) chest.getZ();
blockEventPacket.case1 = 1;
blockEventPacket.case2 = 0;
Level level = this.getHolder().getLevel();
if (level != null) {
level.addSound(this.getHolder().add(0.5, 0.5, 0.5), Sound.RANDOM_CHESTCLOSED);
level.addChunkPacket((int) this.getHolder().getX() >> 4, (int) this.getHolder().getZ() >> 4, blockEventPacket);
}
who.setViewingEnderChest(null);
}
super.onClose(who);
}
use of cn.nukkit.network.protocol.ContainerClosePacket in project Nukkit by Nukkit.
the class CraftingTransaction method sendInventories.
protected void sendInventories() {
super.sendInventories();
/*
* TODO: HACK!
* we can't resend the contents of the crafting window, so we force the client to close it instead.
* So people don't whine about messy desync issues when someone cancels CraftItemEvent, or when a crafting
* transaction goes wrong.
*/
ContainerClosePacket pk = new ContainerClosePacket();
pk.windowId = ContainerIds.NONE;
this.source.dataPacket(pk);
this.source.resetCraftingGridType();
}
Aggregations