Discordで汎用的に使えるBotを探していますか?
YAGPDBなら一通りの汎用的な機能が揃っているのに加え、ソースコードが公開されているので自分で拡張することも可能です。
この記事ではDiscordのYAGPDBの使い方とコマンドを解説します!
ちなみに、YAGPDBはYet Another General Purpose Discord Bot(さらにもう一つの汎用Discord Bot)という意味です。
Contents
- 1 YAGPDBのインストール方法
- 2 YAGPDBの使い方
- 2.1 Core
- 2.2 ControlPanellogs
- 2.3 CommandSettings
- 2.4 CustomCommands
- 2.5 General(Notification&Feeds)
- 2.6 Reddit
- 2.7 Streaming
- 2.8 YouTube
- 2.9 Moderation
- 2.10 Basic Automoderator
- 2.11 Advanced Automoderator
- 2.12 Logging
- 2.13 Autorole
- 2.14 Role Commands
- 2.15 Ticket System
- 2.16 Verification
- 2.17 Reputation
- 2.18 Soundboard
- 3 YAGPDBのコマンド
- 4 YAGPDBのセルフホスト
YAGPDBのインストール方法
- step1Add to serverをおす

YAGPDBのサイトに行き、Add to serverをおしましょう。
- step2導入サーバーを選択する

サーバーを選択して、はいをおします。
- step3認証をする

権限を確認し、認証を押します。
- step4私は人間ですにチェックをいれる

私は人間ですにチェックを入れます。
- step5YAGPDBがDiscordに追加される

Discord上でパーティに加わりましたと表示されます。
- step6Click here to start manage itを押す
Webの管理画面上にBot Added to ~~(サーバー名)と表示されているパネルがでてくるので、「Click here to start manage it」をおします。

管理画面が表示されたらOKです。

途中で管理画面に入ってしまった場合は右上のSelectServerからサーバーを選ぶことでBotのインストール手順に進むことができます。
それでもうまくいかない時は一度ログアウトして再度試してみましょう。

YAGPDBの使い方

YAGPDBは以下の4つのメイン機能からなります。
| 機能 | 内容 |
| Core | コマンドに関する設定を行うことができます。 Core、ControlPanellogs、CommandSettings、CustomCommandsの4つのカテゴリーの機能に分かれます。 |
| Notification&Feeds | サーバー通知に関する設定を行うことができます。General(サーバー参加時等)とReddit、Streaming、YouTubeの4つのカテゴリーの機能に分かれます。 |
| Tools&Utilities | 便利機能がまとまっているものです。 ・Moderation ・Basic Automoderator ・Advanced Automoderator ・Logging ・Autorole ・Role Commands ・Ticket System ・Verification の8つのカテゴリーの機能に分かれます。 |
| Fun | コミュニティ遊びに関する機能がまとめられています。ReputationとSoundboardの2つのカテゴリーの機能に分けられます。 |
Core

コントロールパネルに対して読み書きできるロールを設定することができます。
ControlPanellogs

ControlPanelで行われた動作に対するログが記載されていきます。
一部はBotによる処理も記載されますが、その場合のIDは注釈欄に記載されています。
CommandSettings

コマンドのprefixやコマンドを実行できる人のRoleの制限を作成することができます。
CustomCommands

カスタムコマンドを作成したり、編集したりすることができます。
General(Notification&Feeds)

サーバー通知の設定を行うことができます。
対象となるのは
- サーバーのチャンネル参加時
- ユーザーの退出時
- DMの開始時
- チャンネルトピックの変更時
の4つのタイミングでのメッセージを設定することができます。

Redditでの投稿がされた時にDiscordにも通知を送ることができます。
Streaming

サーバーメンバーが配信を開始した時の通知の文面を設定することができます。
YouTube

登録したYouTubeチャンネルが動画・プレイリストを投稿するか、ライブ配信を開始した時にDiscordチャンネルに通知を送信する機能です。
Moderation

モデレーションに関する設定を行います。
- report・clean・giverole/addrolel・removeroleコマンドを使えるようにするかどうか
- 指定イベント(ban・unban・kick・timeout・giverole/addrolel・removerole)のログを残すか
について設定することができます。
Basic Automoderator

基本的なモデレーションの設定を行うことができます。
対象となるのは
- slowmode(レートリミット)
- 大きめのメンション
- サーバー招待
- リンク
- 禁止ワード
- 禁止サイト
について設定することができます。
Advanced Automoderator

ルールセットをカスタムで作成して保存しておくことができます。
複数のサーバールールがある場合(特定の日だけは許されるアクションがある等)に作成したり、切り替えて使うことができます。
Logging

ログデータとそれを扱えるロールについて設定することができます。
Autorole

一定時間経過後にメンバーに付与するロールを設定することができます。
Role Commands

ロール作成のコマンドとグループ作成のコマンドを作成することができます。
Ticket System

Ticketコマンドの実行権限について設定することができます。
チケットコマンドは特定のテーマについて話し合う議題を立てる機能です。
(開発系の用語のチケットであって、券という意味ではないですよ。)
Verification

人間ですかのリキャプチャを行うかどうかについて設定することができます。
数秒以上応答がなければkickするなどのオプションも存在しています、
Reputation

レピュテーション機能に関する設定を行うことができます。
サーバー独自の名前のポイントを作ったりすることができます。
Soundboard

