こんにちはっ!
今回は、特定のワードに反応するBotをdiscord.jsで作っていこうと思います。
Discord Botの作り方
こちらの記事にて詳しく説明しています!
わからないという方はこちらを先にお読みください。

サルでもわかる Discord Botの作り方
サルでもわかる Discord Botの作り方をゼロから説明していくシリーズです。
コード
コードは非常に短いです。
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMessages] });
client.login("<BotのToken>");
client.on('ready', () => {
console.log(`${client.user.tag}`);
});
client.on('messageCreate', message => {
if (message.author.bot) return;
if (message.content.includes('<反応するワード>')) {
message.channel.send('<Botが返す文章>');
}
});
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS] });
client.login("<BotのToken>");
client.on('ready', () => {
console.log(`${client.user.tag}`);
});
client.on('messageCreate', message => {
if (message.author.bot) return;
if (message.content.includes('<反応するワード>')) {
message.channel.send('<Botが返す文章>');
}
});
以下のようにワードと文章を設定するとこのようになります。<反応するワード>
: なりかくん<Botが返す文章>
: なりかくんのブログを見ましょうね!
するとこのようになります。
しっかりと、”なりかくん”にだけ反応するBotになってますね!

終わりですっ!
失礼します。文を送るコードをコピーしてメッセージを送っても反応しません。特にターミナルやデバッグコンソールではエラーメッセージは無いです。
client.on(‘message’, message=> {
if (message.content ===’○○’) {
message.channel.send (‘○○’);
}
});
v 13じゃ無理とかですかね、、?
こんにちは、イベントが間違っています。
messageイベントではなく現在はmessageCreateイベントを利用する必要があります。また、インテントを有効化しているかも確認してみてください。
こちらの他にも入門のブログも拝見させていただきました。
入門編のサーバへの「指定したチャンネルにこのように参加通知メッセージ」は正常に稼働したのですが、こちらのコードもエラーは出ませんが、設定した文字列をdiscordで入力しても返ってきません。
こちらどのような原因が考えられるでしょうか。
当ブログをご覧いただきありがとうございます。
考えられる原因としましては、特権インテントを有効にしていない。またはインテントの指定が間違っている可能性があります。
そちらのご確認をよろしくお願い致します。
早速ご返答いただきありがとうございます。
インテントにつきまして、「SERVER MEMBERS INTENT」のみ有効化となっていたので下記の3つをすべて有効にしましたがやはり反応せず、、
PRESENCE INTENT
SERVER MEMBERS INTENT
MESSAGE CONTENT INTENT
また、botの権限も管理者権限を与えています。
他に何か考えられる要因はありますでしょうか。
ソースコード内のintentsにてGatewayIntentBits.GuildMessagesが正しく指定されているかご確認いただけますか?
よろしくお願い致します。
特定の文字を含むメッセージにリプライするようにはどのようにすればよいですか?
当ブログを御覧いただきありがとうございます。
message.channel.send('');
をmessage.reply('');
にしていただくことでリプライに変更が可能です。