use of cn.nukkit.network.protocol.ContainerOpenPacket in project Nukkit by Nukkit.
the class ContainerInventory method onOpen.
@Override
public void onOpen(Player who) {
super.onOpen(who);
ContainerOpenPacket pk = new ContainerOpenPacket();
pk.windowId = who.getWindowId(this);
pk.type = this.getType().getNetworkType();
InventoryHolder holder = this.getHolder();
if (holder instanceof Vector3) {
pk.x = (int) ((Vector3) holder).getX();
pk.y = (int) ((Vector3) holder).getY();
pk.z = (int) ((Vector3) holder).getZ();
} else {
pk.x = pk.y = pk.z = 0;
}
who.dataPacket(pk);
this.sendContents(who);
}
use of cn.nukkit.network.protocol.ContainerOpenPacket in project Nukkit by Nukkit.
the class PlayerEnderChestInventory method onOpen.
@Override
public void onOpen(Player who) {
if (who != this.getHolder()) {
return;
}
super.onOpen(who);
ContainerOpenPacket containerOpenPacket = new ContainerOpenPacket();
containerOpenPacket.windowId = who.getWindowId(this);
containerOpenPacket.type = this.getType().getNetworkType();
BlockEnderChest chest = who.getViewingEnderChest();
if (chest != null) {
containerOpenPacket.x = (int) chest.getX();
containerOpenPacket.y = (int) chest.getY();
containerOpenPacket.z = (int) chest.getZ();
} else {
containerOpenPacket.x = containerOpenPacket.y = containerOpenPacket.z = 0;
}
who.dataPacket(containerOpenPacket);
this.sendContents(who);
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 = 2;
Level level = this.getHolder().getLevel();
if (level != null) {
level.addSound(this.getHolder().add(0.5, 0.5, 0.5), Sound.RANDOM_CHESTOPEN);
level.addChunkPacket((int) this.getHolder().getX() >> 4, (int) this.getHolder().getZ() >> 4, blockEventPacket);
}
}
}
Aggregations