fixed multi-/zerobot support for cmd_neonserv_set trigger
authorpk910 <philipp@zoelle1.de>
Sat, 8 Sep 2012 16:05:00 +0000 (18:05 +0200)
committerpk910 <philipp@zoelle1.de>
Sat, 8 Sep 2012 16:05:00 +0000 (18:05 +0200)
src/modules/NeonServ.mod/cmd_neonserv_set.c

index 56b9f2a7766f2fcf7908c283723fec45fb81d848..2b78097fadad03e71d170ac9462bd2e2fc14503f 100644 (file)
@@ -367,7 +367,10 @@ static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct Client
     //get current trigger
     MYSQL_RES *res;
     MYSQL_ROW row;
-    printf_mysql_query("SELECT `trigger`, `defaulttrigger` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botid` = '%d'", chan->channel_id, client->clientid);
+    if(client->botid)
+        printf_mysql_query("SELECT `trigger`, `defaulttrigger`, `id` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, client->botid);
+    else
+        printf_mysql_query("SELECT `trigger`, `defaulttrigger`, `id` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botid` = '%d'", chan->channel_id, client->clientid);
     res = mysql_use();
     row = mysql_fetch_row(res);
     trigger = (row[0] ? row[0] : row[1]);
@@ -383,9 +386,12 @@ static char* neonserv_cmd_set_trigger(struct ClientSocket *client, struct Client
         }
         if(strlen(argument) > 15)
             argument[15] = '\0';
-        printf_mysql_query("UPDATE `bot_channels` SET `trigger` = '%s' WHERE `chanid` = '%d' AND `botid` = '%d'", escape_string(argument), chan->channel_id, client->clientid);
+        printf_mysql_query("UPDATE `bot_channels` SET `trigger` = '%s' WHERE `id` = '%d'", escape_string(argument), row[2]);
         trigger = argument;
-        changeChannelTrigger(client->botid, chan, trigger);
+        if(client->botid)
+            changeChannelTrigger(client->botid, chan, trigger);
+        else
+            changeBotwiseChannelTrigger(client->botid, client->clientid, chan, trigger);
         logEvent(event);
     }
     if(setting) {