##############################
# Userlist System #
# Version: 5.2 #
# By: Seb #
# Mail: seblemery@gmail.com #
# Net: ix.undernet.org #
# Chan: #mircscripting #
##############################
# Changelog: #
# v1 was ugly, and from 2001 #
# v2 revamped completely, #
# added levels and aliases #
# --------------------- #
# todo: #
# [] .set (chanset) #
# [] %var in menu? #
# [X] combined aliases #
# [x] lvl edits #
# [] help files #
##############################
#aliases
alias user.list {
var %dbp = database\ $+ # $+ .ini
var %valid.levels = op,voice,protect,bot,manager
vas %pull.level = $1
if ($1 !isin %valid.levels) { echo -a [Error] Invalid Level, try: /c.list <op|voice|protect|bot|manager> | halt }
if ($ini(%dbp,$1,0) == $null) { echo -at $1 List Empty | halt }
echo -a Listing:4 $1 on #
var %o = 1 | while (%o <= $ini(%dbp,$1,0)) { echo -a $2 $ini(%dbp,$1,%o) | inc %o }
}
alias show.levels {
var %dbp = database\ $+ # $+ .ini
echo -a command disabled for now
msg $chan Levels for $1 with this mask :: $address($1,2)
msg $chan $&
$iif($readini(%dbp, manager, $address($1,2)),3+manager,4-manager) $&
$iif($readini(%dbp, infoline, $address($1,2)),3+infoline,4-infoline) $&
$iif($readini(%dbp, op, $address($1,2)),3+autoop,4-autoop) $&
$iif($readini(%dbp, voice, $address($1,2)),3+autovoice,4-autovoice) $&
$iif($readini(%dbp, keepop, $address($1,2)),3+keepop,4-keepop) $&
$iif($readini(%dbp, bot, $address($1,2)),3+bot,4-bot) $&
$iif($readini(%dbp, protect, $address($1,2)),3+protect,4-protect)
}
alias update.levels {
var %dbp2 = database\ $+ $2 $+ .ini
msg $2 Levels for $1 with this mask :: $address($1,2)
msg $2 $&
$iif($readini(%dbp2, manager, $address($1,2)),3+manager,4-manager) $&
$iif($readini(%dbp2, infoline, $address($1,2)),3+infoline,4-infoline) $&
$iif($readini(%dbp2, op, $address($1,2)),3+autoop,4-autoop) $&
$iif($readini(%dbp2, voice, $address($1,2)),3+autovoice,4-autovoice) $&
$iif($readini(%dbp2, keepop, $address($1,2)),3+keepop,4-keepop) $&
$iif($readini(%dbp2, bot, $address($1,2)),3+bot,4-bot) $&
$iif($readini(%dbp2, protect, $address($1,2)),3+protect,4-protect) $&
$iif($readini(%dbp2, suspend, $address($2,2)),3+suspend,4-suspend)
}
alias c.update {
if ($timershow) { halt }
set %dbupchan $chan
.timer $+ show 1 2 update.levels $1 %dbupchan
unset %dbupchan
}
#events
on *:JOIN:#:{
var %dbp = database\ $+ # $+ .ini
if ($readini(%dbp, suspend, $address($nick,2))) { msg $chan $+([,$nick,]) Is Suspended | halt }
if ($readini(%dbp, infoline, $address($nick,2))) {
if ($nick == $me) { return }
msg $chan ( $+ $nick $+ ) $readini(%dbp, infoline, $address($nick,2))
}
if ($readini(%dbp, op, $address($nick,2)) == 1) && ($readini(%dbp, voice, $address($nick,2)) == 1) {
.mode # +ov # $nick
halt
}
if ($readini(%dbp, op, $address($nick,2)) == 1) {
mode $chan +o $nick
halt
}
if ($readini(%dbp, voice, $address($nick,2)) == 1) {
mode $chan +v $nick
halt
}
}
on *:KICK:#:{
var %dbp = database\ $+ # $+ .ini
if ($readini(%dbp, protect, $address($knick,2)) == 1) {
ban -k $chan $nick $knick is Protected! [Suspended: 1h]
writeini %dbp suspend $address($nick,2) 1
.timer 1 3600 remini %dbp suspend $address($nick,2) 1
}
}
on *:ban:#:{
var %dbp = database\ $+ # $+ .ini
if ($bnick == $nick) { halt }
if ($readini(%dbp, protect, $address($bnick,2)) == 1) {
mode $chan -bo+b $banmask $nick $address($nick,2)
kick $chan $nick $bnick is Protected! [Suspended: 1h]
writeini %dbp suspend $address($nick,2) 1
.timer 1 3600 remini %dbp suspend $address($nick,2) 1
}
}
on *:DEOP:#:{
var %dbp = database\ $+ # $+ .ini
if ($nick == $me) { halt }
if ($opnick == $nick) { halt }
if ($readini(%dbp, keepop, $address($opnick,2)) == 1) {
mode $chan -o+o $nick $opnick
msg $chan $opnick has KeepOp Enabled on $opnick
}
}
on 1:input:#:{
var %dbp = database\ $+ # $+ .ini
if ($1 == .who) {
.timer 1 1 msg $chan Levels for $2 with this mask :: $address($2,2)
.timer 1 1 msg $chan $&
$iif($readini(%dbp, manager, $address($2,2)),3+manager,4-manager) $&
$iif($readini(%dbp, infoline, $address($2,2)),3+infoline,4-infoline) $&
$iif($readini(%dbp, op, $address($2,2)),3+autoop,4-autoop) $&
$iif($readini(%dbp, voice, $address($2,2)),3+autovoice,4-autovoice) $&
$iif($readini(%dbp, keepop, $address($2,2)),3+keepop,4-keepop) $&
$iif($readini(%dbp, bot, $address($2,2)),3+bot,4-bot) $&
$iif($readini(%dbp, protect, $address($2,2)),3+protect,4-protect) $&
$iif($readini(%dbp, suspend, $address($2,2)),3+suspend,4-suspend)
$iif($readini(%dbp, infoline, $address($2,2)),msg $chan Infoline: $readini(%dbp, infoline, $address($2,2)),$null)
}
if ($1 == .mod) {
if (+bot isin $3-) { writeini %dbp bot $address($2,2) 1 | c.update $2 }
if (+autoop isin $3-) { writeini %dbp op $address($2,2) 1 | c.update $2 | mode $chan +o $2 }
if (+autovoice isin $3-) { writeini %dbp voice $address($2,2) 1 | c.update $2 | mode $chan +v $2 }
if (+keepop isin $3-) { writeini %dbp keepop $address($2,2) 1 | c.update $2 }
if (+protect isin $3-) { writeini %dbp protect $address($2,2) 1 | c.update $2 }
if (+manager isin $3-) { writeini %dbp manager $address($2,2) 1 | c.update $2 }
if (+suspend isin $3-) { writeini %dbp suspend $address($2,2) 1 | c.update $2 }
if (-bot isin $3-) { remini %dbp bot $address($2,2) | c.update $2 }
if (-autoop isin $3-) { remini %dbp op $address($2,2) | c.update $2 | mode $chan -o $2 }
if (-autovoice isin $3-) { remini %dbp voice $address($2,2) | c.update $2 | mode $chan -v $2 }
if (-keepop isin $3-) { remini %dbp keepop $address($2,2) | c.update $2 }
if (-protect isin $3-) { remini %dbp protect $address($2,2) | c.update $2 }
if (-manager isin $3-) { remini %dbp manager $address($2,2) | c.update $2 }
if (-suspend isin $3-) { remini %dbp suspend $address($2,2) 1 | c.update $2 }
}
if ($1 == +infoline) {
writeini %dbp infoline $address($2,2) $3-
.timer 1 1 msg $chan Added infoline to $2 on $chan :: $3-
}
if ($1 == -infoline) {
remini %dbp infoline $address($2,2)
.timer 1 1 msg $chan Removed infoline From $2 on $chan
}
}
on *:text:.who *:#:{
var %dbp = database\ $+ # $+ .ini
msg $chan Levels for $2 with this mask :: $address($2,2)
msg $chan $&
$iif($readini(%dbp, manager, $address($2,2)),3+manager,4-manager) $&
$iif($readini(%dbp, infoline, $address($2,2)),3+infoline,4-infoline) $&
$iif($readini(%dbp, op, $address($2,2)),3+autoop,4-autoop) $&
$iif($readini(%dbp, voice, $address($2,2)),3+autovoice,4-autovoice) $&
$iif($readini(%dbp, keepop, $address($2,2)),3+keepop,4-keepop) $&
$iif($readini(%dbp, bot, $address($2,2)),3+bot,4-bot) $&
$iif($readini(%dbp, protect, $address($2,2)),3+protect,4-protect) $&
$iif($readini(%dbp, suspend, $address($2,2)),3+suspend,4-suspend)
$iif($readini(%dbp, infoline, $address($2,2)),msg $chan Infoline: $readini(%dbp, infoline, $address($2,2)),$null)
}
on *:TEXT:.mod *:#:{
var %dbp = database\ $+ # $+ .ini
if ($readini(%dbp, manager, $address($nick,2)) !== 1) {
msg $chan you need manager level to use this command.
HALT
}
if ($readini(%dbp, manager, $address($nick,2)) == 1) {
if (+bot isin $3-) { writeini %dbp bot $address($2,2) 1 | c.update $2 }
if (+autoop isin $3-) { writeini %dbp opj $address($2,2) 1 | c.update $2 | mode $chan +o $2 }
if (+autovoice isin $3-) { writeini %dbp voice $address($2,2) 1 | c.update $2 | mode $chan +v $2 }
if (+keepop isin $3-) { writeini %dbp keepop $address($2,2) 1 | c.update $2 }
if (+protect isin $3-) { writeini %dbp protect $address($2,2) 1 | c.update $2 }
if (+manager isin $3-) { writeini %dbp manager $address($2,2) 1 | c.update $2 }
if (+suspend isin $3-) { writeini %dbp suspend $address($2,2) 1 | c.update $2 }
if (-bot isin $3-) { remini %dbp bot $address($2,2) | c.update $2 }
if (-autoop isin $3-) { remini %dbp op $address($2,2) | c.update $2 | mode $chan -o $2 }
if (-autovoice isin $3-) { remini %dbp voice $address($2,2) | c.update $2 | mode $chan -v $2 }
if (-keepop isin $3-) { remini %dbp keepop $address($2,2) | c.update $2 }
if (-protect isin $3-) { remini %dbp protect $address($2,2) | c.update $2 }
if (-manager isin $3-) { remini %dbp manager $address($2,2) | c.update $2 }
if (-suspend isin $3-) { remini %dbp suspend $address($2,2) 1 | c.update $2 }
}
}
on *:text:+infoline *:#:{
var %dbp = database\ $+ # $+ .ini
writeini $+(%dbp) infoline $address($nick,2) $2-
.notice $nick Added infoline to $nick on $chan :: $2-
}
on *:text:-infoline:#:{
remini $+(%dbp) infoline $address($nick,2)
.notice $nick Removed infoline From $nick on $chan
}
#menus
menu nicklist {
[Userlist]
.Add
..manager:writeini $+(database\,$chan,.ini) manager $address($$1,2) 1 | echo -a Added $$1 To manager level on $chan with this host: $address($$1,2) | mode $chan +o $$1
..Op:writeini $+(database\,$chan,.ini) op $address($$1,2) 1 | echo -a Added $$1 To Op list on $chan with this host: $address($$1,2) | mode $chan +o $$1
..Voice:writeini $+(database\,$chan,.ini) voice $address($$1,2) 1 | echo -a Added $$1 To Voice list on $chan with this host: $address($$1,2) | mode $chan +v $$1
..KeepOp:writeini $+(database\,$chan,.ini) keepop $address($$1,2) 1 | echo -a Added $$1 To KeepOp list on $chan with this host: $address($$1,2) | mode $chan +o $$1
..Protect:writeini $+(database\,$chan,.ini) protect $address($$1,2) 1 | echo -a Added $$1 To protect list on $chan with this host: $address($$1,2)
..Bot:writeini $+(database\,$chan,.ini) bot $address($$1,2) 1 | writeini $+(database\,$chan,.ini) opjoin $address($$1,2) 1 | echo -a Added $$1 To Bot list on $chan with this host: $address($$1,2) | mode # +o $$1
.Remove
..manager:remini $+(database\,$chan,.ini) manager $address($$1,2) | echo -a Removed $$1 From manager list on $chan with this host: $address($$1,2) | mode $chan -o $$1
..Op:remini $+(database\,$chan,.ini) op $address($$1,2) | echo -a Removed $$1 From Op list on $chan with this host: $address($$1,2) | mode $chan -o $$1
..Voice:remini $+(database\,$chan,.ini) voice $address($$1,2) | echo -a Removed $$1 From Voice list on $chan with this host: $address($$1,2) | mode $chan -v $$1
..KeepOp:remini $+(database\,$chan,.ini) KeepOp $address($$1,2) 1 | echo -a Removed $$1 From KeepOp list on $chan with this host: $address($$1,2)
..Protect:remini $+(database\,$chan,.ini) protect $address($$1,2) 1 | echo -a Removed $$1 From protect list on $chan with this host: $address($$1,2)
..Bot:remini $+(database\,$chan,.ini) bot $address($$1,2) 1 | echo -a Removed $$1 From Bot list on $chan with this host: $address($$1,2)
}
menu channel {
[Userlist]
.Show
..Managers:user.list manager
..Op:user.list op
..Voice:user.list voice
..Protect:user.list protect
..Bots:user.list bot
}
on *:LOAD:{
echo -a Userlist v5.2 Succesfully loaded
echo -a Make sure the folder database has been created. Type: //run database To verify.
echo -a if you see: * /run: unable to open file 'database' Then it failed. (Will not usually fail)
echo -a Just type /mkdir database or open your mIRC folder (where mirc.exe is) and create it manually with read/write permissions
mkdir database
}
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