ALIAS CLONE { IF ($0) { IF ($V1 == 2) { IF ($IALCHAN($+(*!*@,$1),$2,0) > 1) { VAR %CLONE_NUMBER $V1, %CLONE_OUT WHILE (%CLONE_NUMBER) { %CLONE_OUT = $ADDTOK(%CLONE_OUT,$IALCHAN($+(*!*@,$1),$2,$V1).NICK,44) DEC %CLONE_NUMBER } RETURN $+($CHR(40),*!*@,$1,$CHR(41)) %CLONE_OUT } } ELSE { IF ($1 ISCHAN) { HMAKE CLONE_TMP 1000 VAR %CLONE_NICKS $NICK($1,0), %CLONE_TOTAL WHILE (%CLONE_NICKS) { IF ($IALCHAN($ADDRESS($NICK($1,%CLONE_NICKS),2),$1,0) > 1) { HADD CLONE_TMP $ADDRESS($NICK($1,%CLONE_NICKS),2) $ADDTOK($NICK($1,%CLONE_NICKS),$HGET(CLONE_TMP,$ADDRESS($NICK($1,%CLONE_NICKS),2)),44) } DEC %CLONE_NICKS } HSAVE -i CLONE_TMP CLONE_TMP.INI HFREE CLONE_TMP WINDOW -ahH @CLONE WRITE -dl1 CLONE_TMP.INI FILTER -cteufw 2 61 CLONE_TMP.INI @CLONE .REMOVE CLONE_TMP.INI VAR %PARSE.DATA 1 WHILE ($LINE(@CLONE,%PARSE.DATA)) { TOKENIZE 61 $V1 | msg $ACTIVE CLONE: $+($CHR(40),$1,$CHR(41)) $2- | INC %PARSE.DATA } .CLOSE -@ @CLONE } } } ELSE { IF ($ACTIVE ISCHAN) { HMAKE CLONE_TMP 1000 VAR %CLONE_NICKS $NICK($CHAN,0), %CLONE_TOTAL WHILE (%CLONE_NICKS) { IF ($IALCHAN($ADDRESS($NICK($ACTIVE,%CLONE_NICKS),2),$ACTIVE,0) > 1) { HADD CLONE_TMP $ADDRESS($NICK($ACTIVE,%CLONE_NICKS),2) $ADDTOK($NICK($ACTIVE,%CLONE_NICKS),$HGET(CLONE_TMP,$ADDRESS($NICK($ACTIVE,%CLONE_NICKS),2)),44) } DEC %CLONE_NICKS } HSAVE -i CLONE_TMP CLONE_TMP.INI HFREE CLONE_TMP WINDOW -ahH @CLONE WRITE -dl1 CLONE_TMP.INI FILTER -cteufw 2 61 CLONE_TMP.INI @CLONE .REMOVE CLONE_TMP.INI VAR %PARSE.DATA 1 WHILE ($LINE(@CLONE,%PARSE.DATA)) { TOKENIZE 61 $V1 | msg $ACTIVE CLONE: $+($CHR(40),$1,$CHR(41)) $2- | INC %PARSE.DATA } .CLOSE -@ @CLONE } } } ON *:JOIN:#: { IF ($NICK != $ME) { IF ($CLONE($SITE,$CHAN)) { msg $CHAN $V1 } } ELSE { .WHO $CHAN | .ENABLE #CLONE.CHK | SET %CLONE_CHAN $CHAN } } #CLONE.CHK OFF raw 352:*: { HALT } raw 315:*: { CLONE %CLONE_CHAN | UNSET %CLONE_CHAN | .DISABLE #CLONE.CHK | HALT } #CLONE.CHK END