Fix some bugs with Rupture and fix a small memory leak

This commit is contained in:
nossr50
2021-04-02 20:31:19 -07:00
parent 002887e244
commit a2ee4be86a
13 changed files with 44 additions and 44 deletions

View File

@ -131,7 +131,7 @@ public final class MobHealthbarUtils {
return null;
}
int coloredDisplay = (int) Math.ceil(fullDisplay * (healthPercentage / 100.0D));
int coloredDisplay = (int) Math.max(Math.ceil(fullDisplay * (healthPercentage / 100.0D)), 0.5);
int grayDisplay = fullDisplay - coloredDisplay;
StringBuilder healthbar = new StringBuilder(color + "");

View File

@ -2,16 +2,17 @@ package com.gmail.nossr50.util;
import com.gmail.nossr50.mcMMO;
import org.bukkit.entity.LivingEntity;
import org.jetbrains.annotations.NotNull;
public class TransientMetadataTools {
public static final String OLD_NAME_METAKEY = TransientMetadataTools.OLD_NAME_METAKEY;
private final mcMMO pluginRef;
public TransientMetadataTools(mcMMO pluginRef) {
public TransientMetadataTools(@NotNull mcMMO pluginRef) {
this.pluginRef = pluginRef;
}
public void cleanAllMobMetadata(LivingEntity livingEntity) {
public void cleanAllLivingEntityMetadata(@NotNull LivingEntity livingEntity) {
//Since its not written anywhere, apparently the GC won't touch objects with metadata still present on them
if (livingEntity.hasMetadata(mcMMO.customNameKey)) {
livingEntity.setCustomName(livingEntity.getMetadata(mcMMO.customNameKey).get(0).asString());
@ -33,10 +34,13 @@ public class TransientMetadataTools {
livingEntity.removeMetadata(mcMMO.travelingBlock, pluginRef);
}
if(livingEntity.hasMetadata(mcMMO.REPLANT_META_KEY)) {
livingEntity.removeMetadata(mcMMO.REPLANT_META_KEY, pluginRef);
if(livingEntity.hasMetadata(mcMMO.RUPTURE_META_KEY)) {
livingEntity.removeMetadata(mcMMO.RUPTURE_META_KEY, pluginRef);
}
if(livingEntity.hasMetadata(mcMMO.EXPLOSION_FROM_RUPTURE)) {
livingEntity.removeMetadata(mcMMO.EXPLOSION_FROM_RUPTURE, pluginRef);
}
//Cleanup mob metadata
mcMMO.getCompatibilityManager().getPersistentDataLayer().removeMobFlags(livingEntity);

View File

@ -12,6 +12,7 @@ import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.PartyManager;
import com.gmail.nossr50.runnables.skills.AwardCombatXpTask;
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
import com.gmail.nossr50.skills.archery.ArcheryManager;
import com.gmail.nossr50.skills.axes.AxesManager;
@ -40,7 +41,6 @@ import org.bukkit.potion.PotionEffectType;
import org.bukkit.projectiles.ProjectileSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import com.gmail.nossr50.runnables.skills.AwardCombatXpTask;
import java.util.EnumMap;
import java.util.HashMap;
@ -93,8 +93,7 @@ public final class CombatUtils {
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.SWORDS);
}
if(target.getHealth() - event.getFinalDamage() >= 1)
{
if(target.getHealth() - event.getFinalDamage() > 0) {
if (swordsManager.canUseRupture()) {
swordsManager.processRupture(target);
}

View File

@ -1,19 +1,18 @@
package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.sounds.SoundManager;
import com.gmail.nossr50.util.sounds.SoundType;
import org.apache.commons.lang.math.RandomUtils;
import org.bukkit.*;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
public final class ParticleEffectUtils {
private ParticleEffectUtils() {}