本文整理汇总了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;未经允许,请勿转载。 |
请发表评论