/*
 * Ban stuff
 *
 * Author: Brian Weiss <brian@got.net> - 2000
 */

alias admin
{
	switch ($0)
	{
		(banlist) {
			@ delarray(banlist)
			xecho --  #    SETBY           TIME               BAN
			//admin banlist
		}
		(*) {//admin $*}
	}
}

alias ban (ban, reason)
{
	if (ban)
	{
		admin banuser $ban $reason
	}{
		xecho -b Usage: /ban <ban> [reason]
	}
}

alias bankill (nick, reason)
{
	if (nick)
	{
		admin banuser $nick
		kill $nick $reason
	}{
		xecho -b Usage: /bankill <nick> [reason]
	}
}

alias banlist (void)
{
	@ delarray(banlist)
	xecho --  #    SETBY           TIME               BAN
	//admin banlist
}

alias bans banlist

alias bk (nick, reason)
{
	if (nick)
	{
		cban $C $nick $reason
		kick $nick $reason
	}{
		xecho -b Usage: /bk <nick> [reason]
	}
}

alias tban (void)
{
	banlist
	input "Which ban(s) to remove? (1, 2-5, ...) " if ([$0])
	{
		^local count,tban1,tban2
		@ tban1 = before(- $0)
		@ tban2 = after(- $0)
		if (tban1 < tban2 && tban1 < numitems(banlist) && tban2 <= numitems(banlist))
		{
			for (@ count = tban1, count <= tban2, @ count++)
			{
				unban $word(0 $getitem(banlist ${[$count] - [1]}))
			}
		}{
			if ([$0] <= numitems(banlist))
			{
				unban $word(0 $getitem(banlist ${[$0] - [1]}))
			}
		}
	}
}

alias unban (bans)
{
	if (bans)
	{
		fe ($bans) xx
		{
			admin unbanuser $xx
		}
	}{
		xecho -b Usage: /unban <ban1> [ban2] etc..
	}
}

on ^616 "*"
{
	@ setitem(banlist $numitems(banlist) $*)
	xecho -c $cparse([%W$[3]numitems(banlist)%n]) ${[$1] == [(null)] ? [N/A            ] : [$[15]1]} ${[$3] ? [$[18]strftime($3 %X %x)] : [N/A               ]} $0
}

on ^629 "*"
{
	@ setitem(banlist $numitems(banlist) $0)
	xecho -c $cparse([%W$[3]numitems(banlist)%n]) N\/A             N\/A                $0
}