From 97c21b505713c02711591f8f33ee122d86842523 Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Sun, 28 Jun 2020 14:56:35 +0100 Subject: [PATCH] Remove unnecessary reflection --- .../wizardry/entity/living/EntitySpiritHorse.java | 4 ++++ .../wizardry/spell/SummonSpiritHorse.java | 12 +----------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java index d3aeb8ec..ec70fa1c 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java @@ -10,6 +10,8 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.IAttribute; +import net.minecraft.entity.passive.AbstractHorse; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.player.EntityPlayer; @@ -30,6 +32,8 @@ import net.minecraft.world.World; @SuppressWarnings("deprecation") // It's what Entity does, so... public class EntitySpiritHorse extends EntityHorse { + public static final IAttribute JUMP_STRENGTH = AbstractHorse.JUMP_STRENGTH; + private int idleTimer = 0; private int dispelTimer = 0; diff --git a/src/main/java/electroblob/wizardry/spell/SummonSpiritHorse.java b/src/main/java/electroblob/wizardry/spell/SummonSpiritHorse.java index b43a16e5..917ed376 100644 --- a/src/main/java/electroblob/wizardry/spell/SummonSpiritHorse.java +++ b/src/main/java/electroblob/wizardry/spell/SummonSpiritHorse.java @@ -11,13 +11,10 @@ import electroblob.wizardry.util.SpellModifiers; import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttribute; -import net.minecraft.entity.passive.AbstractHorse; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import java.util.UUID; @@ -26,13 +23,6 @@ public class SummonSpiritHorse extends Spell { /** The string identifier for the potency attribute modifier. */ private static final String POTENCY_ATTRIBUTE_MODIFIER = "potency"; - private static final IAttribute JUMP_STRENGTH; - // Why is this protected? Doesn't that defeat the point of the attribute system? - static { - // Great, now I have to reflect into this class too. - JUMP_STRENGTH = ObfuscationReflectionHelper.getPrivateValue(AbstractHorse.class, null, "field_110271_bv"); - } - public static final IStoredVariable UUID_KEY = IStoredVariable.StoredVariable.ofUUID("spiritHorseUUID", Persistence.ALWAYS); public SummonSpiritHorse(){ @@ -70,7 +60,7 @@ public class SummonSpiritHorse extends Spell { horse.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).applyModifier( new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE)); // Jump strength increases ridiculously fast, so we're reducing the effect of the modifier by 75% - horse.getEntityAttribute(JUMP_STRENGTH).applyModifier(new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, + horse.getEntityAttribute(EntitySpiritHorse.JUMP_STRENGTH).applyModifier(new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.amplified(SpellModifiers.POTENCY, 0.25f) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE)); data.setVariable(UUID_KEY, horse.getUniqueID());