X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_clvl.c;h=a541c3d108a1368669fb0348209ce69a43c3b6ae;hb=b53d0c5f88063f075a48a0426f9d5d6b3490b9fc;hp=269d5e4f56e45371f83ce9a6a93960cd6a07956e;hpb=c575e458c6257e75b97884847143b20965a5dfda;p=NeonServV5.git diff --git a/src/cmd_neonserv_clvl.c b/src/cmd_neonserv_clvl.c index 269d5e4..a541c3d 100644 --- a/src/cmd_neonserv_clvl.c +++ b/src/cmd_neonserv_clvl.c @@ -1,5 +1,5 @@ -/* cmd_neonserv_clvl.c - NeonServ v5.2 - * Copyright (C) 2011 Philipp Kreil (pk910) +/* cmd_neonserv_clvl.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 @@ -40,7 +40,7 @@ CMD_BIND(neonserv_cmd_clvl) { reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess); return; } - if(caccess >= getChannelAccess(user, chan, 0)) { + if(caccess >= getChannelAccess(user, chan)) { if(isGodMode(user)) { event->flags |= CMDFLAG_OPLOG; } else { @@ -56,6 +56,10 @@ CMD_BIND(neonserv_cmd_clvl) { struct UserNode *cuser = getUserByNick(argv[0]); if(!cuser) { cuser = createTempUser(argv[0]); + if(!cuser) { + reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]); + return; + } cuser->flags |= USERFLAG_ISTMPUSER; } if(cuser->flags & USERFLAG_ISAUTHED) { @@ -108,9 +112,13 @@ static void neonserv_cmd_clvl_async1(struct ClientSocket *client, struct ClientS res = mysql_use(); if ((row = mysql_fetch_row(res)) != NULL) { //clvl - if(atoi(row[0]) >= getChannelAccess(user, chan, 1)) { - reply(textclient, user, "NS_USER_OUTRANKED", nick); - return; + if(atoi(row[0]) >= getChannelAccess(user, chan)) { + if(isGodMode(user)) { + event->flags |= CMDFLAG_OPLOG; + } else { + reply(textclient, user, "NS_USER_OUTRANKED", nick); + return; + } } printf_mysql_query("UPDATE `chanusers` SET `chanuser_access` = '%d' WHERE `chanuser_id` = '%s'", caccess, row[1]); reply(textclient, user, "NS_CLVL_DONE", nick, caccess, chan->name);