Search in sources :

Example 6 with Level

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;
}
Also used : Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer) Level(cn.nukkit.level.Level)

Example 7 with Level

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

Example 8 with Level

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);
}
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 9 with Level

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

Example 10 with Level

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);
    }
}
Also used : BaseFullChunk(cn.nukkit.level.format.generic.BaseFullChunk) Level(cn.nukkit.level.Level)

Aggregations

Level (cn.nukkit.level.Level)24 Player (cn.nukkit.Player)6 TranslationContainer (cn.nukkit.lang.TranslationContainer)6 BlockEventPacket (cn.nukkit.network.protocol.BlockEventPacket)6 BaseFullChunk (cn.nukkit.level.format.generic.BaseFullChunk)3 BlockEnderChest (cn.nukkit.block.BlockEnderChest)2 LevelLoadEvent (cn.nukkit.event.level.LevelLoadEvent)2 Vector3 (cn.nukkit.math.Vector3)2 DecimalFormat (java.text.DecimalFormat)2 Server (cn.nukkit.Server)1 LevelInitEvent (cn.nukkit.event.level.LevelInitEvent)1 QueryRegenerateEvent (cn.nukkit.event.server.QueryRegenerateEvent)1 Position (cn.nukkit.level.Position)1 SourceInterface (cn.nukkit.network.SourceInterface)1 ContainerClosePacket (cn.nukkit.network.protocol.ContainerClosePacket)1 ContainerOpenPacket (cn.nukkit.network.protocol.ContainerOpenPacket)1 BanEntry (cn.nukkit.permission.BanEntry)1 TextFormat (cn.nukkit.utils.TextFormat)1 Random (java.util.Random)1