#include "lang.h"
#include "mysqlConn.h"
#include "DBHelper.h"
+#include "EventLogger.h"
struct trigger_callback {
int botid;
MYSQL_RES *res;
MYSQL_ROW row;
int uaccess;
+ int eventflags = (cbind->func->flags & (CMDFLAG_LOG | CMDFLAG_OPLOG));
if((cbind->func->flags & CMDFLAG_REQUIRE_AUTH) && !(user->flags & USERFLAG_ISAUTHED)) {
reply(tmp_text_client, user, "MODCMD_AUTH_REQUIRED");
return;
chan->flags |= CHANFLAG_CHAN_REGISTERED;
chan->channel_id = atoi(row[0]);
if((sent_chan && sent_chan == chan) || access_count || minaccess) {
- uaccess = getChannelAccess(user, chan, 1);
- if(uaccess < minaccess) {
+ uaccess = getChannelAccess(user, chan, 0);
+ if(uaccess < minaccess && isGodMode(user)) {
+ eventflags |= CMDFLAG_OPLOG;
+ } else if(uaccess < minaccess) {
//ACCESS DENIED
reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
return;
defaults = mysql_fetch_row(mysql_use());
}
if(sent_chan && (sent_chan == chan) && uaccess < (row[1] ? atoi(row[1]) : atoi(defaults[1]))) {
- //PUBCMD
- reply(tmp_text_client, user, "MODCMD_PUBCMD", chan->name);
- return;
+ if(isGodMode(user)) {
+ eventflags |= CMDFLAG_OPLOG;
+ } else {
+ //PUBCMD
+ reply(tmp_text_client, user, "MODCMD_PUBCMD", chan->name);
+ return;
+ }
}
int i;
for(i = 0; i < access_count; i++) {
defaults = mysql_fetch_row(mysql_use());
}
if(uaccess < (row[2+i] ? atoi(row[2+i]) : atoi(defaults[2+i]))) {
- reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
- return;
+ if(isGodMode(user)) {
+ eventflags |= CMDFLAG_OPLOG;
+ } else {
+ reply(tmp_text_client, user, "MODCMD_ACCESS_DENIED");
+ return;
+ }
}
}
}
reply(tmp_text_client, user, "MODCMD_PRIVILEGED", cbind->cmd);
return;
}
- cbind->func->func(client, user, chan, argv, argc);
+ struct Event *event = createEvent(client, user, chan, cbind->func->name, argv, argc, eventflags);
+ cbind->func->func(client, user, chan, argv, argc, event);
}
static void got_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message) {