discord投票ボット制作

discordの投票を自動で作成してくれるjavaソフトウェアを作成しました。

前提

自身のマイクラサーバーにて、投票を定期的に取りたかったため、こちらのbotを開発しました。

ChatGPTが主にコードを記述し、筆者はデバッグのみやります。かなり便利な時代になりました。この投票BOTを作るのにかかった時間は僅か2時間ほどです。

コードは300行400行もあるのにすぐに生成することができます。筆者の場合はプログラミングをコツコツやるよりそのソフトウェアの拡張について考えたり調べたりする方が良さそうだなと思ってしまいました。

githubリンク

githubにコードを公開しました(GPL-v3ライセンスです)

https://github.com/nanosize/DiscordVote

使い方

まず最初にパッケージからvote-x.x.jarをダウンロードし、適当な場所にそのファイルを設置する。 (できれば競合を防ぐためにこれ専用のディレクトリを作成してください。)
とりあえず一度実行してください。そうするとconfigファイルが作成されますので、中身を編集してください。(javaソフトウェアなのでパッケージのインストールの必要がありません!簡単!)

config.yml

configファイルで指定した投票を実行することができます。yml形式で記述してください。

discordのtokenには discord developers でアプリを作成し、発行されたtokenを貼り付けてください tokenを発行するにあたっての参考サイトはこちら

ymlはマイクラサーバーをきっかけによく使うようになったファイル形式です。整っていてかなり使いやすいです。

discord: token: "YOUR_DISCORD_BOT_TOKEN" channelId: "DISCORD_CHANNEL_ID"
poll: # 投票の持続時間(例:"30s", "1h", "3d", "1w", "2w" など) duration: "1h" # 投票の質問文(%month%、%date% などのプレースホルダーを置換可能) question: "本日の投票 (%month%/%date%) です。どちらを選びますか?" # 投票開始直前に送るメッセージ preMessage: "投票開始直前のお知らせです (%month%/%date%)" # 投票オプションの一覧 # content: 投票で表示する文字 or 絵文字 # endMessage: 最も得票数が多かった場合に送信するメッセージ # emojiName: デフォルト絵文字の場合は name, カスタム絵文字の場合は id を指定する(後述) options: - content: "項目1" endMessage: "@everyone 投票結果は項目1でした" emojiName: "👍" # デフォルト絵文字の場合 { "name": "👍" } - content: "項目2" endMessage: "@everyone 投票結果は項目2でした" emojiName: "👎"

Placeholder

このプラグインではconfig.ymlで使用できるPlaceholderが用意されています。下のの二つです。これらをcontentの中などに入れると自動で実行時点の実際の日時と入れ替わります。

%month%
%date%

crontabの設定

このソフトウェアは、定期的に同じ内容の投票を行いたい場合を想定しています。部活の出欠管理とかにもいいかもしれません。

VPSや自宅サーバーなどを使用する際はCrontabを利用するといいかなと思います。
参考サイトはこちら

0 1 * * * root java -jar /opt/discordvote/vote-1.0.jar 

このように設定すると毎日1:00に投票がconfig.ymlの内容に基づいて実行されます。