Бот Discord.js Отправить сообщение на определенный канал на каждом сервере, на котором он находится - PullRequest
0 голосов
/ 08 ноября 2019

Пока у меня есть это:

function dailylot(){
    let channel = message.guild.channels.find(channel => channel.name === "general69420")
    if(!channel){return;}
    channel.send(".")
    return;
}
function settimer(){
    setTimeout(() => {
        settimer()
        dailylot()
        console.log("Cycle")
    }, 5000)
}
while (i < 1){
    console.log("set timer " + i);
    settimer()
    i++;
}

Это работает, но только для сервера, на которое отправляется сообщение. Даже после удаления «В то время как» он активируется несколько раз, он просто хочет перейтитолько на 1 сервер. Как я могу получить каналы всех серверов? bot.guilds.channels - это не вещь.

1 Ответ

1 голос
/ 08 ноября 2019

Вам нужно перебрать каждую гильдию в вашем боте и получить каналы для каждого из них, это тот случай, потому что в отличие от message или guild, guilds не является классом, то естьне имеет таких свойств, как guilds.channels, это коллекция других классов гильдий.

Это пример того, как получить индивидуальный доступ к этим каналам:

client.guilds.forEach(guild => {
    guild.channels.forEach(channel => {
        // Use the channel for whatever you need
    })
})
...