aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt
diff options
context:
space:
mode:
authorIlmarsXd <ilmars500@gmail.com>2023-03-21 18:18:44 +0200
committerIlmarsXd <ilmars500@gmail.com>2023-03-21 18:18:44 +0200
commit1c7d76cd3f6df63a71baf615369a493b65ed0409 (patch)
tree0f1e90abd85c0c1a11f4673d35959d44d5452410 /src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt
parentd07696bbfa5d43a3354cd24c872cd0abca1d9afe (diff)
downloadDulkirMod-1c7d76cd3f6df63a71baf615369a493b65ed0409.tar.gz
DulkirMod-1c7d76cd3f6df63a71baf615369a493b65ed0409.tar.bz2
DulkirMod-1c7d76cd3f6df63a71baf615369a493b65ed0409.zip
rename memory leak fix, fix wrong check
Diffstat (limited to 'src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt')
-rw-r--r--src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt b/src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt
new file mode 100644
index 0000000..a4dfc9b
--- /dev/null
+++ b/src/main/kotlin/dulkirmod/features/MemoryLeakFix.kt
@@ -0,0 +1,34 @@
+package dulkirmod.features
+
+import dulkirmod.DulkirMod.Companion.mc
+import dulkirmod.config.Config
+import net.minecraft.entity.Entity
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
+
+object MemoryLeakFix {
+ var lastClear = System.currentTimeMillis()
+
+ @SubscribeEvent
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ if (!Config.crimsonIslesMemoryLeakPatch) return
+
+ if (System.currentTimeMillis() - lastClear >= 30000L) {
+ val world = mc.theWorld ?: return
+ val currentEnts = world.playerEntities.toMutableList()
+ currentEnts.forEach {
+ if (it.isDead) {
+ world.playerEntities.remove(it)
+ }
+ if (isNullVec(it)) {
+ world.removeEntityFromWorld(it.entityId)
+ }
+ }
+ lastClear = System.currentTimeMillis()
+ }
+ }
+
+ private fun isNullVec(entity: Entity): Boolean {
+ return entity.posX == 0.0 && entity.posY == 0.0 && entity.posZ == 0.0
+ }
+} \ No newline at end of file