• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java BlockUpdateEvent类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中cn.nukkit.event.block.BlockUpdateEvent的典型用法代码示例。如果您正苦于以下问题:Java BlockUpdateEvent类的具体用法?Java BlockUpdateEvent怎么用?Java BlockUpdateEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



BlockUpdateEvent类属于cn.nukkit.event.block包,在下文中一共展示了BlockUpdateEvent类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: updateAround

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public void updateAround(Vector3 pos) {
    BlockUpdateEvent ev;

    for (BlockFace face : BlockFace.values()) {
        this.server.getPluginManager().callEvent(
                ev = new BlockUpdateEvent(this.getBlock(pos.getSide(face))));
        if (!ev.isCancelled()) {
            ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
        }
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:12,代码来源:Level.java


示例2: updateAround

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public void updateAround(Vector3 pos) {
    BlockUpdateEvent ev;
    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x, pos.y - 1, pos.z))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }

    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x, pos.y + 1, pos.z))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }

    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x - 1, pos.y, pos.z))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }

    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x + 1, pos.y, pos.z))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }

    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x, pos.y, pos.z - 1))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }

    this.server.getPluginManager().callEvent(
            ev = new BlockUpdateEvent(this.getBlock(this.temporalVector.setComponents(pos.x, pos.y, pos.z + 1))));
    if (!ev.isCancelled()) {
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
    }
}
 
开发者ID:Creeperface01,项目名称:NukkitGT,代码行数:39,代码来源:Level.java


示例3: updateAroundRedstone

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public void updateAroundRedstone(Block block) {
    BlockUpdateEvent ev = new BlockUpdateEvent(block);
    this.server.getPluginManager().callEvent(ev);
    if (!ev.isCancelled()) {
        for (Entity entity : this.getNearbyEntities(
                new AxisAlignedBB(block.x - 1, block.y - 1, block.z - 1, block.x + 1, block.y + 1, block.z + 1))) {
            entity.scheduleUpdate();
        }
        ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);

        RedstoneUpdateEvent rsEv = new RedstoneUpdateEvent(ev.getBlock());
        this.server.getPluginManager().callEvent(rsEv);
        if (!rsEv.isCancelled()) {
            Block redstoneWire = rsEv.getBlock().getSide(Vector3.SIDE_DOWN);
            if (redstoneWire instanceof BlockRedstoneWire) {
                if (rsEv.getBlock() instanceof BlockSolid) {
                    int level = redstoneWire.getPowerLevel();
                    redstoneWire.setPowerLevel(redstoneWire.getNeighborPowerLevel() - 1);
                    redstoneWire.getLevel().setBlock(redstoneWire, redstoneWire, true, true);
                    Redstone.deactive(redstoneWire, level);
                } else {
                    redstoneWire.setPowerLevel(redstoneWire.getNeighborPowerLevel() - 1);
                    redstoneWire.getLevel().setBlock(redstoneWire, redstoneWire, true, true);
                    Redstone.active(redstoneWire);
                }
            }
        }
    }
}
 
开发者ID:Creeperface01,项目名称:NukkitGT,代码行数:30,代码来源:Level.java


示例4: onBlockUpdate

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
@EventHandler (ignoreCancelled = true)
public void onBlockUpdate(BlockUpdateEvent event){
	Block block = event.getBlock();
	
	if(this.getConfig().get("block-flowing", true) && block instanceof BlockLiquid){
		if(!this.provider.canUpdate(block)){
			event.setCancelled(true);
		}
	}
}
 
开发者ID:EconomyS,项目名称:EconomyLand,代码行数:11,代码来源:EconomyLand.java


示例5: setBlock

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public boolean setBlock(Vector3 pos, Block block, boolean direct, boolean update) {
    if (pos.y < 0 || pos.y >= 256) {
        return false;
    }

    if (this.getChunk((int) pos.x >> 4, (int) pos.z >> 4, true).setBlock((int) pos.x & 0x0f, (int) pos.y & 0xff,
            (int) pos.z & 0x0f, block.getId(), block.getDamage())) {
        Position position;
        if (!(pos instanceof Position)) {
            position = this.temporalPosition.setComponents(pos.x, pos.y, pos.z);
        } else {
            position = (Position) pos;
        }

        block.position(position);
        this.blockCache.remove(Level.blockHash((int) position.x, (int) position.y, (int) position.z));

        Long index = Level.chunkHash((int) position.x >> 4, (int) position.z >> 4);

        if (direct) {
            this.sendBlocks(this.getChunkPlayers((int) position.x >> 4, (int) position.z >> 4).values().stream()
                    .toArray(Player[]::new), new Block[]{block}, UpdateBlockPacket.FLAG_ALL_PRIORITY);
            this.chunkCache.remove(index);
        } else {
            addBlockChange(index, (int) block.x, (int) block.y, (int) block.z);
        }

        for (ChunkLoader loader : this.getChunkLoaders((int) position.x >> 4, (int) position.z >> 4)) {
            loader.onBlockChanged(block);
        }

        if (update) {
            this.updateAllLight(block);
            BlockUpdateEvent ev = new BlockUpdateEvent(block);
            this.server.getPluginManager().callEvent(ev);
            if (!ev.isCancelled()) {
                for (Entity entity : this.getNearbyEntities(new AxisAlignedBB(block.x - 1, block.y - 1, block.z - 1,
                        block.x + 1, block.y + 1, block.z + 1))) {
                    entity.scheduleUpdate();
                }
                ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
            }

            this.updateAround(position);
        }

        return true;
    }

    return false;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:52,代码来源:Level.java


示例6: setBlock

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public boolean setBlock(Vector3 pos, Block block, boolean direct, boolean update) {
    if (pos.y < 0 || pos.y >= 128) {
        return false;
    }

    if (this.getChunk((int) pos.x >> 4, (int) pos.z >> 4, true).setBlock((int) pos.x & 0x0f, (int) pos.y & 0x7f,
            (int) pos.z & 0x0f, block.getId(), block.getDamage())) {
        Position position;
        if (!(pos instanceof Position)) {
            position = this.temporalPosition.setComponents(pos.x, pos.y, pos.z);
        } else {
            position = (Position) pos;
        }

        block.position(position);
        this.blockCache.remove(Level.blockHash((int) position.x, (int) position.y, (int) position.z));

        String index = Level.chunkHash((int) position.x >> 4, (int) position.z >> 4);

        if (direct) {
            this.sendBlocks(this.getChunkPlayers((int) position.x >> 4, (int) position.z >> 4).values().stream()
                    .toArray(Player[]::new), new Block[]{block}, UpdateBlockPacket.FLAG_ALL_PRIORITY);
            this.chunkCache.remove(index);
        } else {
            if (!this.changedBlocks.containsKey(index)) {
                this.changedBlocks.put(index, new HashMap<>());
            }

            this.changedBlocks.get(index).put(Level.blockHash((int) block.x, (int) block.y, (int) block.z),
                    block.clone());
        }

        for (ChunkLoader loader : this.getChunkLoaders((int) position.x >> 4, (int) position.z >> 4)) {
            loader.onBlockChanged(block);
        }

        if (update) {
            this.updateAllLight(block);
            BlockUpdateEvent ev = new BlockUpdateEvent(block);
            this.server.getPluginManager().callEvent(ev);
            if (!ev.isCancelled()) {
                for (Entity entity : this.getNearbyEntities(new AxisAlignedBB(block.x - 1, block.y - 1, block.z - 1,
                        block.x + 1, block.y + 1, block.z + 1))) {
                    entity.scheduleUpdate();
                }
                ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
            }
            this.updateAroundRedstone(block);
            this.updateAround(position);
        }

        return true;
    }

    return false;
}
 
开发者ID:Creeperface01,项目名称:NukkitGT,代码行数:57,代码来源:Level.java


示例7: setBlock

import cn.nukkit.event.block.BlockUpdateEvent; //导入依赖的package包/类
public boolean setBlock(Vector3 pos, Block block, boolean direct, boolean update) {
    if (pos.y < 0 || pos.y >= 256) {
        return false;
    }

    if (this.getChunk((int) pos.x >> 4, (int) pos.z >> 4, true).setBlock((int) pos.x & 0x0f, (int) pos.y & 0xff,
            (int) pos.z & 0x0f, block.getId(), block.getDamage())) {
        Position position;
        if (!(pos instanceof Position)) {
            position = this.temporalPosition.setComponents(pos.x, pos.y, pos.z);
        } else {
            position = (Position) pos;
        }

        block.position(position);
        this.blockCache.remove(Level.blockHash((int) position.x, (int) position.y, (int) position.z));

        Long index = Level.chunkHash((int) position.x >> 4, (int) position.z >> 4);

        if (direct) {
            this.sendBlocks(this.getChunkPlayers((int) position.x >> 4, (int) position.z >> 4).values().stream()
                    .toArray(Player[]::new), new Block[]{block}, UpdateBlockPacket.FLAG_ALL_PRIORITY);
            this.chunkCache.remove(index);
        } else {
            addBlockChange(index, (int) block.x, (int) block.y, (int) block.z);
        }

        for (ChunkLoader loader : this.getChunkLoaders((int) position.x >> 4, (int) position.z >> 4)) {
            loader.onBlockChanged(block);
        }

        if (update) {
            this.updateAllLight(block);
            BlockUpdateEvent ev = new BlockUpdateEvent(block);
            this.server.getPluginManager().callEvent(ev);
            if (!ev.isCancelled()) {
                for (Entity entity : this.getNearbyEntities(new AxisAlignedBB(block.x - 1, block.y - 1, block.z - 1,
                        block.x + 1, block.y + 1, block.z + 1))) {
                    entity.scheduleUpdate();
                }
                ev.getBlock().onUpdate(BLOCK_UPDATE_NORMAL);
            }
            this.updateAroundRedstone(block);
            this.updateAround(position);
        }

        return true;
    }

    return false;
}
 
开发者ID:NycuRO,项目名称:Apollo-OLD,代码行数:52,代码来源:Level.java



注:本文中的cn.nukkit.event.block.BlockUpdateEvent类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Query类代码示例发布时间:2022-05-22
下一篇:
Java CountersBlock类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap