[Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

サーバーMODやBUKKITのプラグインなどの公開/紹介を専門に行うフォーラムです。クライアントMODと組み合わせ必須の物はMOD公開/紹介フォーラムで公開してください。
フォーラムルール
クライアントMODと対にして使用する物は極力 MOD 公開/紹介 フォーラムにて公開するようお願いします。
本フォーラムではサーバーへの適用をメインとするサーバーMOD、プラグインを取り扱います。
不明な点は管理人ecolightまでお問い合わせ下さい。
  • (PostNo.283811)

[Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by ucchy » 2016年9月23日(金) 01:32

このトピックは、DiscordSRVの紹介です。

このプラグインの配布ページはこちらです。
https://dev.bukkit.org/bukkit-plugins/discordsrv
https://www.spigotmc.org/resources/discordsrv.18494/



概要

このプラグインは、Bukkit(spigot)サーバーのチャットと、Discordサーバーのチャットを結合することができるプラグインです。

Minecraft側のチャット:
画像

Discord側のチャット:
画像

また、Discordの特定のチャンネルを、Bukkitのコンソールと結合して使用することもできます。コンソールチャンネルとして指定されたDiscordテキストチャンネルで、Bukkitのコンソールに流れるすべてのログが参照でき、すべてのコンソールコマンドを実行可能です。
※ コンソールと結合する場合は、テキストチャンネルの入室権限を確実に設定するようにしてください。誰でも入室できるようにしていると、誰でもサーバーを操作することができてしまいます。
画像

チャットの結合とコンソールの結合は、設定によってそれぞれ有効化することができます。
もちろん、チャットの結合のみ、コンソールの結合のみも可能です。


チャットの結合機能は、下記のチャットプラグインを介して利用することも可能です。
HeroChat、LegendChat、VentureChat、TownyChat、LunaChat

また、下記のプラグインでVanishしている場合は、Discordにログインメッセージが表示されないようにすることが可能です。
Essentials、PremiumVanish、SuperVanish、VanishNoPacket



設置手順

  • 1. まずは、下記のプラグイン配布ページのどちらかで、DiscordSRV-Build-xx.x.jar を取得し、Bukkitサーバーのpluginsフォルダに配置してください。
    https://dev.bukkit.org/bukkit-plugins/discordsrv
    https://www.spigotmc.org/resources/discordsrv.18494/
     
  • 2. Bukkitサーバーをスタートして、plugins/DiscordSRV/ の下に各種設定ファイル(config.yml、channels.json、colors.json)を生成してください。
    生成されたら、いったんBukkitサーバーをstopコマンドで停止してください。
     
  • 3. Discord用のBOTを登録するために、新しいアプリケーションをDiscordに作成します。下記のURLを開いてください。
    https://discordapp.com/developers/appli ... /me/create
     
  • 4. 「APP NAME」の欄に好きな名前を設定して、「Create Application」ボタンを押します。
    画像
     
  • 5. 次の画面で「Create a Bot User」ボタンを押し、次の確認画面で「Yes, do it!」を押します。
    画像
     
  • 6. 次の画面で「click to reveal」というリンクを押して、トークンを取得します。リンクを押したところに表示される、長くてランダムな文字列がトークンです。
    画像
     
  • 7. DiscordSRV の config.ymlを開いて、
    BotToken: "BOTTOKEN"

    というところに、トークンを貼り付けて設定してください。
    例)
    BotToken: "ABCDEFGabcdefg1234567....."

     
  • 8. 次に、Discordアプリケーションの画面に戻って、上の方に書かれている「Client ID」という欄の18桁の数字を確認してください。
    画像
     
  • 9. 下記のアドレスをブラウザのアドレス欄に貼り付けて、
    https://discordapp.com/oauth2/authorize?scope=bot&client_id=

    その後ろに、Client ID をくっつけてアクセスします。
    例)
    https://discordapp.com/oauth2/authorize?scope=bot&client_id=123456789012345678

     
  • 10. 開いた先の画面で、「Add a bot to a server」の欄で、BOTを追加したい先のDiscordサーバーを選択し、「認証」ボタンを押します。
    これで、DiscordサーバーにBOTが追加されます。
    画像
     
  • 11. Discordを開いて、追加したBOTがサーバーに参加していることを確認しましょう。
    画像
     
  • 12. Discordの画面上で、歯車のマークをクリックし、ユーザー設定画面を開きます。
    画像
     
  • 13. 左のタブで「テーマ」を選択し、「開発者モード」にチェックを付けて、「完了」を押します。
    ※ 開発者モードになると、チャンネルのIDをコピーすることができるようになります。
    画像
     
  • 14. Bukkitのチャットと紐づけしたいDiscordテキストチャンネルを右クリックし、「Copy ID」を選択します。
    画像
     
  • 15. DiscordSRV の config.yml を開いて、NUMERICALCHANNELID のところに貼り付けます。
    例)
    コード: 全て選択
    Channels: {"global": "123456789012345678"}

    もし、HeroChat、LegendChat、VentureChat、LunaChat などのチャンネルチャットプラグインと組みあわせて使用する場合は、下記のように複数のチャンネルIDを設定して、複数のDiscordテキストチャンネルと複数のチャットチャンネルを紐づけすることができます。
    コード: 全て選択
    Channels: {"global": "123456789012345678", "citizen": "987654321098765", "admin": "123456789098765"}

    この場合、ペアのチャンネル名の方でしていした名前のチャンネルを、あらかじめチャンネルチャットプラグインで作成しておいてください。
    チャンネル名は大文字小文字が一致している必要があるので気を付けてください。


    DiscordSRV 12.4 以前の説明
    DiscordSRV の channels.json を開いて、CHANNELID のところに貼り付けます。
    例)
    コード: 全て選択
    [
      {
        "channelname":"global",
        "channelid":"123456789012345678"
      }
    ]

    もし、HeroChat、LegendChat、VentureChat、LunaChat などのチャンネルチャットプラグインと組みあわせて使用する場合は、下記のように複数のチャンネルIDを設定して、複数のDiscordテキストチャンネルと複数のチャットチャンネルを紐づけすることができます。
    コード: 全て選択
    [
      {
        "channelname":"global",
        "channelid":"123456789012345678"
      },
      {
        "channelname":"admin",
        "channelid":"098765432109876543"
      }
    ]

    この場合、channelnameで指定した名前のチャンネルを、あらかじめチャンネルチャットプラグインで作成しておいてください。
    チャンネル名は大文字小文字が一致している必要があるので気を付けてください。

     
  • 16. [オプション] Discordテキストチャンネルと、コンソールを結合したい場合は、
    結合したいチャンネルIDをコピーして、config.yml の DiscordConsoleChannelId: の欄に貼り付けてください。
    DiscordConsoleChannelId: "098765432109876543"

     
  • 17. 次に、Discordの画面に戻って、サーバーの設定メニューを開き、「サーバー設定」を選択します。
    画像
    画像
     
  • 18. 「役割」のタブを選択し、新しい役割「BOT」を追加して、権限の「チャンネル管理」にチェックを入れて、「完了」を押します。
    画像
     
  • 19. メンバー一覧からBOTを右クリックし、メニューの役職から「BOT」を選択して、チェックを入れます。
    画像
     
  • 20. ここまで設定が終わったら、Bukkitサーバーを起動してください。
    BOTがオンラインになり、チャットやコンソールと接続されたことを確認してください。
     

