Pular para o conteúdo principal

Referência da API Lua

Referência completa de métodos para a API de scripts Lua. Todos os métodos são chamados via a sintaxe context.table:method().

Métodos Global (marcados como GLOBAL) vêm do Magmacore, a biblioteca core compartilhada. Aplicam-se a scripts do FreeMinecraftModels e a outros consumidores de ScriptInstance do MagmaCore. Os poderes de chefe do EliteMobs reutilizam o mesmo sandbox Lua, mas expõem tabelas de contexto e nomes de método específicos de chefe; os scripts de NPC do EliteMobs rodam no mesmo runtime MagmaCore e recebem o contexto compartilhado completo, mais a tabela context.npc exclusiva de NPC. Veja as seções do EliteMobs abaixo e Scripts de NPC para essas variantes.

Métodos EliteMobs (marcados como ELITEMOBS) são específicos dos scripts de poder de chefes e dos scripts de NPC do EliteMobs.

Métodos FMM (marcados como FMM) são específicos dos scripts de item e prop do FreeMinecraftModels.

Quando um método exige um enum do Bukkit (Sound, Particle, Material, etc.), consulte os Javadocs do Spigot para ver os valores válidos. Nomes de enum são passados como strings em maiúsculas (ex.: "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Entity Table GLOBAL

Campos base presentes em todas as tabelas de entidade — jogadores, mobs, props, qualquer coisa.

Propriedades

FieldTypeDescription
uuidstringUUID da entidade
entity_typestringTipo da entidade (em minúsculas)
is_validboolEntidade ainda existe no mundo
is_deadboolEntidade está morta
is_playerboolÉ um jogador
is_hostileboolÉ um Monstro
is_passiveboolÉ um Animal
current_locationlocationPosição da entidade (x, y, z, yaw, pitch, world)
worldstringNome do mundo

Enriquecedores específicos de plugin podem adicionar campos extras de nível superior quando o plugin relevante está instalado. Veja as seções de ponte (bridge) abaixo para os campos do EliteMobs e do FreeMinecraftModels.

Métodos

MethodArgsReturnsDescription
teleport(location)location tablenilTeletransporta a entidade
remove()nilRemove a entidade do mundo
set_silent(enabled)boolnilDefine silencioso
set_invulnerable(enabled)boolnilDefine invulnerável
set_gravity(enabled)boolnilDefine gravidade
set_glowing(enabled)boolnilDefine brilho de contorno

Bridge: entity.elite

Adicionado pelo enriquecedor de entidade do EliteMobs quando o EliteMobs está instalado. O enriquecedor adiciona estas flags de nível superior:

FieldTypeDescription
is_eliteboolÉ uma entidade do EliteMobs
is_custom_bossboolÉ um chefe personalizado do EliteMobs
is_significant_bossboolChefe personalizado com multiplicador de vida acima de 1 (encontro projetado)

entity.elite só está presente quando is_elite for true.

FieldTypeDescription
levelintNível do mob elite
namestringNome de exibição da elite
healthdoubleVida atual
max_healthdoubleVida máxima
is_custom_bossboolÉ um chefe personalizado (também disponível no nível superior)
health_multiplierdoubleMultiplicador de vida definido na config
damage_multiplierdoubleMultiplicador de dano definido na config
remove()methodRemove a entidade elite

Bridge: entity.model

Adicionado pelo enriquecedor de entidade do FreeMinecraftModels quando o FMM está instalado. O enriquecedor adiciona estas flags de nível superior:

FieldTypeDescription
is_modeledboolPossui um modelo FMM
is_propboolÉ um prop FMM

entity.model só está presente quando is_modeled for true.

FieldTypeDescription
model_idstringNome do blueprint do modelo
is_dynamicboolSe é uma FMM DynamicEntity (true) ou um prop estático (false)
play_animation(name, blend?, loop?)methodToca uma animação. blend padrão false, loop padrão false
stop_animations()methodPara todas as animações
remove()methodRemove a entidade modelada

Bridge: permissões do jogador

Adicionado pelo enriquecedor de entidade do FreeMinecraftModels quando o FMM está instalado. Estes campos aparecem apenas em tabelas de entidade de jogador:

Field / MethodArgsReturnsDescription
has_permission(node)stringboolSe o jogador tem o nó de permissão dado
is_opboolSe o jogador é um operador do servidor

Living Entity Table GLOBAL

Estende a Entity Table. Aplicado a todas as entidades vivas (mobs e jogadores).

Propriedades

FieldTypeDescription
healthdoubleVida atual
maximum_healthdoubleVida máxima
namestringNome de exibição da entidade
is_aliveboolEntidade não está morta

Métodos

MethodArgsReturnsDescription
damage(amount)doublenilCausa dano à entidade
push(x, y, z)double, double, doublenilAdiciona um vetor de velocidade
set_facing(x, y, z)double, double, doublenilDefine a direção do olhar
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAplica efeito de poção pelo nome
remove_potion_effect(type)string (PotionEffectType)nilRemove efeito de poção pelo nome
get_scale()numberEscala atual da entidade (padrão 1.0 em servidores sem o atributo generic.scale)
set_scale(value)doublenilDefine a escala da entidade via o atributo generic.scale (sem efeito em servidores anteriores ao 1.20.5)

context.player GLOBAL

Tabela de entidade de jogador. Herda todos os campos de Entity e Living Entity.

Propriedades

FieldTypeDescription
game_modestringsurvival, creative, adventure, spectator

Métodos

MethodArgsReturnsDescription
send_message(text)stringnilEnvia mensagem no chat. Suporta códigos de cor
get_held_item()table or nilRetorna campos type, amount, display_name, ou nil se a mão estiver vazia. type é um nome de Material do Bukkit em maiúsculas
consume_held_item(amount?)int (default 1)nilReduz a pilha do item segurado em amount
has_item(material, amount?)string (Material), int (default 1)boolVerifica o inventário pelo material
get_target_entity(range?)num (default 50)entity or nilRaycast para a entidade que o jogador está olhando
get_eye_location()locationPosição dos olhos do jogador
get_look_direction()vectorVetor de direção unitário
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (optional)boolEnvia bloco falso. Reseta automaticamente após ticks, se fornecido
reset_block(x, y, z)int, int, intboolReseta bloco falso para o bloco real
sleep(x, y, z)num, num, numnilAnimação de sono em cama na localização
wake_up()nilAcorda do sono
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, default WHITE), num, int (optional)nilExibe barra de chefe. Oculta automaticamente após ticks. Suporta códigos de cor
hide_boss_bar()nilRemove a barra de chefe
show_action_bar(text, ticks?)string, int (optional)nilMostra a action bar. Repete se ticks for maior que 0. Suporta códigos de cor
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (default empty), int, int, intnilMostra tela de título. Suporta códigos de cor

