X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_kick.c;h=7ffcf659d82b0b5ceecbd789d7269940a595824f;hb=bb5692b9cbff069abbf9573c81e86c3cd2061ceb;hp=373881ceb18994201e07bead95163ec878beb4fb;hpb=0f1dc61921eef1db8e404a5a82372e2d1cd55daa;p=NeonServV5.git diff --git a/src/cmd_neonserv_kick.c b/src/cmd_neonserv_kick.c index 373881c..7ffcf65 100644 --- a/src/cmd_neonserv_kick.c +++ b/src/cmd_neonserv_kick.c @@ -1,3 +1,19 @@ +/* cmd_neonserv_kick.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_kick_async1(struct ClientSocket *client, struct ClientS 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; @@ -84,12 +104,16 @@ static void neonserv_cmd_kick_async1(struct ClientSocket *client, struct ClientS } for(i = 0; i < kick_chanuser_pos; i++) { kicked_users++; - putsock(client, "KICK %s %s :%s", chan->name, kick_chanuser[i]->user->nick, reason); + putsock(client, "KICK %s %s :(%s) %s", chan->name, kick_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++; @@ -106,7 +130,7 @@ static void neonserv_cmd_kick_async1(struct ClientSocket *client, struct ClientS cuser = chanuser->user; } kicked_users++; - 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 { @@ -122,12 +146,16 @@ static void neonserv_cmd_kick_async1(struct ClientSocket *client, struct ClientS 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, "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)