メインコンテンツまでスキップ

DiscordSRV 連携

EliteMobs は DiscordSRV を利用して、告知優先度レベル 3 以上のメッセージのブロードキャストを可能にします。告知優先度システムについてはこちらをご覧ください。

要するに、一部の非常に特別なカスタムボスが、次のような見た目で Discord にメッセージを送れるようになるということです。

discord message example

意図しているのは、EliteMobs 専用の告知ルームを作り、プレイヤーがそこを覗いて、今討伐しに行けて撃破リーダーボードで自慢できる面白いワールドボスが生存しているかどうかを確認できるようにすることです。

セットアップ

DiscordSRV のセットアップ

DiscordSRV は私が開発したものではない別のプラグインです。詳細なセットアップガイドはこちらにあります。セットアップがうまくいかない場合は、サポートルームはこちらです。このプラグインについて私はサポートを提供できませんので、インストールのこの部分については開発元にお問い合わせください。

注意: EliteMobs は DiscordSRV バージョン 1.28.0 でテストされています。他のバージョンでも動作する可能性はありますが、互換性が確認されているのはこのバージョンです。

EliteMobs 側の DiscordSRV 設定

DiscordSRV を正しく設定できたら(このステップに進む前に、本当に動作しているかテストする必要があります)、EliteMobs 側の設定は 1 ステップだけです

EliteMobs の設定フォルダー内にある DiscordSRV.yml 設定ファイル(通常は plugins/EliteMobs/DiscordSRV.yml)を開くと、announcementRoomName という設定項目が見つかります。

この項目には 3 種類の値を使用できます。おすすめは 1 番です。

  1. [推奨] DiscordSRV の設定ファイルで設定したとおりのルーム名。ルームに何という名前を付けたかは重要ではなく、正しい名前を使うことだけが重要です。以下は、私が EliteMobs のイベント専用に設定したルームの例です。 using name example この場合、設定は announcementRoomName: EMEvents となります。

  2. DiscordSRV の設定ファイルで設定したとおりのルームの ID。以下はそのルームの例です。各ルームは固有であることに注意してください。画像はあくまで例として示しているだけなので、ID の数字をコピーしようとしないでください。動作しません。あなたの環境では、Discord のルーム ID に基づいた固有の数字になっているはずです。 using id example

  3. [非推奨] Discord 上に表示されているルーム名。さまざまな要因により正しく動作する保証はありません。Discord のルームは DiscordSRV の設定ファイル側でセットアップされている必要がある点に注意してください。この設定ファイルにルーム名を入力できるからといって、DiscordSRV 側の設定を省略できるわけではありません。

技術的な注意点

  • Discord に送信されるメッセージからは、正しく表示されるように Minecraft のカラーコードが自動的に除去されます
  • サーバーのラグを防ぐため、Discord メッセージは非同期で送信されます
  • EliteMobs は 3 段階の検索で Discord チャンネルを特定します。まずチャンネル ID、次に DiscordSRV のチャンネルマッピング、最後にチャンネル名検索の順です
  • Discord 通知が発生するのは告知優先度 3 以上のコンテンツのみです。これにはカスタムボスのスポーン/死亡/逃走メッセージと、カスタムイベントの startMessageendMessage が含まれます
  • ゲーム内に表示されるのと同じメッセージが Discord に送信されます
  • チャンネルは一度解決された後、サーバーセッションの残りの間キャッシュされます。そのため announcementRoomName を変更した場合は /em reload だけでなく再起動が必要です

テスト

設定が機能しているかテストするには、/em discord <message> コマンドを使用できます。<message> は Discord に送信したい任意のテキストに置き換えてください。

例: /em discord Test message from EliteMobs!

設定した Discord チャンネルにメッセージが表示されれば完了です!

注意: このコマンドには elitemobs.discord.message 権限が必要です

さらに、/em discord(メッセージなし)を使うと、サポートとダウンロード用の EliteMobs Discord サーバーの招待リンクを表示できます。このコマンドには elitemobs.discord.link 権限が必要です。

トラブルシューティング

メッセージが Discord に表示されない場合:

  • DiscordSRV がインストールされ動作していることを確認する(まず DiscordSRV 自身のコマンドでテストする)
  • announcementRoomName がデフォルトのプレースホルダー値のままになっていないか確認する
  • ルーム名/ID が DiscordSRV の設定と完全に一致していることを確認する
  • Discord 連携に関する EliteMobs の警告がコンソールに出ていないか確認する
  • テスト用に elitemobs.discord.message 権限を持っていることを確認する

チャンネルが見つからないというエラーが出る場合:

  • DiscordSRV.yml と EliteMobs の DiscordSRV.yml の両方で、チャンネル名のつづりを再確認する
  • 名前の代わりに数値のチャンネル ID を使ってみる
  • DiscordSRV の config.yml でチャンネルが正しく設定されていることを確認する

テストコマンドが動作しない場合:

  • elitemobs.discord.message 権限を持っていることを確認する
  • 正しい構文 /em discord <message>(メッセージ付き)を使う
  • サーバーコンソールにエラーメッセージが出ていないか確認する