fix: icu self care memory leak

This commit is contained in:
Chayapak Supasakul 2025-03-15 19:04:23 +07:00
parent e088c1fec1
commit 88461b45d3
Signed by: ChomeNS
SSH key fingerprint: SHA256:0YoxhdyXsgbc0nfeB2N6FYE60mxMU7DS4uCUMaw2mvA

View file

@ -33,6 +33,7 @@ public class SelfCare implements Listener {
private Timer timer;
private Timer chatTimer;
private Timer icuTimer;
private boolean cspy = false;
public boolean hasSkin = false;
@ -67,11 +68,20 @@ public class SelfCare implements Listener {
}
};
final TimerTask icuTask = new TimerTask() {
@Override
public void run() {
positionPacketsPerSecond = 0;
}
};
timer = new Timer();
chatTimer = new Timer();
icuTimer = new Timer();
timer.schedule(task, interval, interval);
chatTimer.schedule(chatTask, chatInterval, chatInterval);
icuTimer.schedule(icuTask, 1000L, 1000L);
}
public void cleanup() {
@ -83,6 +93,9 @@ public class SelfCare implements Listener {
chatTimer.cancel();
chatTimer.purge();
icuTimer.cancel();
icuTimer.purge();
gameMode = -1;
hasSkin = false;
@ -112,9 +125,8 @@ public class SelfCare implements Listener {
return;
}
if (player != null && !player.hasPermissionLevel(2) && opEnabled) {
if (serverHasCommand("op")) networkHandler.sendChatCommand("op @s[type=player]");
} else if (gameMode != 1 && gamemodeEnabled) networkHandler.sendChatCommand("gamemode creative");
if (player != null && !player.hasPermissionLevel(2) && opEnabled && serverHasCommand("op")) networkHandler.sendChatCommand("op @s[type=player]");
else if (gameMode != 1 && gamemodeEnabled) networkHandler.sendChatCommand("gamemode creative");
else if (positionPacketsPerSecond >= 10 && icuEnabled) CommandCore.INSTANCE.run("sudo * icu stop");
}
@ -148,17 +160,6 @@ public class SelfCare implements Listener {
public void packetReceived(PlayerPositionLookS2CPacket packet) {
if (timer == null) return;
try {
positionPacketsPerSecond++;
timer.schedule(new TimerTask() {
@Override
public void run() {
positionPacketsPerSecond--;
}
}, 1000);
} catch (Exception e) {
e.printStackTrace();
}
positionPacketsPerSecond++;
}
}