Discord. js не отправляет сообщение в указанное время c - PullRequest
1 голос
/ 26 апреля 2020

Итак, я пытаюсь заставить бота отправлять сообщение в указанное c время (час, минута, секунда), на указанный c канал. Однако на самом деле он не выполняет то, что запрограммировано.

В настоящее время установлено время 15:25:00, однако в это время сообщение не отправляется.

client.on("message", message => {
    var day = new Date();
    var hr = day.getHours();
    var min = day.getMinutes();
    var sec = day.getSeconds();

    if (hr == 15) {
    if (min == 25){
        if (sec == 0) {

            client.channels.get("704015571531857950").send("Test")

}
}
}
});

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Всегда обращайте внимание на родительскую функцию :) Ваши условия if находятся в client.on("message", message => { ... }), что означает, что вы проверяете только время, когда кто-то отправляет сообщение, только позволяя боту отправлять сообщение, если кто-то отправляет сообщение точно в 15:25. : 00. Кроме того, чтобы отправить сообщение на указанный c канал, ваш метод устарел, вот новое решение:

client.channels.fetch("704015571531857950").then((channel) => {
    channel.send("Test");
});
0 голосов
/ 26 апреля 2020

setInterval каждые 10 секунд плохо подходит для предварительной игры, я бы посоветовал немного поработать и использовать setTimeout, хотя setTimeout может быть немного неуместным, не думайте, что это будет слишком много.

, как сказал vrecusko, ваш метод устарел, но использование fetch - не единственный / лучший вариант.

client.channels.cache.get("704015571531857950").then(channel => {
   channel.send("Message");
});

Можете ли вы объяснить, что вы делаете дальше? Есть ли команда, в которой вы устанавливаете время для отправки сообщения? Или это как сообщение, которое бот хочет отправлять каждый день в одно и то же время?

...