API Docs Help

Requirements

Les requirements sont des conditions qui doivent être remplies pour qu'une l'action puisse être exécutée.

Exemple en config

Requirements simple

requirements: 1: type: "permission" comparison: "==" permission: "my.permission"

Requirements avec deny action

requirements: requirements: 1: type: "placeholder" input: "online_players" # Placeholder to check comparison: "==" output: "true" deny-actions: - "[message] Requirement can't be fulfilled"

Inscrire son requirement 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.getRequirementRegistry().register("my-requirement", new MyRequirment());

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

RequirementRegistry.getInstance().register("my-requirement", new MyRequirment());

Support par le système de configuration

les requirements sont pris en charges automatiquement par le système de configurations (@CfgClass), il suffit de déclarer un champ de type RequirementEntryList afin d'avoir le format avec deny-actions

@CfgClass public class MyConfig { private RequirementEntryList requirements; }

ou un champ de type List<RequirementEntry> pour avoir le format sans deny-actions

@CfgClass public class MyConfig { private List<RequirementEntry> requirements; }

Création sans passer par le système de configuration

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

List<RequirementEntry> parseRequirements(ConfigurationSection section) throws RequirementParseException;

pour les requirements avec deny-actions

RequirementEntryList parseAdvancedRequirements(ConfigurationSection section, NamedRegistry<Requirement> requirementRegistry, NamedRegistry<BaseAction> actionRegistry) throws RequirementParseException;
Last modified: 17 septembre 2024