on *:CONNECT:{ echo -s 12SysReset WinAmp Scanner v1.17 Plugin Running | loadwinamp } on *:LOAD:{ echo -s 12SysReset WinAmp Scanner v1.17 Plugin Running | loadwinamp } on *:UNLOAD:{ unset %mp3play } alias -l loadwinamp { unset %mp3play if (%mp3on == $null || $numtok(%mp3on,127) != 3) { set %mp3on 0 $+ $chr(127) $+ queue $+ $chr(127) $+ is playing: :0. :2 - :1 - :3 - :6 - :4 - :5 - :a - :t } ;;All Commands: ;;FILEINFO / FILENAME / DISPNAME ;;TRACKPLAY (#, 0 = repeat current track, otherwise seek to # and play) ie: $dll(..., TRACKPLAY, 15) ;;TRACKPAUSE / TRACKLAST / TRACKNEXT / TRACKSTOP } alias amp { /mp3 $1- } alias mp3 { unset %mp3play var %tmp = $dll(" $+ $mircdiraddons\wamp.dll $+ ", FILEINFO, 0) if ($gettok(%tmp,1,32) == ERR || !%tmp) { var %err $gettok(%tmp,2,32) if (%err == 1) { echo -a 12WinAmp Scanner: WinAmp isn't running. | halt } elseif (%err == 2) { echo -a 12WinAmp Scanner: WinAmp version mismatch. | halt } elseif (%err == 3) { echo -a 12WinAmp Scanner: WinAmp isn't playing at the moment. Please start a song. | halt } else { echo -a 12WinAmp Scanner: Unknown Error. | halt } } var %filepath = " $+ $mid($dll(" $+ $mircdiraddons\wamp.dll $+ ", FILENAME, 0),1,-1) $+ " if (!%filepath) { echo -a 12WinAmp Scanner: WinAmp filename lookup failed. | halt } if (http isin %filepath) { var %mp3ext = http var %filepath = $+(%col1,$chr(40),%col2,$remove($remove(%filepath,http:),/),%col1,$chr(41)) var %filesize = $mid($dll(" $+ $mircdiraddons\wamp.dll $+ ", DISPNAME, 0),2) if (%filesize) { var %filepath = %filesize %filepath } } else { var %mp3ext = $remove($right($nopath(%filepath),3),.) var %filesize = $file(%filepath).size if (%filesize == 0 || %filesize == $null) { echo -a 12WinAmp Scanner: File Access Error | halt } } var %mp3out = %col1 $+ $replace($gettok(%mp3on,3,127),-,$chr(127)) var %mp3out = $replace(%mp3out,$chr(127) $+ $chr(127),-) if (:0 isin %mp3out) { var %mp3wtrack $gettok(%tmp,2,32) } if (%mp3ext == mid) { var %mp3ext MIDI } elseif (%mp3ext == ogg) { ;;OGG Vorbis bread %filepath 0 4 &head if ($bvar(&head,1,4) == 79 103 103 83) { bread %filepath 28 128 &id3 var %tmp.oggstart = $calc($bfind(&id3, 1, 3 118 111 114 98 105 115) + 34) bread %filepath %tmp.oggstart 4 &id3 inc %tmp.oggstart $calc($txtconvhex($bvar(&id3,1,4)) + 4) bread %filepath %tmp.oggstart 4 &id3 var %tmp.oggitems = $txtconvhex($bvar(&id3,1,20)), %tmp.oggloop = 1 inc %tmp.oggstart 4 while (%tmp.oggloop <= %tmp.oggitems) { bread %filepath %tmp.oggstart 4 &id3 inc %tmp.oggstart 4 var %tmp.offlooplen = $txtconvhex($bvar(&id3,1,20)) bread %filepath %tmp.oggstart %tmp.offlooplen &id3 inc %tmp.oggstart %tmp.offlooplen inc %tmp.oggloop var %tmp.oggunit = $bvar(&id3,1,%tmp.offlooplen).text if ($gettok(%tmp.oggunit,1,61) == TITLE) { var %mp3title = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == ARTIST) { var %mp3artist = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == ALBUM) { var %mp3album = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == GENRE) { var %mp3genre = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == DATE) { var %mp3year = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == COMMENT) { var %mp3comment = $gettok(%tmp.oggunit,2-,61) } if ($gettok(%tmp.oggunit,1,61) == TRACKNUMBER) { var %mp3track = $gettok(%tmp.oggunit,2-,61) } } } } elseif (%mp3ext == mp3) { ;;ID3 Version 2 bread %filepath 0 3 &head if ($bvar(&head,1,3) == 73 68 51) { bread %filepath 0 10 &id3 ;;ID3V2 Version, not used (bad form, I know) ;;var %id3version = ID3V2. $+ $bvar(&id3,4) $+ . $+ $bvar(&id3,5) ;;ID3V2 Flags, not used ;;var %flags $base($bvar(&id3,9),10,2,8) var %id32size $txtconv($bvar(&id3,7,4)) bread %filepath 10 %id32size &id3 var %mp3title = $id32pull(TIT2), %mp3artist = $id32pull(TPE1), %mp3album = $id32pull(TALB), %mp3genre = $id32pull(TCON), %mp3year = $id32pull(TYER), %mp3comment = $id32pull(COMM), %mp3track = $id32pull(TRCK), %mp3origional = $id32pull(TOPE) var %mp3genre = $mid(%mp3genre,$calc($pos(%mp3genre,$chr(41)) + 1)) if (!%mp3origional) { var %mp3origional = $id32pull(TCOM) } dec %filesize %id32size } ;;ID3 Version 1 bread %filepath $calc($file(%filepath).size - 128) 3 &head if ($bvar(&head,1,3) == 84 65 71) { bread %filepath $calc($file(%filepath).size - 128) 128 &id3 if (!%mp3title) { var %mp3title = $id3pull(4,33,&id3) } if (!%mp3artist) { var %mp3artist = $id3pull(34,63,&id3) } if (!%mp3album) { var %mp3album = $id3pull(64,93,&id3) } if (!%mp3year) { var %mp3year = $id3pull(94,97,&id3) } if (!%mp3comment) { var %mp3comment = $id3pull(98,126,&id3) } if (!%mp3track) { var %mp3track = $asc($id3pull(126,127,&id3)) } if (!%mp3genre) { var %mp3genre = $genre($bvar(&id3,128,1)) } dec %filesize 128 } if (!%mp3artist && ((%mp3ablum && :3 isin %mp3out) || (%mp3genre && :6 isin %mp3out) || (%mp3year && :4 isin %mp3out) || (%mp3comment && :5 isin %mp3out))) { var %mp3artist Unknown Artist } } if (:t isin %mp3out) { var %mp3time2 $gettok(%tmp,1,32) if ($left(%mp3ext,2) == mp || $left(%mp3ext,3) == ogg) { var %mp3bitrate = $int($calc(%filesize * 8 / %mp3time2 / 1000)) $+ kbps } else { var %mp3bitrate $upper(%mp3ext) } if (%mp3ext != http) { var %mp3time 0 while ($calc(%mp3time2 - 60) >= 0) { dec %mp3time2 60 inc %mp3time } if (%mp3time2 < 10) { var %mp3time2 0 $+ %mp3time2 } var %mp3time = $+(%mp3time,%col1,:,%col2,%mp3time2) %col1 $+ - } var %mp3time = %mp3time %col2 $+ %mp3bitrate } if (%mp3ext == mod) { bread %filepath 0 20 &mod | var %mp3title $id3pull(1,20,&mod) } elseif (%mp3ext == s3m || %mp3ext == ptm) { bread %filepath 0 27 &mod | var %mp3title $id3pull(1,27,&mod) } elseif (%mp3ext == mtm) { bread %filepath 4 20 &mod | var %mp3title $id3pull(1,20,&mod) } elseif (%mp3ext == 669) { bread %filepath 2 107 &mod | var %mp3title = $id3pull(1,107,&mod) } elseif (%mp3ext == it) { bread %filepath 4 25 &mod | var %mp3title = $id3pull(1,25,&mod) } elseif (%mp3ext == xm) { bread %filepath 17 20 &mod | var %mp3title $id3pull(1,20,&mod) } if (%mp3ext == http) { var %mp3file = $remove(%filepath,") } else { var %mp3file $nopath(%filepath) if (. isin $right(%mp3file,3)) { var %mp3file $mid(%mp3file,1,$calc($len(%mp3file) - 3)) } else { var %mp3file $mid(%mp3file,1,$calc($len(%mp3file) - 4)) } var %mp3file $replace(%mp3file,_,$chr(32)) } if (!%mp3title) { var %mp3title = %mp3file } var %mp3title $replace(%mp3title,_,$chr(32)) if ($gettok(%mp3on,1,127) > 0 && $channelcheck(%adok,$chan) > 0 && %active != Off && %active != Send) { var %usequeue = $gettok(%mp3on,2,127), %filepath = $shortfn($nofile(%filepath)) $+ $nopath(%filepath), %out set %mp3play $+(%filepath,$chr(127),%mp3title) var %tmp.out = %tmp.out %col1 $+ - TDCC $+(Trigger:,%col1,$chr(91),%col2,/ctcp) $me $+(winamp,%col1,$chr(93)) var %tmp.out = %tmp.out - $+(Size:[,%col2,$size($file(%filepath).size),%col1,$chr(93)) var %tmp.out = %tmp.out - $+(Sends:[,%col2,$sendp(%usequeue),/,$gettok(% [ $+ [ %usequeue ] ],2,127),%col1,$chr(93)) if ($gettok(% [ $+ [ %usequeue ] ],4,127) > 0 ) { var %tmp.out = %tmp.out - $+(Queues:[,%col2,[ % [ $+ [ %usequeue ] $+ ] s ],/,$gettok(% [ $+ [ %usequeue ] ],4,127),%col1,$chr(93)) } if ($chr(127) isin %mp3out) { var %mp3out = %mp3out $replace(%tmp.out,-,$chr(127)) } | else { var %mp3out = %mp3out %tmp.out } } var %mp3out = $mp3title(%mp3out,:s,SysReset %ver), %mp3out = $replace(%mp3out,.,%col1 $+ . $+ %col2), %mp3out = $mp3title(%mp3out,:0,%mp3wtrack) var %mp3out = $mp3title(%mp3out,:2,%mp3title), %mp3out = $mp3title(%mp3out,:1,%mp3artist), %mp3out = $mp3title(%mp3out,:3,%mp3album) var %mp3out = $mp3title(%mp3out,:6,%mp3genre), %mp3out = $mp3title(%mp3out,:7,%mp3file), %mp3out = $mp3title(%mp3out,:4,%mp3year) var %mp3out = $mp3title(%mp3out,:5,%mp3comment), %mp3out = $mp3title(%mp3out,:a,%mp3track), %mp3out = $mp3title(%mp3out,:t,%mp3time) var %mp3out = $mp3title(%mp3out,:o,%mp3origional) if ($1 == x || $1 == quiet || !$server) { echo -a %mp3out } elseif (c isin $gettok($chan($active).mode,1,32)) { /me $strip(%mp3out) } else { /me %mp3out } } alias -l mp3title { if ($2 isin $1) { if ($3) { return $replace($1,$2,%col2 $+ $3 $+ %col1) } else { return $deltok($1,$calc($findtok($1,$matchtok($1,$2,1,32),32) -1) - $findtok($1,$matchtok($1,$2,1,32),32),32) } } else { return $1 } } alias -l id3pull { if (!$1 || !$2 || !$3) { halt } var %loop = $1, %return while (%loop <= $bvar($3,0) && %loop <= $2) { var %var = $bvar($3,%loop).text if ($asc(%var) == 32) { var %return %return $chr(32) } else { var %return %return $+ %var } inc %loop } return %return } alias -l id32pull { var %start $bfind(&id3,1,$1) if (!%start) { return } inc %start 4 var %size = $txtconv($bvar(&id3,%start,4)) inc %start 6 | dec %size if ($1 == COMM) { inc %start 4 | dec %size 4 } return $id3pull(%start,$calc(%start + %size),&id3) } alias -l genre { ;; ACK! Winamp isn't standard! if ($1 == $null || $1 > 147 || $1 < 0) { return } if ($1 == 0) { return Blues } elseif ($1 == 1) { return Classic Rock } elseif ($1 == 2) { return Country } elseif ($1 == 3) { return Dance } elseif ($1 == 4) { return Disco } elseif ($1 == 5) { return Funk } elseif ($1 == 6) { return Grunge } elseif ($1 == 7) { return Hip-Hop } elseif ($1 == 8) { return Jazz } elseif ($1 == 9) { return Metal } elseif ($1 == 10) { return New Age } elseif ($1 == 11) { return Oldies } elseif ($1 == 12) { return Other } elseif ($1 == 13) { return Pop } elseif ($1 == 14) { return R&B } elseif ($1 == 15) { return Rap } elseif ($1 == 16) { return Reggae } elseif ($1 == 17) { return Rock } elseif ($1 == 18) { return Techno } elseif ($1 == 19) { return Industrial } elseif ($1 == 20) { return Alternative } elseif ($1 == 21) { return Ska } elseif ($1 == 22) { return Death Metal } elseif ($1 == 23) { return Pranks } elseif ($1 == 24) { return Soundtrack } elseif ($1 == 25) { return Euro-Techno } elseif ($1 == 26) { return Ambient } elseif ($1 == 27) { return Trip-Hop } elseif ($1 == 28) { return Vocal } elseif ($1 == 29) { return Jazz+Funk } elseif ($1 == 30) { return Fusion } elseif ($1 == 31) { return Trance } elseif ($1 == 32) { return Classical } elseif ($1 == 33) { return Instrumental } elseif ($1 == 34) { return Acid } elseif ($1 == 35) { return House } elseif ($1 == 36) { return Game } elseif ($1 == 37) { return Sound Clip } elseif ($1 == 38) { return Gospel } elseif ($1 == 39) { return Noise } elseif ($1 == 40) { return Alt. Rock } elseif ($1 == 41) { return Bass } elseif ($1 == 42) { return Soul } elseif ($1 == 43) { return Punk } elseif ($1 == 44) { return Space } elseif ($1 == 45) { return Meditative } elseif ($1 == 46) { return Instrumental Pop } elseif ($1 == 47) { return Instrumental Rock } elseif ($1 == 48) { return Ethnic } elseif ($1 == 49) { return Gothic } elseif ($1 == 50) { return Darkwave } elseif ($1 == 51) { return Techno-Industrial } elseif ($1 == 52) { return Electronic } elseif ($1 == 53) { return Pop-Folk } elseif ($1 == 54) { return Eurodance } elseif ($1 == 55) { return Dream } elseif ($1 == 56) { return Southern Rock } elseif ($1 == 57) { return Comedy } elseif ($1 == 58) { return Cult } elseif ($1 == 59) { return Gangsta Rap } elseif ($1 == 60) { return Top 40 } elseif ($1 == 61) { return Christian Rap } elseif ($1 == 62) { return Pop/Funk } elseif ($1 == 63) { return Jungle } elseif ($1 == 64) { return Native American } elseif ($1 == 65) { return Cabaret } elseif ($1 == 66) { return New Wave } elseif ($1 == 67) { return Psychadelic } elseif ($1 == 68) { return Rave } elseif ($1 == 69) { return Showtunes } elseif ($1 == 70) { return Trailer } elseif ($1 == 71) { return Lo-Fi } elseif ($1 == 72) { return Tribal } elseif ($1 == 73) { return Acid Punk } elseif ($1 == 74) { return Acid Jazz } elseif ($1 == 75) { return Polka } elseif ($1 == 76) { return Retro } elseif ($1 == 77) { return Musical } elseif ($1 == 78) { return Rock & Roll } elseif ($1 == 79) { return Hard Rock } elseif ($1 == 80) { return Folk } elseif ($1 == 81) { return Folk/Rock } elseif ($1 == 82) { return National Folk } elseif ($1 == 83) { return Swing } elseif ($1 == 84) { return Fast Fusion } elseif ($1 == 85) { return Bebob } elseif ($1 == 86) { return Latin } elseif ($1 == 87) { return Revival } elseif ($1 == 88) { return Celtic } elseif ($1 == 89) { return Bluegrass } elseif ($1 == 90) { return Avantgarde } elseif ($1 == 91) { return Gothic Rock } elseif ($1 == 92) { return Progressive Rock } elseif ($1 == 93) { return Psychedelic Rock } elseif ($1 == 94) { return Symphonic Rock } elseif ($1 == 95) { return Slow Rock } elseif ($1 == 96) { return Big Band } elseif ($1 == 97) { return Chorus } elseif ($1 == 98) { return Easy Listening } elseif ($1 == 99) { return Acoustic } elseif ($1 == 100) { return Humour } elseif ($1 == 101) { return Speech } elseif ($1 == 102) { return Chanson } elseif ($1 == 103) { return Opera } elseif ($1 == 104) { return Chamber Music } elseif ($1 == 105) { return Sonata } elseif ($1 == 106) { return Symphony } elseif ($1 == 107) { return Booty Bass } elseif ($1 == 108) { return Primus } elseif ($1 == 109) { return Porn Groove } elseif ($1 == 110) { return Satire } elseif ($1 == 111) { return Slow Jam } elseif ($1 == 112) { return Club } elseif ($1 == 113) { return Tango } elseif ($1 == 114) { return Samba } elseif ($1 == 115) { return Folklore } elseif ($1 == 116) { return Ballad } elseif ($1 == 117) { return Power Ballad } elseif ($1 == 118) { return Rhythmic Soul } elseif ($1 == 119) { return Freestyle } elseif ($1 == 120) { return Duet } elseif ($1 == 121) { return Punk Rock } elseif ($1 == 122) { return Drum Solo } elseif ($1 == 123) { return A Capella } elseif ($1 == 124) { return Euro-House } elseif ($1 == 125) { return Dance Hall } elseif ($1 == 126) { return Goa } elseif ($1 == 127) { return Drum & Bass } elseif ($1 == 128) { return Club-House } elseif ($1 == 129) { return Hardcore } elseif ($1 == 130) { return Terror } elseif ($1 == 131) { return Indie } elseif ($1 == 132) { return BritPop } elseif ($1 == 133) { return Negerpunk } elseif ($1 == 134) { return Polsk Punk } elseif ($1 == 135) { return Beat } elseif ($1 == 136) { return Christian Gangsta Rap } elseif ($1 == 137) { return Heavy Metal } elseif ($1 == 138) { return Black Metal } elseif ($1 == 139) { return Crossover } elseif ($1 == 140) { return Contemporary Christian } elseif ($1 == 141) { return Christian Rock } elseif ($1 == 142) { return Merengue } elseif ($1 == 143) { return Salsa } elseif ($1 == 143) { return Thrash Metal } elseif ($1 == 145) { return Anime } elseif ($1 == 146) { return JPop } elseif ($1 == 147) { return SynthPop } else { return } } alias txtconv { var %num = $numtok($1-,32), %loop = 1, %return while (%loop <= %num) { var %return = %return $+ $base($gettok($1-,%loop,32),10,2,8) | inc %loop } return $base(%return,2,10) } alias txtconvhex { var %loop = $numtok($1-,32), %tmp while (%loop > 0) { var %tmp = %tmp $+ $base($gettok($1-,%loop,32),10,16,2) | dec %loop } return $base(%tmp,16,10) } dialog winamp_scanner { title "WinAmp Scanner Setup" size -1 -1 311 289 box "Output Formatting:", 1002, 3 0 305 258 edit "", 1, 11 14 288 22, autohs text ":0 = WinAmp Track Number", 100, 11 39 140 13 text ":1 = Artist", 101, 11 54 140 13 text ":2 = Track Title / Filename", 102, 11 69 140 13 text ":3 = Album", 103, 11 84 140 13 text ":4 = Year", 104, 11 99 140 13 text ":5 = Comments Field", 105, 11 115 140 13 text ":6 = Genre", 112, 163 39 140 13 text ":7 = Filename Only", 106, 163 54 140 13 text ":a = Internal Track Number", 107, 163 69 140 13 text ":t = Time and Bitrate", 108, 163 84 140 13 text ":o = Original Artist/Composer", 109, 163 99 144 13 text ":s = SysReset Version", 110, 163 115 140 13 text "Use -- to get a dash,", 120, 32 130 110 12 text "instead of a square", 121, 32 142 110 13 button "Reset to Default", 25, 166 135 132 20 box "WinAmp TDCC:", 1000, 3 156 305 102 check "Enabled", 20, 10 179 64 20 check "Voice or Ops Only", 21, 10 198 108 20 text "Use Queue:", 1001, 161 166 58 13 list 22, 160 179 142 73, size button "&OK", 500, 165 264 70 22, default ok button "&Cancel", 501, 238 264 70 22, cancel } on *:dialog:winamp_scanner:init:*:{ did -a $dname 22 Default did -c $dname 22 1 if ($numtok(%queuepool,127) > 0) { var %abcabc 1 while (%abcabc <= $numtok(%queuepool,127)) { did -a $dname 22 $gettok(%queuepool,%abcabc,127) if ($gettok(%mp3on,2,127) == $gettok(%queuepool,%abcabc,127)) did -c $dname 22 $calc(%abcabc + 1) inc %abcabc } } if ($gettok(%mp3on,1,127) == 1) did -c $dname 20 elseif ($gettok(%mp3on,1,127) == 2) did -c $dname 20,21 else { did -b $dname 21,22 } did -ra $dname 1 $gettok(%mp3on,3,127) } on *:dialog:winamp_scanner:sclick:25:{ did -ra $dname 1 is playing: :0. :2 - :1 - :3 - :6 - :4 - :5 - :a - :t } on *:dialog:winamp_scanner:sclick:20:{ if ($did(20).state == 1) { did -e $dname 21,22 } | else { did -b $dname 21,22 } } on *:dialog:winamp_scanner:sclick:500:{ if ($did(21).state == 1 && $did(20).state == 1) { set %mp3on 2 $+ $chr(127) } elseif ($did(20).state == 1) set %mp3on 1 $+ $chr(127) else { set %mp3on 0 $+ $chr(127) } var %queue $did(22).seltext if (%queue == Default) { var %queue queue } set %mp3on %mp3on $+ %queue $+ $chr(127) set %mp3on %mp3on $+ $did(1) } Menu Channel,Query { Show Current WinAmp Information:/mp3 } Menu Menubar { WinAmp Scanner Setup:/opendialog winamp_scanner } ctcp *:WINAMP:{ if ($ulevel == 11) { haltdef | halt } if ($ulist($address($nick,5),banned,1) != $null) { .notice $nick %col1 $+ WinAmp TDCC: Sorry $nick, you're %col2 $+ banned %col1 $+ from my servers. Reason: %col2 $+ $gettok(% [ $+ [ $ulist($address($nick,5),banned,1) ] $+ ] ban,3,127) %col1 $+ -=SysReset %ver $+ =- } elseif ($gettok(%mp3on,1,127) == 0) { notice $nick %col1 $+ Sorry %col2 $+ WinAmp TDCC %col1 $+ is disabled. -=SysReset %ver $+ =- } else { if ($userchan($nick,%adok) == 0) { .notice $nick %col1 $+ WinAmp TDCC: You're not in a channel where I'm serving. | halt } elseif ($gettok(%mp3on,1,127) == 2) { var %loops 1 | var %openok 0 while (%loops <= $chan(0) && %openok == 0) { if ($nick isop $chan(%loops) || $nick isvoice $chan(%loops) || $nick ishop $chan(%loops)) { var %openok 1 } | inc %loops } if (%openok != 1) { notice $nick %col1 $+ TDCC: Sorry %col2 $+ WinAmp TDCC %col1 $+ is a voice restricted trigger. -=SysReset %ver $+ =- | halt } } var %usequeue $gettok(%mp3on,2,127) var %queueadd $add_queue(%usequeue,$nick,$gettok(%mp3play,1,127),$iif($network,$network,$gettok($server,-2-,46))) var %file %col2 $+ $gettok(%mp3play,2,127) $+ %col1 if (%queueadd == 0) { .notice $nick %col1 $+ WinAmp TDCC: Sending %file $+ . } elseif (%queueadd == 1) { .notice $nick %col1 $+ WinAmp TDCC: Sorry, all of your queue slots are full. } elseif ($left(%queueadd,1) == 2) { .notice $nick %col1 $+ WinAmp TDCC: %file has already been queued in slot $+ %col2 $mid(%queueadd,2,$len(%queueadd)) $+ %col1 $+ ! } elseif (%queueadd == 3) { .notice $nick %col1 $+ WinAmp TDCC: %file is already sending! } elseif (%queueadd == 4) { .notice $nick %col1 $+ WinAmp TDCC: Sorry, all send and queue slots are full. } elseif ($left(%queueadd,1) == 5) { .notice $nick %col1 $+ WinAmp TDCC: Adding %file to queue slot $+ %col2 $mid(%queueadd,2) $+ %col1 $+ . The file will send when the next send slot is open. } elseif (%queueadd == 6) { .notice $nick %col1 $+ WinAmp TDCC: Sorry, you already have %file queued in another pool. } elseif (%queueadd == 7) { .notice $nick %col1 $+ WinAmp TDCC: Sorry, this file is above the maximum sent file size limits. } else { .notice $nick %col1 $+ WinAmp TDCC: Server Error. Cannot Comply. } if (%queueadd == $null) { var %queueadd ERROR } else { var %queueadd OK - %queueadd } haltdef echo -s %col1 $+ WinAmp TDCC: %col2 $+ $nick Requested a file. Result: %queueadd } }