コマンド

一般のプレイヤー向けコマンド : 誰でも実行できるコマンドです。

  • /discord - config.yml の DiscordCommandFormat に設定されたメッセージを表示します。
    あなたのDiscordサーバーへの参加を促すために、DiscordCommandFormat をあらかじめ書き換えておくといいでしょう。
  • /discord help または /discord ? - DiscordSRVのコマンドヘルプを表示します。
  • /discord unsubscribe - Discordのチャットを、一時的に非表示にします。コマンドを実行したプレイヤーの画面のみが非表示になります。
  • /discord subscribe - unsubscribeの状態を解除し、Discordのチャットが表示されるようにします。
  • /discord toggle - unsubscribeの状態ならsubscribeの状態に、subscribeの状態ならunsubscribeの状態に切り替えます。

管理者用コマンド : OPのプレイヤー、または、コンソールで実行できます。

  • /discord bcast <message> - Discordに指定したメッセージを送信します。
  • /discord setpicture <url> - 指定したURL先にある画像を、botのアバター画像として設定します。
  • /discord reload - プラグインをリロードします。ただし、いくつかの設定変更はリロードではなくサーバー再起動でないと反映されないことに注意してください。
  • /discord debug - デバッグ用の情報を hastebin.com に貼り付けて、hastebin.com のURLを返します。プラグインがうまく動かなくて問い合わせしたいときに使用するといいでしょう。
    また、Discordのテキストチャンネル側でサーバーオーナーが debug と発言した場合も、同じようにデバッグ情報を貼り付けたhastebinのURLを生成します。



