Search in sources :

Example 1 with ContainerClosePacket

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);
}
Also used : ContainerClosePacket(cn.nukkit.network.protocol.ContainerClosePacket)

Example 2 with ContainerClosePacket

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);
}
Also used : BlockEnderChest(cn.nukkit.block.BlockEnderChest) ContainerClosePacket(cn.nukkit.network.protocol.ContainerClosePacket) BlockEventPacket(cn.nukkit.network.protocol.BlockEventPacket) Level(cn.nukkit.level.Level)

Example 3 with ContainerClosePacket

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();
}
Also used : ContainerClosePacket(cn.nukkit.network.protocol.ContainerClosePacket)

Aggregations

ContainerClosePacket (cn.nukkit.network.protocol.ContainerClosePacket)3 BlockEnderChest (cn.nukkit.block.BlockEnderChest)1 Level (cn.nukkit.level.Level)1 BlockEventPacket (cn.nukkit.network.protocol.BlockEventPacket)1