context.world GLOBAL

Operações de mundo para scripts do FreeMinecraftModels e outros runtimes de ScriptInstance apoiados pelo Magmacore. Os poderes de chefe do EliteMobs partem desta mesma tabela base e acrescentam por cima as adições e sobreposições de context.world do EliteMobs listadas abaixo.

Os métodos de context.world vêm em duas formas intercambiáveis: estilo coordenadas (x, y, z) e estilo tabela de localização (as variantes *_at_location). Ambas as formas estão disponíveis nas superfícies genéricas, e os poderes de chefe do EliteMobs mantêm os métodos base compartilhados enquanto adicionam helpers de tabela de localização específicos de chefe.

Propriedades

FieldTypeDescription
namestringNome do mundo

Métodos

MethodArgsReturnsDescription
get_block_at(x, y, z)int, int, intstringNome do Material (em minúsculas). Retorna "air" se o chunk não estiver carregado
set_block_at(x, y, z, material)int, int, int, string (Material)boolEnfileira a colocação do bloco se o material for válido; chunks não carregados são ignorados
get_highest_block_y(x, z)int, intintY do bloco mais alto que não seja ar
spawn_particle(particle, x, y, z, count?, dx?, dy?, dz?, speed?)string (Particle), num, num, num, int?=1, num?=0, num?=0, num?=0, num?=0nilSpawna efeito de partículas
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilToca som
strike_lightning(x, y, z)num, num, numnilAtinge raio
get_time()intTempo do mundo em ticks
set_time(ticks)longnilDefine o tempo do mundo
get_nearby_entities(x, y, z, radius)num, num, num, numtableArray de tabelas de entidade
get_nearby_players(x, y, z, radius)num, num, num, numtableArray de tabelas de entidade de jogador
spawn_entity(type, x, y, z)string (EntityType), num, num, numentity or nilSpawna entidade vanilla; retorna nil se o tipo de entidade for inválido
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableRetorna campos hit_entity, hit_location, hit_block
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolEnfileira a substituição de bloco que reverte automaticamente após ticks. Retorna false se o material for inválido ou o chunk não estiver carregado
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entity or nilSolta entidade de item naturalmente na localização; retorna nil se o material for inválido
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilSpawna fogos de artifício
strike_lightning_at_location(loc)locationnilAtinge raio
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilToca som
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?)location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0nilSpawna efeito de partículas
get_block_at_location(loc)locationstringNome do Material (em minúsculas). Retorna "air" se o chunk não estiver carregado
set_block_at_location(loc, material)location, string (Material)boolEnfileira a colocação do bloco se o material for válido; chunks não carregados são ignorados
place_temporary_block_at_location(loc, material, ticks?, require_air?)location, string (Material), int?=0, bool?=falseboolEnfileira a substituição de bloco que reverte automaticamente após ticks. Retorna false se o material for inválido ou o chunk não estiver carregado
get_highest_block_y_at_location(loc)locationint or nilY do bloco mais alto que não seja ar

em helpers GLOBAL

Construtores auxiliares globais expostos na tabela em em todos os runtimes Lua do MagmaCore.

Construtores

MethodArgsReturnsDescription
em.create_location(x, y, z, world?, yaw?, pitch?)num, num, num, string?, num?, num?locationTabela de localização com x, y, z, opcionalmente world, yaw, pitch, e um método in-place add(dx, dy, dz)
em.create_vector(x, y, z)num, num, numvectorTabela de vetor com x, y, z

Construtores de Zona

Os construtores de zona retornam tabelas simples de definição de zona. Esferas, domos, cilindros e cuboides incluem :set_center(location). Cones e zonas de raio incluem :set_origin(location) e :set_destination(location).

MethodArgsReturnsDescription
em.zone.create_sphere_zone(radius)numzone{ kind = "sphere", radius = ... }
em.zone.create_dome_zone(radius)numzone{ kind = "dome", radius = ... }
em.zone.create_cylinder_zone(radius, height)num, numzone{ kind = "cylinder", radius = ..., height = ... }
em.zone.create_cuboid_zone(x, y, z)num, num, numzoneMeias-extensões do cuboide
em.zone.create_cone_zone(length, radius)num, numzoneDefinição de cone com setters de origem/destino
em.zone.create_static_ray_zone(length, thickness)num, numzoneDefinição de raio estático
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration)num, num, numzoneDefinição de raio rotativo
em.zone.create_translating_ray_zone(length, point_radius, animation_duration)num, num, numzoneDefinição de raio com translação

em.location GLOBAL

Helpers de consulta de localização expostos na tabela global em. Apoiados pelo LocationQueryRegistry e pelo serviço LocationOwnership do Magmacore, que reúne resultados de provedores registrados (regiões de dungeon/world-package do EliteMobs, WorldGuard, GriefPrevention, etc.). Todas as funções aceitam uma tabela de localização ({x, y, z, world}) e retornam valores padrão seguros se a localização for inválida.

