diff --git a/src/main/java/kamkeel/npcs/controllers/data/ability/Ability.java b/src/main/java/kamkeel/npcs/controllers/data/ability/Ability.java index 3b892335e..cda26df62 100644 --- a/src/main/java/kamkeel/npcs/controllers/data/ability/Ability.java +++ b/src/main/java/kamkeel/npcs/controllers/data/ability/Ability.java @@ -481,6 +481,7 @@ public abstract class Ability implements IAbility { @SideOnly(Side.CLIENT) public final List getAllFieldDefinitions() { List all = new ArrayList<>(getBaseFieldDefinitions()); + modifyBaseFieldDefinitions(all); List typeDefs = getFieldDefinitions(); // Default tab for type-specific fields that don't explicitly set one for (FieldDef def : typeDefs) { @@ -492,6 +493,17 @@ public abstract class Ability implements IAbility { return all; } + /** + * Override to modify the base field definitions before type-specific fields are added. + * Use {@link FieldDef#insertBefore}, {@link FieldDef#insertAfter}, or direct list + * manipulation to add, remove, or reorder base fields. + * + * @param baseFields The mutable list of base fields (General/Target/Effects tabs) + */ + @SideOnly(Side.CLIENT) + protected void modifyBaseFieldDefinitions(List baseFields) { + } + /** * Creates the GUI for configuring this ability. * Override this method to provide a custom GUI subclass for type-specific settings.