ボットとは?ボットの操作方法

ページ名:ディスコードボットの基礎知識

ディスコードのボット(BOT)とは?

ディスコード本来の機能に各種の機能を追加する仕組みで、コンピューターがサーバー(ギルド)に参加し、ユーザーからのコマンドで動作したり、自動的または定期的に動作をしたりします。

例:音楽再生、ロール付与、ゲーム、自動返信、メッセージ自動削除等

この参加するコンピューターがボットです。

ボットは一見特殊な事をしているように見えますが、それは人間には不可能なほど高速かつ大量に判断や操作を行っているからなのと、ボットに対して一般ユーザーより上位の権限を与えている事が多いからであって、特殊な事をしているのではありません。
ディスコード側から見ると人間もボットも単なるユーザーですので、ボットができる事も人間ができる事もほぼ変わりません。
但し、埋め込みメッセージ等ごく一部にボットにしかできない事があったり、逆にサーバー内のメッセージ検索など人間ができてボットにできない事もあったりはします。

ボットの導入はサーバーの管理者が行います。
ユーザーは導入されたボットの機能の中で管理者がユーザーに解放した機能を使う事ができます(通常は、ボットの設定機能やサーバー管理系機能は一般ユーザーには解放されていません)。

ボット(BOT)の語源は『ロボット(ROBOT)』です。

ボットの操作方法

自動・半自動・定期実行的なものは特に操作がありませんので触れません。
コマンド(命令)での実行は決められたコマンドをテキストチャンネルに投稿(発行)して操作しますが、2通りありますので説明します。

(従来方式の)コマンドで操作

プレフィックス + コマンド + (必要なら)引数

ボットにはそれぞれプレフィックス(先頭の文字)とコマンド、引数(コマンドによっては無い)があります。
プレフィックスはボットによって異なりますが、ハイアットのオリジナルボットは基本的には『/』です。
プレフィクスは一文字とは限りませんし、記号だけとも限りません(例『m!』等)
引数は命令するにあたってボットに与える内容です。

コマンドの発行は
プレフィックス + コマンド名 +  (半角スペース + 引数)
の形になります(カッコ内は引数の必要なコマンドのみ)。
例えば、ツーショットルームの名前を変更するtsrenameというコマンドだと

/tsrename ちょっとだけエッチな話ししませんか?

となります。
後半の日本語文字が引数で、変更後の名前を指定しています。
例えば、自分の投稿を削除する等のコマンドの場合、引数は必要ないのが分かると思います。

(新方式の)スラッシュコマンドで操作

従来の方式との違いを説明するのが難しいのですが…
テキスト入力欄に『/』を入力すると、コマンドの候補が表示され、そこから選択してコマンドを実行できるというものです。
候補が多い場合は、コマンド名を入力していくと絞り込みもしてくれますし、コマンド名の下に説明も表示されるので非常に便利です。

スラッシュコマンドの例
スラッシュコマンドの例

一見、『ハイアットのボットのプリフィックス / を入力すると候補を表示してくれている』のように感じますが実は違います。
たまたまハイアットのプリフィクスが/だっただけの事で、例えばハイアットのプリフィクスが『!』だったとしたら、テキスト欄に『!』を入力しても候補の表示はしてくれません。

つまり、『従来とは別の/で始まるコマンドを新しく作って』ディスコードに登録しているにすぎません。
ですので、ハイアットで『/』を打って選択肢として表示されるコマンドと、『/コマンド名』とテキストチャンネルに打って表示されるコマンドは、名称や動作が似ていても中身は別物となります(極力、違いが無いようには作っています)。
また、同名のコマンドが作れません(実際は作れますが、新方式が優先されるのでテキスト欄に入力できません)。

上記の通り、スラッシュコマンドは字のごとく必ず/で始まりますので、どのサーバーでどのボットのスラッシュコマンドを探すにも、必ず/を入力して探して下さい(他の文字を入力しても何も起こりません)。

間違った説明ですが、そう思ってもらっても大丈夫そうな説明

ハイアットのボットのプリフィックスは基本的に『/』です。
なので、『/削除』のようにプリフィックスの後ろにコマンド名を付けて実行します。

その中で、よく使うもの・重要なものは『/』を入力すると候補が出ます。
あまり使われないものは邪魔になるので候補には出していませんが、コマンドとしては存在しているので手動で入力すれば実行できます。
スラッシュの候補に表示されないコマンドも多数ありますので、従来方式で実行してください。

※ この説明はあくまでもイメージなので正しくはありませんが、ハイアット内に限って言えばこう思ってもらって問題ないです。

『新方式』『従来方式』と表現していますが、少なくとも数年程度は従来方式は残り続けますし、『新方式の大幅変更』や『更に新しい新方式の実装』も当然あり得ますので、これらの言葉は現時点の便宜上表現と思って下さい。

ハイアットオリジナルボットについて

ハイアットにはエロイプ・寝落ち通話界隈に特化した複数の独自開発ボットが導入されています。

用途別に分かれているのですが、数が多くて混乱する可能性があるので簡単に説明します。

うどんボット#5448

主に、参加者が使うコマンドやゲームが搭載されていて、他のサーバーにも貸し出す事があります。
イベントサーバー・合同サーバーなどで見かける事があると思います。

通常のコマンドの大半はこのボットが受け付けます。

prefixは/です。

HY@TT BOT#0171

主にハイアット内のバックグラウンドで行われる処理を担当しています。
例:入退会処理、ロール自動付与などなど

他のサーバーに貸し出しませんのでハイアットとごく一部の兄弟サーバーでのみ稼働しています。

ユーザーがこのボットに対して発行できるコマンドはごく僅かです(必要ないので)。

HYATT DB#0169

このボットはブラックリスト(拒否登録)システムを担当しています。
稀に他のサーバーに貸し出していますが、ブラックリスト機能(誰が誰を拒否しているかのデータの登録・削除・照会)だけでは何もできないので、他のボット(主にうどんボット)とセットで貸し出します。

うどん製麺#1222

開発用ボットです。
その時々によって搭載されている機能が変わりますが、メンバーの方とは直接関係ありません(たまに開発中の機能をテストしてもらう事はあります)。

Days Bot#1858

オリジナルボットではありますが、10Days専用機能ですので意識する必要はありません。
このボットがハイアットで行っている事は、10Days参加者が『ハイアットに所属しているか』『ハイアットからの入場資格を持っているか』の確認のみです。

今後の予定

数が多いとは思うので、整理統合した方がいいのか、このままでいいのかは常に検討しています。
が・・結論はでていません。
整理統合する方がいいという結論に傾いてはいますが、ネーミングの問題が結構大きくて・・・
他に貸し出す時に「ハイアットボット」というのはちょっと使いにくいかなあという・・・