【发布时间】:2020-08-04 21:18:07
【问题描述】:
我为我的私人不和谐服务器制作了一个大规模 dm 机器人,我一直在使用它并做赠品。因此,我编写了一个机器人,它将为每个人发送消息:如果有赠品或游戏锦标赛等。每次我运行命令 +damall 时,一切都开始正常运行,但是当没有我成为朋友的用户得到来自机器人的 dm 完全停止,我收到错误消息。
现在这里是代码:
const { Command } = require('discord-akairo');
const { resolve } = require('path');
const delay = (msec) => new Promise((resolve) => setTimeout(resolve, msec));
class RecentCommand extends Command {
constructor() {
super('massdm',{
aliases: ['dmall'],
args: [
{
id: 'ID'
}
],
channel: 'guild'
});
}
async exec(message, client) {
let Owner = message.author;
if(Owner.id !== "727447049892659200") return message.reply("Only the bot owner can use this command!")
let text = message.content.slice('+dmall'.length); // cuts off the /private part
setTimeout(function(){
try {
message.guild.members.cache.forEach(member => {
delay(100);
member.send(text)
})
}catch(e) {
}
}, 1);
return message.channel.send(`dming ${message.guild.members.cache.size} members`)
}
}
module.exports = RecentCommand;
这是当机器人向一个没有朋友的人发送消息时我得到的错误:
【问题讨论】:
-
我相当肯定,这是 Discord 方面经过深思熟虑的设计决定 - 它可以防止网络内出现大量广告和垃圾邮件等事情。使用适当的异常处理/
try/catch块来适当地处理这些错误并从这些错误中恢复。
标签: javascript discord.js