CSGOのサーバーステータスを監視するDiscord botの使用方法

GitHubでこんなものを見つけ、動作の確認をしましたので紹介します。

github.com

 

要はDiscordのテキストチャットにCSGOサーバーの情報を表示するbotです。情報は逐一チャットを投稿するわけではなく最初の投稿を編集する形で更新されていくため、ピン止めするか専用のチャンネルを作る必要があります。

 

サーバーの用意

botを常駐させたいのであれば、VPSでも何でもいいのでpythonが動くサーバーを用意してください。今回はWindowsで説明します。(Linux有識者ならWindows用の解説でも応用できるので・・・)

 

Pythonのインストール

https://www.python.org/downloads/

お使いの環境に合わせて3.6以上をインストールしてください。

 

botファイルのダウンロード

頭記のURLからファイルを一式ダウンロードし、サーバー上の適当なフォルダ(パスに2バイト文字が無いディレクトリが望ましい)に置いてください。

 

botの作成

https://discordapp.com/developers/applications/

①ここにアクセスし、メインで使っているdiscordアカウントでログインし、[New Aprication]からbotを新規作成します。アイコンや名前を決めたら一度[Save Changes]を押します。DESCRIPTIONは未記入で大丈夫です。

②左側のメニューから[bot]を選択し、右の方の[Add bot]を押すとなんか聞かれるので、[Yes, do it]を押します。

③BUILD-A-BOTにあるTOKENを後で使用するのでクリップボードにコピーします(General InformationにあるCLIENT IDやCLIENT SECRETは使いません)

 

bot初期設定

botファイル内のconfig.jsonをエディタで開きます

②さっきコピーしたTOKENを「"bot-token": "ここ"」に貼り付けます

③"update-time"は更新間隔を秒数で指定します。製作者が24秒以上推奨と言っているように、短すぎるとサーバーの負荷が大きくなりますので適度に調整してください。

④"community-name"はなんでもいいようです

⑤最初からサンプルとして書かれているものを参考にして表示したいサーバーの名前やIPを記入します

⑥"server-list-channel"には投稿したいテキストチャンネルのIDを入れます。テキストチャンネルのIDは開発者モードをオンにしてDiscord上でテキストチャンネルの名前を右クリックすると「IDをコピー」というので確認できます。

 

botをディスコードサーバーに呼ぶ

ディベロッパーページに戻って、OAuth2のタブを開きます

②SCOPESから[bot]を選択すると

https://discordapp.com/api/oauth2/authorize?client_id=クライアントアイディー&permissions=0&scope=bot

こんな感じのURLが生成されるので、URLをコピーして開きます。

③追加したいDiscordサーバーを選択して、認証を押します

④追加されました

 

必要なパッケージを入れる

コマンドプロンプトを開きます

②「python --version」と入力し、pythonが動いていることを一応確認してください

③必要なパッケージをいれます

python -m pip install -U discord.py

python -m pip install aiohttp

 

動作確認

①ファイルを入れたディレクトリに移動します

C:\Discord-Server-List-master

 ②起動します

python server-list.py 

 テキストチャットに投稿されれば成功です。指定した更新間隔で更新されているかを確認してください。

Linuxではscreenなどを使うといいと思います。

実はCSGOでなくてもsource系サーバーなら認識する気がします。未確認ですが。

 

半分自分用のメモなので画像も何も用意しませんでしたが、なにか質問があれば答えるかもしれません。