イベントの作成
このガイドは EliteMobs 10 以降向けです
カスタムイベントとは?
ここでのカスタムイベントとは、プレイヤーのアクションに基づくものであれ、時間制のトリガーを持つものであれ、ゲーム内でランダムに発生するイベントを指します。プラグインには、Balrog イベント、Kraken イベント、Treasure Goblin イベントなど、いくつかのカスタムイベントがあらかじめ読み込まれています。
このシステムがカスタムイベントと呼ばれるのは、イベントをカスタマイズできるだけでなく、ゼロから作成することもできるからです。以下は、独自のイベントを作成・カスタマイズする方法のガイドです。
カスタムイベントの作成
カスタムイベントの設定ファイルは次の場所に作成すべきです。
plugins/EliteMobs/customevents/
ファイルは .yml 形式を使用する必要があります。ファイル名(.yml 拡張子を除く)がイベントの識別子になります。
例: my_cool_event.yml は my_cool_event として参照されます
共通の設定項目
次の設定は、アクションイベントと時間制イベントの両方で使用できます/すべきです。
isEnabled
イベントが有効かどうかを設定します。
| キー | 値 | デフォルト |
|---|---|---|
isEnabled | Boolean | true |
例
isEnabled: true
eventType
イベントのタイプを設定します。
| キー | 値 | デフォルト |
|---|---|---|
eventType | BREAK_BLOCK / FISH / TILL_SOIL / TIMED | DEFAULT |
BREAK_BLOCK、FISH、TILL_SOIL は アクションイベント であり、TIMED は 時間制イベント である点に注意してください。
eventType は必須です。 DEFAULT は、この設定が欠けているか上記のどのタイプにも一致しないときに EliteMobs がフォールバックするプレースホルダーです。DEFAULT のままのイベントは警告をログに出力し、そもそも登録されないため、それ以降の設定は一切読み取られません。
例
eventType: BREAK_BLOCK
bossFilenames
スポーンするボスのリストを設定します。必須!
| キー | 値 | デフォルト |
|---|---|---|
bossFilenames | String List | なし |
例
bossFilenames:
- balrog.yml
- my_event_boss.yml
announcementPriority
アナウンス優先度 を設定します。
| キー | 値 | デフォルト |
|---|---|---|
announcementPriority | Integer | 0 |
例
announcementPriority: 1
startMessage
イベント開始時に送信されるメッセージを設定します。
| キー | 値 | デフォルト |
|---|---|---|
startMessage | String | なし |
例
startMessage: An event has started!
![]()
endMessage
イベント終了時に送信されるメッセージを設定します。
| キー | 値 | デフォルト |
|---|---|---|
endMessage | String | なし |
例
endMessage: An event has ended!
eventStartCommands
イベント開始時に実行されるコマンドを設定します。
| キー | 値 | デフォルト |
|---|---|---|
eventStartCommands | String List | なし |
例
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

eventEndCommands
イベント終了時に実行されるコマンドを設定します。
| キー | 値 | デフォルト |
|---|---|---|
eventEndCommands | String List | なし |
例
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

