Aller au contenu principal

Script Lua : Enums et valeurs

webapp_banner.jpg

Cette page renvoie aux Javadocs Spigot pour chaque type d'enum utilisé par les méthodes Lua d'EliteMobs. Utilisez le nom exact de la constante enum (ex. "FLAME", "ZOMBIE", "STONE") comme chaîne dans votre code Lua.

  • 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 nil ou ne font rien, et les API avec validation peuvent déclencher une erreur Lua

Référence des enums

EnumUtilisationJavadoc
BarColorCouleur de la barre de bossBarColor
BarStyleStyle de la barre de bossBarStyle
DamageCauseFiltrage de la cause des dégâtsEntityDamageEvent.DamageCause
EnderDragon.PhaseContrôle des phases de l'Ender DragonEnderDragon.Phase
EntityEffectEffets visuels d'entitéEntityEffect
EntityTypeApparition d'entitésEntityType
EquipmentSlotEmplacements d'équipement d'entitéEquipmentSlot
FireworkEffect.TypeForme de feu d'artificeFireworkEffect.Type
MaterialBlocs et objetsMaterial
ParticleEffets de particulesParticle -- voir aussi la liste des particules valides pour les conversions de noms hérités
PotionEffectTypeEffets de potionPotionEffectType
SoundLecture de sonsSound
Les sons acceptent deux formats

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).

Cela signifie que vous n'avez plus à choisir un format — mais une faute de frappe dans l'une ou l'autre forme est silencieusement ignorée, car le chemin de repli ne peut pas distinguer un mauvais nom d'enum d'un son de pack personnalisé simplement non installé.

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).

Native (kind)Utilitaire de script (shape)
sphereSPHERE
domeDOME
cylinderCYLINDER
cuboidCUBOID
coneCONE
static_raySTATIC_RAY
rotating_rayROTATING_RAY
translating_rayTRANSLATING_RAY

Filtres d'entité

Utilisés par les options de requête de context.zones et context.entities. Insensibles à la casse, et chacun possède un alias au pluriel.

FiltreCorrespond à
player / playersJoueurs uniquement
elite / elitesMobs élites uniquement
mob / mobsEntités vivantes non-joueurs (cela inclut les élites)
livingToutes les entités vivantes, joueurs compris (par défaut)
all / entitiesToutes les entités, y compris non vivantes. Reconnu uniquement par context.entities:get_nearby_entities

Tout ce qui n'est pas l'une de ces chaînes retombe sur le comportement living plutôt que de lever une erreur : une faute de frappe comme "playr" renvoie donc silencieusement toutes les entités vivantes.

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).

ValeurEffet
CLEARCiel dégagé
RAINPluie
THUNDEROrage

Types de cible

Utilisés par les spécifications de context.script:target().

ValeurRésolu en
SELFL'entité boss
SELF_SPAWNLe lieu d'apparition du boss
DIRECT_TARGETL'entité impliquée dans l'événement en cours
NEARBY_PLAYERSLes joueurs dans la portée (range) du boss
NEARBY_MOBSLes mobs non-joueurs dans la portée
NEARBY_ELITESLes mobs élites dans la portée
ALL_PLAYERSTous les joueurs en ligne
WORLD_PLAYERSTous les joueurs dans le monde du boss
ZONE_FULLEntités/emplacements à l'intérieur d'un volume de zone
ZONE_BORDEREntités/emplacements sur la bordure d'une zone
LOCATIONUn emplacement spécifique issu du champ location de la spécification
LOCATIONSPlusieurs emplacements spécifiques issus de la liste locations de la spécification
LANDING_LOCATIONL'endroit où un bloc en chute ou une entité invoquée a atterri
ACTION_TARGETHérite des cibles de l'action EliteScript environnante
INHERIT_SCRIPT_TARGETHérite de la cible de l'EliteScript appelant
INHERIT_SCRIPT_ZONE_FULLÀ l'intérieur de la zone de l'EliteScript appelant
INHERIT_SCRIPT_ZONE_BORDERSur la bordure de la zone de l'EliteScript appelant

Les quatre derniers ne se résolvent que s'il existe un EliteScript environnant duquel hériter ; depuis Lua, ils ont donc peu d'utilité pratique. Voir Cibles EliteScript pour la sémantique complète — context.script utilise exactement cette implémentation.


Étapes suivantes