首页 > 解决方案 > Discordbot 读取 DM 消息并记录它们

问题描述

我希望我的机器人只阅读 DM 消息并将它们发送到不和谐的频道,但是我的代码无限地发送垃圾邮件,发送 5 次垃圾邮件,然后暂停几秒钟,然后再次发送垃圾邮件,机器人也不只阅读 DM 消息并且还会阅读公会消息,因此如果我在公会中发送任何内容,它会发送垃圾内容。

我想要什么?如果有人发送“你好!” (消息内容)给 DM 中的机器人,机器人需要发送“你好!” (消息内容)到指定的频道(日志频道)。

const Discord = require("discord.js");  
const client = new Discord.Client({ intents:['DIRECT_MESSAGES'],
partials: ['MESSAGE'] });


client.on('ready', () =>{
    console.log('Bot Online!'); //bot successfully logged in

});


  client.on('message', async (message) => {
    await client.channels.cache.get('CHANNEL ID').send(message.content);
    console.log(message.content); //log messages
    return;
});
// Authorizing
client.login('LOGIN');

标签: javascriptnode.jsdiscorddiscord.js

解决方案


检查消息是否来自公会应该可以阻止这种情况。如果message.guild是真值,则提前返回(在 DMmessage.guildnull是假值)

if (message.guild) return;

你可以把它放在事件回调的顶部,这样如果它在公会中,什么都不会运行


推荐阅读