• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysyłanie wiadomości przez bota discord w funkcji ze zdarzeniem onready

Object Storage Arubacloud
0 głosów
96 wizyt
pytanie zadane 20 marca w Inne języki przez Piotrek2713 Mądrala (5,500 p.)

Mam funkcję withdraw, która wywołuje się w następujący sposób

client.on('ready',async function (message) {
        console.log(`Bot ${client.user.username} dołączył na serwer`);
        setInterval(() => {
            const now = new Date();
            const day = now.getDay();
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();
        
            const withdrawTime = "0235959";
            const time = day.toString() + hours + minutes + seconds;
            console.log(withdrawTime, time);
            if (withdrawTime)
            {
                withdraw(message);
            }
        }, 10000);
        });

Ostatnia linijka funckji

await message.channel.send(`Gracz ${username} otrzymał wynagrodzenie w wysokości ${workerWeeklyEarnings}`);

Wywala błąd

Cannot read properties of undefined (reading 'send')

Czemu send jest undefined? Jak to naprawić?

komentarz 20 marca przez VBService Ekspert (254,490 p.)
edycja 20 marca przez VBService

Ostatnia linijka funckji

rozumiem, że chodzi o

client.on('ready',async function (message) {
        console.log(`Bot ${client.user.username} dołączył na serwer`);
        setInterval(() => {
            const now = new Date();
            const day = now.getDay();
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();
         
            const withdrawTime = "0235959";
            const time = day.toString() + hours + minutes + seconds;
            console.log(withdrawTime, time);
            if (withdrawTime)
            {
                withdraw(message);
            }
        }, 10000);

        await message.channel.send(`Gracz ${username} otrzymał wynagrodzenie w wysokości ${workerWeeklyEarnings}`);
});

czy

async function withdraw(...) {
    await message.channel.send(`Gracz ${username} otrzymał wynagrodzenie w wysokości ${workerWeeklyEarnings}`);
}

 

komentarz 20 marca przez Piotrek2713 Mądrala (5,500 p.)
Wybacz, nie zwróciłem uwagi na tą większą funkcję. Ta linijka jest na końcu funkcji withdraw(message)
komentarz 21 marca przez VBService Ekspert (254,490 p.)
edycja 21 marca przez VBService

sprawdź czy obiekt message jest prawidłowo przekazywany w

client.on('ready',async function (message) {
    ...
});

treść błędu sugeruje, że

Cannot read properties of undefined (reading 'send')

nie istnieje message.channel lub message w 

async function withdraw(message) {
    await message.channel.send(`Gracz ${username} otrzymał wynagrodzenie w wysokości ${workerWeeklyEarnings}`);
}

stąd message przyjmuje wartość undefined.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 103 wizyt
0 głosów
0 odpowiedzi 666 wizyt
0 głosów
1 odpowiedź 76 wizyt

92,677 zapytań

141,581 odpowiedzi

320,061 komentarzy

62,039 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...