楽曲をアップロードして使うサウンドボード機能について設定することができます。
YAGPDBのコマンド
| コマンド | 内容 |
| 8ball | 質問を行うことができます。 |
| advice | アドバイスを求めることができます。 |
| automod rulesets | 全てのルールセットとステータスを確認することができます。 |
| automod toggle | ルールセットのON/OFFを切り替えます。 |
| automod logs | 実行されたルールセットのログを表示します。 |
| automod listviolations | 特定のユーザーの違反行為のリストを表示します。 |
| automod listviolationscount | 特定のユーザーの全サーバーでの違反行為の数を表示します。 |
| automod deleteviolation | 指定の違反IDを削除します。 |
| automod clearviolations | 特定のユーザーの違反を全て削除します。 |
| ban | メンバーをBANします。 |
| cah create | cards against humanity gameを作成します。 |
| cah end | cards against humanity gameを終了します。 |
| cah kick | cards against humanity gameから特定のプレイヤーをキックします。 |
| cah packs | cards against humanity gameで使えるパックの一覧を表示します。 |
| calc | 電卓機能です。 |
| catfact | 猫に関する情報を教えてくれます。 |
| clean | メッセージを削除します。 |
| clearwarnings | 特定のユーザーの警告を削除します。 |
| creminders | リマインダーの一覧を表示をします。 |
| customcommands | カスタムコマンドの一覧を表示します。 |
| dadjoke | dadjokeを教えてくれます。 |
| delreminder | リマインダーを削除します。 |
| delrep | 特定の誰かのrep(レピュテーション)を削除します。 |
| delwarning | 指定したIDの警告を削除します。 |
| dictionary | 言葉の定義を調べることができます。 |
| dogfact | 犬に関する情報を教えてくれます。 |
| editwarning | 警告を編集します。 |
| events create | イベントを作成します。 |
| events edit | イベントを編集します。 |
| events list | イベントの一覧を表示します。 |
| events delete | イベントを削除します。 |
| evemts stopsetup | イベントの作成を途中で強制終了します。 |
| forex | 通貨の換算を行えます。 |
| giverep | rep(レピュテーション)を誰かに付与することができます。 |
| giverole | ロールを誰かに付与することができます。 |
| howlongtobeat | ゲームの情報を教えてくれます。 |
| inspir | インスパイアする引用を持ってきてくれます。 |
| kick | 特定のメンバーをキックします。 |
| logs | 最新のメッセージのログを出力してくれます。 |
| mute | 特定のメンバーをミュートします。 |
| poll | シンプルなリアクションを返してくれます。 |
| reason | モデレーションログの理由を追加したり編集したりすることができます。 |
| reminders | リマインダーの一覧を表示します。 |
| remindme | 自分に対してのリマインドを作成します。 |
| removerole | ロールを削除します。 |
| removetimeout | メンバーのタイムアウトを削除します。 |
| rep | 自分のrep(レピュテーション)を表示します。 |
| replog | 特定のユーザーのrep(レピュテーション)の履歴を表示します。 |
| report | 特定のメンバーに関してサーバーのスタッフに連絡します。 |
| roast | ランダムにroastを送信します。 |
| role | ロールを切り替えます。 |
| rolemenu create | ロールメニューを作成します。 |
| rolemenu remove | ロールメニューを削除します。 |
| rolemenu update | ロールメニューをアップデートします。 |
| rolemenu resetreactions | ロールメニューについた全てのリアクションを削除します。 |
| rolemenu editoption | ロールメニューの絵文字を変更します。 |
| rolemenu complete | ロールメニューを完了します。 |
| rolemenu listgroup | ロールグループをリストアップします。 |
| roll | ダイスロールを行います。 |
| setrep | 誰かのrep(レピュテーション)を設定します。 |
| simpleembeded | シンプルなembedを作成します。 |
| soundboard | サウンドボードを再生か一覧表示します。 |
| soundboardreset | サウンドボードをリセットします。 |
| takerep | 誰かのrep(レピュテーション)を取り除きます。 |
| throw | 何かを投げます。実行するとThrew money at a random person nearbyのような文章が生成されます。 |
| tickets open | チケットをオープンします。 |
| tickets adduser | チケットにユーザーを追加します。 |
| tickets removeuser | チケットからユーザーを削除します。 |
| tickets rename | チケットの名前を変更します。 |
| tickets close | チケットをクロースします。 |
| tickets adminsonly | チケットを管理者限定にするか切り替えられます。 |
| timeout | 特定のメンバーをタイムアウトします。 |
| topic | 話題を作成します。 |
| toprep | rep(レピュテーション)のランキングを表示します。 |
| topwarnings | 警告のランキングを表示します。 |
| unban | 特定のユーザーをUNBANします。 |
| unmute | 特定のユーザーをUNMUTEします。 |
| warn | 特定のユーザーに警告します。 |
| warnings | 特定のユーザーの累積された警告の一覧を表示します。 |
| weather | どこかの天気を表示します。 |
| whois | 特定のユーザーの情報を表示します。 |
| xkscd | xkcdのコミックを表示します。 |
YAGPDBのセルフホスト
YAGPDBのコードはGitHubのこちらのリポジトリで公開されています。
自由に拡張して使っても良いとのことなのでもしもコードが書ける人は機能拡張に挑戦してみても良いかもしれません。