Skip to content

Commit

Permalink
添加TPS智能守护函数
Browse files Browse the repository at this point in the history
  • Loading branch information
QuanhuZeYu committed Dec 31, 2024
1 parent a663969 commit b21a2a4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package club.heiqi.qz_miner.client.renderSelect;

import club.heiqi.qz_miner.Config;
import club.heiqi.qz_miner.MY_LOG;
import club.heiqi.qz_miner.minerModes.ModeManager;
import club.heiqi.qz_miner.minerModes.PositionFounder;
import club.heiqi.qz_miner.statueStorage.SelfStatue;
Expand All @@ -11,10 +10,7 @@
import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.core.block.BlockTileEntity;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.common.MinecraftForge;
Expand All @@ -32,7 +28,6 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantReadWriteLock;

import static club.heiqi.qz_miner.Mod_Main.allPlayerStorage;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL15.*;
import static org.lwjgl.opengl.GL20.GL_CURRENT_PROGRAM;
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/club/heiqi/qz_miner/minerModes/AbstractMode.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.management.ItemInWorldManager;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
import org.joml.Vector3i;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
Expand Down Expand Up @@ -177,6 +179,9 @@ public boolean checkTimeout() {
* @return true: 需要等待
*/
public boolean checkShouldWait() {
if (isInLag()) {
return true;
}
if (positionFounder != null && positionFounder.cache.isEmpty()) { // 如果缓存为空
return true;
}
Expand Down Expand Up @@ -272,4 +277,17 @@ public void readConfig() {
perTickBlock = Integer.MAX_VALUE;
}
}

public boolean isInLag() {
MinecraftServer server = MinecraftServer.getServer();
int tickCounter = server.getTickCounter();
long[] ticks = server.tickTimeArray;
double[] tickMillis = new double[ticks.length];
for (int i = 0; i < ticks.length; i++) {
tickMillis[i] = ((float) ticks[i] / 1000000);
}
double average = Arrays.stream(tickMillis).filter(x -> x > 0).average().orElse(0);
double lastTick = tickMillis[tickCounter % ticks.length];
return average > 50 || lastTick > 50;
}
}

0 comments on commit b21a2a4

Please sign in to comment.