minimumPlayerCount
イベントが開始されるために必要な、オンラインプレイヤーの最小数を設定します。
これはアクションイベントでのみチェックされます。時間制イベントはこれを無視し、少なくとも 1 人のプレイヤーがオンラインであることだけを要求します。
| キー | 値 | デフォルト |
|---|---|---|
minimumPlayerCount | Integer | 1 |
例
minimumPlayerCount: 5
イベント設定の例
isEnabled: true
eventType: TIMED
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
時間制イベントの完全な例
isEnabled: true
eventType: TIMED
bossFilenames:
- "my_timed_boss.yml"
announcementPriority: 3
startMessage: "A timed event has started!"
endMessage: "The timed event has ended!"
eventStartCommands:
- say The timed event began!
eventEndCommands:
- say The timed event concluded!
spawnType: "my_spawn_location.yml"
localCooldown: 120
globalCooldown: 30
weight: 100
eventDuration: 15
endEventWithBossDeath: true
minimumPlayerCount: 1
アクションイベント
ブロックの破壊や釣りなど、特定のアクションが発生したときに、一定の確率で実行されるイベントです。
注: アクションイベントは、同じプレイヤーが繰り返しイベントをトリガーするのを防ぐため、プレイヤーごとのクールダウンを自動的に適用します。クールダウンはデフォルトで 4 分であり、events.yml の actionEventMinimumCooldownMinutes で設定できます。同じファイルで actionEventsEnabled を false にすると、アクションイベントをサーバー全体で無効化することもできます。
3 つのアクションタイプは次のようにトリガーされます。
eventType | トリガー |
|---|---|
BREAK_BLOCK | プレイヤーがブロックを破壊したとき。まず chance が判定され、その後に破壊されたブロックが breakableMaterials と照合されます。 |
FISH | プレイヤーが何かを釣り上げたとき。何も釣れなかったキャストではイベントは発生しません。 |
TILL_SOIL | プレイヤーが任意のクワを持って DIRT または GRASS_BLOCK を右クリックしたとき。 |
いずれの場合も、その位置は EliteMobs が有効なワールドにある必要があり、EliteMobs のダンジョンワールドや進行中のインスタンスの内部であってはならず、WorldGuard の elitemobs-events フラグを通過する必要があります。
chance
アクションが発生したときにイベントが起こる確率を設定します。
| キー | 値 | デフォルト |
|---|---|---|
chance | 0.0 から 1.0 までの値 | 0 |
例
chance: 0.001
breakableMaterials
アクションが BREAK_BLOCK に設定されている場合にチェックするマテリアルのリストを設定します。
| キー | 値 | デフォルト |
|---|---|---|
breakableMaterials | マテリアル のリスト | なし |
例
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD
設定の例
chance: 0.001
breakableMaterials:
- COAL_ORE
イベントタイプが BREAK_BLOCK であると仮定して、石炭鉱石ブロックが破壊されたときに 0.1% の確率でイベントを実行するように設定します。
アクションイベントの完全な例
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE
時間制イベント
時間制イベントは、設定可能な時間間隔で発生するイベントです。時間制イベントのクールダウンが終わると、イベントの重み(weight)に基づいて、時間制イベントのリストからランダムな時間制イベントが選ばれます。
サーバーにプレイヤーが 1 人もオンラインでない間は何も選ばれず、すでに実行中のイベントが 2 度目に選ばれることもありません。events.yml で timedEventsEnabled を false にすると、時間制イベントをサーバー全体で無効化できます。
spawnType
イベントが使用する カスタムスポーン を設定します。これはボスがスポーンできる場所を定義します。
| キー | 値 | デフォルト |
|---|---|---|
spawnType | Filename | なし |
例
spawnType: nether_spawn.yml
localCooldown
このイベントが再び選ばれるまでの時間を分単位で設定します。
| キー | 値 | デフォルト |
|---|---|---|
localCooldown | Double | 0 |
例
localCooldown: 120
globalCooldown
次のイベントが選ばれるまでの時間を分単位で設定します。
| キー | 値 | デフォルト |
|---|---|---|
globalCooldown | Double | 0 |
例
globalCooldown: 60
weight
イベントの重み(weight)を設定し、他のイベントよりも選ばれる確率に影響を与えます。推奨: 100。
重みシステムは、イベント選択の相対的な確率を決定します。例えば次のとおりです。
- 重み 100 のイベント A と重み 50 のイベント B の比較 = イベント A が選ばれる確率は 2 倍
- 重みが大きいほど選ばれる確率が高くなる
- 時間制イベントのスケジューラーはサーバー起動の約 5 分後に開始され、その後 1 分に 1 回、グローバルクールダウンが経過してイベントを選べる状態かどうかをチェックする
| キー | 値 | デフォルト |
|---|---|---|
weight | Double | 0 |
例
weight: 60.5
eventDuration
イベントの最大継続時間を分単位で設定します。
| キー | 値 | デフォルト |
|---|---|---|
eventDuration | Double | 0 |
例
eventDuration: 30
endEventWithBossDeath
イベントがボスの死亡で終了するかどうかを設定します。
| キー | 値 | デフォルト |
|---|---|---|
endEventWithBossDeath | Boolean | true |
例
endEventWithBossDeath: true
eventEndTime
イベントが終了するゲーム内時刻(ティック単位)を設定します。Minecraft の時刻システムを使用します(0=夜明け、6000=正午、12000=日暮れ、18000=真夜中、23000=深夜)。時刻ベースの終了を無効にするには -1 を設定します。
| キー | 値 | デフォルト |
|---|---|---|
eventEndTime | Integer(0〜24000、無効にするには -1) | -1 |
例
eventEndTime: 23000
イベントはキューに入れられる点に注意してください。つまり、spawnType で定義された条件が満たされた場合にのみ開始されます。
イベント設定の例
isEnabled: true
eventType: TIMED
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
spawnType: "myCoolSpawn.yml"
localCooldown: 30
globalCooldown: 15
weight: 100
eventDuration: 20
endEventWithBossDeath: true
eventEndTime: 10000
minimumPlayerCount: 5
イベントを手動でトリガーする
/em event <event filename>
スケジューラーが選んだ場合とまったく同じように、次に有効な時刻と場所で開始されるよう時間制イベントをキューに入れます。elitemobs.event.start 権限が必要で、プレイヤーが実行する必要があり、eventType が TIMED の有効なイベントのファイル名のみを受け付けます。
イベントをキューに入れられない場合は理由が伝えられます。spawnType が設定されていない、spawnType が有効なカスタムスポーンファイルを指していない、bossFilenames のいずれも有効でない、または他のプラグインがイベントをキャンセルした、などです。
サーバー全体のイベント設定
これらは ~/plugins/EliteMobs/events.yml にあり、すべてのイベントに適用されます。
| キー | 説明 | デフォルト |
|---|---|---|
actionEventsEnabled | アクションイベントを発生させるかどうか | true |
timedEventsEnabled | 時間制イベントを発生させるかどうか | true |
actionEventMinimumCooldownMinutes | アクションイベント発動後の、プレイヤーごとのクールダウン(分) | 4 |
timedEventMinimumCooldownMinutes | ある時間制イベントの開始から、次のイベントの開始が許可されるまでの最小時間(分) | 4 |
announcementBroadcastWorldOnly | イベントのアナウンスを、そのイベントが発生しているワールドに限定するかどうか | false |
