英文:
My discord Bot is Unable to read DM messages
问题
我知道"必须启用CHANNEL部分",而且已经启用了。但是我的机器人仍然无法识别直接消息。
这是我的代码:
const client = new Client({intents:[...],partials:[Partials.Channel,...]});
client.on("messageCreate", (message) =>{
if (message.channel.type === 'DM') console.log('收到直接消息');
})
机器人的其他部分都正常工作,只有这部分出了问题。
英文:
I know that "the CHANNEL partial must be enabled" and it is. But my bot still can't recognize DM messages.
Here is my code:
const client = new Client({intents:[...],partials:[Partials.Channel,...]});
client.on("messageCreate", (message) =>{
if (message.channel.type === 'DM') console.log('Dm recieved');
})
All the other parts of the bot work except this part.
答案1
得分: 0
请查看事件处理指南。我个人建议使用单独文件类型的事件处理器
示例:
const { Events } = require('discord.js');
client.once(Events.messageCreate, message => {
console.log(`消息事件触发!消息内容:${message.content}`);
});
我的建议(单独文件类型的事件处理器):
for (const file of eventFiles) {
const event = require(`./events/${file}`);
console.log(`| ✅ ${file} 已加载!`);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args, commands));
} else {
client.on(event.name, (...args) => event.execute(...args, commands));
}
}
module.exports = {
name: "messageCreate",
once: false,
async execute(message) {
// 处理消息的代码
}
}
您还可以尝试记录事件以检查是否被正确触发。
如果上述答案不起作用,您可以尝试以下代码:
if (message.channel.isDMBased())
英文:
Please see the guide on how to handle events. My personal recommendation is to use an individual file type event handler
Example:
const { Events } = require('discord.js');
client.once(Events.messageCreate, message => {
console.log(`Message event triggered! Message: {message.content}`);
});
My recommendation (individual file type event handler):
for (const file of eventFiles) {
const event = require(`./events/${file}`);
console.log(`| ✅ ${file} loaded!`);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args, commands));
} else {
client.on(event.name, (...args) => event.execute(...args, commands));
}
}
module.exports = {
name: "messageCreate",
once: false,
async execute(message) {
// Your code to handle messages
}
}
You can also try logging in the event to check if it's being triggered correctly.
If the above answers do not work, you can try this:
if (message.channel.isDMBased())
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论