The newest version, right click in a channel to turn the shitlist on/off, and to list people on the shitlist. right click a name in a room to add/remove that person from the shitlist. Have fun.
additional commands:
/shit name
/unshit name
KICK REASON BUG FIXED A SECOND TIME
menu channel {
.. shitlist
.on: .enable #shit | echo -a Shitlist Activated.
.off: .disable #shit | echo -a Shitlist Deactivated.
.people on the list: window -e @list | echo @list Type "/unshit NAMEHERE" to unshitlist a person | var %nicks 1 | while (%nicks <= $ini(shitlist,nicks,0)) { echo @list $ini(shitlist,nicks,%nicks) on the ip $readini(shitlist,nicks,$ini(shitlist,nicks,%nicks)) | inc %nicks 1 }
}
menu nicklist {
..shitlist
.ADD: { set %global 1 | writeini shitlist $address($1,2) $address($1,2) $1 | writeini shitlist nicks $1 $address($1,2) | writeini shitlist $address($1,2) reason $?="why shitlist this guy/girl? (this is mandatory)" | while (%global <= $chan(0)) { if ($1 ison $chan(%global)) { mode $chan(%global) +b-e $address($1,2) $address($1,2) | kick $chan(%global) $1 [Shitlist Active: $readini(shitlist,$address($1,2),reason) ] } | inc %global 1 } | echo -a Shitlist Entry Added. | .enable #shit }
.DEL: { set %global2 1 | remini shitlist $address($1,2) $address($1,2) $1 | remini shitlist nicks $1 | remini shitlist $address($1,2) reason | echo -a Shitlist Entry Removed On $+($1,.) | while (%global2 <= $chan(0)) { mode $chan(%global2) -b $address($1,2) | inc %global2 1 } }
}
;Shitlist by Acclamator
alias shit { set %global 1 | writeini shitlist $address($1,2) $nick | writeini shitlist nicks $nick $address($1,2) | writeini shitlist $address($2\1,2) reason $?="why shitlist this guy/girl? (this is mandatory)" | while (%global <= $chan(0)) { if ($1 ison $chan(%global)) { mode $chan(%global) +b-e $address($1,2) $address($1,2) | kick $chan(%global) $1 [Shitlist Active: $readini(shitlist,reason,$address($1,2)) ] } | inc %global 1 } | echo -a Shitlist Entry Added. | .enable #shit }
alias unshit { set %global 1 | if ($readini(shitlist,nicks,$1)) { remini shitlist $readini(shitlist,nicks,$1) | remini shitlist nicks $1 } | echo -a $1 removed from shitlist }
#shit on
on *:join:#: if ($ini(shitlist,$address($nick,2),0) >= 1) || ($readini(shitlist,nicks,$nick)) { kick $chan $nick [Shitlist Active] $+([,$readini(shitlist,$address($nick,2),reason),]) | mode $chan +b-e $address($nick,2) $address($nick,2) }
on *:ban:#: { if ($banmask == $address($me,2)) && ($nick != $me) || ($bnick == $me) { mode $chan -bb $address($me,2) $me | kick $chan $nick [Ban Protection Active] } }
on *:RAWMODE:*: if ($regex($1,/\+[aqoh]/g) >= 1) && ($me == $2) { var %shitscan 1 | while (%shitscan <= $nick($chan,0)) { if ($ini(shitlist,$address($nick($chan,%shitscan),2),0) > 0) || ($readini(shitlist,nicks,$nick)) { mode $chan +b-e $address($nick($chan,%shitscan),2) $address($nick($chan,%shitscan),2) | kick $chan $nick($chan,%shitscan) [Shitlist entry on this nick/mask exists] } | inc %shitscan 1 } } | elseif ($nick != $me) { if ($1 == -e) || ($1 == -ee) { if ($address($2,2) == $address($me,2)) || ($2 == $me) { mode $chan +e $address($me,2) | kick $chan $nick [Except Protection Active] } } }
on *:KICK:*: if ($knick == $me) && ($nick != $me) { cs invite $chan | join $chan | mode $chan +b-e+e $address($nick,2) $address($nick,2) $address($me,2) | kick $chan $nick [Kick Revenge Active] }
on *:nick: if ($ini(shitlist,$address($nick,2),0) > 0) || ($readini(shitlist,nicks,$nick)) { set %global2 1 | while (%global2 <= $chan(0)) { if ($newnick ison $chan(%global2)) { mode $chan(%global2) +b-e $address($newnick,2) $address($newnick,2) | kick $chan(%global2) $newnick [Shitlist Active on this nick] } | inc %global2 1 } }
#shit end
patx, not everyone can do a kline. The whole point of this script is to keep whoever you have on the list, out of every room you have power in. a kline doesnt do anything if you arent sys admin. any regular user can pick up my script and use it. Thank you for voicing your opinion and I apologize for being rude.
First off: I am happy you got the name correct. Second if you want a nick to be banned in all channels to do a kline. Third my comment was to tell you guys your wrongs. Fourth, well your last sentence was pretty pointless so I really do not know what to say to that...
Also: I will not comment any further on the script. This debate is stupid. Have a good day :/
@Acclamator Calm the shit down. I do know what I am talking about. Having a mIRC bot has a ChanServ like bot is crap. Go get a life. It is a script. I didn't like it, big whoop. And not to mention I have not coded MSL in about 6 months. So shut your damn mouth and stop being a prick.
Also: I would like to point out my first comment:
i wont ever really need this for i have chanserv but good all the same.
Where I said I liked it. Then you had a brain shit or something and said:
using chanserv is lazy and inefficient, having the script directly ban and or kick is much better, as sometimes the server i am on loses services for updates. when that happens your chanserv scripts are useless. chanserv also doesn't like when people not on the access list use it.
I then gave a reason of why you were wrong in pretty much every sentence, politely. Then you freaked out. You really are making a "mountain out of an ant hole".
@Spanky it is PATX not Patx. All caps.
Acclamator please calm down.
Somethings i would like to point out, "if you have power in a channel, and you put someone on akick or some shoot, someone else can remove them." if users with status unban/unakick people you have banned/akicked then they probably shouldn't be ban/akicked, or they shouldn't have status. "Also, chanserv has no shytlist function. Dumb ass. you would have to store the bans... oh wait! ON YOUR COMPUTER!" Well chanserv does have this option "-ChanServ- AKICK Maintain the AutoKick list".
Now before you flip out on me read what i said don't just think it's the same as everyone else because it's not.
Well patx, get the freenode dildo out of your ass for a second and think, if you have power in a channel, and you put someone on akick or some shit, someone else can remove them. Then, hey, guess what, they dont get kicked anymore! holy shyt! storing the bans in your own file is much better. I see people like you all the time thinking they know whats better or thinking they know how to do something better than me. Also, chanserv has no shytlist function. Dumb ass. you would have to store the bans... oh wait! ON YOUR COMPUTER! Well well, we seem to have traveled in a nice little circle of logic here. Please don't comment like you know what you are talking about, I have seen your msl scripts, you obviously don't.
@Patx
if we all thought like that would there be scripts... whats the point of you saying that when. this is a place for scripts. so your saying just because chanserv, does bans doesn't mean this isn't usefull what if u dont want to type the command but simple click and what if u want it to be in every room chanserv Has no shitlist option And it never will have a function like that so.
get ur head out ur ass and think... about what this script is, instead of running you're mouth...
ps this script is usefull EVEN WITH CHANSERV end of, rant.
@Acclamator:
ChanServ is much more reliable then ANY mIRC bot. When you turn your computer off the mIRC bots goes off too. So lets compare ChanServ downtime: ~10 min.s every 5 months. mIRC bot downtime: ~8 hours every day.
ChanServ does not have "scripts", so I can not lose what I do not have.
Of course ChanServ does not like when people who are not on his list try to use him! What kind of security bot would he be if anybody could use him???
I want to be able to ban by X and not by MODE ( I am on the underent server(s) and we use X for our channel service bot.
So after the script detects a blacklisted user , nick , IDENT , or address , it can then send a MSG to X to ban the user or address or what ever the ban is with the appopriet reason that we specified. Since we still have a mimit amout of bans we can make by MODE
( Auto bans made by our atuo or remote scripts and not by server bans or bot bans )..
can this be done or modified in the script or added in the script's coding?