Files
2026-01-09 15:28:48 -05:00

79 lines
1.5 KiB
Java

package noppes.npcs.api.ability;
/**
* Interface for an NPC's ability data manager.
* Provides access to the NPC's abilities and execution state.
*/
public interface IDataAbilities {
/**
* Check if the ability system is enabled for this NPC.
*/
boolean isEnabled();
/**
* Enable or disable the ability system for this NPC.
*/
void setEnabled(boolean enabled);
/**
* Get all abilities assigned to this NPC.
*/
IAbility[] getAbilities();
/**
* Add an ability to this NPC.
*/
void addAbility(IAbility ability);
/**
* Remove an ability by ID.
*/
void removeAbility(String abilityId);
/**
* Get an ability by ID.
*/
IAbility getAbility(String abilityId);
/**
* Check if the NPC has an ability with the given ID.
*/
boolean hasAbility(String abilityId);
/**
* Clear all abilities from this NPC.
*/
void clearAbilities();
/**
* Get the currently executing ability, or null if none.
*/
IAbility getCurrentAbility();
/**
* Check if any ability is currently executing.
*/
boolean isExecutingAbility();
/**
* Interrupt the current ability if one is executing.
*/
void interruptCurrentAbility();
/**
* Get the global cooldown timer in ticks.
*/
int getGlobalCooldown();
/**
* Set the global cooldown timer in ticks.
*/
void setGlobalCooldown(int ticks);
/**
* Reset all ability cooldowns.
*/
void resetCooldowns();
}