From b8e6a6ba6137485a4d5b2cbc6107ea245db9b9ab Mon Sep 17 00:00:00 2001 From: Reider745 Date: Tue, 8 Jul 2025 20:07:57 +0300 Subject: [PATCH] fixed: call event for tick --- src/main/java/com/reider745/block/CustomBlock.java | 2 +- .../java/com/reider745/event/EventListener.java | 14 +++++++++----- src/main/java/com/reider745/hooks/ServerHooks.java | 8 ++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/reider745/block/CustomBlock.java b/src/main/java/com/reider745/block/CustomBlock.java index de21c673..3703ced6 100644 --- a/src/main/java/com/reider745/block/CustomBlock.java +++ b/src/main/java/com/reider745/block/CustomBlock.java @@ -345,7 +345,7 @@ public class CustomBlock extends BlockSolidMeta implements RandomTick { this.level); return type; } else if (type == Level.BLOCK_UPDATE_REDSTONE || type == Level.BLOCK_UPDATE_NORMAL) { - ServerHooks.postApply.add(new RedstoneUpdateEvent(this)); + ServerHooks.postApply.add(this); return type; } return type; diff --git a/src/main/java/com/reider745/event/EventListener.java b/src/main/java/com/reider745/event/EventListener.java index 41cd8c97..8fdbc43b 100644 --- a/src/main/java/com/reider745/event/EventListener.java +++ b/src/main/java/com/reider745/event/EventListener.java @@ -160,15 +160,19 @@ public class EventListener implements Listener { EntityMethod.getIdForEntity(event.getPlayer()))); } + public static void onRedston(Block event) { + Block block = event.getBlock(); + Level level = event.getBlock().getLevel(); + int signal = level.isBlockIndirectlyGettingPowered(block); + + NativeCallback.onRedstoneSignalChange((int) block.x, (int) block.y, (int) block.z, + signal, !event.getBlock().isPowerSource(), level); + } + @EventHandler(priority = EventPriority.HIGHEST) public void onRedstoneUpdate(RedstoneUpdateEvent event) { if(isFirstTickEnd){ - Block block = event.getBlock(); - Level level = event.getBlock().getLevel(); - int signal = level.isBlockIndirectlyGettingPowered(block); - consumeEvent(event, () -> NativeCallback.onRedstoneSignalChange((int) block.x, (int) block.y, (int) block.z, - signal, !event.getBlock().isPowerSource(), level)); } } diff --git a/src/main/java/com/reider745/hooks/ServerHooks.java b/src/main/java/com/reider745/hooks/ServerHooks.java index 3d0070bf..20ccce3a 100644 --- a/src/main/java/com/reider745/hooks/ServerHooks.java +++ b/src/main/java/com/reider745/hooks/ServerHooks.java @@ -1,9 +1,9 @@ package com.reider745.hooks; import cn.nukkit.Server; +import cn.nukkit.block.Block; import cn.nukkit.command.CommandSender; import cn.nukkit.command.defaults.VersionCommand; -import cn.nukkit.event.Event; import cn.nukkit.network.protocol.ProtocolInfo; import cn.nukkit.plugin.JavaPluginLoader; import cn.nukkit.plugin.PluginClassLoader; @@ -28,7 +28,7 @@ import java.util.concurrent.CopyOnWriteArrayList; @Hooks(className = "cn.nukkit.Server") public class ServerHooks { public static InnerCoreServer innerCoreServer = new InnerCoreServer(); - public static final List postApply = new CopyOnWriteArrayList<>(); + public static final List postApply = new CopyOnWriteArrayList<>(); @Inject public static void start(Server self) throws Exception { @@ -108,8 +108,8 @@ public class ServerHooks { EntityMotion.tick(); NativeCallback.onTick(); - for(Event event : postApply) { - Server.getInstance().getPluginManager().callEvent(event); + for(Block block : postApply) { + EventListener.onRedston(block); } TpsCommand.innerCoreTimes[indexTime] = System.currentTimeMillis() - start;