Fixed: RedstoneSignal вызывался до первого тика

This commit is contained in:
Reider745
2024-05-04 09:58:26 +03:00
parent a1a0d61e7e
commit 1f44c2c501
2 changed files with 11 additions and 5 deletions
@@ -62,6 +62,7 @@ public class EventListener implements Listener {
public static Object dealingEvent = null;
public static final int FORM_REJOIN_EXCEPTION = 2560;
public static boolean isFirstTickEnd = false;
public static void consumeEvent(Event event, CallbackHelper.ICallbackApply apply, boolean isPrevent) {
CallbackHelper.apply(event, apply, isPrevent);
@@ -115,12 +116,14 @@ public class EventListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void onRedstoneUpdate(RedstoneUpdateEvent event) {
Block block = event.getBlock();
Level level = event.getBlock().getLevel();
int signal = level.isBlockIndirectlyGettingPowered(block);
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));
consumeEvent(event, () -> NativeCallback.onRedstoneSignalChange((int) block.x, (int) block.y, (int) block.z,
signal, !event.getBlock().isPowerSource(), level));
}
}
@EventHandler(priority = EventPriority.HIGHEST)
@@ -12,6 +12,7 @@ import com.reider745.api.hooks.TypeHook;
import com.reider745.api.hooks.annotation.Inject;
import com.reider745.api.hooks.annotation.Hooks;
import com.reider745.entity.EntityMotion;
import com.reider745.event.EventListener;
import com.zhekasmirnov.horizon.runtime.logger.Logger;
import com.zhekasmirnov.innercore.api.NativeCallback;
@@ -70,6 +71,8 @@ public class ServerHooks implements HookClass {
try {
EntityMotion.tick();
NativeCallback.onTick();
EventListener.isFirstTickEnd = true;
} catch (Exception e) {
Logger.warning("IC-TICK", e.getCause());
}