Когда бот перезапущен или включен, выполните определенную функцию - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь сделать так, чтобы, когда мой бот перезапустился, в файле ready.js он выполнил поиск webhooks, которые он сделал во всех гильдиях, в которых находится бот, тогда бот будет использовать этот webhook иотправлять сообщения через него.Я не смог никуда добраться, и это в JS.

Я сослался на документацию для Discord.JS и действительно нигде не получил.Я попытался получить идентификатор клиента от webhook.owner и посмотреть, совпадает ли идентификатор бота с ним.Я не уверен, как извлечь идентификатор клиента из webhook.owner

guild.fetchWebhooks()
    if(webhook.owner == `${bot.user.id}`);

(предлагается)

guild.fetchWebhooks()
    if(webhook.owner == `${bot.user.username}`);

(актуально) Это единственный код, который я мог придумать, можетпри необходимости добавьте полный файл.

Я ожидаю, что бот, который после перезапуска (bot.on) будет искать во всех гильдиях, в которых он находится, и находить принадлежащих ему веб-хуков, и отправлять через них сообщения безделать это с другим активным веб-крючком.

В конечном итоге происходит то, что мой бот просто отсылает упоминание о боте.

1 Ответ

2 голосов
/ 30 марта 2019

Сделайте что-то вроде этого:

 bot.on('ready', async () => {                          // on ready
    await bot.guilds.forEach(async guild => {           // in all guilds:
        const webhooks = await guild.fetchWebhooks();   // check for Webhooks
        await webhooks.forEach(async webhook => {       // for all found Webhooks:
            if (webhook.owner.id == bot.user.id) {      // check if bot owns them
                webhook.send('test');                   // Do something with the Webhook example
            }
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...