diff --git a/src/main/java/net/sigmarik/abilitymod/command/TraitCommand.java b/src/main/java/net/sigmarik/abilitymod/command/TraitCommand.java index c914d72..edcf7f4 100644 --- a/src/main/java/net/sigmarik/abilitymod/command/TraitCommand.java +++ b/src/main/java/net/sigmarik/abilitymod/command/TraitCommand.java @@ -5,7 +5,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import net.minecraft.command.argument.EntityArgumentType; -import net.minecraft.command.suggestion.SuggestionProviders; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlEntityMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlEntityMixin.java index 7d173e3..4a3a977 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlEntityMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlEntityMixin.java @@ -24,7 +24,7 @@ public EnderPearlEntityMixin(EntityType entityType, target = "Lnet/minecraft/entity/Entity;damage(Lnet/minecraft/entity/damage/DamageSource;F)Z") ) private boolean traitedDamage(Entity entity, DamageSource damageSource, float amount) { - if (ServerState.hasTrait((PlayerEntity) entity, Traits.TRAIT_EASY_PEARLS)) { + if (ServerState.hasTrait((PlayerEntity) entity, Traits.EASY_PEARLS)) { return false; } else return entity.damage(damageSource, amount); } diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlItemMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlItemMixin.java index 85b3a1c..9eb0e78 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlItemMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/EnderPearlItemMixin.java @@ -28,7 +28,7 @@ public EnderPearlItemMixin(Settings settings) { shift = At.Shift.AFTER )) private void traiedSetDelay(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable> cir) { - if (ServerState.hasTrait(user, Traits.TRAIT_EASY_PEARLS)) { + if (ServerState.hasTrait(user, Traits.EASY_PEARLS)) { user.getItemCooldownManager().set(Items.ENDER_PEARL, 0); } } diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/EndermanEntityMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/EndermanEntityMixin.java index efd6bc6..db520c9 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/EndermanEntityMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/EndermanEntityMixin.java @@ -22,6 +22,6 @@ protected EndermanEntityMixin(EntityType entityType, Wo @Inject(method = "isPlayerStaring", at = @At("HEAD"), cancellable = true) private void traitedIsStaring(PlayerEntity player, CallbackInfoReturnable cir) { - if (ServerState.hasTrait(player, Traits.TRAIT_NO_EYE_AGGRO)) cir.setReturnValue(false); + if (ServerState.hasTrait(player, Traits.NO_EYE_AGGRO)) cir.setReturnValue(false); } } diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/PlayerEntityMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/PlayerEntityMixin.java index d2979f0..f9a22bb 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/PlayerEntityMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/PlayerEntityMixin.java @@ -46,13 +46,13 @@ private boolean hasTrait(String trait) { } private void tickFearOfWater() { - if (!hasTrait(Traits.TRAIT_FEAR_OF_WATER) || !isWet()) return; + if (!hasTrait(Traits.FEAR_OF_WATER) || !isWet()) return; damage(getDamageSources().magic(), 3); } private void tickAddiction() { - if (!hasTrait(Traits.TRAIT_ADDICTION)) return; + if (!hasTrait(Traits.ADDICTION)) return; ServerState.tickAddictionTimer((PlayerEntity)(Object)this); @@ -71,7 +71,7 @@ private void tickAddiction() { } private void tickBoatMagnet() { - if (!hasTrait(Traits.TRAIT_BOAT_MAGNET)) return; + if (!hasTrait(Traits.BOAT_MAGNET)) return; if (!hasVehicle() || !(getVehicle() instanceof BoatEntity)) return; Box attractionBox = Box.of(getPos(), 8, 8, 8); @@ -93,7 +93,7 @@ private void tickBoatMagnet() { } private void tickDirtSickness() { - if (!hasTrait(Traits.TRAIT_DIRT_SICKNESS) || hasVehicle() || fallDistance > 0.0) return; + if (!hasTrait(Traits.DIRT_SICKNESS) || hasVehicle() || fallDistance > 0.0) return; if (isTouchingWater() && (getWorld().getBiome(getBlockPos()).matchesKey(BiomeKeys.SWAMP) || @@ -105,7 +105,7 @@ private void tickDirtSickness() { } private void tickHated() { - if (!hasTrait(Traits.TRAIT_HATED)) return; + if (!hasTrait(Traits.HATED)) return; Box aggroBox = Box.of(getPos(), 20, 10, 20); @@ -119,7 +119,7 @@ private void tickHated() { } private void tickFast() { - if (hasTrait(Traits.TRAIT_FAST)) { + if (hasTrait(Traits.FAST)) { Objects.requireNonNull(getAttributeInstance(EntityAttributes.GENERIC_MOVEMENT_SPEED)).setBaseValue(0.15); } else { // PlayerEntity::createPlayerAttributes --v Objects.requireNonNull(getAttributeInstance(EntityAttributes.GENERIC_MOVEMENT_SPEED)).setBaseValue(0.1); @@ -127,7 +127,7 @@ private void tickFast() { } private void tickStrong() { - if (hasTrait(Traits.TRAIT_STRONG)) { + if (hasTrait(Traits.STRONG)) { Objects.requireNonNull(getAttributeInstance(EntityAttributes.GENERIC_ATTACK_DAMAGE)).setBaseValue(1.5); } else { // PlayerEntity::createPlayerAttributes --v Objects.requireNonNull(getAttributeInstance(EntityAttributes.GENERIC_ATTACK_DAMAGE)).setBaseValue(1.0); @@ -135,7 +135,7 @@ private void tickStrong() { } private void tickHotIron() { - if (!hasTrait(Traits.TRAIT_HOT_IRON)) return; + if (!hasTrait(Traits.HOT_IRON)) return; if (getInventory().containsAny(PropSets.IRON_ITEMS)) setOnFireFor(3); } @@ -156,7 +156,7 @@ private boolean isAffectedByDaylight() { // Adapted version of ZombieEntity::tickMovement private void tickDamagedByLight() { - if (!hasTrait(Traits.TRAIT_DAMAGED_BY_LIGHT)) return; + if (!hasTrait(Traits.DAMAGED_BY_LIGHT)) return; if (!isAffectedByDaylight()) return; ItemStack helmet = this.getEquippedStack(EquipmentSlot.HEAD); @@ -189,8 +189,8 @@ private void traitedTick(CallbackInfo ci) { @Inject(method = "eatFood", at = @At("RETURN")) private void traitedEatFood(World world, ItemStack stack, CallbackInfoReturnable cir) { - if (stack.getItem().equals(Items.ROTTEN_FLESH) && hasTrait(Traits.TRAIT_HARMFUL_ROTTEN_FLESH)) { - if (hasTrait(Traits.TRAIT_INVERT_EFFECTS)) { + if (stack.getItem().equals(Items.ROTTEN_FLESH) && hasTrait(Traits.HARMFUL_ROTTEN_FLESH)) { + if (hasTrait(Traits.INVERT_EFFECTS)) { addStatusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 30 * 20)); } else { addStatusEffect(new StatusEffectInstance(StatusEffects.POISON, 30 * 20)); diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/PotionItemMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/PotionItemMixin.java index a4cfdd3..4729b5d 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/PotionItemMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/PotionItemMixin.java @@ -25,7 +25,7 @@ public PotionItemMixin(Settings settings) { @Inject(method = "finishUsing", at = @At("HEAD")) private void traitedFinishUsing(ItemStack stack, World world, LivingEntity user, CallbackInfoReturnable cir) { if (user instanceof PlayerEntity && PotionUtil.getPotion(stack) == Potions.THICK && - ServerState.hasTrait((PlayerEntity)user, Traits.TRAIT_ADDICTION) && + ServerState.hasTrait((PlayerEntity)user, Traits.ADDICTION) && ServerState.getAddictionTimer((PlayerEntity)user) < net.sigmarik.abilitymod.util.Settings.ADDICTION_MID_TIMER) { ServerState.setAddictionTimer((PlayerEntity)user, net.sigmarik.abilitymod.util.Settings.ADDICTION_MID_TIMER); } diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/StatusEffectMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/StatusEffectMixin.java index a9e82dc..7882f38 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/StatusEffectMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/StatusEffectMixin.java @@ -16,7 +16,7 @@ public abstract class StatusEffectMixin { @Inject(method = "applyUpdateEffect", at = @At("HEAD"), cancellable = true) private void invertRegeneration(LivingEntity entity, int amplifier, CallbackInfo ci) { - if (entity instanceof PlayerEntity && ServerState.hasTrait((PlayerEntity)entity, Traits.TRAIT_INVERT_EFFECTS)) { + if (entity instanceof PlayerEntity && ServerState.hasTrait((PlayerEntity)entity, Traits.INVERT_EFFECTS)) { if ((Object)this == StatusEffects.REGENERATION) { if (entity.getHealth() > 1.0F) { entity.damage(entity.getDamageSources().magic(), 1.0F); @@ -36,6 +36,6 @@ private void invertRegeneration(LivingEntity entity, int amplifier, CallbackInfo private boolean traitedIsUndead(LivingEntity entity) { return entity.isUndead() || (entity instanceof PlayerEntity && - ServerState.hasTrait((PlayerEntity)entity, Traits.TRAIT_INVERT_EFFECTS)); + ServerState.hasTrait((PlayerEntity)entity, Traits.INVERT_EFFECTS)); } } diff --git a/src/main/java/net/sigmarik/abilitymod/mixin/TargetPredicateMixin.java b/src/main/java/net/sigmarik/abilitymod/mixin/TargetPredicateMixin.java index 3a487cf..c1055cd 100644 --- a/src/main/java/net/sigmarik/abilitymod/mixin/TargetPredicateMixin.java +++ b/src/main/java/net/sigmarik/abilitymod/mixin/TargetPredicateMixin.java @@ -18,7 +18,7 @@ private void checkUndead(@Nullable LivingEntity baseEntity, LivingEntity targetE if (baseEntity == null) return; if (baseEntity.isUndead() && targetEntity instanceof PlayerEntity && - ServerState.hasTrait((PlayerEntity)targetEntity, Traits.TRAIT_IGNORED_BY_UNDEAD) && + ServerState.hasTrait((PlayerEntity)targetEntity, Traits.IGNORED_BY_UNDEAD) && baseEntity.getAttacker() != targetEntity) { cir.setReturnValue(false); } diff --git a/src/main/java/net/sigmarik/abilitymod/util/Traits.java b/src/main/java/net/sigmarik/abilitymod/util/Traits.java index b945757..d1e896e 100644 --- a/src/main/java/net/sigmarik/abilitymod/util/Traits.java +++ b/src/main/java/net/sigmarik/abilitymod/util/Traits.java @@ -1,18 +1,37 @@ package net.sigmarik.abilitymod.util; +import java.util.Set; + public class Traits { - public static final String TRAIT_EASY_PEARLS = "easy_pearls"; - public static final String TRAIT_NO_EYE_AGGRO = "no_eye_aggro"; - public static final String TRAIT_FEAR_OF_WATER = "fear_of_water"; - public static final String TRAIT_IGNORED_BY_UNDEAD = "ignored_by_undead"; - public static final String TRAIT_DAMAGED_BY_LIGHT = "damaged_by_light"; - public static final String TRAIT_HARMFUL_ROTTEN_FLESH = "harmful_rotten_flesh"; - public static final String TRAIT_INVERT_EFFECTS = "invert_effects"; - public static final String TRAIT_BOAT_MAGNET = "boat_magnet"; - public static final String TRAIT_DIRT_SICKNESS = "dirt_sickness"; - public static final String TRAIT_ADDICTION = "addiction"; - public static final String TRAIT_FAST = "fast"; - public static final String TRAIT_STRONG = "strong"; - public static final String TRAIT_HATED = "hated"; - public static final String TRAIT_HOT_IRON = "hot_iron"; + public static final String EASY_PEARLS = "easy_pearls"; + public static final String NO_EYE_AGGRO = "no_eye_aggro"; + public static final String FEAR_OF_WATER = "fear_of_water"; + public static final String IGNORED_BY_UNDEAD = "ignored_by_undead"; + public static final String DAMAGED_BY_LIGHT = "damaged_by_light"; + public static final String HARMFUL_ROTTEN_FLESH = "harmful_rotten_flesh"; + public static final String INVERT_EFFECTS = "invert_effects"; + public static final String BOAT_MAGNET = "boat_magnet"; + public static final String DIRT_SICKNESS = "dirt_sickness"; + public static final String ADDICTION = "addiction"; + public static final String FAST = "fast"; + public static final String STRONG = "strong"; + public static final String HATED = "hated"; + public static final String HOT_IRON = "hot_iron"; + + public static final Set TRAITS = Set.of( + EASY_PEARLS, + NO_EYE_AGGRO, + FEAR_OF_WATER, + IGNORED_BY_UNDEAD, + DAMAGED_BY_LIGHT, + HARMFUL_ROTTEN_FLESH, + INVERT_EFFECTS, + BOAT_MAGNET, + DIRT_SICKNESS, + ADDICTION, + FAST, + STRONG, + HATED, + HOT_IRON + ); }