Skip to content

Cleveland, OH (Seeking Remote Work)

[Article Transfer] IRC Moderation Bot Script

[Article Transfer]: This article is an old article I wrote, that was transferred over from my old portfolio website. It is here for archival purposes.

Although this is useless for most people- for those interested in running an IRC Moderation Bot via mIRC or other clients that support *.mrc files, I’ve attached the source to a simple yet super-effective Battle.net inspired moderation Bot that I wrote when I was running a popular IRC server. Modify or use at your own desire.

Script code:

;; LOCAL COMMANDS for OPERS of GATE: ;; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

on *:TEXT:+b *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan +b $address($2,2)
msg $chan $2 : MODE => +b
kick $chan $2 Ban by $nick
}
}
on *:TEXT:-b *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan -b $address($2,2)
msg $chan $2 : MODE => -b
notice $2 MODE => -b Unban from $chan by $nick
}
}
on *:TEXT:+o *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan +o $2
msg $chan $2 : MODE => +o
}
}
on *:TEXT:-o *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan -o $2
msg $chan $2 : MODE => -o

}
}
on *:TEXT:+a *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan +a $2
msg $chan $2 : MODE => +a
}
}
on *:TEXT:-a *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan -a $2
msg $chan $2 : MODE => -a
}
}
on *:TEXT:+q *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan +q $2
msg $chan $2 : MODE => +q
}
}
on *:TEXT:-q *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
mode $chan -q $2
msg $chan $2 : MODE => -q
}
}
on *:TEXT:+k *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
kick $chan $2 $nick
msg $chan $2 : MODE => +k
}
}
on *:TEXT:.say *:#:{
if ($readini(oper.ini, $chan, $address($nick, 2))) {
msg $chan $2-
}
}
on *:TEXT:.add *:*: {
if ($readini(oper.ini, $chan, $address($nick, 2))) {
writeini oper.ini $chan $address($2,2) $address($2,2)
msg $chan Added [ $address($2,2) ] => [oper.ini]
}
}
on *:TEXT:.opers:#: {
if ($Nick isop $chan) {
msg $chan  $+ $chan Opers.
var %c 0
var %t $ini(oper.ini, $chan, 0)
while (%c < %t) {
inc %c
msg $chan $readini(oper.ini, $chan, $ini(oper.ini, $chan, %c))
}
msg $chan Opers =>  $+ %c 
}
}

on *:TEXT:.zap *:*: {
if ($readini(oper.ini, $chan, $address($nick, 2))) {
writeini autoban.ini $chan $address($2,2) $address($2,2)
mode $chan +b $2
msg $chan $2 : MODE => +zn (Autoban ZapNick)
kick $chan $2 Autoban ZapNick added by $nick

}
}

on *:TEXT:.zaps:#: {
if ($Nick isop $chan) {
msg $chan  $+ $chan Autobans.
var %c 0
var %t $ini(autoban.ini, $chan, 0)
while (%c < %t) {
inc %c
msg $chan $readini(autoban.ini, $chan, $ini(autoban.ini, $chan, %c))
}
msg $chan Autoban =>  $+ %c 
}
else { msg $chan Must be +o or higher to view Autoban list}
}
}

on *:JOIN:#: {
if ($readini(autoban.ini, $chan, $address($nick, 2))) {
mode $chan +b $address($nick, 2)
kick $chan $2 Autoban Zap => by $nick
}
}
on *:TEXT:.unzap *:*: {
if ($Nick isop $chan) {
remini autoban.ini $chan $2
notice $nick $2 Is unbanned from $chan $+ .
mode $chan -b $2
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on !1:TEXT:*.ver*:#:/msg $chan OperPlugin 2.0 by havok

on !1:TEXT:*?trigger*:#:/msg $chan Bot trigger is: . (use .help or .opers for additional information)

on !1:TEXT:*.help*:#:/msg $chan $2 : HELP -> (?trigger) commands => +a, -a, +b, -b, +k, +q, -q, +o, -o, .zap <name> (autoban), .add <name> (adds vhost to #GATE opers.ini) (available to #GATE channel opers) — .say, .uptime, .opers, .zaps, .karma/.karma <user>, .google <text>, .seen <user> (available to general +o) —

on !1:TEXT:*.commands*:#:/msg $chan $2 : HELP -> commands => +a, -a, +b, -b, +k, +q, -q, +o, -o, .zap <name> (autoban), .add <name> (adds vhost to #GATE opers.ini) (available to #GATE channel opers) — .say, .uptime, .opers, .zaps, .karma/.karma <user>, .google <text>, .seen <user> (available to general +o) —-

;; UPTIME ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on *:TEXT:*:#:{
if ($1 == .uptime) {
msg $chan Server Uptime => $uptime(system,2)
}
}

alias -l _titlebar titlebar mIRCDrop $ver – nick: $me $+ .. uptime: $replace($uptime(system,2),wks,w,wk,w,days,d,day,d,secs,s,mins,m,hrs,h,sec,s,min,m,hr,h)) $+ .. channels: $chan(0) $+ .. registered: $ini(data\access.ini,0)
alias -l _uptime return $gettok( [ $replace($uptime(system,2),wks,w,wk,w,days,d,day,d,secs,s,mins,m,hrs,h,sec,s,min,m,hr,h)) ] ,1,32) – $time

Back To Top