Fixing like 10 memory leaks Fixes #4670

This commit is contained in:
nossr50
2021-12-11 22:22:02 -08:00
parent 10470dde13
commit fbe0cd1471
15 changed files with 143 additions and 43 deletions

View File

@@ -0,0 +1,27 @@
package com.gmail.nossr50.runnables;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.MetadataConstants;
import org.bukkit.entity.Mob;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
public class MobDodgeMetaCleanup extends BukkitRunnable {
private final @NotNull Mob mob;
private final @NotNull mcMMO pluginRef;
public MobDodgeMetaCleanup(@NotNull Mob mob, @NotNull mcMMO pluginRef) {
this.mob = mob;
this.pluginRef = pluginRef;
}
@Override
public void run() {
if(!mob.isValid() || mob.getTarget() == null) {
mob.removeMetadata(MetadataConstants.METADATA_KEY_DODGE_TRACKER, pluginRef);
this.cancel();
} else if (!mob.hasMetadata(MetadataConstants.METADATA_KEY_DODGE_TRACKER)) {
this.cancel();
}
}
}

View File

@@ -14,9 +14,9 @@ public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
@Override
public void run() {
if (target.hasMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME_KEY)) {
target.setCustomName(target.getMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME_KEY).get(0).asString());
target.removeMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME_KEY, mcMMO.p);
if (target.hasMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME)) {
target.setCustomName(target.getMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME).get(0).asString());
target.removeMetadata(MetadataConstants.METADATA_KEY_CUSTOM_NAME, mcMMO.p);
}
if (target.hasMetadata(MetadataConstants.METADATA_KEY_NAME_VISIBILITY)) {

View File

@@ -0,0 +1,27 @@
package com.gmail.nossr50.runnables;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.MetadataConstants;
import org.bukkit.entity.Entity;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
public class TravelingBlockMetaCleanup extends BukkitRunnable {
private final @NotNull Entity entity;
private final @NotNull mcMMO pluginRef;
public TravelingBlockMetaCleanup(@NotNull Entity entity, @NotNull mcMMO pluginRef) {
this.entity = entity;
this.pluginRef = pluginRef;
}
@Override
public void run() {
if(!entity.isValid()) {
entity.removeMetadata(MetadataConstants.METADATA_KEY_TRAVELING_BLOCK, pluginRef);
this.cancel();
} else if (!entity.hasMetadata(MetadataConstants.METADATA_KEY_TRAVELING_BLOCK)) {
this.cancel();
}
}
}

View File

@@ -119,6 +119,7 @@ public class RuptureTask extends BukkitRunnable {
//
// targetEntity.removeMetadata(mcMMO.RUPTURE_META_KEY, mcMMO.p);
targetEntity.removeMetadata(MetadataConstants.METADATA_KEY_RUPTURE, mcMMO.p);
this.cancel(); //Task no longer needed
}