我想每10分钟发送一次特定服务器中dm的服务器中的所有成员。当发送所有成员时,它将在控制台中发送完整的消息。
if (command === `${prefix}dmall`) {
var list = bot.guilds.array();
sendMessage(list);
}
});
function sendMessage(list) {
setTimeout(function () {
for (i = 0; i < list.length; i++) {
let member = list.splice(Math.floor(Math.random() * list.length), 1);
member.send("Test")
list.length = list.length - 1;
if (list.length = 0)
console.log("Done")
}
sendMessage(list);
}, 10 * 1000);
}
bot.login(botconfig.token);
答案 0 :(得分:0)
在您的代码中,列表不是一个公会成员列表,而是带有1个公会集合的数组。 因此,当您尝试发送消息时,您尝试将其发送到数组。 如果您有要发送dm消息的服务器ID,则可以这样做
sudo make && sudo make install
答案 1 :(得分:0)
if (command === `${prefix}dmall`) {
let myGuild = bot.guilds.get('YOU guild HERE')
let list = myGuild.members.map(member => member.user.id)
sendMessage(list, myGuild);
}
});
function sendMessage(list, myGuild) {
for (var i = 0; i < list.length; i++) {
setTimeout((function(index){
return function() {
var member = myGuild.members.get(list[index])
if(!member.user.bot && member) {
member.send('asdsadsa').catch(console.log('Member not allow to send him DM message'))
}
if(index === list.length-1) console.log('done')
};
})(i), 10000 * (i + 1))
}
}
bot.login(botconfig.token);