パーミッション

  • discordsrv.chat - デフォルトですべてのプレイヤーに付くパーミッションです。
    この権限を持っていないプレイヤーは、発言がDiscordに送信されません。
    必要に応じて、権限をはく奪して使用してください。



よくある質問

サーバー起動時に"Unsupported major.minor version 52.0"というエラーメッセージが出て、プラグインが動きません。

このプラグインは Java 8 以上が必須となっています。
Java 8 で動作させてください。

/discord reload コマンドを実行したり、/reload コマンドを実行したりしたのに、設定が反映されません。

一部の設定は、サーバーをいったん停止して開始しないと、反映されません。

他の人はサーバー参加/退出時にメッセージが流れるのですが、僕だけ流れません。なぜですか?

VanishNoPacket や Essentials を導入しているときに、特定のパーミッションを設定していると、サーバー参加/退出メッセージが表示されなくなります。
これを無効にするには、許可する内容に応じて次のいずれかのパーミッションを、自分または自分の所属するグループに与えてください。

-discordsrv.silentjoin
-discordsrv.silentquit


LunaChat連携を導入した特別対応版

次のバージョン DiscordSRV 12.0 から、LunaChatのチャンネルチャットとの連携が導入される予定ですが、
現行のバージョン DiscordSRV 11.0 ですぐに LunaChatのチャンネルチャット連携を使用したい人のために、
特別対応版を作成しましたのでご利用ください。
DiscordSRV 11.0-LC (Dropboxからのダウンロード)

この特別版は、LunaChatのチャンネルチャットを利用している人向けです。LunaChatのJapanize機能のみを利用している人は、本家の DiscordSRV 11.0 をご利用ください。
また、この特別版は本家の DiscordSRV 12.0 が公開されたらサポートを終了とさせていただきますので、ご了承ください。


LunaChatと一緒に利用する方々へ

DiscordSRVの設定で、LunaChatのチャンネルチャットへのフックが初期から有効状態になっています。
そのため、LunaChatを日本語変換のみで利用している場合は、フックをオフにしないとDiscordのチャットが表示されません。
フックをオフにする場合は、DiscordSRV の config.yml を開き、DisabledPluginHooks の設定に "LunaChat" と書き加えて、サーバーを再起動してください。
DisabledPluginHooks: ['LunaChat']

LunaChatのチャンネルチャットと連携したい場合は、上記の説明を参考に、チャンネルの紐づけを実施してください。

DiscordSRV 12.4 以前の説明
DiscordSRVの設定で、LunaChatのチャンネルチャットへのフックが初期から有効状態になっています。
そのため、LunaChatを日本語変換のみで利用している場合は、フックをオフにしないとDiscordのチャットが表示されません。
フックをオフにする場合は、DiscordSRV の config.yml を開き、「LunaChatHook: true」のところを「LunaChatHook: false」に変更し、サーバーを再起動してください。
LunaChatのチャンネルチャットと連携したい場合は、上記の説明を参考に、チャンネルの紐づけを実施してください。


何かわからないことがあれば

このトピックで聞いてくださいね。可能な限り回答いたします。

また、BukkitDevのアカウントがある場合は、本家の方で質問することも可能です。
https://dev.bukkit.org/bukkit-plugins/discordsrv
最後に編集したユーザー ucchy [ 2017年4月01日(土) 16:07 ], 累計 5 回
――お知らせ――
パソコンが壊れたため、買い替えるまで、プラグイン開発作業はお休みしています。簡単な質問程度ならお答えいたします。
――お知らせ――
アバター
ucchy
ID:66dbff26
ラピスラズリ収集家
 
記事: 1170
登録日時: 2012年11月07日(水) 00:08

  • (PostNo.284656)

Re: [Bukkit -1.10] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by ucchy » 2016年10月02日(日) 12:26

DiscordSRV v12.1 がリリースされました。
こちらからご利用ください。
https://dev.bukkit.org/bukkit-plugins/discordsrv
https://www.spigotmc.org/resources/discordsrv.18494/

また、これをもって、DiscordSRV v11 LunaChat連携特別版 の配布とサポートを終了とさせていただきます。
今後は、本家の方をご利用ください。


LunaChatと一緒に利用する方々へ

DiscordSRVの設定で、LunaChatのチャンネルチャットへのフックが初期から有効状態になっています。
そのため、LunaChatを日本語変換のみで利用している場合は、フックをオフにしないとDiscordのチャットが表示されません。
フックをオフにする場合は、DiscordSRV の config.yml を開き、「LunaChatHook: true」のところを「LunaChatHook: false」に変更し、サーバーを再起動してください。
LunaChatのチャンネルチャットと連携したい場合は、上記の説明を参考に、チャンネルの紐づけを実施してください。
――お知らせ――
パソコンが壊れたため、買い替えるまで、プラグイン開発作業はお休みしています。簡単な質問程度ならお答えいたします。
――お知らせ――
アバター
ucchy
ID:66dbff26
ラピスラズリ収集家
 
