Référence de l'API Lua
Référence complète des méthodes de l'API de script Lua. Toutes les méthodes sont appelées via la syntaxe context.table:method().
Les méthodes Global (marquées GLOBAL) proviennent de Magmacore, la bibliothèque centrale partagée. Elles s'appliquent aux scripts FreeMinecraftModels et aux autres consommateurs de ScriptInstance de MagmaCore. Les pouvoirs de boss EliteMobs réutilisent le même bac à sable Lua mais exposent des tables de contexte et des noms de méthodes spécifiques aux boss ; les scripts de PNJ EliteMobs s'exécutent sur le même runtime MagmaCore et reçoivent l'intégralité du contexte partagé plus la table context.npc réservée aux PNJ. Consultez les sections EliteMobs ci-dessous et Scripts de PNJ pour ces variantes.
Les méthodes EliteMobs (marquées ELITEMOBS) sont spécifiques aux scripts de pouvoir de boss et aux scripts de PNJ EliteMobs.
Les méthodes FMM (marquées FMM) sont spécifiques aux scripts d'item et de prop FreeMinecraftModels.
Lorsqu'une méthode nécessite un enum Bukkit (Sound, Particle, Material, etc.), consultez les Javadocs Spigot pour les valeurs valides. Les noms d'enum sont passés sous forme de chaînes en majuscules (par exemple, "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").
Entity Table GLOBAL
Champs de base présents sur toutes les tables d'entités — joueurs, mobs, props, n'importe quoi.
Propriétés
| Field | Type | Description |
|---|---|---|
uuid | string | UUID de l'entité |
entity_type | string | Type d'entité (minuscules) |
is_valid | bool | L'entité existe encore dans le monde |
is_dead | bool | L'entité est morte |
is_player | bool | Est un joueur |
is_hostile | bool | Est un Monster |
is_passive | bool | Est un Animal |
current_location | location | Position de l'entité (x, y, z, yaw, pitch, world) |
world | string | Nom du monde |
Des enrichisseurs spécifiques aux plugins peuvent ajouter des champs supplémentaires au niveau supérieur lorsque le plugin concerné est installé. Consultez les sections de pont (bridge) ci-dessous pour les champs EliteMobs et FreeMinecraftModels.
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
teleport(location) | location table | nil | Téléporte l'entité |
remove() | — | nil | Retire l'entité du monde |
set_silent(enabled) | bool | nil | Active/désactive le silence |
set_invulnerable(enabled) | bool | nil | Définit l'invulnérabilité |
set_gravity(enabled) | bool | nil | Définit la gravité |
set_glowing(enabled) | bool | nil | Définit l'effet de brillance |
Bridge: entity.elite
Ajouté par l'enrichisseur d'entité d'EliteMobs lorsqu'EliteMobs est installé. L'enrichisseur ajoute ces drapeaux au niveau supérieur :
| Field | Type | Description |
|---|---|---|
is_elite | bool | Est une entité EliteMobs |
is_custom_boss | bool | Est un boss personnalisé EliteMobs |
is_significant_boss | bool | Boss personnalisé avec multiplicateur de santé supérieur à 1 (affrontement conçu) |
entity.elite n'est présent que lorsque is_elite vaut true.
| Field | Type | Description |
|---|---|---|
level | int | Niveau du mob elite |
name | string | Nom d'affichage de l'elite |
health | double | Santé actuelle |
max_health | double | Santé maximale |
is_custom_boss | bool | Est un boss personnalisé (aussi disponible au niveau supérieur) |
health_multiplier | double | Multiplicateur de santé défini en config |
damage_multiplier | double | Multiplicateur de dégâts défini en config |
remove() | method | Retire l'entité elite |
Bridge: entity.model
Ajouté par l'enrichisseur d'entité de FreeMinecraftModels lorsque FMM est installé. L'enrichisseur ajoute ces drapeaux au niveau supérieur :
| Field | Type | Description |
|---|---|---|
is_modeled | bool | A un modèle FMM |
is_prop | bool | Est un prop FMM |
entity.model n'est présent que lorsque is_modeled vaut true.
| Field | Type | Description |
|---|---|---|
model_id | string | Nom du blueprint de modèle |
is_dynamic | bool | S'il s'agit d'une FMM DynamicEntity (true) ou d'un prop statique (false) |
play_animation(name, blend?, loop?) | method | Joue l'animation. blend vaut false par défaut, loop vaut false par défaut |
stop_animations() | method | Arrête toutes les animations |
remove() | method | Retire l'entité modélisée |
Bridge: permissions du joueur
Ajouté par l'enrichisseur d'entité de FreeMinecraftModels lorsque FMM est installé. Ces champs n'apparaissent que sur les tables d'entité joueur :
| Field / Method | Args | Returns | Description |
|---|---|---|---|
has_permission(node) | string | bool | Si le joueur possède le nœud de permission donné |
is_op | — | bool | Si le joueur est un opérateur du serveur |
Living Entity Table GLOBAL
Étend Entity Table. Appliqué à toutes les entités vivantes (mobs et joueurs).
Propriétés
| Field | Type | Description |
|---|---|---|
health | double | Santé actuelle |
maximum_health | double | Santé maximale |
name | string | Nom d'affichage de l'entité |
is_alive | bool | L'entité n'est pas morte |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
damage(amount) | double | nil | Inflige des dégâts à l'entité |
push(x, y, z) | double, double, double | nil | Ajoute un vecteur de vélocité |
set_facing(x, y, z) | double, double, double | nil | Définit la direction du regard |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Applique un effet de potion par nom |
remove_potion_effect(type) | string (PotionEffectType) | nil | Retire un effet de potion par nom |
get_scale() | — | number | Échelle actuelle de l'entité (1.0 par défaut sur les serveurs sans l'attribut generic.scale) |
set_scale(value) | double | nil | Définit l'échelle de l'entité via l'attribut generic.scale (sans effet sur les serveurs antérieurs à 1.20.5) |
context.player GLOBAL
Table d'entité joueur. Hérite de tous les champs Entity et Living Entity.
Propriétés
| Field | Type | Description |
|---|---|---|
game_mode | string | survival, creative, adventure, spectator |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
send_message(text) | string | nil | Envoie un message de chat. Prend en charge les codes couleur |
get_held_item() | — | table or nil | Retourne les champs type, amount, display_name, ou nil si la main est vide. type est un nom de Material Bukkit en majuscules |
consume_held_item(amount?) | int (default 1) | nil | Réduit la pile de l'item tenu de amount |
has_item(material, amount?) | string (Material), int (default 1) | bool | Vérifie l'inventaire pour le matériau |
get_target_entity(range?) | num (default 50) | entity or nil | Raycast pour l'entité que le joueur regarde |
get_eye_location() | — | location | Position des yeux du joueur |
get_look_direction() | — | vector | Vecteur de direction unitaire |
send_block_change(x, y, z, material, ticks?) | int, int, int, string (Material), int (optional) | bool | Envoie un faux bloc. Se réinitialise automatiquement après ticks si fourni |
reset_block(x, y, z) | int, int, int | bool | Réinitialise le faux bloc au vrai |
sleep(x, y, z) | num, num, num | nil | Animation de sommeil dans un lit à l'emplacement |
wake_up() | — | nil | Réveille du sommeil |
show_boss_bar(text, color?, progress, ticks?) | string, string (BarColor, default WHITE), num, int (optional) | nil | Affiche la barre de boss. Se cache automatiquement après ticks. Prend en charge les codes couleur |
hide_boss_bar() | — | nil | Retire la barre de boss |
show_action_bar(text, ticks?) | string, int (optional) | nil | Affiche l'action bar. Répète si ticks supérieur à 0. Prend en charge les codes couleur |
show_title(title, subtitle?, fadeIn, stay, fadeOut) | string, string (default empty), int, int, int | nil | Affiche l'écran de titre. Prend en charge les codes couleur |
context.world GLOBAL
Opérations sur le monde pour les scripts FreeMinecraftModels et les autres runtimes ScriptInstance adossés à Magmacore. Les pouvoirs de boss EliteMobs partent de cette même table de base et y superposent les ajouts et surcharges context.world d'EliteMobs listés ci-dessous.
Les méthodes context.world existent sous deux formes interchangeables : la forme par coordonnées (x, y, z) et la forme par table de localisation (les variantes *_at_location). Les deux formes sont disponibles sur les surfaces génériques, et les pouvoirs de boss EliteMobs conservent les méthodes de base partagées tout en ajoutant des helpers par table de localisation spécifiques aux boss.
Propriétés
| Field | Type | Description |
|---|---|---|
name | string | Nom du monde |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
get_block_at(x, y, z) | int, int, int | string | Nom du Material (minuscules). Retourne "air" si le chunk n'est pas chargé |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Met en file le placement du bloc si le matériau est valide ; les chunks non chargés sont ignorés |
get_highest_block_y(x, z) | int, int | int | Y du bloc non-air le plus haut |
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?=0 | nil | Fait apparaître un effet de particule |
play_sound(sound, x, y, z, volume?, pitch?) | string (Sound), num, num, num, float?=1, float?=1 | nil | Joue un son |
strike_lightning(x, y, z) | num, num, num | nil | Frappe la foudre |
get_time() | — | int | Temps du monde en ticks |
set_time(ticks) | long | nil | Définit le temps du monde |
get_nearby_entities(x, y, z, radius) | num, num, num, num | table | Tableau de tables d'entités |
get_nearby_players(x, y, z, radius) | num, num, num, num | table | Tableau de tables d'entités joueur |
spawn_entity(type, x, y, z) | string (EntityType), num, num, num | entity or nil | Fait apparaître une entité vanilla ; retourne nil si le type d'entité est invalide |
raycast(fx, fy, fz, dx, dy, dz, max?) | num, num, num, num, num, num, num?=50 | table | Retourne les champs hit_entity, hit_location, hit_block |
place_temporary_block(x, y, z, material, ticks?, require_air?) | int, int, int, string (Material), int?=0, bool?=false | bool | Met en file un remplacement de bloc qui revient automatiquement après ticks. Retourne false si le matériau est invalide ou si le chunk n'est pas chargé |
drop_item(x, y, z, material, amount?) | num, num, num, string (Material), int?=1 | entity or nil | Lâche une entité item naturellement à l'emplacement ; retourne nil si le matériau est invalide |
spawn_firework(x, y, z, colors, type?, power?) | num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Fait apparaître un feu d'artifice |
strike_lightning_at_location(loc) | location | nil | Frappe la foudre |
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (Sound), float?=1, float?=1 | nil | Joue un son |
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?) | location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0 | nil | Fait apparaître un effet de particule |
get_block_at_location(loc) | location | string | Nom du Material (minuscules). Retourne "air" si le chunk n'est pas chargé |
set_block_at_location(loc, material) | location, string (Material) | bool | Met en file le placement du bloc si le matériau est valide ; les chunks non chargés sont ignorés |
place_temporary_block_at_location(loc, material, ticks?, require_air?) | location, string (Material), int?=0, bool?=false | bool | Met en file un remplacement de bloc qui revient automatiquement après ticks. Retourne false si le matériau est invalide ou si le chunk n'est pas chargé |
get_highest_block_y_at_location(loc) | location | int or nil | Y du bloc non-air le plus haut |
em helpers GLOBAL
Constructeurs utilitaires globaux exposés sur la table em dans tous les runtimes Lua MagmaCore.
Constructeurs
| Method | Args | Returns | Description |
|---|---|---|---|
em.create_location(x, y, z, world?, yaw?, pitch?) | num, num, num, string?, num?, num? | location | Table de localisation avec x, y, z, optionnellement world, yaw, pitch, et une méthode add(dx, dy, dz) qui modifie sur place |
em.create_vector(x, y, z) | num, num, num | vector | Table de vecteur avec x, y, z |
Constructeurs de zone
Les constructeurs de zone retournent de simples tables de définition de zone. Les sphères, dômes, cylindres et cuboïdes incluent :set_center(location). Les cônes et les zones de rayon incluent :set_origin(location) et :set_destination(location).
| Method | Args | Returns | Description |
|---|---|---|---|
em.zone.create_sphere_zone(radius) | num | zone | { kind = "sphere", radius = ... } |
em.zone.create_dome_zone(radius) | num | zone | { kind = "dome", radius = ... } |
em.zone.create_cylinder_zone(radius, height) | num, num | zone | { kind = "cylinder", radius = ..., height = ... } |
em.zone.create_cuboid_zone(x, y, z) | num, num, num | zone | Demi-étendues du cuboïde |
em.zone.create_cone_zone(length, radius) | num, num | zone | Définition de cône avec setters d'origine/destination |
em.zone.create_static_ray_zone(length, thickness) | num, num | zone | Définition de rayon statique |
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Définition de rayon rotatif |
em.zone.create_translating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Définition de rayon en translation |
em.location GLOBAL
Helpers de requête de localisation exposés sur la table globale em. Soutenus par le LocationQueryRegistry et le service LocationOwnership de Magmacore, qui collectent les résultats des fournisseurs enregistrés (régions de donjon/world-package EliteMobs, WorldGuard, GriefPrevention, etc.). Toutes les fonctions acceptent une table de localisation ({x, y, z, world}) et retournent des valeurs par défaut sûres si la localisation est invalide.
| Method | Args | Returns | Description |
|---|---|---|---|
em.location.is_in_dungeon(loc) | location | bool | Si la localisation est à l'intérieur d'une région de donjon enregistrée |
em.location.is_protected(loc) | location | bool | Si un fournisseur signale la localisation comme protégée (WorldGuard, GriefPrevention, régions EM, etc.) |
em.location.owned_by(loc, namespace) | location, string | bool | Si l'espace de noms donné possède la localisation (par exemple "EliteMobs") |
em.location.owners(loc) | location | table | Tableau des chaînes d'espace de noms qui revendiquent la propriété de cette localisation |
em.location.kinds_at(loc) | location | table | Tableau des étiquettes de type à cette localisation (par exemple "elitemobs", "world_package", "open_world_dungeon", catégorie de taille de donjon) |
em.location.has_kind(loc, kind) | location, string | bool | Si la localisation possède l'étiquette de type donnée |
context.boss ELITEMOBS
Table d'entité boss pour les scripts de pouvoir Lua EliteMobs. Hérite de toutes les méthodes de EliteMobs Living Entity. Les propriétés se rafraîchissent via des getters dédiés.
Propriétés
| Field | Type | Description |
|---|---|---|
name | string | Nom d'affichage du boss |
uuid | string | UUID de l'entité elite |
health | double | Santé actuelle (snapshot) |
maximum_health | double | Santé maximale (snapshot) |
current_location | location | Position du boss (snapshot) |
level | int | Niveau du boss |
damager_count | int | Nombre de joueurs ayant infligé des dégâts à ce boss |
is_in_combat | bool | Le boss est en combat |
exists | bool | L'entité boss existe |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
is_alive() | — | bool | Si l'entité boss est en vie (vérification live) |
get_health() | — | double | Santé actuelle (live) |
get_maximum_health() | — | double | Santé maximale (live) |
get_location() | — | location | Position actuelle (live) |
restore_health(amount) | double | nil | Soigne le boss |
despawn() | — | nil | Retire l'entité boss |
get_damager_count() | — | int | Nombre de damagers en direct |
add_tag(tag, ticks?) | string, int?=0 | nil | Ajoute un tag, retiré automatiquement après ticks si défini |
remove_tag(tag) | string | nil | Retire un tag |
has_tag(tag) | string | bool | Vérifie la présence d'un tag |
reset_custom_name() | — | nil | Réinitialise le nom à la valeur par défaut de la config |
play_sound_at_self(sound, volume?, pitch?) | string (clé de son Minecraft, par exemple "entity.wither.spawn"), float?=1, float?=1 | nil | Joue un son au niveau du boss |
play_sound_at_entity(sound, volume?, pitch?) | string (clé de son Minecraft, par exemple "entity.wither.spawn"), float?=1, float?=1 | nil | Joue un son au niveau du boss (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) or table, int?=1 | nil | Fait apparaître des particules au niveau du boss |
play_model_animation(name) | string | nil | Joue l'animation du modèle FMM (nécessite un modèle FMM) |
has_mount() | - | bool | Si ce boss chevauche une entité monture |
get_mount() | - | entity or nil | Référence de l'entité monture actuelle, marquée avec is_mount = true |
set_mount(entity) | entity table | bool | Fait chevaucher l'entité donnée par le boss |
clear_mount() | - | bool | Fait quitter au boss son véhicule actuel |
dismount() | - | bool | Alias de clear_mount() |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding vers la localisation |
send_message(text, range?) | string, double?=20 | nil | Envoie un message aux joueurs proches. Prend en charge les codes couleur |
get_nearby_players(range) | double | table | Tableau de tables joueur dans le rayon |
get_target_player() | — | player or nil | Cible actuelle du mob si c'est un joueur |
get_nearby_players_in_zone(zone) | zone table | table | Joueurs à l'intérieur de la forme de zone |
get_ender_dragon_phase() | — | string or nil | Nom de EnderDragon.Phase |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Définit la phase d'ender dragon |
summon_reinforcement(file, zone?, level?) | string, zone or nil, int?=0 | entity or nil | Fait apparaître un boss de renfort |
summon_projectile(type, origin, dest, speed?, options?) | string (EntityType), location, location, double?=1, table | entity or nil | Fait apparaître un projectile tracké ; retourne nil si le type ou les localisations sont invalides |
options de summon_projectile
| Option | Type | Default | Description |
|---|---|---|---|
custom_damage | number | — | Remplace les dégâts du projectile |
detonation_power | string | — | Niveau de puissance explosive |
yield | number | — | Rendement de la fireball |
incendiary | bool | true | La fireball met le feu |
gravity | bool | — | Active la gravité |
glowing | bool | false | Active la brillance |
invulnerable | bool | false | Définit invulnérable |
persistent | bool | true | Définit persistant |
duration | int | 0 | Retire automatiquement après ticks |
effect | string | — | EntityEffect à jouer à l'apparition |
spawn_at_origin | bool | false | Apparaît à l'origine au lieu d'être lancé depuis le boss |
direction_only | bool | false | Définit la direction sans vélocité (fireballs) |
track | bool | true | Enregistre comme projectile d'elite |
on_land | function | — | Callback à l'atterrissage du projectile : function(location, entity) |
max_ticks | int | 6000 | Ticks max avant callback d'atterrissage forcé |
Méthodes Zone/Particle
| Method | Args | Returns | Description |
|---|---|---|---|
spawn_particles_in_zone(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Remplit la zone de particules |
spawn_particles_in_zone_border(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Trace le contour de la zone avec des particules |
get_particles_from_self_toward_zone(zone, particle, speed?) | zone, string, double?=0.1 | table | Particules directionnelles du boss vers la zone |
get_particles_toward_self(zone, particle, speed?) | zone, string, double?=0.1 | table | Particules directionnelles de la zone vers le boss |
spawn_particles_with_vector(particles) | table | nil | Fait apparaître un tableau de particules directionnelles |
Prise en charge des pouvoirs spéciaux
| Method | Args | Returns | Description |
|---|---|---|---|
start_tracking_fireball_system(speed?) | double?=0.5 | nil | Démarre l'IA de tracking de fireball |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Gère les dégâts de spirit walk par cause |
shield_wall_is_active() | — | bool | Si le shield wall est actif |
initialize_shield_wall(charges?) | int?=1 | nil | Active le shield wall |
shield_wall_absorb_damage(player, damage) | entity table, double | bool | Tente d'absorber les dégâts |
deactivate_shield_wall() | — | nil | Désactive le shield wall |
start_zombie_necronomicon(target, file) | entity table, string | nil | Démarre le necronomicon sur la cible |
context.npc ELITEMOBS NPC
Table de PNJ pour les scripts Lua de PNJ EliteMobs. Les scripts de PNJ se trouvent dans plugins/EliteMobs/npc_scripts/ et s'attachent via une liste scripts: dans la config d'un PNJ. Les scripts de PNJ s'exécutent sur le même runtime MagmaCore que toutes les autres surfaces et reçoivent l'intégralité du contexte partagé — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — plus la table context.npc réservée aux PNJ documentée ici.
Propriétés
| Field | Type | Description |
|---|---|---|
name | string | Nom d'affichage du PNJ |
filename | string | Nom de fichier de la config du PNJ |
uuid | string | UUID du PNJ au runtime |
activation_radius | double | Rayon d'activation configuré |
current_location | location | Localisation snapshot lorsque l'entité PNJ existe |
entity_type | string | Type d'entité Bukkit lorsque l'entité PNJ existe |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
is_valid() | - | bool | Si l'entité sous-jacente du PNJ est toujours valide |
get_location() | - | location | Localisation actuelle du PNJ, ou repli sur le point d'apparition |
get_eye_location() | - | location | Localisation des yeux actuelle, ou repli sur le point d'apparition |
get_activation_radius() | - | double | Rayon d'activation configuré actuel |
get_nearby_players(radius) | double | table | Tables joueur proches du PNJ |
face_direction_or_location(target) | vector or location | nil | Fait face à une direction ou regarde vers une localisation |
say_greeting(player?) | player, UUID, name, or nil | nil | Envoie un message d'accueil configuré. Par défaut le joueur déclencheur lorsqu'il est disponible |
say_dialog(player?) | player, UUID, name, or nil | nil | Envoie un dialogue configuré. Par défaut le joueur déclencheur lorsqu'il est disponible |
say_farewell(player?) | player, UUID, name, or nil | nil | Envoie un texte d'adieu configuré. Par défaut le joueur déclencheur lorsqu'il est disponible |
play_model_animation(name) | string | nil | Joue une animation de modèle personnalisée si disponible ; sans effet sinon |
Les hooks spécifiques aux PNJ comprennent on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter et on_npc_proximity_leave. Consultez Scripts de PNJ EliteMobs pour le flux complet et les détails sur les cooldowns.
EliteMobs Living Entity Table ELITEMOBS
Les tables d'entités créées à l'intérieur des scripts de pouvoir EliteMobs (depuis context.boss, les données d'événement, les callbacks de zone et les requêtes sur le monde) utilisent une table d'entité vivante étendue avec des méthodes supplémentaires au-delà de la Living Entity globale. context.boss hérite de toutes ces méthodes.
Propriétés
| Field | Type | Description |
|---|---|---|
name | string | Nom d'affichage de l'entité |
uuid | string | UUID de l'entité |
entity_type | string | Nom du type d'entité |
is_player | bool | Est un joueur |
is_monster | bool | Est un Monster |
is_elite | bool | Est une entité EliteMobs |
is_valid | bool | L'entité existe encore |
is_mount | bool | True lorsque cette table d'entité représente une monture de boss |
health | double | Santé actuelle (snapshot) |
maximum_health | double | Santé maximale (snapshot) |
current_location | location | Position de l'entité (snapshot) |
game_mode | string | Mode de jeu (EN MAJUSCULES dans EliteMobs : SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR) |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
is_alive() | — | bool | Si l'entité est en vie (vérification live) |
is_ai_enabled() | — | bool | Si l'IA est activée |
is_frozen() | — | bool | Si le boss est gelé (CustomBossEntity uniquement) |
is_on_ground() | — | bool | Si l'entité est au sol |
is_healing() | — | bool | Si l'elite est en train de se soigner |
get_location() | — | location | Position actuelle (live) |
get_eye_location() | — | location | Position des yeux (live) |
get_height() | — | double | Hauteur de l'entité |
get_health() | — | double | Santé actuelle (live) |
get_maximum_health() | — | double | Santé maximale (live) |
get_velocity() | — | vector | Vecteur de vélocité actuel |
deal_damage(amount) | double | nil | Inflige des dégâts génériques |
deal_custom_damage(amount) | double | nil | Inflige des dégâts d'attaque de boss personnalisés depuis le boss du pouvoir |
deal_damage_from_boss(amount) | double | nil | Inflige des dégâts attribués à l'entité boss du pouvoir |
restore_health(amount) | double | nil | Soigne l'entité (utilise le soin EliteMobs si elite) |
play_sound_at_entity(sound, volume?, pitch?) | string (clé de son Minecraft, par exemple "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Joue un son au niveau de l'entité |
play_sound_at_self(sound, volume?, pitch?) | string (clé de son Minecraft, par exemple "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Joue un son au niveau de l'entité (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) or table, int?=1 | nil | Fait apparaître des particules au niveau de l'entité |
spawn_particles_at_location(loc, particle, count?) | location, particle spec, int?=1 | nil | Fait apparaître des particules à une localisation |
teleport_to_location(location) | location | nil | Téléporte l'entité |
set_velocity_vector(vector) | vector | nil | Définit la vélocité |
set_gravity(enabled) | bool | nil | Définit la gravité |
apply_push_vector(vector, additive?, delay?) | vector, bool?=false, int?=1 | nil | Applique une vélocité après un délai. additive l'ajoute à la vélocité existante |
push_relative_to(location, force?, extraX?, extraY?, extraZ?) | location, double?=1, double?=0, double?=0, double?=0 | nil | Pousse l'entité loin d'une localisation |
set_custom_name(name) | string | nil | Définit le nom d'affichage personnalisé. Prend en charge les codes couleur |
reset_custom_name() | — | nil | Réinitialise le nom à la valeur par défaut d'EliteMobs |
set_custom_name_visible(visible) | bool | nil | Active/désactive la visibilité du nom |
set_ai_enabled(enabled, duration?) | bool, int?=0 | nil | Définit l'état de l'IA. Revient automatiquement après duration ticks |
set_awareness_enabled(enabled, duration?) | bool, int?=0 | nil | Définit la conscience du mob. Revient automatiquement après duration ticks |
face_direction_or_location(target) | vector or location | nil | Fait face à une direction ou regarde vers une localisation |
play_model_animation(name) | string | nil | Joue l'animation du modèle FMM (nécessite un modèle FMM) |
is_inside_vehicle() | - | bool | Si l'entité chevauche une autre entité |
has_vehicle() | - | bool | Si l'entité a un véhicule |
get_vehicle() | - | entity or nil | Référence de l'entité véhicule actuelle |
set_vehicle(entity) | entity table | bool | Fait chevaucher le véhicule donné par cette entité |
leave_vehicle() | - | bool | Fait quitter à cette entité son véhicule actuel |
has_passengers() | - | bool | Si cette entité a des passagers |
get_passenger_count() | - | int | Nombre de passagers |
get_passengers() | - | table | Tableau de références d'entités passagères |
add_passenger(entity) | entity table | bool | Ajoute un passager à cette entité |
remove_passenger(entity) | entity table | bool | Retire un passager de cette entité |
eject_passengers() | - | bool | Éjecte tous les passagers |
set_scale(scale, duration?) | double, int?=0 | nil | Définit l'échelle de l'entité. Revient automatiquement à 1.0 après duration ticks |
set_invulnerable(enabled, duration?) | bool, int?=0 | nil | Définit invulnérable. Revient automatiquement après duration ticks |
set_healing(enabled) | bool | nil | Définit l'état de soin de l'elite |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding vers la localisation (CustomBossEntity uniquement) |
add_tag(tag, ticks?) | string, int?=0 | nil | Ajoute un tag, retiré automatiquement après ticks |
remove_tag(tag) | string | nil | Retire un tag |
has_tag(tag) | string | bool | Vérifie la présence d'un tag |
overlaps_box_at_location(center, halfX?, halfY?, halfZ?) | location, double?=0.5, double?=halfX, double?=halfX | bool | Si la boîte englobante de l'entité chevauche une boîte à la localisation |
remove_elite() | — | nil | Retire via le pipeline de suppression EliteMobs |
apply_potion_effect(type, duration, amplifier?) | string (PotionEffectType), int, int?=0 | nil | Applique un effet de potion |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), table | nil | Définit l'item du slot d'équipement |
set_fire_ticks(ticks) | int | nil | Définit les ticks de feu |
add_visual_freeze_ticks(ticks?) | int?=1 | nil | Ajoute des ticks visuels de gel |
place_temporary_block(material, ticks?, requireAir?) | string (Material), int?=0, bool?=false | nil | Place un bloc temporaire à la localisation de l'entité |
options de set_equipment
| Option | Type | Default | Description |
|---|---|---|---|
unbreakable | bool | false | Rend l'item incassable |
enchantments | table | — | Tableau de tables {type = "ENCHANT_NAME", level = 1} |
Méthodes Joueur EliteMobs
Les joueurs dans les scripts EliteMobs ont toutes les méthodes d'entité vivante EliteMobs plus :
| Method | Args | Returns | Description |
|---|---|---|---|
send_message(text) | string | nil | Envoie un message de chat. Prend en charge les codes couleur |
show_action_bar(text) | string | nil | Affiche le texte de l'action bar. Prend en charge les codes couleur |
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?) | string, string?="", int?=10, int?=40, int?=10 | nil | Affiche l'écran de titre. Prend en charge les codes couleur |
show_boss_bar(title, color?, style?, duration?) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Affiche la barre de boss. Se cache automatiquement après duration ticks. Prend en charge les codes couleur |
run_command(command) | string | nil | Exécute une commande en tant que joueur |
Table de référence d'entité EliteMobs
Les entités non vivantes (projectiles, blocs tombants, feux d'artifice) retournées par les méthodes de spawn EliteMobs obtiennent une table de référence légère :
| Field / Method | Args | Returns | Description |
|---|---|---|---|
name | — | string | Nom de l'entité |
uuid | — | string | UUID de l'entité |
entity_type | — | string | Nom du type d'entité |
is_player | — | bool | Toujours false |
is_elite | — | bool | Toujours false |
is_valid() | — | bool | Si l'entité est toujours valide (vérification live) |
current_location | — | location | Position (snapshot) |
get_location() | — | location | Position actuelle (live) |
get_velocity() | — | vector | Vecteur de vélocité actuel |
is_on_ground() | — | bool | Si l'entité est au sol |
teleport_to_location(location) | location | nil | Téléporte l'entité |
set_velocity_vector(vector) | vector | nil | Définit la vélocité |
set_direction_vector(vector) | vector | nil | Définit la direction (fireballs uniquement) |
set_yield(amount) | double | nil | Définit le rendement de la fireball |
set_gravity(enabled) | bool | nil | Définit la gravité |
detonate() | — | nil | Détone le feu d'artifice |
remove() | — | nil | Retire l'entité |
unregister(reason?) | string?=OTHER | nil | Désenregistre du tracker d'entités EliteMobs |
context.players ELITEMOBS
Table de requête sur les joueurs disponible dans les scripts de pouvoir EliteMobs. Fournit des méthodes utilitaires pour trouver des joueurs relatifs au boss.
| Method | Args | Returns | Description |
|---|---|---|---|
current_target() | — | player or nil | Acteur de l'événement si joueur, ou cible mob actuelle du boss si joueur |
nearby_players(radius) | double | table | Tableau de tables joueur dans le rayon du boss |
all_players_in_world() | — | table | Tableau de toutes les tables joueur dans le monde du boss |
context.entities ELITEMOBS
Table de requête sur les entités disponible dans les scripts de pouvoir EliteMobs. Fournit des méthodes utilitaires pour trouver des entités relatives au boss. Toutes les requêtes excluent le boss lui-même.
| Method | Args | Returns | Description |
|---|---|---|---|
get_nearby_entities(radius, filter?) | double, string?="living" | table | Entités dans le rayon. "all"/"entities" retourne toutes les entités (y compris non vivantes) ; toute autre valeur retourne les entités vivantes filtrées par catégorie : "player(s)", "elite(s)", "mob(s)", ou par défaut = toutes les vivantes |
get_entities_in_box(center, halfX, halfY, halfZ, filter?) | location, double, double, double, string?="living" | table | Entités vivantes à l'intérieur d'une boîte alignée sur les axes (mêmes valeurs de filtre que ci-dessus ; modes non-all uniquement) |
get_all_entities(filter?) | string?="living" | table | Toutes les entités vivantes dans le monde du boss (mêmes valeurs de filtre) |
get_direct_target_entity() | — | entity or nil | Entité cible directe de l'événement déclencheur |
get_boss_spawn_location() | — | location | Emplacement d'apparition d'origine du boss |
context.vectors ELITEMOBS
Utilitaires de calcul vectoriel disponibles dans les scripts de pouvoir EliteMobs.
| Method | Args | Returns | Description |
|---|---|---|---|
get_vector_between_locations(from, to, options?) | location, location, table | vector | Vecteur de la source vers la destination. Les options peuvent modifier le résultat |
rotate_vector(vector, pitch?, yaw?) | vector, double?=0, double?=0 | vector | Fait pivoter le vecteur par pitch et yaw (degrés) |
normalize_vector(vector) | vector | vector | Normalise à la longueur unitaire |
context.state GLOBAL
Une table Lua simple qui persiste pendant toute la durée de vie de l'instance de script. Utilisez-la pour stocker des drapeaux, des compteurs, des IDs de tâches, des états de bascule et toute donnée que vous souhaitez partager entre les hooks. context.state est la table persistante détenue par le script ; la plupart des autres tables de contexte sont reconstruites ou recréées paresseusement au besoin. FMM met context.prop en cache par prop pour des raisons de performance, mais ses champs live tels que current_location se rafraîchissent tout de même à la lecture.
context.state.counter = (context.state.counter or 0) + 1
context.cooldowns GLOBAL
Gestion des cooldowns. Les cooldowns locaux sont par instance de script ; les cooldowns globaux sont partagés entre tous les scripts sur la même entité/propriétaire. Si aucune clé n'est fournie, le nom de fichier du script est utilisé par défaut.
| Method | Args | Returns | Description |
|---|---|---|---|
local_ready(key?) | string (optional) | bool | Si le cooldown local a expiré |
local_remaining(key?) | string (optional) | int | Ticks restants sur le cooldown local (0 si prêt) |
check_local(key?, duration) | string (optional), int | bool | Si prêt, démarre le cooldown et retourne true ; sinon false |
set_local(duration, key?) | long, string (optional) | nil | Définit le cooldown local pour duration ticks |
global_ready() | — | bool | Si le cooldown global a expiré |
set_global(duration) | long | nil | Définit le cooldown global pour duration ticks |
Dans les scripts de pouvoir EliteMobs, les cooldowns locaux sont partagés entre tous les pouvoirs sur la même entité boss, et les cooldowns globaux utilisent le système de cooldown de pouvoir intégré du boss.
Les scripts de PNJ EliteMobs utilisent l'ordre de cooldown partagé check_local(key?, duration) ; voir Scripts de PNJ.
context.scheduler GLOBAL
Planification de tâches. Toutes les tâches sont automatiquement annulées lorsque le script s'arrête.
Variante globale (Magmacore)
Les scripts FreeMinecraftModels et les scripts de PNJ EliteMobs utilisent cette variante partagée. Les noms de style EliteMobs ci-dessous sont des alias sur le même scheduler, de sorte que l'un ou l'autre style de nommage est valide sur les surfaces génériques.
| Method | Args | Returns | Description |
|---|---|---|---|
run_later(ticks, callback) | int, function | int | Exécute le callback après ticks. Retourne l'ID de tâche |
run_repeating(delay, interval, callback) | int, int, function | int | Exécute le callback toutes les interval ticks après le délai initial. Retourne l'ID de tâche |
cancel(taskId) | int | nil | Annule une tâche planifiée |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
run_after(ticks, callback) | int, function | int | Exécute le callback après ticks. Retourne l'ID de tâche |
run_every(ticks, callback) | int, function | int | Exécute le callback toutes les N ticks. Retourne l'ID de tâche |
cancel_task(taskId) | int | nil | Annule une tâche planifiée |
context.log GLOBAL
Utilitaires de journalisation pour le débogage des scripts.
Variante globale (Magmacore / FMM)
| Method | Args | Returns | Description |
|---|---|---|---|
info(message) | string | nil | Log un message d'information |
warn(message) | string | nil | Log un message d'avertissement |
error(message) | string | nil | Log un message d'erreur/avertissement |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
info(message) | string | nil | Log un message d'information |
warn(message) | string | nil | Log un message d'avertissement |
debug(message) | string | nil | Log un message de débogage (apparaît comme info avec préfixe debug) |
context.zones GLOBAL
Création et surveillance de zones pour les scripts FreeMinecraftModels et les autres runtimes ScriptInstance adossés à Magmacore. Les pouvoirs de boss EliteMobs utilisent la variante context.zones d'EliteMobs ci-dessous.
Variante globale (Magmacore)
| Method | Args | Returns | Description |
|---|---|---|---|
create_sphere(x, y, z, radius) | num, num, num, num | int | Crée une zone sphérique, retourne le handle |
create_cylinder(x, y, z, radius, height) | num, num, num, num, num | int | Crée une zone cylindrique, retourne le handle |
create_cuboid(x, y, z, xSize, ySize, zSize) | num, num, num, num, num, num | int | Crée une zone cuboïde, retourne le handle |
watch(handle, on_enter?, on_leave?) | int, function?, function? | bool | Active le tracking de zone. Les arguments de type fonction activent on_zone_enter / on_zone_leave ; les corps de fonction ne sont pas invoqués directement. Les hooks de zone reçoivent context.player / context.event.player pour le joueur ayant franchi la limite |
unwatch(handle) | int | nil | Arrête le tracking de la zone |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
get_entities_in_zone(zone, options?) | zone table, table | table | Obtient les entités dans la zone. Options : filter, mode |
get_locations_in_zone(zone, options?) | zone table, table | table | Obtient les localisations dans la zone. Options : coverage, mode |
zone_contains(zone, location, mode?) | zone table, location, string?="full" | bool | Si la localisation est dans la zone ("full" ou "border") |
watch_zone(zone, callbacks, options?) | zone table, table, table? | nil | Surveille la zone pour entrée/sortie. Callbacks : {on_enter = fn, on_leave = fn}. Les options prennent en charge filter et mode |
context.event GLOBAL
Table de données d'événement pour le hook ayant déclenché l'exécution actuelle du script. Présent durant les hooks pilotés par événement et les hooks génériques d'entrée/sortie de zone MagmaCore qui fournissent un acteur joueur ; absent durant on_game_tick, les callbacks planifiés ou les hooks de cycle de vie sans joueur.
Variante globale (Magmacore)
| Field / Method | Type | Description |
|---|---|---|
is_cancelled | bool | État d'annulation lors de la construction du contexte ; pas rafraîchi après cancel() / uncancel() |
cancel() | method | Annule l'événement lorsque l'événement Bukkit sous-jacent est annulable |
uncancel() | method | Désannule l'événement lorsque l'événement Bukkit sous-jacent est annulable |
player | entity table | Joueur impliqué dans l'événement (le cas échéant) |
Les hooks de zone génériques renseignent player mais ne sont pas adossés à un événement Bukkit annulable, de sorte que cancel() et uncancel() n'y sont pas présents.
Pour la table d'événement EliteMobs (qui fournit les quantités de dégâts, causes de dégâts, etc.), voir EliteMobs Event Table.
context.script ELITEMOBS
Bridge vers le système Elite Script d'EliteMobs. Permet aux pouvoirs Lua d'utiliser les systèmes de ciblage, de zone et de vecteurs relatifs basés sur YAML via des tables Lua avec les mêmes noms de champs que les configs YAML Elite Script.
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
target(spec) | table | target handle | Crée un handle de cible depuis une table de spec target Elite Script |
zone(spec) | table | zone handle | Crée un handle de zone depuis une table de spec zone Elite Script |
relative_vector(spec, location?, zone?) | table, location, zone handle | vector handle | Crée un vecteur relatif depuis une spec de vecteur Elite Script |
damage(target, amount?, multiplier?) | target handle, double?=0, double?=1 | nil | Inflige des dégâts à toutes les entités de la cible |
push(target, vector, additive?) | target handle, vector or vector handle, bool?=false | nil | Pousse les entités cibles avec une vélocité |
set_facing(target, vector) | target handle, vector or vector handle | nil | Définit la direction du regard des entités cibles |
spawn_particles(target, particles) | target handle, table or string | nil | Fait apparaître des particules aux localisations cibles |
Target Handle
Retourné par context.script:target(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script target (par exemple, {targetType = "NEARBY_PLAYERS", range = 20}).
| Method | Args | Returns | Description |
|---|---|---|---|
entities() | — | table | Tableau de tables d'entités à la cible |
locations() | — | table | Tableau de tables de localisations à la cible |
first_entity() | — | entity or nil | Première entité à la cible |
first_location() | — | location or nil | Première localisation à la cible |
Zone Handle
Retourné par context.script:zone(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script zone (par exemple, {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).
| Method | Args | Returns | Description |
|---|---|---|---|
full_target(coverage?) | number | target handle | Handle de cible pour les localisations intérieures de la zone |
border_target(coverage?) | number | target handle | Handle de cible pour les localisations sur la bordure de la zone |
full_locations(coverage?) | number | table | Tableau de localisations intérieures |
border_locations(coverage?) | number | table | Tableau de localisations sur la bordure |
full_entities() | — | table | Entités à l'intérieur de la zone |
border_entities() | — | table | Entités sur la bordure de la zone |
contains(location, mode?) | location, string?="full" | bool | Si la localisation est dans la zone |
watch(callbacks, mode?) | table, string?="full" | int | Surveille pour entrée/sortie. Retourne l'ID de tâche |
Vector Handle
Retourné par context.script:relative_vector(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script de vecteurs relatifs.
| Method | Args | Returns | Description |
|---|---|---|---|
resolve() | — | vector | Calcule le vecteur pour le contexte actuel |
context.world (EliteMobs) ELITEMOBS
Table world spécifique au boss pour les scripts de pouvoir EliteMobs. Les pouvoirs de boss partent de la table world générique MagmaCore, de sorte que les helpers par coordonnées tels que get_block_at(...), set_block_at(...) et spawn_particle(...) restent disponibles. Les méthodes ci-dessous sont des ajouts EliteMobs ou des surcharges spécifiques au boss, principalement les formes par table de localisation et les helpers de boss.
Requêtes de blocs
| Method | Args | Returns | Description |
|---|---|---|---|
get_block_type_at_location(loc) | location | string or nil | Nom du Material |
get_highest_block_y_at_location(loc) | location | int or nil | Y du bloc le plus haut |
get_blast_resistance_at_location(loc) | location | double | Valeur de résistance aux explosions |
is_air_at_location(loc) | location | bool | Le bloc est de l'air |
is_passable_at_location(loc) | location | bool | Le bloc est traversable |
is_passthrough_at_location(loc) | location | bool | Le bloc n'est pas solide |
is_on_floor_at_location(loc) | location | bool | Air avec bloc solide en dessous |
is_standing_on_material(loc, material) | location, string (Material) | bool | Le bloc en dessous correspond au matériau |
Manipulation de blocs
| Method | Args | Returns | Description |
|---|---|---|---|
set_block_at_location(loc, material, requireAir?) | location, string (Material), bool?=false | nil | Place un bloc. Si requireAir est true, ne remplace que l'air |
place_temporary_block_at_location(loc, material, ticks?, requireAir?) | location, string, int?=0, bool?=false | nil | Place un bloc, retiré automatiquement après ticks. Si requireAir est true, ne remplace que l'air |
Apparition (spawn)
| Method | Args | Returns | Description |
|---|---|---|---|
spawn_boss_at_location(file, loc?, level?) | string, location?=boss loc, int?=boss level | entity or nil | Fait apparaître un boss personnalisé |
spawn_custom_boss_at_location(file, loc, options?) | string, location, table | entity or nil | Fait apparaître un boss avec options (level, silent, add_as_reinforcement, velocity) |
spawn_entity_at_location(type, loc, options?) | string (EntityType), location, table | entity or nil | Fait apparaître une entité vanilla avec options (velocity, duration, effect, on_land, max_ticks) |
spawn_falling_block_at_location(loc, material, options?) | location, string (Material), table | entity or nil | Fait apparaître un bloc tombant (drop_item, hurt_entities, velocity, on_land) |
spawn_reinforcement_at_location(file, loc, level?, velocity?) | string, location, int?=0, vector | entity or nil | Fait apparaître un renfort lié au boss |
spawn_fireworks_at_location(loc, config) | location, table | entity or nil | Fait apparaître un feu d'artifice |
spawn_splash_potion_at_location(loc, config) | location, table | entity or nil | Fait apparaître une potion de splash |
Effets et utilitaires
| Method | Args | Returns | Description |
|---|---|---|---|
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (clé de son Minecraft, par exemple "entity.blaze.shoot"), float?=1, float?=1 | nil | Joue un son |
spawn_particle_at_location(loc, particle, count?) | location, string (Particle) or table, int?=1 | nil | Fait apparaître des particules |
strike_lightning_at_location(loc) | location | nil | Frappe la foudre (contourne la protection EM) |
run_empowered_lightning_task_at_location(loc) | location | nil | Effet de foudre amplifiée |
generate_fake_explosion(locations, center?) | table of locations, location | nil | Explosion visuelle sans dégâts |
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?) | location, vector, bool?=false | fake projectile or nil | Fait apparaître un projectile visuel de pépite d'or |
run_fake_gold_nugget_damage(projectiles) | table | nil | Lance le check de dégâts sur les faux projectiles |
set_world_time(time) or (loc, time) | long, or location + long | nil | Définit le temps du monde |
set_world_weather(weather, duration?) or (loc, weather, duration?) | string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000 | nil | Définit la météo |
run_console_command(command) | string | nil | Exécute une commande console |
generate_player_loot(times?) | int?=1 | nil | Effectue ce nombre de tirages de loot joueur pour les damagers |
drop_bonus_coins(multiplier?) | double?=2 | nil | Lâche des pièces bonus au niveau du boss |
context.settings (EliteMobs)
| Method | Args | Returns | Description |
|---|---|---|---|
warning_visual_effects_enabled() | — | bool | Si les VFX d'avertissement sont activés dans la config |
EliteMobs Event Table
La table context.event est transmise aux hooks de dégâts et de spawn. Les champs varient selon le type d'événement.
| Field / Method | Type | Present When | Description |
|---|---|---|---|
damage_amount | double | Événements de dégâts | Quantité brute de dégâts |
damage_cause | string | Événements de dégâts | Nom de DamageCause |
damager | entity table | Événements de dégâts par entité | Entité ayant infligé les dégâts |
projectile | entity table | Événements de dégâts par projectile | Projectile ayant infligé les dégâts |
spawn_reason | string | Événement de spawn | Nom de la raison du spawn |
entity | entity table | Événements de mort/zone | Entité concernée |
cancel_event() | method | La plupart des événements | Annule l'événement |
set_damage_amount(amount) | method (double) | Événements de dégâts | Remplace la quantité de dégâts |
multiply_damage_amount(multiplier) | method (double) | Événements de dégâts | Multiplie les dégâts actuels |
context.item FMM
Accédé dans les scripts d'item FMM. Résout l'item scripté spécifique depuis les slots équipés du joueur via un tag PDC.
Les méthodes de lecture inspectent l'item correspondant actuellement équipé lors de l'appel. Les méthodes d'écriture mettent leur mutation en file sur le thread principal Bukkit et retournent nil.
Propriétés
| Field | Type | Description |
|---|---|---|
id | string | Identifiant de script de l'item |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
material() | — | string | Nom du Material |
get_amount() | — | int | Taille de la pile |
set_amount(n) | int | nil | Met en file la définition de la taille de la pile |
consume(n?) | int?=1 | nil | Met en file la décrémentation de n, retire si zéro |
get_uses() | — | int | Compteur d'utilisations stocké dans le PDC |
set_uses(n) | int | nil | Met en file la définition du compteur d'utilisations du PDC |
get_durability() | — | table or nil | Retourne les champs current et max, ou nil si pas de barre de durabilité |
get_durability_percentage() | — | number or nil | Fraction restante 0.0--1.0, ou nil |
use_durability(amount, can_break?) | int, bool?=false | nil | Met en file la réduction de la durabilité d'un montant plat. Si false, plafonne à 1 restant |
use_durability_percentage(fraction, can_break?) | number, bool?=false | nil | Met en file la réduction de la durabilité d'une fraction du max (0.0--1.0) |
get_name() | — | string or nil | Nom d'affichage |
set_name(s) | string | nil | Met en file la définition du nom d'affichage. Prend en charge les codes couleur |
get_lore() | — | table | Tableau de chaînes de lore |
set_lore(table) | table | nil | Met en file la définition du lore depuis un tableau de chaînes |
context.prop FMM
Accédé dans les scripts de prop FMM. Hérite de tous les champs Entity de l'armor stand sous-jacent.
Propriétés
| Field | Type | Description |
|---|---|---|
model_id | string | Nom du blueprint de modèle |
current_location | location | Position actuelle du prop |
Méthodes
| Method | Args | Returns | Description |
|---|---|---|---|
play_animation(name, blend?, loop?) | string, bool?=true, bool?=true | bool | Joue une animation nommée |
stop_animation() | — | nil | Arrête toutes les animations en cours |
hurt_visual() | — | nil | Flash de teinte rouge, sans dégâts |
pickup() | — | nil | Met en file le retrait du prop et le lâcher de l'item de placement |
has_mount_points() | — | bool | Si le prop possède des points de monture (mount point bones) |
mount(player) | entity table | bool | Met en file une vérification de monte ; true signifie que les références de base étaient valides |
dismount(player) | entity table | bool | Met en file une vérification de démonte ; true signifie que les références de base étaient valides |
get_passengers() | — | table | Tableau de tables d'entités pour les joueurs montés |
spawn_elitemobs_boss(file, x, y, z) | string, num, num, num | entity or nil | Fait apparaître un boss EliteMobs (nécessite EliteMobs) |
open_inventory(player, title, rows?) | entity table, string, int?=3 | bool | Met en file l'ouverture d'un inventaire de coffre persistant (lignes plafonnées 1--6). Le titre prend en charge les codes couleur |
place_book(player) | entity table | bool | Met en file le stockage du livre écrit/inscriptible tenu par le joueur sur le prop |
read_book(player) | entity table | bool | Met en file l'ouverture du livre stocké pour lecture |
take_book(player) | entity table | bool | Met en file le retour du livre stocké au joueur |
has_book() | — | bool | Si un livre est stocké |
drop_inventory() | — | bool | Met en file le lâcher de tous les items stockés et l'effacement du stockage |
drop_book() | — | bool | Met en file le lâcher du livre stocké et l'effacement du stockage |
is_viewing_inventory(player) | entity table | bool | Si le joueur a l'inventaire de ce prop ouvert |
set_persistent_data(key, value) | string, string | bool | Stocke une chaîne dans le PDC du prop |
get_persistent_data(key) | string | string or nil | Récupère une chaîne depuis le PDC du prop |
Codes couleur
Toutes les méthodes marquées comme prenant en charge les codes couleur utilisent le ChatColorConverter de Magmacore. Ces formats peuvent être mélangés librement dans n'importe quelle chaîne :
Codes legacy
Utilisez & suivi d'un caractère de couleur/format :
| Code | Couleur | Code | Format |
|---|---|---|---|
&0 | Noir | &l | Gras |
&1 | Bleu foncé | &m | |
&2 | Vert foncé | &n | Souligné |
&3 | Cyan foncé | &o | Italique |
&4 | Rouge foncé | &r | Réinitialiser |
&5 | Violet foncé | ||
&6 | Or | ||
&7 | Gris | ||
&8 | Gris foncé | ||
&9 | Bleu | ||
&a | Vert | ||
&b | Cyan | ||
&c | Rouge | ||
&d | Violet clair | ||
&e | Jaune | ||
&f | Blanc |
Couleurs hexadécimales
Couleur RGB exacte en utilisant un hex à 6 chiffres :
&#FF5500 -- ampersand prefix
<#FF5500> -- tag syntax
Dégradés
Interpole en douceur entre deux couleurs ou plus à travers le texte :
<gradient:#FF0000:#0000FF>This text fades red to blue</gradient>
<g:#FF0000:#00FF00:#0000FF>Three-color gradient</g>
La forme courte g fonctionne de manière identique à gradient. Vous pouvez chaîner autant d'étapes de couleur que vous voulez.
Arc-en-ciel
Parcourt tout le spectre de teintes à pleine saturation. Un argument numérique optionnel décale la teinte de départ (décalage de phase) :
<rainbow>Full rainbow text</rainbow>
<r:0.5>Rainbow with a shifted starting hue</r>
Types courants
location
{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }
vector
{ x = number, y = number, z = number }
entity table
Toute table avec un champ uuid. Les tables joueur et entité du contexte fonctionnent directement :
context.player -- valid entity table
context.world:get_nearby_entities(x,y,z,r) -- returns array of entity tables
Étapes suivantes
- Moteur de script : Comment fonctionne le moteur — sandbox, planification, cooldowns, zones
- EliteMobs : Premiers pas | Scripts de PNJ | Hooks & cycle de vie | Boss & entités | Monde & environnement | Zones & ciblage | Exemples
- FreeMinecraftModels : Premiers pas | API Prop & Item | Exemples