Luaスクリプティング:列挙型と値
このページは、EliteMobs Luaメソッドで使用されるすべてのenum型についてSpigot Javadocsにリンクしています。Luaコードでは正確なenum定数名(例:"FLAME"、"ZOMBIE"、"STONE")を文字列として使用してください。
- スペルはenum定数名と正確に一致する必要があります
- 大文字小文字は通常内部で正規化されますが、安全のためにJavadocのスペルに合わせてください
- 無効な値の処理はメソッドによって異なります。警告を記録するもの、
nilを返すか何もしないものがあり、入力を検証する API では Lua エラーが発生する場合があります
Enum Reference
| Enum | Used for | Javadoc |
|---|---|---|
BarColor | Boss bar color | BarColor |
BarStyle | Boss bar style | BarStyle |
DamageCause | ダメージ原因フィルタリング | EntityDamageEvent.DamageCause |
EnderDragon.Phase | エンダードラゴンフェーズ制御 | EnderDragon.Phase |
EntityEffect | Entity visual effects | EntityEffect |
EntityType | Entity spawning | EntityType |
EquipmentSlot | エンティティ装備スロット | EquipmentSlot |
FireworkEffect.Type | Firework shape | FireworkEffect.Type |
Material | Blocks and items | Material |
Particle | Particle effects | Particle -- レガシー名の変換については有効なパーティクルリストも参照してください |
PotionEffectType | Potion effects | PotionEffectType |
Sound | サウンド再生 | Sound |
すべてのLuaサウンドヘルパー(boss:play_sound_at_self、entity:play_sound_at_entity、world:play_sound_at_location)は、文字列を2段階で解決します。まず Spigot の Sound enum 名として解釈を試み(大文字化されるため "entity_blaze_shoot" も機能します)、それが失敗した場合はネームスペース付きのサウンドキーとして扱います(小文字化されるため "entity.blaze.shoot" も、独自のリソースパックキー "mypack:boss.roar" も機能します)。
つまり、もうどちらの形式かを選ぶ必要はありません -- ただし、どちらの形式でもタイプミスは静かに無視されます。フォールバック経路では、不正な enum 名と、単にインストールされていないカスタムパックのサウンドを区別できないためです。
Non-Spigot Values
これらの値はEliteMobs固有であり、Spigot Javadocsには含まれていません:
Zone shapes
Used by native zone definitions (kind field) and script utility zone specs (shape field).
Native (kind) | Script Utility (shape) |
|---|---|
sphere | SPHERE |
dome | DOME |
cylinder | CYLINDER |
cuboid | CUBOID |
cone | CONE |
static_ray | STATIC_RAY |
rotating_ray | ROTATING_RAY |
translating_ray | TRANSLATING_RAY |
Entity filters
context.zones および context.entities のクエリオプションで使用されます。大文字小文字を区別せず、それぞれに複数形のエイリアスがあります。
| Filter | Matches |
|---|---|
player / players | プレイヤーのみ |
elite / elites | エリートモブのみ |
mob / mobs | プレイヤー以外のリビングエンティティ(エリートを含みます) |
living | プレイヤーを含むすべてのリビングエンティティ(デフォルト) |
all / entities | 非リビングを含むすべてのエンティティ。context.entities:get_nearby_entities でのみ認識されます |
これらの文字列以外はエラーにならず living の挙動にフォールバックするため、"playr" のようなタイプミスは静かにすべてのリビングエンティティを返します。
context.script:zone({...}) は EliteScript エンジンを実行するため、異なる大文字のフィルターセット(PLAYER、ELITE、LIVING)を使用します。
Weather values
Used by context.world:set_weather(weather).
| Value | Effect |
|---|---|
CLEAR | Clear skies |
RAIN | Rain |
THUNDER | Thunderstorm |
Target types
Used by context.script:target() specs.
| Value | Resolves to |
|---|---|
SELF | The boss entity |
SELF_SPAWN | The boss's spawn location |
DIRECT_TARGET | The entity involved in the current event |
NEARBY_PLAYERS | Players within range of the boss |
NEARBY_MOBS | Non-player mobs within range |
NEARBY_ELITES | Elite mobs within range |
ALL_PLAYERS | All online players |
WORLD_PLAYERS | All players in the boss's world |
ZONE_FULL | Entities/locations inside a zone volume |
ZONE_BORDER | Entities/locations on a zone border |
LOCATION | spec の location フィールドで指定した特定の位置 |
LOCATIONS | spec の locations リストで指定した複数の位置 |
LANDING_LOCATION | 落下ブロックまたは召喚エンティティが着地した位置 |
ACTION_TARGET | 周囲の EliteScript アクションのターゲットを継承します |
INHERIT_SCRIPT_TARGET | 呼び出し元 EliteScript のターゲットを継承します |
INHERIT_SCRIPT_ZONE_FULL | 呼び出し元 EliteScript のゾーン内部 |
INHERIT_SCRIPT_ZONE_BORDER | 呼び出し元 EliteScript のゾーンの境界上 |
最後の4つは継承元となる EliteScript が周囲に存在する場合にしか解決されないため、Lua からの実用性はほとんどありません。完全な意味論は EliteScript ターゲット を参照してください -- context.script はまさにその実装を使用しています。
次のステップ
- はじめに | フックとライフサイクル | ワールドと環境 | ゾーンとターゲティング | サンプル | Enum | トラブルシューティング
- APIリファレンス | スクリプティングエンジン
