MENU
Khsmty
よわよわプログラマー
メイン言語は TypeScript。Rust を勉強中。
アーカイブ

discord.jsで会話機能を作る

  • URLをコピーしました!

この記事は、2021年4月13日に Zenn で投稿した記事を一部書き直したものです。

Discord でメッセージに反応する bot ってありますよね。

有名どころでいえば、そうだよ(便乗)Bot とか Dorayakingbot とか。

この記事では、そんな感じの会話機能を作っていきます。

目次

反応するチャンネルを決める

さすがに全チャンネルで反応させるのはウザイので、反応させるチャンネルをトピックで判別することにします。

以下のコードでは、チャンネルトピックに Botと会話 が含まれる場合にのみ反応するようにしたものです。

+ client.on('message', message => {
+   if (message.channel.topic == null) {
+     return;
+   }
+   if (message.channel.topic.match(/Botと会話/)){
+
+   }
+ });

ユーザーの入力に反応するようにする

ユーザーがどんな送り方をしてくるかわからないので、.match(/hoge/) を使用します。

() 内は正規表現が使えます。正規表現の書き方は調べてください。

凡ミスを修正しました(2021/04/01)

client.on('message', message => {
  if (message.channel.topic == null) {
    return;
  }
  if (message.channel.topic.match(/Botと会話/)){
+     if (message.content.match(/おはよう/)) {
+       message.reply("おはようございます!今日もいい1日を!");
+     } else if (message.content.match(/おやすみ/)) {
+         message.reply("おやすみなさい!いい夢を!");
+     } else if (message.content.match(/疲れた/)) {
+         message.reply("お疲れ様!ゆっくり休んでね!");
+     }
  }
});

↑ は。

おはよう -> おはようございます!今日もいい 1 日を!

おやすみ -> おやすみなさい!いい夢を!

疲れた -> お疲れ様!ゆっくり休んでね!

を送信するようになっています。

反応単語を増やす

以下をコピペすればいくらでも量産できます。

   else if (message.content.match(/hogehoge/)) {
     message.reply("fugafuga");
}

おわり

最近記事が短めですね…。

もっと深いこともやりたいと思った今日この頃。

ご不明点などありましたらコメント欄までお願いします!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする


目次