MethodArgsReturnsDescription
em.location.is_in_dungeon(loc)locationboolSe a localização está dentro de alguma região de dungeon registrada
em.location.is_protected(loc)locationboolSe algum provedor reporta a localização como protegida (WorldGuard, GriefPrevention, regiões EM, etc.)
em.location.owned_by(loc, namespace)location, stringboolSe o namespace dado possui a localização (ex.: "EliteMobs")
em.location.owners(loc)locationtableArray de strings de namespace que reivindicam a posse desta localização
em.location.kinds_at(loc)locationtableArray de tags de tipo nesta localização (ex.: "elitemobs", "world_package", "open_world_dungeon", categoria de tamanho de dungeon)
em.location.has_kind(loc, kind)location, stringboolSe a localização tem a tag de tipo dada

context.boss ELITEMOBS

Tabela de entidade de chefe para scripts de poder Lua do EliteMobs. Herda todos os métodos da EliteMobs Living Entity. As propriedades são atualizadas via getters dedicados.

Propriedades

FieldTypeDescription
namestringNome de exibição do chefe
uuidstringUUID da entidade elite
healthdoubleVida atual (snapshot)
maximum_healthdoubleVida máxima (snapshot)
current_locationlocationPosição do chefe (snapshot)
levelintNível do chefe
damager_countintNúmero de jogadores que causaram dano a este chefe
is_in_combatboolChefe está em combate
existsboolEntidade do chefe existe

Métodos

