Files
CustomNPC-Plus/src/main/java/noppes/npcs/controllers/data/AbilityScript.java
T

54 lines
1.5 KiB
Java
Raw Normal View History

package noppes.npcs.controllers.data;
import kamkeel.npcs.network.packets.request.script.AbilityScriptPacket;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.constants.ScriptContext;
/**
* Script handler for ability scripts.
* Manages a single script container for ability hooks (abilityStart, abilityTick, abilityComplete, etc.).
*/
public class AbilityScript extends SingleScriptHandler implements IScriptHandlerPacket {
/**
* The ability ID (UUID) for packet communication. Empty if not bound.
*/
private String abilityId = "";
/**
* Create an unbound AbilityScript (for server-side use).
*/
public AbilityScript() {
}
/**
* Create an AbilityScript bound to a specific ability (for GUI use).
*
* @param abilityId The UUID of the ability
*/
public AbilityScript(String abilityId) {
this.abilityId = abilityId != null ? abilityId : "";
}
@Override
public ScriptContext getContext() {
return ScriptContext.ABILITY;
}
@Override
public String noticeString() {
return !abilityId.isEmpty() ? "Ability[" + abilityId + "]" : "Ability";
}
@Override
public void requestData() {
if (!abilityId.isEmpty())
AbilityScriptPacket.Get(abilityId);
}
@Override
public void sendSavePacket(int index, int totalCount, NBTTagCompound nbt) {
if (!abilityId.isEmpty())
AbilityScriptPacket.Save(abilityId, index, totalCount, nbt);
}
}