use of cn.nukkit.level.Level in project Nukkit by Nukkit.
the class SaveCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.save.start"));
for (Player player : sender.getServer().getOnlinePlayers().values()) {
player.save();
}
for (Level level : sender.getServer().getLevels().values()) {
level.save(true);
}
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.save.success"));
return true;
}
use of cn.nukkit.level.Level 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.level.Level 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.level.Level 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.level.Level in project Nukkit by Nukkit.
the class PopulationTask method onCompletion.
@Override
public void onCompletion(Server server) {
Level level = server.getLevel(this.levelId);
if (level != null) {
if (!this.state) {
level.registerGenerator();
return;
}
BaseFullChunk chunk = this.chunk.clone();
if (chunk == null) {
return;
}
for (int i = 0; i < 9; i++) {
if (i == 4) {
continue;
}
BaseFullChunk c = this.chunks[i];
if (c != null) {
c = c.clone();
level.generateChunkCallback(c.getX(), c.getZ(), c);
}
}
level.generateChunkCallback(chunk.getX(), chunk.getZ(), chunk);
}
}
Aggregations