diff --git a/src/main/java/harmonised/pmmo/config/codecs/AttributeModifier.java b/src/main/java/harmonised/pmmo/config/codecs/AttributeModifier.java deleted file mode 100644 index 100080f1..00000000 --- a/src/main/java/harmonised/pmmo/config/codecs/AttributeModifier.java +++ /dev/null @@ -1,19 +0,0 @@ -package harmonised.pmmo.config.codecs; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; - -public record AttributeModifier( - String attribute, - double amount, - String operation -){ - - public static final Codec CODEC = RecordCodecBuilder.create( instance -> - instance.group( - Codec.STRING.fieldOf( "attribute" ).forGetter( AttributeModifier::attribute), - Codec.DOUBLE.fieldOf( "amount" ).forGetter( AttributeModifier::amount ), - Codec.STRING.fieldOf( "operation" ).forGetter( AttributeModifier::operation ) - ).apply( instance, AttributeModifier::new ) - ); -} diff --git a/src/main/java/harmonised/pmmo/config/codecs/LocationData.java b/src/main/java/harmonised/pmmo/config/codecs/LocationData.java index 34f44863..aab1fe61 100644 --- a/src/main/java/harmonised/pmmo/config/codecs/LocationData.java +++ b/src/main/java/harmonised/pmmo/config/codecs/LocationData.java @@ -27,7 +27,7 @@ public record LocationData( Map negative, List veinBlacklist, Map travelReq, - List dimensionalMobModifiers, + List dimensionalMobModifiers, Map> mobModifiers) implements DataSource{ public LocationData() {this( @@ -82,7 +82,7 @@ public void setPositiveEffects(Map pos) { Codec.unboundedMap(ResourceLocation.CODEC, Codec.INT).optionalFieldOf("negative_effect").forGetter(ld -> Optional.of(ld.negative())), Codec.list(ResourceLocation.CODEC).optionalFieldOf("vein_blacklist").forGetter(ld -> Optional.of(ld.veinBlacklist())), Codec.unboundedMap(Codec.STRING, Codec.INT).optionalFieldOf("travel_req").forGetter(ld -> Optional.of(ld.travelReq())), - Codec.list(AttributeModifier.CODEC).optionalFieldOf("dimensional_mob_modifiers").forGetter(ld -> Optional.of(ld.dimensionalMobModifiers())), + Codec.list(MobModifier.CODEC).optionalFieldOf("dimensional_mob_modifiers").forGetter(ld -> Optional.of(ld.dimensionalMobModifiers())), Codec.unboundedMap(ResourceLocation.CODEC, CodecTypes.DOUBLE_CODEC).optionalFieldOf("mob_modifier").forGetter(ld -> Optional.of(ld.mobModifiers())) ).apply(instance, (override, tags, bonus, pos, neg, vein, req, dimMobScaling, mobs) -> new LocationData( @@ -105,7 +105,7 @@ public LocationData combine(LocationData two) { Map negative = new HashMap<>(); List veinBlacklist = new ArrayList<>(); Map travelReq = new HashMap<>(); - List dimensionalMobModifiers = new ArrayList<>(); + List dimensionalMobModifiers = new ArrayList<>(); Map> mobModifiers = new HashMap<>(); BiConsumer bothOrNeither = (o, t) -> { diff --git a/src/main/java/harmonised/pmmo/config/codecs/MobModifier.java b/src/main/java/harmonised/pmmo/config/codecs/MobModifier.java new file mode 100644 index 00000000..9dcf1180 --- /dev/null +++ b/src/main/java/harmonised/pmmo/config/codecs/MobModifier.java @@ -0,0 +1,19 @@ +package harmonised.pmmo.config.codecs; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +public record MobModifier( + String attribute, + double amount, + String operation +){ + + public static final Codec CODEC = RecordCodecBuilder.create(instance -> + instance.group( + Codec.STRING.fieldOf( "attribute" ).forGetter( MobModifier::attribute), + Codec.DOUBLE.fieldOf( "amount" ).forGetter( MobModifier::amount ), + Codec.STRING.fieldOf( "operation" ).forGetter( MobModifier::operation ) + ).apply( instance, MobModifier::new ) + ); +} diff --git a/src/main/java/harmonised/pmmo/features/mobscaling/MobAttributeHandler.java b/src/main/java/harmonised/pmmo/features/mobscaling/MobAttributeHandler.java index 72e031e5..7feb9ba9 100644 --- a/src/main/java/harmonised/pmmo/features/mobscaling/MobAttributeHandler.java +++ b/src/main/java/harmonised/pmmo/features/mobscaling/MobAttributeHandler.java @@ -6,6 +6,7 @@ import harmonised.pmmo.config.Config; import harmonised.pmmo.config.codecs.LocationData; +import harmonised.pmmo.config.codecs.MobModifier; import harmonised.pmmo.core.Core; import harmonised.pmmo.util.MsLoggy; import harmonised.pmmo.util.Reference; @@ -19,7 +20,6 @@ import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.targeting.TargetingConditions; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.Tags; @@ -88,7 +88,7 @@ private static void handle(LivingEntity entity, ServerLevel level, Vec3 spawnPos .map(ResourceLocation::new) .collect(Collectors.toSet()); - for (harmonised.pmmo.config.codecs.AttributeModifier att : dimModsCustom) { + for (MobModifier att : dimModsCustom) { var attributeLocation = new ResourceLocation(att.attribute()); var attribute = ForgeRegistries.ATTRIBUTES.getValue(attributeLocation); if (attribute == null) continue;