diff --git a/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/TickManager21.java b/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/TickManager21.java index a99cb16c..af3792f7 100644 --- a/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/TickManager21.java +++ b/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/TickManager21.java @@ -21,6 +21,7 @@ package de.steamwar.bausystem.utils; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.Reflection; +import de.steamwar.bausystem.BauSystem; import net.minecraft.network.protocol.game.ClientboundTickingStatePacket; import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerTickRateManager; @@ -87,15 +88,27 @@ public class TickManager21 implements TickManager { public void stepTicks(int ticks) { if (manager.isSprinting()) { manager.stopSprinting(); + } else if (manager.isSteppingForward()) { + manager.stopStepping(); } this.totalSteps = ticks; + manager.setFrozen(true); manager.stepGameIfPaused(ticks); + manager.setFrozen(false); + Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), (bukkitTask) -> { + if (manager.isSteppingForward()) return; + manager.setFrozen(true); + bukkitTask.cancel(); + }, 1, 1); + manager.tick(); } @Override public void sprintTicks(int ticks) { if (manager.isSteppingForward()) { manager.stopStepping(); + } else if (manager.isSprinting()) { + manager.stopSprinting(); } this.totalSteps = ticks; manager.requestGameToSprint(ticks, true);