我如何 DM 将直接消息放入公共频道而不发送垃圾邮件的机器人
Posted
技术标签:
【中文标题】我如何 DM 将直接消息放入公共频道而不发送垃圾邮件的机器人【英文标题】:how do i DM the bot which puts direct messages into a public channel without spamming messages 【发布时间】:2021-02-10 07:38:10 【问题描述】:所以我在这里使用的是一个不和谐的机器人,它应该在公会/不和谐服务器的公共频道中发布相同的消息(我将它发送给它)。但我的问题是,由于某种原因,它每秒会发送 6 条垃圾邮件。
在下面我描述了我所做的几乎所有事情。我敢打赌,我就像婴儿一样远离正确编写代码,但我正在努力解决它应该花费的时间。
我一直在寻找很多解决方案并尝试了我遇到的许多变体,这让我越来越困惑 client.on('ready') 或 bot.on()
当我使用 client.on() 时,我得到一个 ReferenceError: msg is not defined 错误。 我找不到问题出在哪里。 当我使用 bot.on() 时,它说''ReferenceError: bot is not defined''。我用谷歌搜索,有人说你记下了''client.on()''等。
所以我很沮丧,决定在这里问一个可以为我写下我似乎无法修复自己的代码的人。我只是浪费了太多时间。我将非常感谢您提供的任何帮助!提前致谢!
所以无论如何这是我的代码:
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () =>
console.log(`Logged in as $client.user.tag!`);
);
client.on('message', msg =>
console.log('Message received: ' + msg.content);
const channel = client.channels.cache.get('CHANNEL ID');
if (msg.content)
channel.send(msg.content);
);
client.login('BOT TOKEN');
【问题讨论】:
【参考方案1】:您的机器人只是对自己做出响应。它回复您的消息,然后回复对您的消息的回复,然后回复对您的消息的回复的回复,等等。您可以通过检查消息作者是否是具有User.bot
的机器人来防止这种情况发生。
您还应该检查消息是否在 dm 中发送,这样它就不会在每条随机消息上触发。
client.on('message', (msg) =>
if (msg.author.bot || msg.channel.type !== 'dm') return;
console.log('Message received: ' + msg.content);
const channel = client.channels.cache.get('CHANNEL ID');
if (msg.content)
channel.send(msg.content);
);
【讨论】:
以上是关于我如何 DM 将直接消息放入公共频道而不发送垃圾邮件的机器人的主要内容,如果未能解决你的问题,请参考以下文章
如何使不和谐机器人将消息发送到不和谐 Node js 的特定频道机器人
有没有办法让我的机器人检查 DM 并将它们发布到我服务器的频道中?
无法将 DM 发送到消息到 DB discord.js 中的存储用户