plugin.id = "anti-ban";
plugin.init =
function _init( glob ) {
plugin.major = 1;
plugin.minor = 0;
plugin.version = plugin.major + "." + plugin.minor + " (24 Dic 2009)";
plugin.description = "KickBan temp to baner. " +
"By MakOke <gboxlan@gmail.com>";
plugin.banTime = 40; // Minutes.
return "OK";
}
plugin.enable =
function _enable() {
client.eventPump.addHook( [{set:"channel", type:"chanmode"}], antibanHook, "antibanHook" );
return true;
}
plugin.disable =
function _disable() {
client.eventPump.removeHookByName( "antibanHook" );
return true;
}
function antibanHook( e ) {
if( e.modeStr[0] == '+' )
for( var i = 1; i < e.modeStr.length; i++ )
if( e.modeStr[i] == 'b' ) {
var thisMask = e.decodeParam( i+2 );
if( thisMask == e.server.me.getBanMask() || thisMask == e.server.me.encodedName + '!*@*' ||
thisMask == '*!*' + e.server.me.name + '@*' + e.server.me.host ||
thisMask == '*!*' + e.server.me.name + '@' + e.server.me.host ||
thisMask == '*!' + e.server.me.name + '@' + e.server.me.host ||
thisMask == e.server.me.encodedName + '!' + e.server.me.name + '@' + e.server.me.host ||
thisMask == e.server.me.encodedName + '!*' + e.server.me.name + '@' + e.server.me.host ||
thisMask == e.server.me.encodedName + '!*@' + e.server.me.host ||
thisMask == '*!*' + e.server.me.name + '@*' ) {
e.channel.dispatch( "unban " + thisMask );
var channelModes = e.channel.mode.getModeStr();
var sw = 0;
for( var i = 0; i < channelModes.length; i++ )
if( channelModes.substr( i, 1 ) == 'Q' ) {
e.channel.dispatch( "msg ChanServ SET " + e.channel.encodedName + " MLOCK -Q" );
sw++;
break;
}
e.user.kickBan( plugin.banTime + " min. Just Do It..." );
setTimeout( function() {
e.channel.dispatch( "unban " + e.user.encodedName );
}, plugin.banTime * 60 * 1000 );
if( sw )
e.channel.dispatch( "msg ChanServ SET " + e.channel.encodedName + " MLOCK +Q" );
display( "*[Anti-Ban]:* To " + e.user.encodedName + " in " + e.channel.getURL() + "." );
}
}
}
Download File anti-ban.js 2.1 KB