O
O
Oleg2020-09-16 15:48:54
Node.js
Oleg, 2020-09-16 15:48:54

How to call global promise inside a function (discord.client.login)?

The problem I'm trying to solve is too many discord authorization calls via client.login. Accordingly, I get a ban from him for 12 hours.

You need to periodically send the received data.

Given
This is one of my ineffectual code options via 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); <---- Соответственно тоже тишина без строки "логин" внутри функции.
        });
    });


Suggest a solution. How to take out client.login so that client.on inside the functions is executed?

I also tried with cron.
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);
    });
});

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question