X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_kickban.c;h=1123cd7b5a12dbb9d16f6f38c57f855184738202;hb=bb5692b9cbff069abbf9573c81e86c3cd2061ceb;hp=190770671ca620ef171db92f11e9af17c9dd28d0;hpb=0f1dc61921eef1db8e404a5a82372e2d1cd55daa;p=NeonServV5.git diff --git a/src/cmd_neonserv_kickban.c b/src/cmd_neonserv_kickban.c index 1907706..1123cd7 100644 --- a/src/cmd_neonserv_kickban.c +++ b/src/cmd_neonserv_kickban.c @@ -1,3 +1,19 @@ +/* cmd_neonserv_kickban.c - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "cmd_neonserv.h" @@ -70,6 +86,10 @@ static void neonserv_cmd_kickban_async1(struct ClientSocket *client, struct Clie reply(textclient, user, "NS_SERVICE_IMMUNE", chanuser->user->nick); continue; } + if(cuser == user || ((cuser->flags & USERFLAG_ISAUTHED) && !stricmp(user->auth, cuser->auth))) { + reply(textclient, user, "NS_YOU_PROTECTED"); + continue; + } if(isUserProtected(chan, cuser, user)) { reply(textclient, user, "NS_USER_PROTECTED", cuser->nick); continue; @@ -87,12 +107,16 @@ static void neonserv_cmd_kickban_async1(struct ClientSocket *client, struct Clie putsock(client, "MODE %s +b %s", chan->name, nick); } kicked_users++; - putsock(client, "KICK %s %s :%s", chan->name, kickban_chanuser[i]->user->nick, reason); + putsock(client, "KICK %s %s :(%s) %s", chan->name, kickban_chanuser[i]->user->nick, user->nick, reason); } } else if(*nick == '*') { //KICK AUTH nick++; cuser = NULL; + if(!stricmp(user->auth, nick)) { + reply(textclient, user, "NS_YOU_PROTECTED"); + continue; + } for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) { if((chanuser->user->flags & USERFLAG_ISAUTHED) && !stricmp(chanuser->user->auth, nick)) { provided_nicks++; @@ -110,7 +134,7 @@ static void neonserv_cmd_kickban_async1(struct ClientSocket *client, struct Clie } kicked_users++; putsock(client, "MODE %s +b %s", chan->name, generate_banmask(cuser, usermask)); - putsock(client, "KICK %s %s :%s", chan->name, cuser->nick, reason); + putsock(client, "KICK %s %s :(%s) %s", chan->name, cuser->nick, user->nick, reason); } } } else { @@ -123,13 +147,17 @@ static void neonserv_cmd_kickban_async1(struct ClientSocket *client, struct Clie reply(textclient, user, "NS_SERVICE_IMMUNE", cuser->nick); continue; } + if(cuser == user || ((cuser->flags & USERFLAG_ISAUTHED) && !stricmp(user->auth, cuser->auth))) { + reply(textclient, user, "NS_YOU_PROTECTED"); + continue; + } if(isUserProtected(chan, cuser, user)) { reply(textclient, user, "NS_USER_PROTECTED", cuser->nick); continue; } kicked_users++; putsock(client, "MODE %s +b %s", chan->name, generate_banmask(cuser, usermask)); - putsock(client, "KICK %s %s :%s", chan->name, cuser->nick, reason); + putsock(client, "KICK %s %s :(%s) %s", chan->name, cuser->nick, user->nick, reason); } } if(kicked_users == provided_nicks)