記事: 1170
登録日時: 2012年11月07日(水) 00:08

  • (PostNo.297389)

Re: [Bukkit -1.11.2] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by ucchy » 2017年3月06日(月) 01:28

LunaChat との連携でご利用の方々へ

チャンネルとDiscordを連携したときに、オフラインのメンバーがいるチャンネルへDiscordから発言すると NullPointerException が起きる問題を、一時的に解決したバージョンを作成しました。
もし、この問題でお困りでしたら、こちらをご利用ください。
ダウンロード from Dropbox

なお、DiscordSRVの次のバージョン v13.0 で、この問題は解決しているようにいたします。
DiscordSRV v13.0 がリリースされた場合は、上記の一時解決版は削除させていただきます。それ以降は本家をご利用ください。

このバージョンについてご不明な点などありましたら、このトピックにお問い合わせください。よろしくお願いします。
――お知らせ――
パソコンが壊れたため、買い替えるまで、プラグイン開発作業はお休みしています。簡単な質問程度ならお答えいたします。
――お知らせ――
アバター
ucchy
ID:3940d012
ラピスラズリ収集家
 
記事: 1170
登録日時: 2012年11月07日(水) 00:08

  • (PostNo.297446)

Re: [Bukkit -1.11.2] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by kotarobo_ » 2017年3月06日(月) 19:44

ucchy さんが書きました:LunaChat との連携でご利用の方々へ

チャンネルとDiscordを連携したときに、オフラインのメンバーがいるチャンネルへDiscordから発言すると NullPointerException が起きる問題を、一時的に解決したバージョンを作成しました。
もし、この問題でお困りでしたら、こちらをご利用ください。
ダウンロード from Dropbox

なお、DiscordSRVの次のバージョン v13.0 で、この問題は解決しているようにいたします。
DiscordSRV v13.0 がリリースされた場合は、上記の一時解決版は削除させていただきます。それ以降は本家をご利用ください。

このバージョンについてご不明な点などありましたら、このトピックにお問い合わせください。よろしくお願いします。


ありがとうございます!
導入してみたところ前でていたエラーが出なくなりましたー。
半公開制サーバーを運用しています!http://seesaawiki.jp/kotaserver/

画像
アバター
kotarobo_
ID:64450b10
大工さん
 
記事: 67
登録日時: 2013年8月14日(水) 06:12

  • (PostNo.299126)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by ucchy » 2017年3月29日(水) 01:05

DiscordSRV v13.0 がリリースされました。
こちらからご利用ください。
https://dev.bukkit.org/bukkit-plugins/discordsrv
https://www.spigotmc.org/resources/discordsrv.18494/

DiscordSRV v13.0 では、導入の最初から、日本語に対応しております。
もし、説明の内容や気になる点などありましたら、本トピックにご報告ください。

また、これをもって、DiscordSRV v12.4 LunaChat連携特別版 の配布とサポートを終了とさせていただきます。
今後は、本家の方をご利用ください。
(既に、Dropboxのpublicフォルダの仕様変更で、ダウンロードできなくなっていたようですが・・・。
 ご迷惑をおかけしていた方々、申し訳ありません。)
――お知らせ――
パソコンが壊れたため、買い替えるまで、プラグイン開発作業はお休みしています。簡単な質問程度ならお答えいたします。
――お知らせ――
アバター
ucchy
ID:4b9de033
ラピスラズリ収集家
 
記事: 1170
登録日時: 2012年11月07日(水) 00:08

  • (PostNo.300647)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by shumao777 » 2017年4月16日(日) 22:54

使わせていただきます。
ここでニコ生しています。よかったらコミュ参加してね!
http://com.nicovideo.jp/community/co1435930
shumao777
ID:b74d0004
木を殴ってる
 
記事: 34
登録日時: 2013年12月13日(金) 16:33

  • (PostNo.301721)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by Loses » 2017年5月06日(土) 08:58

使わせていただきます。
質問なのですが、行を変えることは出来ますか?
Loses
ID:7e4e0854
 

  • (PostNo.301722)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by ucchy » 2017年5月06日(土) 09:01

Losesさん、

Loses さんが書きました:質問なのですが、行を変えることは出来ますか?


