VDT2
@VDT2
Java Junior

Как вызывать глобальный промис внутри функции (discord.client.login)?

Проблема, которую пытаюсь решить - слишком много вызовов авторизации дискорд через client.login. Соответственно, получаю от него бан на 12 часов.

Нужна периодическая отправка полученных данных.

Дано
Это один из моих безрезультатных вариантов кода через ASYNC

client.login('NzMwNjU0MDc0NTc1MjU3NjUy.Xwaoog.XjE')

var numPlayers;

async.parallel([
        function (callback) {
            Gamedig.query({ <----Долбим сетевой ресурс и получаем данные
                type: 'game',
                host: '192.168.0.100',
                port: '2306'
            }).then((state) => {
                numPlayers = state.raw.numplayers; <----Данные получили. Все ОК
                callback();
            }).catch((error) => {
                console.log("Server is offline" + error);
            })
        },
        function (callback) {
            console.log('sss'); <----Чисто для понимания того, что что-то где-то сработало )
            callback();
        }
    ],
    function () {
        var s = numPlayers; 
        console.log(s); <----Тут еще все работает

        client.on('error', (e) => { <----И вот ту замолкает. Как будто client.login - вообще отсутствует в коде. Если строку (client.login('NzMwNjU0MDc0NTc1MjU3NjUy.Xwaoog.XjE')) вставить выше данной. Все работает как часы. НО. Получаем БАН за слишком частые логины.

            console.log('error', e);
        });
        client.on('debug', (e) => {
            console.log('debug', e);
        });
        client.on('warn', (e) => {
            console.log('warn', e);
        });
        client.on('ready', () => {
            console.log("online2: " + s); <---- Соответственно тоже тишина без строки "логин" внутри функции.
        });
    });


Подскажите решение. Как вынести client.login, так чтобы client.on внутри функций выполнялось?

Еще пробовал через крон
var jobId = crontab.scheduleJob("*/1 * * * *", function main() {
    Gamedig.query({
                type: 'game',
                host: '192.168.0.100',
                port: '2306'
    }).then((state) => {
        send(state.raw.numplayers); <--- Соответственно функция с отправкой, которая так же как и вариант выше, молчит.
    }).catch((error) => {
        console.log("Server is offline" + error);
    });
});
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы