forked from SteamWar/SteamWar
Improve TickManager21
This commit is contained in:
@@ -21,6 +21,7 @@ package de.steamwar.bausystem.utils;
|
|||||||
|
|
||||||
import com.comphenix.tinyprotocol.TinyProtocol;
|
import com.comphenix.tinyprotocol.TinyProtocol;
|
||||||
import de.steamwar.Reflection;
|
import de.steamwar.Reflection;
|
||||||
|
import de.steamwar.bausystem.BauSystem;
|
||||||
import net.minecraft.network.protocol.game.ClientboundTickingStatePacket;
|
import net.minecraft.network.protocol.game.ClientboundTickingStatePacket;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.ServerTickRateManager;
|
import net.minecraft.server.ServerTickRateManager;
|
||||||
@@ -87,15 +88,27 @@ public class TickManager21 implements TickManager {
|
|||||||
public void stepTicks(int ticks) {
|
public void stepTicks(int ticks) {
|
||||||
if (manager.isSprinting()) {
|
if (manager.isSprinting()) {
|
||||||
manager.stopSprinting();
|
manager.stopSprinting();
|
||||||
|
} else if (manager.isSteppingForward()) {
|
||||||
|
manager.stopStepping();
|
||||||
}
|
}
|
||||||
this.totalSteps = ticks;
|
this.totalSteps = ticks;
|
||||||
|
manager.setFrozen(true);
|
||||||
manager.stepGameIfPaused(ticks);
|
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
|
@Override
|
||||||
public void sprintTicks(int ticks) {
|
public void sprintTicks(int ticks) {
|
||||||
if (manager.isSteppingForward()) {
|
if (manager.isSteppingForward()) {
|
||||||
manager.stopStepping();
|
manager.stopStepping();
|
||||||
|
} else if (manager.isSprinting()) {
|
||||||
|
manager.stopSprinting();
|
||||||
}
|
}
|
||||||
this.totalSteps = ticks;
|
this.totalSteps = ticks;
|
||||||
manager.requestGameToSprint(ticks, true);
|
manager.requestGameToSprint(ticks, true);
|
||||||
|
|||||||
Reference in New Issue
Block a user