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

Discord js - zakańczanie zdarzenia voiceStateUpdate

Object Storage Arubacloud
0 głosów
434 wizyt
pytanie zadane 16 maja 2021 w JavaScript przez Bartek12 Mądrala (5,510 p.)

Szukam sposobu na zakończeni zdarzenia voiceStateUpdate. Mam kod:

client.on('voiceStateUpdate', (oldMember, newMember) => {
        ...
})

W środku tego zdarzenia jest instrukcja warunkowa, w której gdy warunek zostanie spełniony ma się usunąć kanał i zakończyć nasłuchiwanie. Wie ktoś jak można takie coś zakończyć?

1 odpowiedź

+2 głosów
odpowiedź 16 maja 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 23 maja 2021 przez Bartek12
 
Najlepsza

Spróbuj użyć metody client.removeListener (w docsach Discorda nie znalazłem, ale możliwe że to jest oparte o Event API Node'a). Wcześniej jednak przenieś tę funkcję anonimową do scope wyżej i nadaj jej referencję.

Przykład:

function listener(oldMember, newMember) {
     // kod

    if ( condition ) {
      client.removeListener('voiceStateUpdate', listener);
    }
}

client.on('voiceStateUpdate', listener);

 

komentarz 27 maja 2021 przez Bartek12 Mądrala (5,510 p.)

wiem, że problem został już rozwiązany ale odnośnie tego kodu mam jedno pytanie. Co zrobić aby przekazać do listener trzeci argument?

Jakoś tak:

client.on('voiceStateUpdate', listener(oldMember, newMember, arg));

czy po prostu:

client.on('voiceStateUpdate', listener(arg));

???

komentarz 27 maja 2021 przez ScriptyChris Mędrzec (190,190 p.)

A skąd ten trzeci argument jest brany?

Można go przekazać za pomocą closure

function getListener(arg) {
  return function listener(oldMember, newMember) {
     console.log('arg:', arg);

     // kod
 
    if ( condition ) {
      client.removeListener('voiceStateUpdate', listener);
    }
  }
}
 
client.on('voiceStateUpdate', getListener(arg));

 

Podobne pytania

+1 głos
2 odpowiedzi 747 wizyt
pytanie zadane 4 września 2020 w JavaScript przez Gucio.js Początkujący (390 p.)
0 głosów
1 odpowiedź 1,028 wizyt
pytanie zadane 6 sierpnia 2020 w JavaScript przez Gucio.js Początkujący (390 p.)
0 głosów
1 odpowiedź 869 wizyt
pytanie zadane 29 lipca 2020 w JavaScript przez Gucio.js Początkujący (390 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...