javascript - 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');
解决方案
检查消息是否来自公会应该可以阻止这种情况。如果message.guild
是真值,则提前返回(在 DMmessage.guild
中null
是假值)
if (message.guild) return;
你可以把它放在事件回调的顶部,这样如果它在公会中,什么都不会运行
推荐阅读
- javascript - 主题未应用于反应本机应用程序
- selenium - 行中的空指针异常错误 (driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 浏览器调用后无法获取url
- javascript - 如何更新 d3.js 堆积面积图?
- docker - 如何使用 CMD 在 docker 容器中运行 terraform apply --auto-approve
- wordpress - Google Drive Gallery 插件问题 - WordPress
- react-native - Expo React Native 进入视图时执行函数
- machine-learning - yolov4 的暗网掩码和锚点值
- ios - 与 AppDelegate 和 SceneDelegate 的深层链接
- javafx - 如何切换 JavaFX PasswordField 文本可见性
- c++ - 在 C++ 中创建具有变量名的文件