はい、メッセージのフォーマットは細かくカスタマイズすることが可能です。
まずは、いったん導入して config.yml を作成し、その内容を編集して確認をしてみてください。
――お知らせ――
パソコンが壊れたため、買い替えるまで、プラグイン開発作業はお休みしています。簡単な質問程度ならお答えいたします。
――お知らせ――
アバター
ucchy
ID:3940d012
ラピスラズリ収集家
 
記事: 1170
登録日時: 2012年11月07日(水) 00:08

  • (PostNo.302392)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by hideuru245 » 2017年5月20日(土) 12:38

最後の手順まですべてその通りにやったのですが、サーバーを起動してもBOTがONLINEになりません。どうしたら良いでしょうか・・・
僕はNFRServerというサーバーを経営<運営>しています。よければぜひ遊びに来てください。
画像
hideuru245
ID:a85f0be4
木を殴ってる
 
記事: 32
登録日時: 2015年7月21日(火) 21:26

  • (PostNo.306501)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by しおん♪ » 2017年8月18日(金) 20:53

LunaChatとDiscordのチャンネルリンクが一方通行になってしまいます。
LunaChatでadminというチャンネルを作り、Discordの方でもadminというチャンネルを作り、config.ymlのChannelsでリンクをさせました。
DiscordのチャットはMinecraftの方に送られるのですが、Minecraftの方から送っても送られません。
BOTはすべての権限を与えています。
どのようにしたら相互で出来ますか?
お教えくださいましたらありがたいです。
しおん♪
ID:6f1f5662
水から上がったとこ
 
記事: 2
登録日時: 2017年8月18日(金) 20:47

  • (PostNo.306566)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by yuitaka523 » 2017年8月20日(日) 02:01

質問なのですが、マインクラフト上でBANされた時にDiscord側にも通知を知らせることはできますか?
yuitaka523
ID:37069b23
大工さん
 
記事: 45
登録日時: 2016年12月29日(木) 16:59

  • (PostNo.306612)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by SNAKE » 2017年8月21日(月) 01:03

しおん♪ さんが書きました:LunaChatとDiscordのチャンネルリンクが一方通行になってしまいます。
LunaChatでadminというチャンネルを作り、Discordの方でもadminというチャンネルを作り、config.ymlのChannelsでリンクをさせました。
DiscordのチャットはMinecraftの方に送られるのですが、Minecraftの方から送っても送られません。
BOTはすべての権限を与えています。
どのようにしたら相互で出来ますか?
お教えくださいましたらありがたいです。


生成されるconfig.yml内から下記を見つけてfalseをtrueに書き換えて下さい。
コード: 全て選択
DiscordChatChannelMinecraftToDiscord: false <-- true



yuitaka523 さんが書きました:質問なのですが、マインクラフト上でBANされた時にDiscord側にも通知を知らせることはできますか?

DiscordSRVを使う場合はDiscordにコンソールを表示させるという方法でBAN自体を出すことはできますが、純粋にBANだけを出すのは無理かと思います。
一応サーバの管理をしてます。
だけど、知識はへっぽこです
アバター
SNAKE
ID:488337f4
金掘り
 
記事: 429
登録日時: 2013年3月21日(木) 21:28
お住まい: japan

  • (PostNo.307019)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by aroha777 » 2017年8月27日(日) 16:18

現在こちらを見て設定をしたのですが、discordからMinecraftへは出来るのですが、Minecraftのチャットが/discord bordcast を使わないとdiscordに写りません。サーバーに入っているプラグインのPermissionEXが原因だと思うのですが、permissionEXが入っててもMinecraftのチャットをdiscordに写す方法は無いでしょうか?
※厳密にいうと恐らくプレイヤー名の前に付く役職のタグ[Admin]などが原因だと考えられます
aroha777
ID:e950a9dc
水から上がったとこ
 
記事: 6
登録日時: 2017年1月25日(水) 16:04

  • (PostNo.307216)

Re: [Bukkit] Discordとチャットの連携 - DiscordSRV 【プラグイン紹介】

投稿記事by main1108 » 2017年9月01日(金) 06:38

このサイトを見て設定したのですが、URLの取得に失敗しました https://raw.githubusercontent.com/Scars ... nimumbuild: https://raw.githubusercontent.com/Scars ... nimumbuildと表示されてBOTがオンラインになりません、解決法を教えてください。
main1108
ID:a0f69fd1
水から上がったとこ
 
記事: 1
登録日時: 2016年11月09日(水) 23:47


Return to サーバーMOD,プラグイン 公開/紹介

x