on *:text:*:#:{
if ($1 == !ts) {
if ($2 == make) {
if (!$3) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1 make <topic> %chanlevskin | [ [ %type ] ] %chanlevskin You can specify variables with :<VARIABLE NAME HERE>:. Example: :news: %chanlevskin | halt }
set %stopic_skin_ [ $+ [ $chan ] ] $iif($gettok($3-,-1,32) == --set,$deltok($3-,-1,32),$3-)
unset %stopic_vartable_ [ $+ [ $chan ] ]
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Topic succesfully created. %chanlevskin
if ($gettok($4-,-1,32) == --set) {
var %topic = %stopic_skin_ [ $+ [ $chan ] ]
var %table = %stopic_vartable_ [ $+ [ $chan ] ]
var %numvars = $numtok(%table,64)
var %i = 1
while (%i <= %numvars) {
var %tok = $chr(58) $+ $gettok(%table,%i,64) $+ $chr(58)
var %rpl = %stopic_var_ [ $+ [ $chan ] $+ ] _ [ $+ [ $gettok(%table,%i,64) ] ]
var %topic = $replace(%topic,%tok,%rpl)
inc %i
}
var %str = %topic | var %x = $wildtok(%str,:*:,0,32) | var %result = %str | while (%x) { var %result = $reptok(%result,$wildtok(%str,:*:,%x,32),x,32) | dec %x }
var %topic = %result
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin
if (%stopic_q_ [ $+ [ $chan ] ] == on) {
msg Q settopic $chan %topic
halt
}
topic $chan %topic
}
halt
}
if ($2 == Q) {
if ($3 != on) && ($3 != off) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1 Q on/off %chanlevskin | halt }
set %stopic_q_ [ $+ [ $chan ] ] $3
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin
halt
}
if ($2 == var) {
if (!$3) || (!$4) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1 var <variable> <value> %chanlevskin | halt }
if (!%stopic_skin_ [ $+ [ $chan ] ]) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! First create topic with $1 make <topic> %chanlevskin | halt }
var %topic = %stopic_skin_ [ $+ [ $chan ] ]
if (: $+ $3 $+ : !isin %topic) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! No such variable ' $+ $3 $+ '! %chanlevskin | halt }
var %newvar = $iif($gettok($4-,-1,32) == --set,$deltok($4-,-1,32),$4-)
set %stopic_var_ [ $+ [ $chan ] $+ ] _ [ $+ [ $3 ] ] %newvar
if ($3 !isin %stopic_vartable_ [ $+ [ $chan ] ]) { set %stopic_vartable_ [ $+ [ $chan ] ] %stopic_vartable_ [ $+ [ $chan ] ] $+ @ $+ $3 }
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Variable succesfully saved. %chanlevskin
if ($gettok($4-,-1,32) == --set) {
var %topic = %stopic_skin_ [ $+ [ $chan ] ]
var %table = %stopic_vartable_ [ $+ [ $chan ] ]
var %numvars = $numtok(%table,64)
var %i = 1
while (%i <= %numvars) {
var %tok = $chr(58) $+ $gettok(%table,%i,64) $+ $chr(58)
var %rpl = %stopic_var_ [ $+ [ $chan ] $+ ] _ [ $+ [ $gettok(%table,%i,64) ] ]
var %topic = $replace(%topic,%tok,%rpl)
inc %i
}
var %str = %topic | var %x = $wildtok(%str,:*:,0,32) | var %result = %str | while (%x) { var %result = $reptok(%result,$wildtok(%str,:*:,%x,32),x,32) | dec %x }
var %topic = %result
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin
if (%stopic_q_ [ $+ [ $chan ] ] == on) {
msg Q settopic $chan %topic
halt
}
topic $chan %topic
}
halt
}
if ($2 == gettopic) {
if (!%stopic_skin_ [ $+ [ $chan ] ]) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! First create topic with $1 make <topic> %chanlevskin | halt }
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Current topic skin for $chan is: %stopic_skin_ [ $+ [ $chan ] ] %chanlevskin
halt
}
if ($2 == set) {
if (!%stopic_skin_ [ $+ [ $chan ] ]) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! First create topic with $1 make <topic> %chanlevskin | halt }
var %topic = %stopic_skin_ [ $+ [ $chan ] ]
var %table = %stopic_vartable_ [ $+ [ $chan ] ]
var %numvars = $numtok(%table,64)
var %i = 1
while (%i <= %numvars) {
var %tok = $chr(58) $+ $gettok(%table,%i,64) $+ $chr(58)
var %rpl = %stopic_var_ [ $+ [ $chan ] $+ ] _ [ $+ [ $gettok(%table,%i,64) ] ]
var %topic = $replace(%topic,%tok,%rpl)
inc %i
}
var %str = %topic | var %x = $wildtok(%str,:*:,0,32) | var %result = %str | while (%x) { var %result = $reptok(%result,$wildtok(%str,:*:,%x,32),x,32) | dec %x }
var %topic = %result
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin
if (%stopic_q_ [ $+ [ $chan ] ] == on) {
msg Q settopic $chan %topic
halt
}
topic $chan %topic
halt
}
if ($2 == getvars) {
if (!%stopic_skin_ [ $+ [ $chan ] ]) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! First create topic with $1 make <topic> %chanlevskin | halt }
var %table = %stopic_vartable_ [ $+ [ $chan ] ]
var %numvars = $numtok(%table,64)
var %i = 1
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Topic variable table: %chanlevskin
while (%i <= %numvars) {
var %rpl = %stopic_var_ [ $+ [ $chan ] $+ ] _ [ $+ [ $gettok(%table,%i,64) ] ]
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Name: $gettok(%table,%i,64) $+ . Data: %rpl %chanlevskin
inc %i
}
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin End of table. %chanlevskin
}
}