Prevent Discord bot from responding to direct messages
|To prevent the Discord bot from responding to direct messages, you can add a check at the beginning of the code to see if the message came from a direct message channel. If it is a direct message, return it without taking any action.
You can check if the message’s channel is a guild channel (a server channel) by looking at the guild_id
property. If guild_id
is undefined, it means the message is from a direct message channel, and the bot should not respond. Here’s the corrected modification:
// Check if the message is from a direct message channel
if (!event.guild_id) {
return;
}
The example code is integrated.
// authenticates you with the API standard library
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
let event = context.params.event;
let mentions = event.mentions;
let botMention = mentions.find(mention => mention.bot);
let content = event.content;
let author = event.author;
let message = content.replace(/<@(\d+)>/gi, ($0, $1) => {
let mention = mentions.find(mention => mention.id === $1);
if (mention) {
return `<@${mention.username}>`;
} else {
return `<@:unknown>`;
}
});
// Check if the message is from a direct message channel
if (!event.guild_id) {
return;
}
message = message.trim();
let botName = `<@${botMention.username}>`;
let prompt = message;
// Get rid of the bot name if it's at the start of the message