API Docs Help

Actions

Les actions permettent en config d'exécuter des actions (potentiellement) complex sans que le développeur n'ai pas besoin de le réimplementer à chaque fois

Les différents types d'actions

Les actions peuvent avoir plusieurs formes:

  • Simple, en une ligne comme l'exemple ci dessus

  • Complex, nécessite une section à elle seul et empêche d'utiliser le format standard des simple

Exemple en config

Simple

actions: - "[message] Oh hello there! Have a stone!" - "[console] give %player_name% stone 1"

Complex

actions: first: type: "track" track-type: "SINGLE" tracks: ...

Simple et complex

actions: first: type: "message" value: "Oh hello there! Have a stone!" second: type: "track" track-type: "SINGLE" tracks: ...

Inscrire son action dans le registre globale

Pour inscrire votre action dans le registre de votre plugin, vous devez simplement l'enregistrer avec un nom et l'instance

yourPluginInstance.getActionRegistry().register("my-action", new MyAction());

Il est aussi possible d'utiliser le registre global des actions mais cela est déconseillé

ActionRegistry.getInstance().register("my-action", new MyAction());

Supporter les actions dans une configuration

Les actions peuvent être pris en charge via l'ActionFactory
Une méthode est mise à disposition dans cette factory

@NotNull ActionEntryList createActions(@Nullable Object object, @NotNull NamedRegistry<BaseAction> actionRegistry) throws ActionParseException;

Donc en reprenant l'exemple avec "actions" cela donnerait:

ConfigurationSection section = ...; try { ActionEntryList list; list = ActionFactory.getInstance().createActions(section.get("actions"), ActionRegistry.getInstance()); } catch(ActionParseException e){ plugin.getPlatformLogger().error("Could not parse actions", e); return; }
Last modified: 17 septembre 2024