use of cn.nukkit.network.protocol.BlockEventPacket in project Nukkit by Nukkit.
the class ChestInventory method onClose.
@Override
public void onClose(Player who) {
if (this.getViewers().size() == 1) {
BlockEventPacket pk = new BlockEventPacket();
pk.x = (int) this.getHolder().getX();
pk.y = (int) this.getHolder().getY();
pk.z = (int) this.getHolder().getZ();
pk.case1 = 1;
pk.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, pk);
}
}
super.onClose(who);
}
use of cn.nukkit.network.protocol.BlockEventPacket 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.BlockEventPacket 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);
}
}
}
use of cn.nukkit.network.protocol.BlockEventPacket in project Nukkit by Nukkit.
the class BlockNoteblock method emitSound.
public void emitSound() {
Instrument instrument = getInstrument();
BlockEventPacket pk = new BlockEventPacket();
pk.x = (int) this.x;
pk.y = (int) this.y;
pk.z = (int) this.z;
pk.case1 = instrument.ordinal();
pk.case2 = this.getStrength();
this.getLevel().addChunkPacket((int) this.x >> 4, (int) this.z >> 4, pk);
// TODO: correct pitch
this.getLevel().addSound(this, instrument.getSound(), 1, this.getStrength());
}
use of cn.nukkit.network.protocol.BlockEventPacket in project Nukkit by Nukkit.
the class DoubleChestInventory method onClose.
@Override
public void onClose(Player who) {
if (this.getViewers().size() == 1) {
BlockEventPacket pk1 = new BlockEventPacket();
pk1.x = (int) this.right.getHolder().getX();
pk1.y = (int) this.right.getHolder().getY();
pk1.z = (int) this.right.getHolder().getZ();
pk1.case1 = 1;
pk1.case2 = 0;
Level level = this.right.getHolder().getLevel();
if (level != null) {
level.addSound(this.right.getHolder().add(0.5, 0.5, 0.5), Sound.RANDOM_CHESTCLOSED);
level.addChunkPacket((int) this.right.getHolder().getX() >> 4, (int) this.right.getHolder().getZ() >> 4, pk1);
}
BlockEventPacket pk2 = new BlockEventPacket();
pk2.x = (int) this.left.getHolder().getX();
pk2.y = (int) this.left.getHolder().getY();
pk2.z = (int) this.left.getHolder().getZ();
pk2.case1 = 1;
pk2.case2 = 0;
level = this.left.getHolder().getLevel();
if (level != null) {
level.addSound(this.left.getHolder().add(0.5, 0.5, 0.5), Sound.RANDOM_CHESTCLOSED);
level.addChunkPacket((int) this.left.getHolder().getX() >> 4, (int) this.left.getHolder().getZ() >> 4, pk2);
}
}
this.left.viewers.remove(who);
this.right.viewers.remove(who);
super.onClose(who);
}
Aggregations