Rename and enhance AttributeModifier

Renamed AttributeModifier to EntityAttributeModifier for clarity. Added Main dependency and improved attribute setting logic with namespaced keys for better error handling and debugging. Updated MobTypes to pass Main instance accordingly.
This commit is contained in:
2024-10-18 22:59:47 +02:00
parent 73cfb772b1
commit c8cb2309f6
4 changed files with 57 additions and 40 deletions
@@ -1,7 +1,8 @@
package com.alttd.custommobs.config;
import com.alttd.custommobs.Main;
import com.alttd.custommobs.abilities.Ability;
import com.alttd.custommobs.abilities.modifiers.AttributeModifier;
import com.alttd.custommobs.abilities.modifiers.EntityAttributeModifier;
import com.alttd.custommobs.abilities.EntityModifier;
import com.alttd.custommobs.abilities.MobType;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
@@ -16,19 +17,21 @@ import java.util.*;
@Slf4j
public class MobTypes extends AbstractConfig {
static MobTypes config;
private final Main main;
MobTypes() {
MobTypes(Main main) {
super(
new File(File.separator
+ "mnt" + File.separator
+ "configs" + File.separator
+ "custommobs"),
"mob-types.yml");
this.main = main;
}
public static void reload() {
public static void reload(Main main) {
log.info("Reloading mob types");
config = new MobTypes();
config = new MobTypes(main);
config.readConfig(MobTypes.class, null);
}
@@ -80,7 +83,7 @@ public class MobTypes extends AbstractConfig {
private static EntityModifier getAttribute(String attributeName, double value) {
try {
Attribute attribute = Attribute.valueOf(attributeName);
return new AttributeModifier(attribute, value);
return new EntityAttributeModifier(config.main, attribute, value);
} catch (IllegalArgumentException e) {
log.error("Invalid attribute {}", attributeName, e);
return null;