Script Lua : Enums et valeurs
Cette page renvoie aux types de valeurs Spigot utilisés par les méthodes Lua d'EliteMobs. Passez leurs noms de constantes, comme "FLAME", "ZOMBIE" et "STONE", sous forme de chaînes dans votre code Lua. Utilisez des valeurs disponibles dans la version de l'API de votre serveur.
- L'orthographe doit correspondre exactement au nom de la constante enum
- La casse est généralement normalisée en interne, mais respectez l'orthographe Javadoc par sécurité
- Le traitement des valeurs incorrectes dépend de la méthode : certaines enregistrent un avertissement, d'autres renvoient
nilou ne font rien, et les API avec validation peuvent déclencher une erreur Lua
Référence des enums
| Enum | Utilisation | Javadoc |
|---|---|---|
BarColor | Couleur de la barre de boss | BarColor |
BarStyle | Style de la barre de boss | BarStyle |
DamageCause | Filtrage de la cause des dégâts | EntityDamageEvent.DamageCause |
EnderDragon.Phase | Contrôle des phases de l'Ender Dragon | EnderDragon.Phase |
EntityEffect | Effets visuels d'entité | EntityEffect |
EntityType | Apparition d'entités | EntityType |
EquipmentSlot | Emplacements d'équipement d'entité ; damage_equipment accepte uniquement HAND, OFF_HAND, HEAD, CHEST, LEGS, FEET | EquipmentSlot |
FireworkEffect.Type | Forme de feu d'artifice | FireworkEffect.Type |
Material | Blocs et objets | Material |
Particle | Effets de particules | Particle. Les conversions d'anciens noms concernent les actions de particules EliteScript ; les fonctions natives de particules Lua exigent les noms actuels de l'API. |
PotionEffectType | Effets de potion | PotionEffectType |
Sound | Lecture de sons | Sound |
Chaque utilitaire de son Lua (boss:play_sound_at_self, entity:play_sound_at_entity, world:play_sound_at_location) résout la chaîne en deux étapes : il essaie d'abord le nom d'enum Spigot Sound (mis en majuscules, donc "entity_blaze_shoot" fonctionne), et si cela échoue, il traite la chaîne comme une clé de son avec espace de noms (mise en minuscules, donc "entity.blaze.shoot" et votre propre clé de resource pack "mypack:boss.roar" fonctionnent tous les deux).
Les deux chemins suppriment les espaces autour de la valeur. Une clé sans espace de noms utilise minecraft. Les clés mal formées sont ignorées ; les clés dont la syntaxe est valide sont envoyées au client sans vérifier l'existence du son. Une clé mal orthographiée ou un son absent du resource pack peut donc ne rien jouer.
Valeurs non-Spigot
Ces valeurs sont spécifiques à EliteMobs et ne figurent pas dans les Javadocs Spigot :
Formes de zone
Utilisées par les définitions de zones natives (champ kind) et les spécifications de zones des utilitaires de script (champ shape). Ces valeurs sont sensibles à la casse. Utilisez les minuscules pour les formes natives et les majuscules pour les formes des utilitaires de script.
Native (kind) | Utilitaire de script (shape) |
|---|---|
sphere | SPHERE |
dome | DOME |
cylinder | CYLINDER |
cuboid | CUBOID |
cone | CONE |
static_ray | STATIC_RAY |
rotating_ray | ROTATING_RAY |
translating_ray | TRANSLATING_RAY |
Filtres d'entité
Utilisés par les options de requête de context.zones et context.entities. Ces valeurs sont insensibles à la casse ; les alias acceptés figurent ci-dessous.
| Filtre | Correspond à |
|---|---|
player / players | Joueurs uniquement |
elite / elites | Mobs élites uniquement |
mob / mobs | Entités vivantes non-joueurs (cela inclut les élites) |
living | Toutes les entités vivantes, joueurs compris (par défaut) |
all / entities | Toutes les entités, y compris non vivantes. Reconnu uniquement par context.entities:get_nearby_entities |
Les filtres inconnus utilisent living, donc une faute comme "playr" inclut tous les types d'entités vivantes dans la zone interrogée. Ces requêtes natives excluent le boss lui-même. Les requêtes d'entités dans une zone cherchent dans le monde du boss ; les requêtes de boîte cherchent dans le monde du centre fourni.
get_nearby_entities(radius, filter) vérifie la distance sphérique pour les filtres d'entités vivantes. Avec all ou entities, la recherche utilise une boîte alignée sur les axes, s'étendant de radius sur chaque axe, et renvoie des tables de référence aux entités, y compris non vivantes. Les autres requêtes natives traitent ces deux filtres comme living.
context.script:zone({...}) utilise un jeu de filtres différent, en majuscules (PLAYER, ELITE, LIVING), car il exécute le moteur EliteScript.
Valeurs météo
Utilisées par context.world:set_world_weather(weather). Les valeurs sont converties en majuscules sans supprimer les espaces. Une valeur inconnue produit un avertissement et laisse la météo inchangée.
| Valeur | Effet |
|---|---|
CLEAR | Ciel dégagé |
PRECIPITATION / RAIN | Pluie |
THUNDER | Orage |
Types de cible
Ce sont les valeurs de cible d'EliteScript. context.script:target() partage le résolveur, mais ne fournit pas de données d'action héritées ni d'atterrissage. Les cibles de zone doivent provenir de full_target() ou de border_target() d'un objet de zone.
| Valeur | Résolu en |
|---|---|
SELF | L'entité boss |
SELF_SPAWN | Le lieu d'apparition du boss pour les emplacements ; le boss lui-même pour les entités |
DIRECT_TARGET | La cible directe de l'événement actuel ; ne sélectionne rien si l'événement n'en fournit pas |
NEARBY_PLAYERS | Les joueurs dans une boîte s'étendant de range sur chaque axe depuis le boss |
NEARBY_MOBS | Les entités vivantes non-joueurs dans cette boîte, à l'exclusion du boss |
NEARBY_ELITES | Les mobs élites dans cette boîte, à l'exclusion du boss |
ALL_PLAYERS | Tous les joueurs en ligne |
WORLD_PLAYERS | Tous les joueurs dans le monde du boss |
ZONE_FULL | Entités/emplacements à l'intérieur d'un volume de zone |
ZONE_BORDER | Entités/emplacements sur la bordure d'une zone |
LOCATION | Un emplacement spécifique issu du champ location de la spécification |
LOCATIONS | Plusieurs emplacements spécifiques issus de la liste locations de la spécification |
LANDING_LOCATION | L'endroit où un bloc en chute ou une entité invoquée a atterri |
ACTION_TARGET | Hérite des cibles de l'action EliteScript environnante |
INHERIT_SCRIPT_TARGET | Hérite de la cible de l'EliteScript appelant |
INHERIT_SCRIPT_ZONE_FULL | Hérite de la zone de l'EliteScript appelant ; la sélection d'entités utilise actuellement sa bordure. Voir les limites des zones héritées. |
INHERIT_SCRIPT_ZONE_BORDER | Sur la bordure de la zone de l'EliteScript appelant ; voir les limites des zones héritées pour la résolution des emplacements |
N'utilisez pas LANDING_LOCATION, ACTION_TARGET ni les trois valeurs INHERIT_SCRIPT_* avec context.script:target(). L'objet Lua ne possède pas l'état d'action, d'héritage ou d'atterrissage correspondant ; la résolution peut ne renvoyer aucune cible ou échouer. Une spécification isolée ZONE_FULL ou ZONE_BORDER n'a pas non plus de zone. Voir Cibles EliteScript pour la sémantique des actions YAML.
