EPIC4 Manual


join

Uaktywnia się gdy ktokolwiek (Ty czy też ktoś inny) wejdzie na kanał.

$0nick osoby która wchodzi
$1nazwa kanału gdzie nick wchodzi
$2user@host nicka, to samo co $userhost()
$3w serverach 2.9 ten argument oznacza, że ktoś posiada +o lub +v

Ostatni argument $3 to było (o ile dobrze pamiętam) po protstu ^G (ctrl + G), czyli zwykły BEEP. Oznaczało to, że ktoś kto wchodził na kanał NetJoinem posiadał +o lub +v. Na IRCNecie teraz już tego nie ma.


Prykładów aż naddto we 'Wstępie do ONs' :-)


Ciekawe natomiast jest to, że join wykonany 'ręcznie' różni się od NetJoinu, o czym mało kto wie. Otóż trzeba odwołać się do ON raw_irc w taki oto prosty sposób:


on -raw_irc "% JOIN *" @ njoin = (left(1 $2) == [\:])?[]:[Net]

NetJoin nie posiada znaku ':' (dwukropek) przy nazwie kanału (zmienna $2) i dlatego tworzymy zmienną (globalną) '$njoin' z waerością 'Net'. Jeżeli to jest zwykły join, zmienna ta jest pusta, gdyż ':' tam jest.


on ^join * {
   echo *** $0 ${njoin}JOIN $1 \($2\)
   ^assign -njoin                         /* koniecznie to należy tu skasować */
}

I oto mamy różnicę -- pierwszy to zwykły join, drugi to NetJoin:

*** #blah JOIN Raichu (raichu@pokemon.int)
*** #blah NetJOIN Pikachu (pika@pikachu.net)

(Przykład z WH)

Jak to wszystko działa? ON raw_irc uruchamia się zawsze jako pierwsze, później dopiero uaktywniają się inne ONy nazwane (w tym przypadku ON join) i dlatego najpierw możemy stwożyć zmienną '$njoin' a dopiero póżniej z niej skorzystać.


Nie rozumiesz przykładu? Zobacz: Zmienne, Zasady Składni.

Niedozwolone jest używanie MSG przy ON join - a to celem unikania AutoMSG czy teź różnych greetów. Niestety można to obejść, ale nie powiem jak :-)

Zobacz także: join, $userhost(), ON kick, ON leave



Lista Named ONs Home Następny Paragraf