[英]Dm everyone in a function and sends a complete message when it's done
我想在特定服務器中每 10 分鍾發送一次服務器中的所有成員。 當它發送所有成員時,它會在控制台中發送一條完整的消息。
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);
在您的代碼列表中,它不是公會成員列表,而是具有 1 個公會集合的數組。 因此,當您嘗試發送消息時,請嘗試將其發送到數組。 如果您有要發送 dm 消息的服務器 ID,則可以這樣做
if (command === `${prefix}dmall`) {
let dmGuild = bot.guilds.get('GUILD ID HERE')
dmGuild.members.map(member => {
member.send('YOUR MESSAGE')
.catch('Member not allowed to recive DM message from this server')
})
});
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.