MethodArgsReturnsDescription
is_alive()boolSe a entidade do chefe está viva (verificação ao vivo)
get_health()doubleVida atual (ao vivo)
get_maximum_health()doubleVida máxima (ao vivo)
get_location()locationPosição atual (ao vivo)
restore_health(amount)doublenilCura o chefe
despawn()nilRemove a entidade do chefe
get_damager_count()intContagem de causadores de dano ao vivo
add_tag(tag, ticks?)string, int?=0nilAdiciona tag, removida automaticamente após ticks se definido
remove_tag(tag)stringnilRemove tag
has_tag(tag)stringboolVerifica tag
reset_custom_name()nilReseta o nome para o padrão da config
play_sound_at_self(sound, volume?, pitch?)string (chave de som do Minecraft, ex. "entity.wither.spawn"), float?=1, float?=1nilToca som no chefe
play_sound_at_entity(sound, volume?, pitch?)string (chave de som do Minecraft, ex. "entity.wither.spawn"), float?=1, float?=1nilToca som no chefe (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilSpawna partículas no chefe
play_model_animation(name)stringnilToca animação do modelo FMM (requer modelo FMM)
has_mount()-boolSe este chefe está montado em uma entidade de montaria
get_mount()-entity or nilReferência da entidade de montaria atual, marcada com is_mount = true
set_mount(entity)entity tableboolFaz o chefe montar na entidade dada
clear_mount()-boolFaz o chefe sair do veículo atual
dismount()-boolAlias para clear_mount()
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding até a localização
send_message(text, range?)string, double?=20nilEnvia mensagem para jogadores próximos. Suporta códigos de cor
get_nearby_players(range)doubletableArray de tabelas de jogador dentro do alcance
get_target_player()player or nilAlvo atual do mob, se for um jogador
get_nearby_players_in_zone(zone)zone tabletableJogadores dentro do formato da zona
get_ender_dragon_phase()string or nilNome da EnderDragon.Phase
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilDefine a fase do ender dragon
summon_reinforcement(file, zone?, level?)string, zone or nil, int?=0entity or nilSpawna chefe de reforço
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentity or nilSpawna projétil rastreado; retorna nil se o tipo ou as localizações forem inválidos

Opções de summon_projectile

OptionTypeDefaultDescription
custom_damagenumberSobrescreve o dano do projétil
detonation_powerstringNível de potência explosiva
yieldnumberYield (potência) do fireball
incendiarybooltrueFireball ateia fogo
gravityboolHabilita gravidade
glowingboolfalseDefine brilho de contorno
invulnerableboolfalseDefine invulnerável
persistentbooltrueDefine persistente
durationint0Remove automaticamente após ticks
effectstringEntityEffect a tocar no spawn
spawn_at_originboolfalseSpawna na origem em vez de lançar do chefe
direction_onlyboolfalseDefine a direção sem velocidade (fireballs)
trackbooltrueRegistra como projétil de elite
on_landfunctionCallback ao pousar o projétil: function(location, entity)
max_ticksint6000Ticks máximos antes do callback de pouso forçado

Métodos de Zona/Partícula

MethodArgsReturnsDescription
spawn_particles_in_zone(zone, particle, ...)zone, particle spec, coverage?=1.0nilPreenche a zona com partículas
spawn_particles_in_zone_border(zone, particle, ...)zone, particle spec, coverage?=1.0nilContorna a zona com partículas
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tablePartículas direcionais do chefe em direção à zona
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tablePartículas direcionais da zona em direção ao chefe
spawn_particles_with_vector(particles)tablenilSpawna array de partículas direcionais

Suporte a Poderes Especiais

MethodArgsReturnsDescription
start_tracking_fireball_system(speed?)double?=0.5nilInicia a IA de fireball rastreado
handle_spirit_walk_damage(cause)string (DamageCause)nilTrata dano de spirit walk por causa
shield_wall_is_active()boolSe o shield wall está ativo
initialize_shield_wall(charges?)int?=1nilAtiva o shield wall
shield_wall_absorb_damage(player, damage)entity table, doubleboolTenta absorver dano
deactivate_shield_wall()nilDesativa o shield wall
start_zombie_necronomicon(target, file)entity table, stringnilInicia necronomicon no alvo

context.npc ELITEMOBS NPC

Tabela de NPC para scripts Lua de NPC do EliteMobs. Os scripts de NPC ficam em plugins/EliteMobs/npc_scripts/ e são anexados através de uma lista scripts: na config do NPC. Os scripts de NPC rodam no mesmo runtime MagmaCore que todas as outras superfícies e recebem o contexto compartilhado completo — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — mais a tabela context.npc exclusiva de NPC documentada aqui.

Propriedades

FieldTypeDescription
namestringNome de exibição do NPC
filenamestringNome do arquivo de config do NPC
uuidstringUUID do NPC em tempo de execução
activation_radiusdoubleRaio de ativação configurado
current_locationlocationLocalização (snapshot) quando a entidade do NPC existe
entity_typestringTipo de entidade do Bukkit quando a entidade do NPC existe

Métodos

MethodArgsReturnsDescription
is_valid()-boolSe a entidade de suporte do NPC ainda é válida
get_location()-locationLocalização atual do NPC, ou fallback de spawn
get_eye_location()-locationLocalização atual dos olhos, ou fallback de spawn
get_activation_radius()-doubleRaio de ativação configurado atual
get_nearby_players(radius)doubletableTabelas de jogador perto do NPC
face_direction_or_location(target)vector or locationnilEncara uma direção ou olha para uma localização
say_greeting(player?)player, UUID, name, or nilnilEnvia uma saudação configurada. Por padrão, usa o jogador que disparou o evento quando disponível
say_dialog(player?)player, UUID, name, or nilnilEnvia o diálogo configurado. Por padrão, usa o jogador que disparou o evento quando disponível
say_farewell(player?)player, UUID, name, or nilnilEnvia o texto de despedida configurado. Por padrão, usa o jogador que disparou o evento quando disponível
play_model_animation(name)stringnilToca uma animação de modelo customizado, se disponível; sem efeito de forma segura caso contrário

Hooks específicos de NPC incluem on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter e on_npc_proximity_leave. Veja Scripts de NPC do EliteMobs para o fluxo completo e os detalhes de cooldown.


EliteMobs Living Entity Table ELITEMOBS

Tabelas de entidade criadas dentro de scripts de poder do EliteMobs (a partir de context.boss, dados de evento, callbacks de zona e consultas de mundo) usam uma tabela de entidade viva estendida, com métodos adicionais além da Living Entity global. context.boss herda todos esses.

Propriedades

FieldTypeDescription
namestringNome de exibição da entidade
uuidstringUUID da entidade
entity_typestringNome do tipo da entidade
is_playerboolÉ um jogador
is_monsterboolÉ um Monstro
is_eliteboolÉ uma entidade do EliteMobs
is_validboolEntidade ainda existe
is_mountboolTrue quando esta tabela de entidade representa uma montaria de chefe
healthdoubleVida atual (snapshot)
maximum_healthdoubleVida máxima (snapshot)
current_locationlocationPosição da entidade (snapshot)
game_modestringModo de jogo (em MAIÚSCULAS no EliteMobs: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR)

Métodos

MethodArgsReturnsDescription
is_alive()boolSe a entidade está viva (verificação ao vivo)
is_ai_enabled()boolSe a IA está habilitada
is_frozen()boolSe o chefe está congelado (apenas CustomBossEntity)
is_on_ground()boolSe a entidade está no chão
is_healing()boolSe a elite está se curando
get_location()locationPosição atual (ao vivo)
get_eye_location()locationPosição dos olhos (ao vivo)
get_height()doubleAltura da entidade
get_health()doubleVida atual (ao vivo)
get_maximum_health()doubleVida máxima (ao vivo)
get_velocity()vectorVetor de velocidade atual
deal_damage(amount)doublenilCausa dano genérico
deal_custom_damage(amount)doublenilCausa dano de ataque customizado do chefe do poder
deal_damage_from_boss(amount)doublenilCausa dano atribuído à entidade do chefe do poder
restore_health(amount)doublenilCura a entidade (usa a cura do EliteMobs se for elite)
play_sound_at_entity(sound, volume?, pitch?)string (chave de som do Minecraft, ex. "entity.ender_dragon.growl"), float?=1, float?=1nilToca som na entidade
play_sound_at_self(sound, volume?, pitch?)string (chave de som do Minecraft, ex. "entity.ender_dragon.growl"), float?=1, float?=1nilToca som na entidade (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilSpawna partículas na entidade
spawn_particles_at_location(loc, particle, count?)location, particle spec, int?=1nilSpawna partículas na localização
teleport_to_location(location)locationnilTeletransporta a entidade
set_velocity_vector(vector)vectornilDefine a velocidade
set_gravity(enabled)boolnilDefine gravidade
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilAplica velocidade após atraso. additive soma à velocidade existente
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilEmpurra a entidade para longe da localização
set_custom_name(name)stringnilDefine o nome de exibição customizado. Suporta códigos de cor
reset_custom_name()nilReseta o nome para o padrão do EliteMobs
set_custom_name_visible(visible)boolnilAlterna a visibilidade do nome
set_ai_enabled(enabled, duration?)bool, int?=0nilDefine estado da IA. Reverte automaticamente após duration ticks
set_awareness_enabled(enabled, duration?)bool, int?=0nilDefine a percepção do mob. Reverte automaticamente após duration ticks
face_direction_or_location(target)vector or locationnilEncara uma direção ou olha para uma localização
play_model_animation(name)stringnilToca animação do modelo FMM (requer modelo FMM)
is_inside_vehicle()-boolSe a entidade está montada em outra entidade
has_vehicle()-boolSe a entidade tem um veículo
get_vehicle()-entity or nilReferência da entidade de veículo atual
set_vehicle(entity)entity tableboolFaz esta entidade montar no veículo dado
leave_vehicle()-boolFaz esta entidade sair do veículo atual
has_passengers()-boolSe esta entidade tem passageiros
get_passenger_count()-intNúmero de passageiros
get_passengers()-tableArray de referências de entidade dos passageiros
add_passenger(entity)entity tableboolAdiciona um passageiro a esta entidade
remove_passenger(entity)entity tableboolRemove um passageiro desta entidade
eject_passengers()-boolEjeta todos os passageiros
set_scale(scale, duration?)double, int?=0nilDefine a escala da entidade. Reverte para 1.0 automaticamente após duration ticks
set_invulnerable(enabled, duration?)bool, int?=0nilDefine invulnerável. Reverte automaticamente após duration ticks
set_healing(enabled)boolnilDefine o estado de cura da elite
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding até a localização (apenas CustomBossEntity)
add_tag(tag, ticks?)string, int?=0nilAdiciona tag, removida automaticamente após ticks
remove_tag(tag)stringnilRemove tag
has_tag(tag)stringboolVerifica tag
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolSe a bounding box da entidade sobrepõe uma caixa na localização
remove_elite()nilRemove via pipeline de remoção do EliteMobs
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilAplica efeito de poção
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilDefine o item do slot de equipamento
set_fire_ticks(ticks)intnilDefine os ticks de fogo
add_visual_freeze_ticks(ticks?)int?=1nilAdiciona ticks visuais de congelamento
place_temporary_block(material, ticks?, requireAir?)string (Material), int?=0, bool?=falsenilColoca bloco temporário na localização da entidade

Opções de set_equipment

OptionTypeDefaultDescription
unbreakableboolfalseTorna o item inquebrável
enchantmentstableArray de tabelas {type = "ENCHANT_NAME", level = 1}

Métodos de Jogador no EliteMobs

Jogadores em scripts do EliteMobs têm todos os métodos da entidade viva do EliteMobs mais:

MethodArgsReturnsDescription
send_message(text)stringnilEnvia mensagem no chat. Suporta códigos de cor
show_action_bar(text)stringnilMostra texto na action bar. Suporta códigos de cor
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilMostra tela de título. Suporta códigos de cor
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilMostra barra de chefe. Oculta automaticamente após duration ticks. Suporta códigos de cor
run_command(command)stringnilExecuta comando como jogador

Tabela de Referência de Entidade do EliteMobs

Entidades não-vivas (projéteis, blocos caindo, fogos de artifício) retornadas pelos métodos de spawn do EliteMobs recebem uma tabela leve de referência:

Field / MethodArgsReturnsDescription
namestringNome da entidade
uuidstringUUID da entidade
entity_typestringNome do tipo da entidade
is_playerboolSempre false
is_eliteboolSempre false
is_valid()boolSe a entidade ainda é válida (verificação ao vivo)
current_locationlocationPosição (snapshot)
get_location()locationPosição atual (ao vivo)
get_velocity()vectorVetor de velocidade atual
is_on_ground()boolSe a entidade está no chão
teleport_to_location(location)locationnilTeletransporta a entidade
set_velocity_vector(vector)vectornilDefine a velocidade
set_direction_vector(vector)vectornilDefine a direção (somente fireballs)
set_yield(amount)doublenilDefine o yield do fireball
set_gravity(enabled)boolnilDefine gravidade
detonate()nilDetona fogos de artifício
remove()nilRemove a entidade
unregister(reason?)string?=OTHERnilCancela o registro do rastreador de entidades do EliteMobs

context.players ELITEMOBS

Tabela de consulta de jogadores disponível em scripts de poder do EliteMobs. Fornece métodos auxiliares para encontrar jogadores em relação ao chefe.

MethodArgsReturnsDescription
current_target()player or nilAtor do evento, se for jogador, ou o alvo atual do mob do chefe, se for jogador
nearby_players(radius)doubletableArray de tabelas de jogador dentro do raio do chefe
all_players_in_world()tableArray de todas as tabelas de jogador no mundo do chefe

context.entities ELITEMOBS

Tabela de consulta de entidades disponível em scripts de poder do EliteMobs. Fornece métodos auxiliares para encontrar entidades em relação ao chefe. Todas as consultas excluem o próprio chefe.

MethodArgsReturnsDescription
get_nearby_entities(radius, filter?)double, string?="living"tableEntidades dentro do raio. "all"/"entities" retorna todas as entidades (incluindo não-vivas); qualquer outro valor retorna entidades vivas filtradas por categoria: "player(s)", "elite(s)", "mob(s)", ou padrão = todas as vivas
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntidades vivas dentro de uma caixa alinhada aos eixos (mesmos valores de filtro acima; apenas modos diferentes de all)
get_all_entities(filter?)string?="living"tableTodas as entidades vivas no mundo do chefe (mesmos valores de filtro)
get_direct_target_entity()entity or nilEntidade alvo direta do evento disparado
get_boss_spawn_location()locationLocalização original de spawn do chefe

context.vectors ELITEMOBS

Utilitários de matemática vetorial disponíveis em scripts de poder do EliteMobs.

MethodArgsReturnsDescription
get_vector_between_locations(from, to, options?)location, location, tablevectorVetor da origem ao destino. As opções podem modificar o resultado
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorRotaciona o vetor por pitch e yaw (graus)
normalize_vector(vector)vectorvectorNormaliza para comprimento unitário

context.state GLOBAL

Uma tabela Lua comum que persiste por toda a vida útil da instância do script. Use-a para armazenar flags, contadores, IDs de tarefa, estados de toggle e qualquer dado que você precise compartilhar entre hooks. context.state é a tabela persistente de propriedade do script; a maioria das outras tabelas de contexto é reconstruída ou recriada de forma preguiçosa conforme necessário. O FMM faz cache de context.prop por prop por desempenho, mas seus campos ao vivo, como current_location, ainda são atualizados na leitura.

context.state.counter = (context.state.counter or 0) + 1

context.cooldowns GLOBAL

Gerenciamento de cooldowns. Cooldowns locais são por instância de script; cooldowns globais são compartilhados entre todos os scripts da mesma entidade/dono. Se nenhuma chave for fornecida, o padrão é o nome do arquivo do script.

MethodArgsReturnsDescription
local_ready(key?)string (optional)boolSe o cooldown local expirou
local_remaining(key?)string (optional)intTicks restantes no cooldown local (0 se pronto)
check_local(key?, duration)string (optional), intboolSe pronto, inicia o cooldown e retorna true; caso contrário, false
set_local(duration, key?)long, string (optional)nilDefine cooldown local por duration ticks
global_ready()boolSe o cooldown global expirou
set_global(duration)longnilDefine o cooldown global por duration ticks

Em scripts de poder do EliteMobs, cooldowns locais são compartilhados entre todos os poderes na mesma entidade-chefe, e cooldowns globais usam o sistema embutido de cooldown de poderes do chefe.

Os scripts de NPC do EliteMobs usam a ordem de cooldown compartilhada check_local(key?, duration); veja Scripts de NPC.


context.scheduler GLOBAL

Agendamento de tarefas. Todas as tarefas são canceladas automaticamente quando o script é desligado.

Variante Global (Magmacore)

Scripts do FreeMinecraftModels e scripts de NPC do EliteMobs usam esta variante compartilhada. Os nomes ao estilo EliteMobs abaixo são aliases no mesmo scheduler, portanto qualquer estilo de nomenclatura é válido nas superfícies genéricas.

MethodArgsReturnsDescription
run_later(ticks, callback)int, functionintExecuta callback após ticks. Retorna ID da tarefa
run_repeating(delay, interval, callback)int, int, functionintExecuta callback a cada interval ticks após o atraso inicial. Retorna ID da tarefa
cancel(taskId)intnilCancela uma tarefa agendada

Variante EliteMobs

MethodArgsReturnsDescription
run_after(ticks, callback)int, functionintExecuta callback após ticks. Retorna ID da tarefa
run_every(ticks, callback)int, functionintExecuta callback a cada N ticks. Retorna ID da tarefa
cancel_task(taskId)intnilCancela uma tarefa agendada

context.log GLOBAL

Utilitários de log para depuração de scripts.

Variante Global (Magmacore / FMM)

MethodArgsReturnsDescription
info(message)stringnilRegistra mensagem informativa
warn(message)stringnilRegistra mensagem de aviso
error(message)stringnilRegistra mensagem de erro/aviso

Variante EliteMobs

MethodArgsReturnsDescription
info(message)stringnilRegistra mensagem informativa
warn(message)stringnilRegistra mensagem de aviso
debug(message)stringnilRegistra mensagem de debug (aparece como info com prefixo de debug)

context.zones GLOBAL

Criação e monitoramento de zonas para scripts do FreeMinecraftModels e outros runtimes de ScriptInstance apoiados pelo Magmacore. Os poderes de chefe do EliteMobs usam a variante context.zones do EliteMobs abaixo.

Variante Global (Magmacore)

MethodArgsReturnsDescription
create_sphere(x, y, z, radius)num, num, num, numintCria zona esférica, retorna handle
create_cylinder(x, y, z, radius, height)num, num, num, num, numintCria zona cilíndrica, retorna handle
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintCria zona cuboide, retorna handle
watch(handle, on_enter?, on_leave?)int, function?, function?boolHabilita o rastreamento da zona. Argumentos de função habilitam on_zone_enter / on_zone_leave; os corpos das funções não são invocados diretamente. Os hooks de zona recebem context.player / context.event.player para o jogador que cruzou a fronteira
unwatch(handle)intnilPara de rastrear a zona

Variante EliteMobs

MethodArgsReturnsDescription
get_entities_in_zone(zone, options?)zone table, tabletableObtém entidades dentro da zona. Opções: filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableObtém localizações dentro da zona. Opções: coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolSe a localização está dentro da zona ("full" ou "border")
watch_zone(zone, callbacks, options?)zone table, table, table?nilObserva a zona em busca de entrada/saída. Callbacks: {on_enter = fn, on_leave = fn}. As opções suportam filter e mode

context.event GLOBAL

Tabela de dados de evento para o hook que disparou a execução atual do script. Presente durante hooks orientados a evento e durante hooks genéricos do MagmaCore de entrada/saída de zona que fornecem um ator jogador; não presente durante on_game_tick, callbacks agendados ou hooks de ciclo de vida sem jogador.

Variante Global (Magmacore)

Field / MethodTypeDescription
is_cancelledboolEstado de cancelamento no momento em que o contexto foi construído; não é atualizado após cancel() / uncancel()
cancel()methodCancela o evento quando o evento subjacente do Bukkit é cancelável
uncancel()methodDescancela o evento quando o evento subjacente do Bukkit é cancelável
playerentity tableJogador envolvido no evento (se houver)

Hooks genéricos de zona populam player, mas não são apoiados por um evento cancelável do Bukkit, portanto cancel() e uncancel() não estão presentes ali.

Para a tabela de evento do EliteMobs (que fornece quantidades de dano, causas de dano, etc.), veja EliteMobs Event Table.


context.script ELITEMOBS

Ponte para o sistema Elite Script do EliteMobs. Permite que poderes Lua usem os sistemas de alvo, zona e vetores relativos baseados em YAML via tabelas Lua com os mesmos nomes de campo das configs YAML de Elite Script.

Métodos

MethodArgsReturnsDescription
target(spec)tabletarget handleCria um handle de alvo a partir de uma tabela de spec de alvo Elite Script
zone(spec)tablezone handleCria um handle de zona a partir de uma tabela de spec de zona Elite Script
relative_vector(spec, location?, zone?)table, location, zone handlevector handleCria um vetor relativo a partir de uma spec de vetor Elite Script
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilCausa dano a todas as entidades no alvo
push(target, vector, additive?)target handle, vector or vector handle, bool?=falsenilEmpurra as entidades-alvo com velocidade
set_facing(target, vector)target handle, vector or vector handlenilDefine a direção encarada pelas entidades-alvo
spawn_particles(target, particles)target handle, table or stringnilSpawna partículas nas localizações do alvo

Target Handle

Retornado por context.script:target(spec). A tabela de spec usa as mesmas chaves das configs YAML de target do Elite Script (ex.: {targetType = "NEARBY_PLAYERS", range = 20}).

MethodArgsReturnsDescription
entities()tableArray de tabelas de entidade no alvo
locations()tableArray de tabelas de localização no alvo
first_entity()entity or nilPrimeira entidade no alvo
first_location()location or nilPrimeira localização no alvo

Zone Handle

Retornado por context.script:zone(spec). A tabela de spec usa as mesmas chaves das configs YAML de zona do Elite Script (ex.: {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MethodArgsReturnsDescription
full_target(coverage?)numbertarget handleHandle de alvo para localizações no interior da zona
border_target(coverage?)numbertarget handleHandle de alvo para localizações na borda da zona
full_locations(coverage?)numbertableArray de localizações no interior
border_locations(coverage?)numbertableArray de localizações na borda
full_entities()tableEntidades dentro da zona
border_entities()tableEntidades na borda da zona
contains(location, mode?)location, string?="full"boolSe a localização está na zona
watch(callbacks, mode?)table, string?="full"intObserva entrada/saída. Retorna ID da tarefa

Vector Handle

Retornado por context.script:relative_vector(spec). A tabela de spec usa as mesmas chaves das configs YAML de vetor relativo do Elite Script.

MethodArgsReturnsDescription
resolve()vectorCalcula o vetor para o contexto atual

context.world (EliteMobs) ELITEMOBS

Tabela world específica de chefe para scripts de poder do EliteMobs. Os poderes de chefe começam com a tabela world genérica do MagmaCore, portanto helpers de coordenadas como get_block_at(...), set_block_at(...) e spawn_particle(...) permanecem disponíveis. Os métodos abaixo são adições do EliteMobs ou sobreposições específicas de chefe, principalmente formas de tabela de localização e helpers de chefe.

Consultas de Bloco

MethodArgsReturnsDescription
get_block_type_at_location(loc)locationstring or nilNome do Material
get_highest_block_y_at_location(loc)locationint or nilY do bloco mais alto
get_blast_resistance_at_location(loc)locationdoubleValor de resistência à explosão
is_air_at_location(loc)locationboolBloco é ar
is_passable_at_location(loc)locationboolBloco é atravessável
is_passthrough_at_location(loc)locationboolBloco não é sólido
is_on_floor_at_location(loc)locationboolAr com bloco sólido embaixo
is_standing_on_material(loc, material)location, string (Material)boolBloco abaixo corresponde ao material

Manipulação de Blocos

MethodArgsReturnsDescription
set_block_at_location(loc, material, requireAir?)location, string (Material), bool?=falsenilColoca bloco. Se requireAir for true, substitui apenas ar
place_temporary_block_at_location(loc, material, ticks?, requireAir?)location, string, int?=0, bool?=falsenilColoca bloco, remove automaticamente após ticks. Se requireAir for true, substitui apenas ar

Spawn

MethodArgsReturnsDescription
spawn_boss_at_location(file, loc?, level?)string, location?=boss loc, int?=boss levelentity or nilSpawna chefe customizado
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity or nilSpawna chefe com opções (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentity or nilSpawna entidade vanilla com opções (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentity or nilSpawna bloco caindo (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity or nilSpawna reforço vinculado ao chefe
spawn_fireworks_at_location(loc, config)location, tableentity or nilSpawna fogos de artifício
spawn_splash_potion_at_location(loc, config)location, tableentity or nilSpawna poção de splash

Efeitos e Utilidades

MethodArgsReturnsDescription
play_sound_at_location(loc, sound, volume?, pitch?)location, string (chave de som do Minecraft, ex. "entity.blaze.shoot"), float?=1, float?=1nilToca som
spawn_particle_at_location(loc, particle, count?)location, string (Particle) or table, int?=1nilSpawna partículas
strike_lightning_at_location(loc)locationnilAtinge raio (ignora a proteção do EM)
run_empowered_lightning_task_at_location(loc)locationnilEfeito de raio empoderado
generate_fake_explosion(locations, center?)table of locations, locationnilExplosão visual sem dano
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectile or nilSpawna projétil visual de pepita de ouro
run_fake_gold_nugget_damage(projectiles)tablenilRoda verificação de dano em projéteis falsos
set_world_time(time) or (loc, time)long, or location + longnilDefine o tempo do mundo
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilDefine o clima
run_console_command(command)stringnilExecuta comando de console
generate_player_loot(times?)int?=1nilRoda esta quantidade de sorteios de loot de jogador para os causadores de dano
drop_bonus_coins(multiplier?)double?=2nilSolta moedas bônus no chefe

context.settings (EliteMobs)

MethodArgsReturnsDescription
warning_visual_effects_enabled()boolSe os efeitos visuais de aviso estão habilitados na config

EliteMobs Event Table

A tabela context.event é passada para hooks de dano e spawn. Os campos variam por tipo de evento.

Field / MethodTypePresent WhenDescription
damage_amountdoubleEventos de danoQuantidade de dano bruta
damage_causestringEventos de danoNome da DamageCause
damagerentity tableEventos de dano por entidadeEntidade que causou o dano
projectileentity tableEventos de dano por projétilProjétil que causou o dano
spawn_reasonstringEvento de spawnNome da razão do spawn
entityentity tableEventos de morte/zonaEntidade relevante
cancel_event()methodA maioria dos eventosCancela o evento
set_damage_amount(amount)method (double)Eventos de danoSobrescreve a quantidade de dano
multiply_damage_amount(multiplier)method (double)Eventos de danoMultiplica o dano atual

context.item FMM

Acessado em scripts de item do FMM. Resolve o item scriptado específico a partir dos slots equipados pelo jogador via tag PDC.

Os métodos de leitura inspecionam o item correspondente atualmente equipado quando chamados. Os métodos de escrita enfileiram sua mutação na thread principal do Bukkit e retornam nil.

Propriedades

FieldTypeDescription
idstringIdentificador do script do item

Métodos

MethodArgsReturnsDescription
material()stringNome do Material
get_amount()intTamanho da pilha
set_amount(n)intnilEnfileira a definição do tamanho da pilha
consume(n?)int?=1nilEnfileira decremento em n, remove se chegar a zero
get_uses()intContador de usos armazenado no PDC
set_uses(n)intnilEnfileira a definição do contador de usos no PDC
get_durability()table or nilRetorna campos current e max, ou nil se não houver barra de durabilidade
get_durability_percentage()number or nilFração restante de 0.0--1.0, ou nil
use_durability(amount, can_break?)int, bool?=falsenilEnfileira a redução da durabilidade por um valor fixo. Quando false, limita a 1 restante
use_durability_percentage(fraction, can_break?)number, bool?=falsenilEnfileira a redução da durabilidade por uma fração do máximo (0.0--1.0)
get_name()string or nilNome de exibição
set_name(s)stringnilEnfileira a definição do nome de exibição. Suporta códigos de cor
get_lore()tableArray de strings de lore
set_lore(table)tablenilEnfileira a definição do lore a partir de um array de strings

context.prop FMM

Acessado em scripts de prop do FMM. Herda todos os campos de Entity do armor stand de suporte.

Propriedades

FieldTypeDescription
model_idstringNome do blueprint do modelo
current_locationlocationPosição atual do prop

Métodos

MethodArgsReturnsDescription
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolToca animação nomeada
stop_animation()nilPara todas as animações atuais
hurt_visual()nilFlash com tom vermelho, sem dano
pickup()nilEnfileira a remoção do prop e o drop do item de colocação
has_mount_points()boolSe o prop tem ossos de mount point
mount(player)entity tableboolEnfileira a verificação de montagem; true significa que as referências básicas eram válidas
dismount(player)entity tableboolEnfileira a verificação de desmontagem; true significa que as referências básicas eram válidas
get_passengers()tableArray de tabelas de entidade dos jogadores montados
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity or nilSpawna chefe do EliteMobs (requer EliteMobs)
open_inventory(player, title, rows?)entity table, string, int?=3boolEnfileira a abertura do inventário de baú persistente (linhas limitadas de 1--6). O título suporta códigos de cor
place_book(player)entity tableboolEnfileira o armazenamento do livro escrito/escrevível segurado pelo jogador no prop
read_book(player)entity tableboolEnfileira a abertura do livro armazenado para leitura
take_book(player)entity tableboolEnfileira a devolução do livro armazenado ao jogador
has_book()boolSe há um livro armazenado
drop_inventory()boolEnfileira o drop de todos os itens armazenados e limpa o armazenamento
drop_book()boolEnfileira o drop do livro armazenado e limpa o armazenamento
is_viewing_inventory(player)entity tableboolSe o jogador tem o inventário deste prop aberto
set_persistent_data(key, value)string, stringboolArmazena string no PDC do prop
get_persistent_data(key)stringstring or nilRecupera string do PDC do prop

Color Codes

Todos os métodos marcados como suportando códigos de cor usam o ChatColorConverter do Magmacore. Esses formatos podem ser misturados livremente em qualquer string:

Códigos legados

Use & seguido por um caractere de cor/formato:

CodeColorCodeFormat
&0Preto&lNegrito
&1Azul Escuro&mTachado
&2Verde Escuro&nSublinhado
&3Azul-petróleo Escuro&oItálico
&4Vermelho Escuro&rReset
&5Roxo Escuro
&6Dourado
&7Cinza
&8Cinza Escuro
&9Azul
&aVerde
&bAqua
&cVermelho
&dRoxo Claro
&eAmarelo
&fBranco

Cores hex

Cor RGB exata usando hex de 6 dígitos:

&#FF5500          -- prefixo de e-comercial
<#FF5500> -- sintaxe de tag

Gradientes

Interpola suavemente entre duas ou mais cores ao longo do texto:

<gradient:#FF0000:#0000FF>Este texto vai do vermelho ao azul</gradient>
<g:#FF0000:#00FF00:#0000FF>Gradiente de três cores</g>

A forma curta g funciona de forma idêntica a gradient. Você pode encadear quantas paradas de cor quiser.

Arco-íris

Cicla pelo espectro completo de matiz em saturação máxima. Um argumento numérico opcional desloca o matiz inicial (deslocamento de fase):

<rainbow>Texto arco-íris completo</rainbow>
<r:0.5>Arco-íris com matiz inicial deslocado</r>

Tipos Comuns

location

{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }

vector

{ x = number, y = number, z = number }

entity table

Qualquer tabela com um campo uuid. Tabelas de jogador e entidade do contexto funcionam diretamente:

context.player                              -- tabela de entidade válida
context.world:get_nearby_entities(x,y,z,r) -- retorna array de tabelas de entidade

Próximos Passos