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

question-closed Bot jest aktywny ale nie czyta ani nie wysyła wiadomości

Object Storage Arubacloud
+1 głos
929 wizyt
pytanie zadane 1 września 2021 w JavaScript przez Maxxxii Obywatel (1,260 p.)
zamknięte 2 września 2021 przez Maxxxii

Cześć,

Mam następujący problem: robię bota (próbuję), lecz on ani nie czyta ani nie wysyła wiadomości. Oto kod

const Discord = require("discord.js")
const client = new Discord.Client({ intents: [ "DIRECT_MESSAGES", "GUILD_MESSAGES", "GUILD_MESSAGE_TYPING"] })

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`)
})

client.on("message", msg => {
  console.log("Ktoś wysłał wiadomość!");
})


client.login("Tajne;)")

Gdy włączam skrypt start bot staje się aktywny i jest przez cały czas lecz nie reaguje i w konsoli nie wyświetla się "Ktoś wysłał wiadomość!". Bardzo proszę o pomoc. Pozdrawiam!

komentarz zamknięcia: Rozwiązanie problemu
komentarz 1 września 2021 przez ScriptyChris Mędrzec (190,190 p.)
Czy w konsoli Node (tam gdzie uruchamiasz bota) są jakieś błędy?
komentarz 1 września 2021 przez Maxxxii Obywatel (1,260 p.)
bez żadnych błędów
komentarz 2 września 2021 przez Maxxxii Obywatel (1,260 p.)

Rozwiązanie zostało znalezione. Dziękuję wszystkim za pomoc. Pod spodem kod, który działa:

const {Client, Intents} = require("discord.js")
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]})
 
client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`)
})
 
client.on("messageCreate", msg => {
  console.log("Ktoś wysłał wiadomość!");
})
 
 
client.login("Tajne;)")

 

komentarz 2 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

@Maxxxii, jeśli odpowiedź @Wiciorny pomogła rozwiązać Twój problem, to oznacz ją proszę jako "najlepsza". Sam bym to zrobił, ale nie jestem pewien, czy ta odpowiedź faktycznie pomogła (choć wygląda na to, że tak), bo oprócz użycia innego eventu (zasugerowanego w odpowiedzi), zmodyfikowałeś też tablicę z property intents.

1 odpowiedź

0 głosów
odpowiedź 1 września 2021 przez Wiciorny Ekspert (269,710 p.)

Tak się dzieje, jak się korzysta z czegoś " nie czytająć dokumnetacji" klepiąc copy paste jak popadnie ...

Nie zadziała dlatego, że atkualny CLIENT dostępny w ramach  klasy Client, dla MODUŁU discord.js,  nie posiada właściowści "message"
https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-message
Jest ona depricated 
MessageCreate zastępuje tę funkcje 
https://github.com/discordjs/discord.js/blob/stable/src/client/actions/MessageCreate.js#L18
Sprawdź 
messageCreate messageReactionAdd etc

4
komentarz 1 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

Tak się dzieje, jak się korzysta z czegoś " nie czytająć dokumnetacji" klepiąc copy paste jak popadnie ...

Nie wiem po czym stwierdziłeś, że autor pytania skopiował skądś kod. A nawet jeśli to zrobił, to można o tym wspomnieć w bardziej uprzejmy sposób. Co do "nie czytania dokumentacji", to również nie wiem skąd pomysł, że nie czytał. Mógł czytać, ale coś przeoczyć - zdarza się. Również można o tym wspomnieć w bardziej uprzejmy sposób.

1
komentarz 2 września 2021 przez Maxxxii Obywatel (1,260 p.)

@Wiciorny, nie było to głównym problemem, lecz udało mi się rozwiązać i dopiero wtedy wyskoczyło ostrzeżenie a nie błąd o użyciu złego nazewnictwa. Dokumentację czytałem :) widocznie coś przeoczyłem

komentarz 2 września 2021 przez Wiciorny Ekspert (269,710 p.)

@ScriptyChris,  nie dodawaj sobie czegoś, do mojej wypowiedzi czego nie napisałem.
Nigidzie nie padło z moich słów powiedzneie, że skopiował kod, dwa... jakby dokumntacje czytał, to nie używał by metody depricated. 
Skoro używa 3 metod, to naprawdę trudno przeoczyć, dokumentacje tych trzech motod których się korzysta... proszę Cię pomyśl zanim napiszesz  
i widzisz zadziałao po zmianie MessageCreate -> a to jest napisane w dokumentacji.
Wyraźnie :), ale sory - czytał.
I to są dwa wyjątki w klasie Client... z której korzysta i jest ot nawet podkreślone na samym starcie CZERWONO 
 

message

DEPRECATED

 

Emitted whenever a message is created.

PARAMETER TYPE DESCRIPTION
message

Message

The created message

 

messageCreate

 

Emitted whenever a message is created.

PARAMETER TYPE DESCRIPTION
message

Message

The created message

1
komentarz 2 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

Nigidzie nie padło z moich słów powiedzneie, że skopiował kod

Co w takim razie miałeś na myśli w pogrubionym fragmencie niżej?

Tak się dzieje, jak się korzysta z czegoś " nie czytająć dokumnetacji" klepiąc copy paste jak popadnie ...

To, że nie napisałeś wprost o kopiowaniu kodu, nie znaczy, że przekaz powyższego zdania tego nie sugeruje. Zwłaszcza, że jest to odpowiedź w temacie dotyczącym problemu z kodem.

dwa... jakby dokumntacje czytał, to nie używał by metody depricated

Zgadzam się, że nie należy używać metod zdeprecjonowanych, ale nadal uważam, że można przeczytać dokumentację danej funkcjonalności i użyć jej mimo, że będzie oznaczona jako zdeprecjonowana. Można się zwyczajnie zagapić, a można też użyć takiej metody celowo, np. w ramach testu lub z powodu użycia innej wersji API.

Skoro używa 3 metod, to naprawdę trudno przeoczyć, dokumentacje tych trzech motod których się korzysta... proszę Cię pomyśl zanim napiszesz  

Pomyślałem pisząc tamten komentarz i zrobiłem to również pisząc ten. To, że metoda jest oznaczona jako zdeprecjonowana nie znaczy, że ktoś jej nie użyje (a przynajmniej nie spróbuje) celowo lub przez pomyłkę. To, że coś jest trudno przeoczyć nie znaczy, że jest to niemożliwe.

i widzisz zadziałao po zmianie MessageCreate -> a to jest napisane w dokumentacji.

Cieszę się, że udało się znaleźć przyczynę problemu - przeoczenia się zdarzają. Mój komentarz dotyczył formy, w jakiej zasugerowałeś popełniony przez autora błąd. Cytując fragment mojego poprzedniego komentarza:

A nawet jeśli to zrobił [skopiował kod], to można o tym wspomnieć w bardziej uprzejmy sposób.

Proszę więc, abyś na przyszłość nie wypowiadał się w takim negatywnie sugerującym tonie.

Podobne pytania

0 głosów
0 odpowiedzi 287 wizyt
0 głosów
0 odpowiedzi 784 wizyt
pytanie zadane 6 sierpnia 2021 w JavaScript przez Fabian Jacykowski Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 647 wizyt

92,551 zapytań

141,397 odpowiedzi

319,528 komentarzy

61,936 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...