Scripting Lua: Enums e valores
Esta página contém links para os Javadocs do Spigot para cada tipo de enum usado pelos métodos Lua do EliteMobs. Use o nome exato da constante enum (ex. "FLAME", "ZOMBIE", "STONE") como string no seu código Lua.
- A ortografia deve corresponder exatamente ao nome da constante enum
- As maiúsculas/minúsculas são normalmente normalizadas internamente, mas siga a ortografia do Javadoc por segurança
- O tratamento de valores inválidos depende do método: alguns registam um aviso, outros devolvem
nilou não fazem nada, e as APIs com validação podem gerar um erro de Lua
Enum Reference
| Enum | Usado para | Javadoc |
|---|---|---|
BarColor | Cor da boss bar | BarColor |
BarStyle | Estilo da boss bar | BarStyle |
DamageCause | Filtragem por causa de dano | EntityDamageEvent.DamageCause |
EnderDragon.Phase | Controlo de fase do ender dragon | EnderDragon.Phase |
EntityEffect | Efeitos visuais de entidades | EntityEffect |
EntityType | Spawn de entidades | EntityType |
EquipmentSlot | Slots de equipamento das entidades | EquipmentSlot |
FireworkEffect.Type | Forma do fogo de artifício | FireworkEffect.Type |
Material | Blocos e itens | Material |
Particle | Efeitos de partículas | Particle -- ver também a lista de partículas válidas para as conversões de nomes antigos |
PotionEffectType | Efeitos de poção | PotionEffectType |
Sound | Reprodução de sons | Sound |
Todos os auxiliares de som em Lua (boss:play_sound_at_self, entity:play_sound_at_entity, world:play_sound_at_location) resolvem a string em dois passos: primeiro tentam o nome do enum Sound do Spigot (convertido para maiúsculas, pelo que "entity_blaze_shoot" funciona) e, se isso falhar, tratam a string como uma chave de som com namespace (convertida para minúsculas, pelo que tanto "entity.blaze.shoot" como a tua própria chave de resource pack "mypack:boss.roar" funcionam).
Isto significa que já não tens de escolher um formato -- mas um erro de escrita em qualquer uma das formas é silenciosamente ignorado, porque o caminho alternativo não consegue distinguir um nome de enum inválido de um som de pack personalizado que simplesmente não está instalado.
Valores fora do Spigot
Estes valores são específicos do EliteMobs e não constam dos Javadocs do Spigot:
Formas de zona
Usadas pelas definições nativas de zona (campo kind) e pelas especificações de zona do utilitário de scripts (campo shape).
Nativo (kind) | Utilitário 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 |
Filtros de entidades
Usados pelas opções de consulta de context.zones e context.entities. Não distinguem maiúsculas de minúsculas, e cada um tem um alias no plural.
| Filtro | Corresponde a |
|---|---|
player / players | Apenas jogadores |
elite / elites | Apenas elite mobs |
mob / mobs | Entidades vivas que não são jogadores (inclui elites) |
living | Todas as entidades vivas, jogadores incluídos (predefinição) |
all / entities | Todas as entidades, incluindo as não-vivas. Só reconhecido por context.entities:get_nearby_entities |
Qualquer coisa que não seja uma destas strings recai no comportamento living em vez de dar erro, pelo que um erro de escrita como "playr" devolve silenciosamente todas as entidades vivas.
O context.script:zone({...}) usa um conjunto de filtros diferente, em maiúsculas (PLAYER, ELITE, LIVING), porque corre o motor do EliteScript.
Valores de meteorologia
Usados por context.world:set_world_weather(weather).
| Valor | Efeito |
|---|---|
CLEAR | Céu limpo |
PRECIPITATION / RAIN | Chuva |
THUNDER | Trovoada |
Tipos de alvo
Usados pelas especificações de context.script:target().
| Valor | Resolve para |
|---|---|
SELF | A entidade do boss |
SELF_SPAWN | A localização de spawn do boss |
DIRECT_TARGET | A entidade envolvida no evento atual |
NEARBY_PLAYERS | Jogadores dentro do range do boss |
NEARBY_MOBS | Mobs não-jogadores dentro do range |
NEARBY_ELITES | Elite mobs dentro do range |
ALL_PLAYERS | Todos os jogadores online |
WORLD_PLAYERS | Todos os jogadores no mundo do boss |
ZONE_FULL | Entidades/localizações dentro do volume de uma zona |
ZONE_BORDER | Entidades/localizações na fronteira de uma zona |
LOCATION | Uma localização específica, vinda do campo location da especificação |
LOCATIONS | Várias localizações específicas, vindas da lista locations da especificação |
LANDING_LOCATION | O sítio onde um bloco em queda ou uma entidade invocada aterrou |
ACTION_TARGET | Herda os alvos da ação EliteScript envolvente |
INHERIT_SCRIPT_TARGET | Herda o alvo do EliteScript que chamou |
INHERIT_SCRIPT_ZONE_FULL | Dentro da zona do EliteScript que chamou |
INHERIT_SCRIPT_ZONE_BORDER | Na fronteira da zona do EliteScript que chamou |
Os últimos quatro só resolvem quando existe um EliteScript envolvente do qual herdar, pelo que a partir de Lua têm pouca utilidade prática. Consulte Alvos do EliteScript para a semântica completa -- o context.script usa exatamente essa implementação.
