menu nicklist {
.Clones:/clone $snick($chan,1)
.ChanClones:/chanclone $chan
}
menu channel {
.ChanClones:/chanclone $chan
}
menu status {
.ChanClones:/chanclone $$?=
}
alias col1 {
return $+(04,$1-)
}
alias col2 {
return $+(03,$1-)
}
alias col3 {
return $+(02,$1-)
}
alias Chanclone {
if (!$1) { set %achanclones.chan $active }
else {
if ($me !ison $1) { echo -a $col1(You are not on $+($1,.)) | Halt }
else { set %achanclones.chan $1 }
}
set %achanclones.users $nick(%achanclones.chan,0)
set %achanclones.user 1
set $+(%,achanclones.clones,.,%achanclones.chan) 0
while (%achanclones.user <= %achanclones.users) {
set %achanclones.nick 1
while (%achanclones.nick <= %achanclones.users) {
if ($address($nick(%achanclones.chan,%achanclones.user),2) iswm $address($nick(%achanclones.chan,%achanclones.nick),2)) {
if (($nick(%achanclones.chan,%achanclones.user) == $nick(%achanclones.chan,%achanclones.nick)) || ($eval($+(%,achanclones.cloned,.,$nick(%achanclones.chan,%achanclones.nick)),2) == on) || ($eval($+(%,achanclones.cloned,.,$nick(%achanclones.chan,%achanclones.user)),2) == on)) { noop }
else {
echo -a $col2($nick(%achanclones.chan,%achanclones.nick) is a clone of $+($nick(%achanclones.chan,%achanclones.user),.))
inc $+(%,achanclones.clones,.,%achanclones.chan)
set $+(%,achanclones.cloned,.,$nick(%achanclones.chan,%achanclones.nick)) on
}
}
inc %achanclones.nick
}
inc %achanclones.user
unset %achanclones.nick
}
echo -a $col3($+(%achanclones.chan) has $eval($+(%,achanclones.clones,.,%achanclones.chan),2) clone(s).)
unset %achanclones.*
}
alias clone {
if (!$1) { echo -a $col1(Please specify a nick.) }
else {
set %aclone.nick 1
set %aclone.users $nick($chan,0)
set %aclone.clones 0
while (%aclone.nick <= %aclone.users) {
if ($address($1,2) iswm $address($nick($chan,%aclone.nick),2)) {
if ($1 == $nick($chan,%aclone.nick)) { noop }
else {
echo -a $col2($nick($chan,%aclone.nick) is a clone of $+($1,.))
inc %aclone.clones
}
}
inc %aclone.nick
}
echo -a $col3($1 has %aclone.clones clone(s).)
unset %aclone.*
}
}