1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ConoHaAdvent Calendar 2021

Day 19

このはちゃんにDJやってもらう(Discord ボイスチャットBGMBot)

Last updated at Posted at 2021-12-19

2022/07/31 run.sh 0.7.0 対応
2022/04/09 run.sh 0.6.8 対応

今日は某PVでDJやってたのでDJしてもらいます(圧

環境、使う物

VPS環境構築

ともあれベースとなるVPSを用意します

ConoHaトップページのログインからコンソールに入りましょう

image.png

サーバー追加
image.png

  • 今回試験環境なのでVPS割引きっぷは使わず
  • 512MBプランで行きます
    切符、サイズは環境に合わせて作ってください
  • イメージは今回AlmaLinux使います
    去年の年末からCentOSの動きが激しかったのでAlmaLinux使って行きます
    まあどうせDockerが動けばホストOSは何だっていいんです
  • パスワードはジェネレータで適当に長いものを入れています
  • ネームタグもわかりやすい物を
  • SSH Keyは無い場合は新規作成、既存の物を使う場合はキーを選択します
  • スタートアップスクリプトはyum upgradeにとどめておきます
    image.png
#!/bin/bash
yum -q -y makecache
yum -q -y upgrade

reboot

では作成しています

image.png

VSCode接続

VSCodeにリモート環境をインストールします
これらをインストールしおきます

image.png

Remote Explorerを選択し、SSH Targetに切り替え

image.png

:gear:を選択し.ssh/configを選択

image.png

Hostとユーザ、ポート、SSH鍵を指定して保存します
image.png

追加されました
image.png

右端の新規Windowを選択
image.png

当然LinuxなのでLinuxを選択し
image.png

SSHフィンガープリントを許可するか問われるのでContinueします

Docker構築

SSH接続したVSCodeからターミナルを開きます

image.png

CentOS向けのインストール方法を参考に
https://docs.docker.com/engine/install/centos/

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

systemctl enable docker
systemctl start docker

ExtensionからDockerを追加
image.png

image.png

日本語のJapanese Language Packも必要であれば入れましょう

Dockerfile作成

アプリケーション仕様上
どうしても実行jarファイルと同ディレクトリに設定ファイルを
置いてしまうのでdocker-composeを使ってマウントしています

./Docker/docker-compose.yml
version: '3'
services:
  jmusicbot-jp:
    build: .
    volumes:
      - ./app:/app
    working_dir: /app

./Docker/Dockerfile
FROM openjdk:11-slim-buster

RUN apt update && \
    apt install -y wget && \
    apt clean && \
    rm -rf /var/lib/apt/lists/*

CMD /app/run.sh

./Docker/app/run.sh
#!/bin/sh
VER=0.7.0
CONFVER=0.7.0

if [ ! -e JMusicBot-$VER.jar ]; then
  wget -q https://github.com/Cosgy-Dev/JMusicBot-JP/releases/download/$VER/JMusicBot-$VER.jar
fi

if [ ! -e config.txt ]; then
  wget -q https://github.com/Cosgy-Dev/JMusicBot-JP/releases/download/$CONFVER/config.txt
fi

java -Dnogui=true -jar JMusicBot-$VER.jar

一応パーミッション変更しておきます

chmod 777 app
chmod +x app/run.sh

Docker起動

cd ./Docker
docker-compose up

起動するとトークン取得情報と
読み込むconfigファイルが表示されます

jmusicbot-jp_1  | BOTトークンを入力してください。
jmusicbot-jp_1  | トークンを取得する方法はこちらから:
jmusicbot-jp_1  | https://github.com/jagrosh/MusicBot/wiki/Getting-a-Bot-Token.
jmusicbot-jp_1  | BOTトークン: 
jmusicbot-jp_1  | [08:38:47] [WARN] [Config]: トークンが入力されていません!終了します。
jmusicbot-jp_1  | 
jmusicbot-jp_1  | 設定ファイルの場所: /app/config.txt

ホストには
jarファイル config.txtが落ちてきています
image.png

バージョンによってはconfig.txtが提供されていないのでappの中にホストでconfig.txtを落として配置すれば大丈夫です

トークン取得

MusicBotの公式を参考に取得します
https://github.com/jagrosh/MusicBot/wiki/Getting-a-Bot-Token

ApplicationPageリンクがDiscordログインだけだったので以下から
https://discord.com/developers/applications
image.png
image.png
アイコンを設定します
このは壁紙から拝借
image.png
設定保存して
image.png

BOTトークンを発行します
ユーザー名を変更して
Public bot / oath2 codeをOFF
image.png

Token Copyして
config.txtに貼り付け

New Applicationから

image.png

ユーザID取得

公式を参考にします
https://github.com/jagrosh/MusicBot/wiki/Finding-Your-User-ID

Method2が分かりやすいかと思います

  1. ユーザー設定から
  2. Develop modeをONにして
    image.png
  3. IDをコピー
    image.png
  4. config.txtに貼り付けします
    image.png

その他設定

config.txtを設定変更していきます
以下は自由に変更

チャットルームでコマンドを使うため
prefix = "!!"
を設定します

コマンド周りは何か使い勝手いい感じに

  // Music commands
  lyrics = []
  nowplaying = [ np, current, pwd ]
  play = [ p ]
  playlists = [ pl ]
  queue = [ list, q, ls ]
  remove = [ delete, rm ]
  scsearch = []
  search = [ ytsearch, find ]
  shuffle = [ rnd ]
  skip = [ voteskip, s ]

保存したらdocker-compose upします

jmusicbot-jp_1  | [09:34:19] [WARN] [Settings]: サーバー設定を読み込めませんでした(まだ設定がない場合は正常です): java.nio.file.NoSuchFileException: serversettings.json
jmusicbot-jp_1  | [09:34:19] [INFO] [Startup]: /app/config.txt から設定を読み込みました
jmusicbot-jp_1  | [09:34:20] [INFO] [JDA]: Login Successful!
jmusicbot-jp_1  | [09:34:21] [INFO] [WebSocketClient]: Connected to WebSocket
jmusicbot-jp_1  | [09:34:21] [INFO] [JDA]: Finished Loading!
jmusicbot-jp_1  | [09:34:21] [WARN] [MusicBot]: このボットはグループに入っていません!ボットをあなたのグループに追加するには、以下のリンクを使用してください。
jmusicbot-jp_1  | [09:34:21] [WARN] [MusicBot]: https://discord.com/oauth2/authorize?client_id=****************&scope=bot&permissions=******

BOTログイン用URL発行されるのでブラウザで開きます
BOTを入れるサーバーを選択して はい 認証 私は人間です と進めます
image.png

追加完了!
image.png

ボイスチャンネルに接続してチャットルームで
!!play https://www.youtube.com/watch?v=p0V7Hl92uZY
と発言すれば

image.png
再生が始まります

これでDJこのはデビューです

Discordから!!shutdownでBotを一度停止し
docker-compose up -dでバックグラウンドで起動しておきます。

っていうかこのはぴば2021の3Dくそ可愛すぎん?(語彙力

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?