rendered paste bodyproc a:parser {nick uhost hand chan dir comm arg} {
if { [check:b:gl $hand]} {return}
set option [lindex $arg 0]
set chan1st $chan
set comm [alias -check $chan $comm]
if { [string match "#*" $option]} {set args [lrange $arg 1 end]; set chan $option} { set args $arg}
if {![a:command -exists $comm]} {return} elseif { [a:command -inactive $comm $chan]} {return}
global settings
if {$settings(flood) && ([a:flood -user $chan $hand $uhost] || [a:flood -chan $chan $dir])} {return}
set x "[split $nick] [split $hand] [split $chan1st] $dir"
if { [validchan $chan] } {
if {![botonchan $chan] && ![string match {|[suU]} [a:command -level $comm]] && ![regexp -nocase -- {^(purge|comeback|templeave|xremuser|xban|xkick|stats|chaninfo|chanset|suspend|admins|list)$} $comm]} {
a:tell $x 21 "$chan"; putcmdlog "<<$hand>> $nick!$uhost $chan INACTIVE CHAN ($chan)"; return
}
} elseif {![string equal $comm join] && ![string equal $comm verify] && ![string equal $comm stats]} {
if { [check:v:gl $hand]} {a:tell $x 20 "$chan"}
return
}
if { [check:S:ch $hand $chan] && ![check:N:gl $hand]} { a:tell $x 149; return}
set mix "[split $uhost]"
switch -glob -- [a:command -level $comm] {
{|[us]} {set report [catch {[a:command -proc $comm] $hand $chan $args $x $mix} execute]}
|* {if { [check:[string index [a:command -level $comm] 1]:ch $hand $chan] && [a:authorised $nick $uhost $hand]} { set report [catch {[a:command -proc $comm] $hand $chan $args $x $mix} execute]} {return}}
default {if { [check:[a:command -level $comm]:gl $hand] && [a:authorised $nick $uhost $hand]} { set report [catch {[a:command -proc $comm] $hand $chan $args $x $mix} execute]} {return}}
}
putcmdlog "<<$hand>> $nick!$uhost $chan [string toupper $comm] $execute"
if {$report && $settings(tcl_error_warn)} {a:announce -permowner ERROR "<<$hand>> $nick!$uhost $chan $dir >>> [a:command -proc $comm] >>> $comm $args >>> $::errorInfo"}
}