mirror of
https://code.chipmunk.land/ChomeNS/chipmunkmod.git
synced 2025-11-13 22:16:14 +00:00
fix: icu self care memory leak
This commit is contained in:
parent
e088c1fec1
commit
88461b45d3
1 changed files with 16 additions and 15 deletions
|
|
@ -33,6 +33,7 @@ public class SelfCare implements Listener {
|
||||||
|
|
||||||
private Timer timer;
|
private Timer timer;
|
||||||
private Timer chatTimer;
|
private Timer chatTimer;
|
||||||
|
private Timer icuTimer;
|
||||||
|
|
||||||
private boolean cspy = false;
|
private boolean cspy = false;
|
||||||
public boolean hasSkin = 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();
|
timer = new Timer();
|
||||||
chatTimer = new Timer();
|
chatTimer = new Timer();
|
||||||
|
icuTimer = new Timer();
|
||||||
|
|
||||||
timer.schedule(task, interval, interval);
|
timer.schedule(task, interval, interval);
|
||||||
chatTimer.schedule(chatTask, chatInterval, chatInterval);
|
chatTimer.schedule(chatTask, chatInterval, chatInterval);
|
||||||
|
icuTimer.schedule(icuTask, 1000L, 1000L);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cleanup() {
|
public void cleanup() {
|
||||||
|
|
@ -83,6 +93,9 @@ public class SelfCare implements Listener {
|
||||||
chatTimer.cancel();
|
chatTimer.cancel();
|
||||||
chatTimer.purge();
|
chatTimer.purge();
|
||||||
|
|
||||||
|
icuTimer.cancel();
|
||||||
|
icuTimer.purge();
|
||||||
|
|
||||||
gameMode = -1;
|
gameMode = -1;
|
||||||
|
|
||||||
hasSkin = false;
|
hasSkin = false;
|
||||||
|
|
@ -112,9 +125,8 @@ public class SelfCare implements Listener {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null && !player.hasPermissionLevel(2) && opEnabled) {
|
if (player != null && !player.hasPermissionLevel(2) && opEnabled && serverHasCommand("op")) networkHandler.sendChatCommand("op @s[type=player]");
|
||||||
if (serverHasCommand("op")) networkHandler.sendChatCommand("op @s[type=player]");
|
else if (gameMode != 1 && gamemodeEnabled) networkHandler.sendChatCommand("gamemode creative");
|
||||||
} else if (gameMode != 1 && gamemodeEnabled) networkHandler.sendChatCommand("gamemode creative");
|
|
||||||
else if (positionPacketsPerSecond >= 10 && icuEnabled) CommandCore.INSTANCE.run("sudo * icu stop");
|
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) {
|
public void packetReceived(PlayerPositionLookS2CPacket packet) {
|
||||||
if (timer == null) return;
|
if (timer == null) return;
|
||||||
|
|
||||||
try {
|
positionPacketsPerSecond++;
|
||||||
positionPacketsPerSecond++;
|
|
||||||
|
|
||||||
timer.schedule(new TimerTask() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
positionPacketsPerSecond--;
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue