Script Help - 29/10/06 06:58 PM
hello guys,
i need help with a script, i got an echo prebot script running fine, but only for the pres, now i want the nukes and unnuke too. here are 2 problems.
1st: it looks like the script got an internal dupe checker
2nd: i want it on my own style (the pres are already)
The style i want them is:
[NUKE in %Section] %dirname Reason: %reason
and
[UNNUKE in %Section] %dirname Reason: %unreason
so it would be nice if you could help me.
here is the script: (and because there are more files also as a rar
http://ironiclogic.com/echo/monitor.zip
i need help with a script, i got an echo prebot script running fine, but only for the pres, now i want the nukes and unnuke too. here are 2 problems.
1st: it looks like the script got an internal dupe checker
2nd: i want it on my own style (the pres are already)
The style i want them is:
[NUKE in %Section] %dirname Reason: %reason
and
[UNNUKE in %Section] %dirname Reason: %unreason
so it would be nice if you could help me.
here is the script: (and because there are more files also as a rar
http://ironiclogic.com/echo/monitor.zip
Code:
on *:start:.timerpong 0 60 scon -at1 .raw ping 1 on ^*:pong:! on *:start: { monitor.Load } on echo:TEXT:*:*: { $monitor.Load set %presitesfile $scriptdir $+ presites.dat set %Section set %presites $null set %test set %sendto set %genre set %dirname set %rar set %botecho $strip($1-,burc) set %original $chan %botecho if ($IsMonitorText(%botecho) == $true) { ; find Section #1 ;======================================================== ; %Section = $FindSection(%botecho,*,0,32) ; if %Section == $null { ; %Section = UNKNOWN ; } ; find a word with point and minus / or with underscore and minus (MP3) ;======================================================== :again %dirname = $wildtok(%botecho,*.*-*,1,32) if %dirname == $null { %dirname = $wildtok(%botecho,*_*-*,1,32) } if %dirname == $null { %dirname = $wildtok(%botecho,*.*.*,1,32) } if %dirname == $null { %dirname = $wildtok(%botecho,*-*-*-*-,1,32) } if %dirname == $null { halt } %filled = $wildtok(%botecho,*filled*,0,32) if %filled != 0 { halt } %reqfill = $wildtok(%botecho,*reqfill*,0,32) if %reqfill != 0 { halt } %request = $wildtok(%botecho,*request*,0,32) if %request != 0 { halt } %incomplete = $wildtok(%botecho,*incomplete*,0,32) if %incomplete != 0 { halt } ;check if it's a Sample of a vid ;================================= %sample = $wildtok(%botecho,*/Sample*,0,32) if %Sample != 0 { halt } ;check if it's a single .NFO announce ;==================================== %mp3 = $wildtok(%botecho,*.NFO*,0,32) if %mp3 != 0 { halt } ;check if it's a single .mp3 announce ;==================================== %mp3 = $wildtok(%botecho,*.mp3*,0,32) if %mp3 != 0 { halt } ;check if it's an approved announce ;==================================== %appr = $wildtok(%botecho,*approved*,0,32) if %appr != 0 { halt } ;check if it's a single ama10.com announce ;==================================== %ama10 = $wildtok(%botecho,*ama10*,0,32) if %ama10 != 0 { halt } ;check if it'S a single .rar announce ;==================================== ; %rar = $regex(%botecho,\.r..$) ; if %rar != 0 { ; halt ; } ;check if it'S a single .rar announce ;==================================== %rar = $regex(%botecho,*.rar) if %rar != 0 { halt } ;check if it'S a single .rar announce ;==================================== %rar = $regex(%botecho,*.r[0-9][0-9]) if %rar != 0 { halt } ;check if it'S a single .rar announce ;==================================== %rar = $regex(%botecho,*.part[0-9][0-9]) if %rar != 0 { halt } ;check if it'S a delete announce ;==================================== %delete = $regex(%botecho,*delete*) if %delete != 0 { halt } ;check if it'S a login announce ;==================================== %login = $wildtok(%botecho,*login*,0,32) if %login != 0 { halt } ;check if it'S a imdb announce ;==================================== %imdb = $wildtok(%botecho,*imdb*,0,32) if %imdb != 0 { halt } ; clear all multidiscs ;=============== %dirname = $remove(%dirname,/CD1,/CD1/,/CD2,/CD2/,/CD3,/CD3/,/CD4,/CD4/) %dirname = $remove(%dirname,-CD1,-CD2,-CD3,-CD4,_CD1,_CD2,_CD3,_CD4) %dirname = $remove(%dirname,Utils-,Games-,Dreamcast-) ;remove [ and ] from dirname ;================= %dirname = $remove(%dirname,]) %dirname = $remove(%dirname,[) ;remove < and > from dirname ;================= %dirname = $remove(%dirname,<) %dirname = $remove(%dirname,>) ;remove » and « from dirname ;================= %dirname = $remove(%dirname,«) %dirname = $remove(%dirname,») ;remove # from dirname ;================= %dirname = $remove(%dirname,#) ;remove ! from dirname ;===================== %dirname = $remove(%dirname,!) ; clear all slashes ;============= var %slash = $numtok(%dirname,47) if %slash > 1 { :clear_slashes var %tmp = $gettok(%dirname,2-,47) var %dirname = $gettok(%dirname,2-,47) var %slash = $numtok(%dirname,47) if %slash > 1 goto clear_slashes } ; clear all after open brackets ;========================= ; var %openbracket = $numtok(%dirname,40) ; if %openbracket > 1 { ; %dirname $gettok(%dirname,1,40) ; } ;clear --> ;====== set %ja $pos(%dirname,-->,1) if %ja != $null { %dirname = $left(%dirname, %ja) } ;clear trailing - ;========== var %last = $right(%dirname,1) if %last = - { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } ;clear trailing ) ;========== ; var %last = $right(%dirname,1) ; if %last = ) { ; var %laenge = $len(%dirname) ; %laenge = %laenge - 1 ; %dirname = $left(%dirname, %laenge) ; } ;clear trailing ! ;========== var %last = $right(%dirname,1) if %last = ! { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } ;clear trailing , ;========== var %last = $right(%dirname,1) if %last = , { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } ;clear trailing . ;========== var %last = $right(%dirname,1) if %last = . { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } ;clear trailing : ;========== var %last = $right(%dirname,1) if %last = : { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } ;clear leading / ;============ var %first = $left(%dirname,1) if %first = / { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $right(%dirname, %laenge) } ;clear trailing / ;========== var %last = $right(%dirname,1) if %last = / { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $left(%dirname, %laenge) } if $len(%dirname) < 6 { %botecho = $remove(%botecho,%dirname) %dirname = $null goto again } if ($IsMonitorText(%botecho) == $true) { ; find section ;======================================================== %Section = $FindSection(%botecho,*,0,32) if %Section == $null { %Section = UNKNOWN } ;Loop Code Here :again1 ;clear leading - ;============ var %first = $left(%dirname,1) if %first = - { var %laenge = $len(%dirname) %laenge = %laenge - 1 %dirname = $right(%dirname, %laenge) } ;clear leading ( ;============ var %first = $left(%dirname,1) if %first = ( { halt ; var %laenge = $len(%dirname) ; %laenge = %laenge - 1 ; %dirname = $right(%dirname, %laenge) } ;clear leading NEW ;============ ; var %first = $left(%dirname,3) ; if %first = NEW { ; var %laenge = $len(%dirname) ; %laenge = %laenge - 3 ; %dirname = $right(%dirname, %laenge) ; } if $len(%dirname) < 6 { %botecho = $remove(%botecho,%dirname) %dirname = $null goto again1 } } if $regex(%botecho,[0-9][0-9][0-9][0-9]KB) { halt } ; find releasegroup ;============== set %relgroup = $null %relgroup = $gettok(%dirname,2-,45) var %minus = $numtok(%relgroup,45) if %minus > 1 { :clear_minus set %relgroup $gettok(%relgroup,2-,45) set %minus $numtok(%relgroup,45) if %minus > 1 goto clear_minus } if %relgroup == $null { %counter = $numtok(%dirname,46) %relgroup = $gettok(%dirname,%counter,46) } If %dirname !== %lastrelease { $IsPresite if %Section == $null { %Section = UNKNOWN } var %ergebnis = $read -w $+ * $+ %dirname $+ * $scriptdir $+ ALL $+ .txt if %ergebnis == $null { var %file = %Section $+ .txt var %filename = $scriptdir $+ %file var %filename2 = " $+ %filename $+ " write -il1 %filename2 %dirname $date $time var %filename = $scriptdir $+ ALL.txt var %filename2 = " $+ %filename $+ " write -il1 %filename2 %dirname $date $time var %filename = $scriptdir $+ ORIGINAL.txt var %filename2 = " $+ %filename $+ " write -il1 %filename2 %original var %Counter = 1 var %Tot = $hget(Monitor.SendTo,0).item while (%Counter <= %Tot) { set %SendTo $hget(Monitor.SendTo,%Counter) var %Clolour = 1 if %Section = MUSICViDEO { %Colour = 13 } if %Section = UNKNOWN { %Colour = 6 $FindSection } if %Section = CONSOLE { %Colour = 10 } if %Section = VCD { %Colour = 7 } if %Section = DiVX { %Colour = 7 } if %Section = SVCD { %Colour = 7 } if %Section = DVDR { %Colour = 7 } if %Section = XXX { %Colour = 7 } if %Section = TV { %Colour = 7 } if %Section = Anime { %Colour = 7 } if %Section = ISO { %Colour = 4 } if %Section = Clone { %Colour = 4 } if %Section = 0_Day { %Colour = 2 } if %Section = Ebook { %Colour = 2 } if %Section = ImageSet { %Colour = 2 } if %Section = PDA { %Colour = 2 } if %Section = ISO_0DAY { %Colour = 5 } if %Section = MP3 { %Colour = 3 } var %Normal = 1 msg %SendTo [PRE in %Section ] %dirname inc %Counter } set %lastrelease %dirname } } } } ;Syntax $FindSection ;================= ; This alias will look thru the text to see if any of the words listed alias FindSection { if (.DVDR. isin %botecho) { %Section = DVDR } if (MDVDR- isin %botecho) { %Section = DVDR } if ( [DVDR] isin %botecho) { %Section = DVDR } if (SCR.DVDR- isin %botecho) { %Section = DVDR } if (Screener.DVDR- isin %botecho) { %Section = DVDR } if (PDVDR isin %botecho) { %Section = DVDR } if (.DVDR- isin %botecho) { %Section = DVDR } if (-DVDR- isin %botecho) { %Section = DVDR } if (UPC-DVD isin %botecho) { %Section = DVDR } if (TC.DVDR- isin %botecho) { %Section = DVDR } if (DVDR.TC- isin %botecho) { %Section = DVDR } if (.ISO- isin %botecho) { %Section = ISO } if (APPZ isin %botecho) { %Section = ISO } if (xAPPSx isin %botecho) { %Section = ISO } if ( KIDDIE isin %botecho) { %Section = ISO } if (_ISO- isin %botecho) { %Section = ISO } if (.ISO. isin %botecho) { %Section = ISO } if ( APPS isin %botecho) { %Section = ISO } if ( UTILS isin %botecho) { %Section = ISO } if ( GAMES isin %botecho) { %Section = ISO } if (_ISO_ isin %botecho) { %Section = ISO } if (XViD isin %botecho) { %Section = DiVX } if (subpack isin %botecho) { %Section = DiVX } if (.PPC isin %botecho) { %Section = DiVX } if (AC3 isin %botecho) { %Section = DIVX } if (.subpack isin %botecho) { %Section = DiVX } if (DVDSCR.SVCD- isin %botecho) { %Section = SVCD } if (SCREENER.SVCD- isin %botecho) { %Section = SVCD } if (SVCD.SCREENER- isin %botecho) { %Section = SVCD } if (.SVCD.DVDRip- isin %botecho) { %Section = SVCD } if (.DVDRip.SVCD- isin %botecho) { %Section = SVCD } if (.SCREENER- isin %botecho) { %Section = VCD } if (.TS- isin %botecho) { %Section = VCD } if (.VCD- isin %botecho) { %Section = VCD } if (.TC- isin %botecho) { %Section = VCD } if (TELECINE- isin %botecho) { %Section = VCD } if (TELESYNC- isin %botecho) { %Section = VCD } if (.CAM- isin %botecho) { %Section = VCD } if (_CAM- isin %botecho) { %Section = VCD } if (WORKPRINT isin %botecho) { %Section = VCD } if ( TV isin %botecho) { %Section = TV } ; if (.PDTV isin %botecho) { %Section = TV } ; if (.HDTV isin %botecho) { %Section = TV } ; if ([TV] isin %botecho) { %Section = TV } ; if (.DSR isin %botecho) { %Section = TV } ; if (.PPV isin %botecho) { %Section = TV } if (WWE isin %botecho) { %Section = TV } ; if ( [KGB-NEW] -XXX-VCD- isin %botecho) { %Section = XXX } if ( XXX isin %botecho) { %Section = XXX } if (.JAV isin %botecho) { %Section = XXX } if ( ANIME isin %botecho) { %Section = Anime } if (PSX isin %botecho) { %Section = CONSOLE } if (_GC- isin %botecho) { %Section = CONSOLE } if (XBOX isin %botecho) { %Section = CONSOLE } ; if (.XBOX isin %botecho) { %Section = CONSOLE } if (PS2 isin %botecho) { %Section = CONSOLE } ; if (_PS2 isin %botecho) { %Section = CONSOLE } if (NGC isin %botecho) { %Section = CONSOLE } ; if (.NGC isin %botecho) { %Section = CONSOLE } ; if (.GBA isin %botecho) { %Section = CONSOLE } if (GBA isin %botecho) { %Section = CONSOLE } ; if (_GBA isin %botecho) { %Section = CONSOLE } if (.HiRES isin %botecho) { %Section = 0_day } if ( TODAY isin %botecho) { %Section = 0_day } if ( DOX isin %botecho) { %Section = 0_day } if ( Patch_DOC_Cover isin %botecho) { %Section = 0_day } if (0DAY isin %botecho) { %Section = 0_day } if (PDA isin %botecho) { %Section = PDA } if (Symbian isin %botecho) { %Section = PDA } if ( ebook isin %botecho) { %Section = Ebook } ; if (_ebook isin %botecho) { %Section = Ebook } if (eMAG isin %botecho) { %Section = Ebook } if (.MV isin %botecho) { %Section = MUSICViDEO } if (_MV isin %botecho) { %Section = MUSICViDEO } if (imageset isin %botecho) { %Section = ImageSet } if (PAYSITE isin %botecho) { %Section = ImageSet } if (photoset isin %botecho) { %Section = ImageSet } if $regex(%botecho,.S[0-9][0-9]) { %Section = TV } if $regex(%botecho,.S[0-9].D[0-9]) { %Section = TV } if $regex(%botecho,.E[0-9][0-9]) { %Section = TV } if $regex(%botecho,.EP[0-9][0-9]) { %Section = TV } if $regex(%botecho,.Episode[0-9]) { %Section = TV } if $regex(%botecho,.Season[0-9]) { %Section = TV } if $regex(%botecho,05[0-1][0-9][0-3][0-9]/) { %Section = 0_day } if $regex(%botecho,-[1-2][0-9][0-9][0-9]-) { %Section = MP3 } if $regex(%botecho,[1-2][0-9][0-9][0-9]-SVCD-) { %Section = MUSICViDEO } if $regex(%botecho,-SVCD-[1-2][0-9][0-9][0-9]-) { %Section = MUSICViDEO } } ; This alias simply loads the files into hash table ; ==================================== alias Monitor.Load { var %FileList = sendto.txt,monitor.txt,Sections.txt,Genre.txt, var %FileCounter = 1, %FileTotal = $numtok(%FileList,44) while (%FileCounter <= %FileTotal) { if ($hget( Monitor. [ $+ [ $gettok($gettok(%FileList,%FileCounter,44),1,46) ] ] )) { .hfree Monitor. [ $+ [ $gettok($gettok(%FileList,%FileCounter,44),1,46) ] ] } var %name = Monitor. [ $+ [ $gettok($gettok(%FileList,%FileCounter,44),1,46) ] ] hmake %name 10 var %Counter = 1, %Totallines = $lines($gettok(%FileList,%FileCounter,44)) while (%Counter <= %Totallines) { var %Line = $read -nl [ $+ [ %Counter ] ] $gettok(%FileList,%FileCounter,44) hadd Monitor. [ $+ [ $gettok($gettok(%FileList,%FileCounter,44),1,46) ] ] %Counter %Line inc %Counter } inc %FileCounter } } ; Syntax: $IsMonitorText(<Text>) ;========================= ; This alias will look through the text to see if any of the words listed ; in monitor.txt are contained in the supplied <Text> alias -l IsMonitorText { var %Counter = 1, %Total = $hget(Monitor.Monitor,0).item while (%Counter <= %Total) { set %MonitorText $hget(Monitor.Monitor,%Counter) if ( %MonitorText isin $1-) { return $true } inc %Counter } return $false } ; Syntax: $FindGenre ;=================== ; This alias will look through the text to see if any of the words listed ; in Genre.txt ;alias FindGenre { ; %genre = $null ; var %Counter = 1, %Total = $hget(Monitor.Genre,0).item ; while (%Counter <= %Total) { ; set %GenreText $hget(Monitor.Genre,%Counter) ; if %GenreText isin %botecho { %genre = %GenreText } ; inc %Counter ; } ;} ; Syntax: $IsPresite ;============== alias IsPresite { %Section = $null var %Counter = 1, %Total = $hget(Monitor.Sections,0).item while (%Counter <= %Total) { var %SectionText = $hget(Monitor.Sections,%Counter) if $readini -n %presitesfile %SectionText %relgroup != $null { %presites = $readini -n %presitesfile %SectionText %relgroup %Section = %SectionText } inc %Counter } } ;Add a Releasegroup and there affilled sites in a given section ;================================================ on 99:TEXT:*!addgroup*:*: { set %addgroup $1- if $numtok(%addgroup , 32) < 3 { /msg $chan ERROR too less agruments given (right syntax is: addgroup <section> <releasegroup> <affiled site, affiled site, ...> halt } if $ini(%presitesfile, $2) == 0 { /msg $chan ERROR $2 is not a valid section (right syntax is: addgroup <section> <releasegroup> <affiled site, affiled site, ...> halt } if $readini -n %presitesfile $2 $3 != $NULL { /msg $chan ERROR a releasgreoup: $3 in section: $2 already exists halt } var %sites = $4- if %sites == $null { %sites = unknown } writeini %presitesfile $2 $3 %sites /msg $chan $3 SUCCESSFULLY added to section $2 } ;Add a Affiled site to a given Releasegroup ;================================= on 99:TEXT:*!addsite*:*: { set %addsite $1- if $numtok(%addsite , 32) < 4 { /msg $chan ERROR too less agruments given (right syntax is: addsite <section> <releasegroup> <affiled site, affiled site, ...> halt } if $numtok(%addsite , 32) > 8 { /msg $chan ERROR plz add only 5 sites to releasegroup at one time halt } if $ini(%presitesfile,$2) == 0 { /msg $chan ERROR there is no section: $2 halt } if $ini(%presitesfile,$2,$3) == 0 { /msg $chan ERROR there is no Releasegroup: $3 halt } var %sites = $readini %presitesfile $2 $3 %sites = $addtok(%sites,$4-,32) %sites = $remtok(%sites,unknown,1,32) writeini -n %presitesfile $2 $3 %sites /msg $chan $4-$8 SUCCESSFULLY added to section: $2 releasegreoup: $3 } ;Add a Genre ;========= on 99:TEXT:*!addgenre*:*: { set %addgenre $1- if $numtok(%addgenre , 32) < 2 { /msg $chan ERROR too less agruments given (right syntax is: addgenre genre) halt } if $numtok(%addgenre , 32) > 5 { /msg $chan ERROR too much arguments given halt } set %Genre $2- var %ergebnis = $read -w $+ * $+ %Genre $+ * $scriptdir $+ Genre $+ .txt if %ergebnis != $null { /msg $chan Genre: %Genre already exists halt } var %filename2 = " $+ $scriptdir $+ Genre.txt $+ " write -il1 %filename2 %Genre /msg $chan Genre: %Genre added } ;delete affiled site from a releasegroup ;============================= on 99:TEXT:*!delsite*:*: { set %delsite $1- if $numtok(%delsite , 32) < 4 { /msg $chan ERROR too less agruments given (right syntax is: delsite <section> <releasegroup> <affiled site> halt } if $numtok(%delsite , 32) > 4 { /msg $chan ERROR sorry you only can delete one site at one time halt } if $ini(%presitesfile,$2,$3) == 0 { /msg $chan ERROR there is no releasegroup: $3 in section: $2 halt } var %sites = $readini %presitesfile $2 $3 %sites = $remtok(%sites,$4,1,32) remini %presitesfile $2 $3 if %sites = $NULL { %sites = unknown } writeini %presitesfile $2 $3 %sites /msg $chan $4 SECCESSFULLY deleted from section: $2 releasegroup: $3 } ;delete group from section ;=================== on 99:TEXT:*!delgroup*:*: { set %delgroup $1- if $numtok(%delgroup , 32) < 3 { /msg $chan ERROR too less agruments given (right syntax is: delgroup <section> <releasegroup> halt } if $numtok(%delgroup , 32) > 3 { /msg $chan ERROR sorry you only can delete one group at one time halt } if $ini(%presitesfile,$2,$3) == 0 { /msg $chan ERROR there is no releasegroup: $3 in section: $2 halt } remini %presitesfile $2 $3 /msg $chan $3 SECCESSFULLY deleted from section: $2 } ;info über alles ;=========== on 50:TEXT:*!unfo*:*: { var %read = -w $+ $2 $+ * var %found = $read %read %presitesfile if %found != $NULL /msg $chan %found else /msg $chan sorry no info about: $2 } ;info about mp3 ;============== on 50:TEXT:*!mp3info*:*: { set %found $null set %atleastone 0 set %read -w $+ * $+ $2- $+ * set %mp3file $scriptdir $+ mp3.txt %found = $read %read %mp3file set %line $readn while (%line != 0) { /msg $chan %found inc %atleastone if %atleastone > 9 halt inc %line 1 %read = -l $+ %line $+ -w $+ * $+ $2- $+ * %found = $read %read %mp3file %line = $readn } if %atleastone = 0 /msg $chan sorry no info about: $2- } ;letzten releases anzeigen ;==================== on 50:TEXT:*!last*:*: { var %ok = false var %file = $remove($1,!last) var %Counter = 1, %Total = $hget(Monitor.Sections,0).item while (%Counter <= %Total) { var %SectionText = $hget(Monitor.Sections,%Counter) if %file == %SectionText { %ok = true } inc %Counter } if %ok != true { /msg $chan Section %file not available. taking section all instead %file = ALL } var %lines = $2 if %lines == $null { %lines = 5 } if %lines > 10 { /msg $chan plz only ask for max last 10 releases halt } var %Counter = 1, %Total = %lines while (%Counter <= %Total) { /msg $chan $read -l $+ %Counter $scriptdir $+ %file $+ .txt inc %Counter } } ;letzte releases ergaenzen ;==================== on 50:TEXT:*!addlast*:*: { set %addlast $strip($1-,burc) var %ok = false var %command = $gettok(%addlast,1,32) var %release = $gettok(%addlast,2,32) var %file = $remove(%command,!addlast) var %Counter = 1, %Total = $hget(Monitor.Sections,0).item while (%Counter <= %Total) { var %SectionText = $hget(Monitor.Sections,%Counter) if %file == %SectionText { %ok = true } inc %Counter } if %ok != true { /msg $chan Sorry no section %file available, can't add release halt } if %release = $null { msg $chan Need releasename halt } var %ergebnis = $read -w $+ * $+ %release $+ * $scriptdir $+ %file $+ .txt If %ergebnis == $null { write -il1 $scriptdir $+ %file $+ .txt %release $date $time /msg $chan $2 SUCCESFULLY added to section %file } else { /msg $chan Release %release already exists } } menu nicklist { Echo .Add:{ auser -a echo $$1 guser -a echo $$1 2 echo -a $$1 is now added as Echobot } .Rem:{ ruser echo $$1 ruser echo $$1 2 echo -a $$1 is now removed from Echobot list } Editor .Add:{ auser -a 99 $$1 guser -a 99 $$1 2 echo -a $$1 is now added as Editor } .Rem:{ ruser 99 $$1 ruser 99 $$1 2 echo -a $$1 is now removed from Editor list } All .Add:{ auser -a 50 $$1 guser -a 50 $$1 2 echo -a $$1 is now added as User } .Rem:{ ruser 50 $$1 ruser 50 $$1 2 echo -a $$1 is now removed from User list } }