gpt4 book ai didi

javascript - 我该如何处理错误,忽略它并继续使用该功能?不和谐.js

转载 作者:行者123 更新时间:2023-12-03 08:20:00 24 4
gpt4 key购买 nike

我正在尝试与我所有的 friend 在我的私有(private)服务器中对所有用户进行 dm,但是他们中的一些人不想被 dmed,所以他们关闭了他们的 dms。因此,我收到一个错误,该错误会阻止机器人继续访问其他用户。发现错误后如何跳过该用户并告诉我的机器人在之后继续 dm 下一个用户。

这是我的代码

const commando = require('discord.js-commando');
const app = require('../../app.js');
const config = require('../../config.json');
const Discord = require('discord.js');

class DMallCommand extends commando.Command {
constructor(client){
super(client, {
name: `dmall`,
group: 'dms',
memberName: 'dmall',
description: 'Sends message provided to all members of the guild.',
examples: [ `${config.prefix}dmall Hey everyone! This might reach more people than a mass ping...` ]
});
}

async run(message, args){
let dmGuild = message.guild;
let role = message.mentions.roles.first();
var msg = message.content;


try {
msg = msg.substring(msg.indexOf("dmall") + 5);
} catch(error) {
console.log(error);
return;
}

if(!msg || msg.length <= 1) {
const embed = new Discord.RichEmbed()
.addField(":x: Failed to send", "Message not specified")
.addField(":eyes: Listen up!", "Every character past the command will be sent,\nand apparently there was nothing to send.");
message.channel.send({ embed: embed });
return;
}

let memberarray = dmGuild.members.array();
let membercount = memberarray.length;
let botcount = 0;
let successcount = 0;
console.log(`Responding to ${message.author.username} : Sending message to all ${membercount} members of ${dmGuild.name}.`)
for (var i = 0; i < membercount; i++) {
let member = memberarray[i];
if (member.user.bot) {
console.log(`Skipping bot with name ${member.user.username}`)
botcount++;
continue
}
let timeout = Math.floor((Math.random() * (config.wait - 0.01)) * 1000) + 10;
await sleep(timeout);
if(i == (membercount-1)) {
console.log(`Waited ${timeout}ms.\t\\/\tDMing ${member.user.username}`);
} else {
console.log(`Waited ${timeout}ms.\t|${i + 1}|\tDMing ${member.user.username}`);
}
try {
member.send(`${msg} \n #${timeout}`);
successcount++;
} catch (error) {
console.log(`Failed to send DM! ` + error)

}
}
console.log(`Sent ${successcount} ${(successcount != 1 ? `messages` : `message`)} successfully, ` +
`${botcount} ${(botcount != 1 ? `bots were` : `bot was`)} skipped.`);
}
}

function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}

module.exports = DMallCommand;

我知道我没有处理任何错误,但我不知道该怎么做,真的可以使用一些帮助

这也是我的 bot.js 代码
  const Discord = require('discord.js');
const figlet = require('figlet');
const colors = require('colors');
const readline = require('readline');
const commando = require(`discord.js-commando`);

const config = require('./config.json');
const bot = new commando.Client({
commandPrefix:'£',
owner: config.id
});

const cmdsArray = [
"dmall <message>",
"dmrole <role> <message>"
];

bot.on("ready", () => {
clear();
console.log('______')
bot.user.setActivity('PRDX');
});


bot.on("error", (error) => {
bot.login(config.token);
});

bot.registry.registerGroup('dms', 'help');
bot.registry.registerDefaults();
bot.registry.registerCommandsIn(__dirname + "/commands");

if (process.env.BOT_TOKEN) bot.login(process.env.BOT_TOKEN);
else bot.login(config.token);
}

最佳答案

代码中的任何地方都使用错误事件监听器client.on("error", () => { client.login(token) });

关于javascript - 我该如何处理错误,忽略它并继续使用该功能?不和谐.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com