added OPER support (let the bots try to op themselves)
[NeonServV5.git] / src / modules / NeonServ.mod / bot_NeonServ.c
index 6a14454d7361ef527fa96dfdccf9ab9875216e88..8421fdbd840cadf7df7a039f4913bb0477cc4ad2 100644 (file)
@@ -15,6 +15,7 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
  */
 #include "../module.h"
+#include "../botid.h"
  
 #include "bot_NeonServ.h"
 #include "../../modcmd.h"
@@ -37,7 +38,7 @@
 #include "cmd_neonserv.h"
 #include "../../ConfigParser.h"
 
-#define BOTID 1
+#define BOTID NEONSERV_BOTID
 #define BOTALIAS "NeonServ"
 
 static const struct default_language_entry msgtab[] = {
@@ -76,7 +77,7 @@ static const struct default_language_entry msgtab[] = {
     {"NS_USERS_HEADER", "%s users from level %d to %d:"}, /* {ARGS: "#TestChan", 1, 500} */
     {"NS_USERS_HEADER_MATCH", "%s users from level %d to %d matching %s:"}, /* {ARGS: "#TestChan", 1, 500, "Test*"} */
     {"NS_USERS_HEADER_ACCESS", "Access"},
-    {"NS_USERS_HEADER_ACCOUNT", "Accout"},
+    {"NS_USERS_HEADER_ACCOUNT", "Account"},
     {"NS_USERS_HEADER_SEEN", "Last Seen"},
     {"NS_USERS_HEADER_STATE", "Status"},
     {"NS_USERS_COUNT", "There are $b%d$b users in %s."}, /* {ARGS: 20, "#TestChan"} */
@@ -100,7 +101,7 @@ static const struct default_language_entry msgtab[] = {
     {"NS_MYACCESS_HEADER_MATCH", "Showing all channel entries for account $b%s$b matching %s:"}, /* {ARGS: "TestAuth", "#Test*"} */
     {"NS_MYACCESS_HEADER_NAME", "Name"},
     {"NS_MYACCESS_HEADER_ACCESS", "Access"},
-    {"NS_MYACCESS_HEADER_FLAGS", "Flags"},
+    {"NS_MYACCESS_HEADER_FLAGS", "Rights"},
     {"NS_MYACCESS_HEADER_INFO", "Info"},
     {"NS_MYACCESS_COUNT", "%s has access in $b%d$b channel(s) and is owner of $b%d$b channel(s)."}, /* {ARGS: "TestUser", 15, 5} */
     {"NS_MYACCESS_COUNT_MATCH", "%s has access in $b%d$b channel(s) and is owner of $b%d$b channel(s) ($b%d$b channels matching your request)."}, /* {ARGS: "TestUser", 15, 5, 7} */
@@ -236,6 +237,7 @@ static const struct default_language_entry msgtab[] = {
     {"NS_REGISTER_DONE", "$b%s$b is now registered to $b%s$b."}, /* {ARGS: "#TestChan", "TestUser"} */
     {"NS_REGISTER_DONE_NOAUTH", "$b%s$b is now registered."}, /* {ARGS: "#TestChan"} */
     {"NS_UNREGISTER_NOT_REGISTERED", "$b%s$b is not registered with %s."}, /* {ARGS: "#TestChan", "NeonServ"} */
+    {"NS_UNREGISTER_NODELETE", "$b%s$b is protected from being unregistered (nodelete)."}, /* {ARGS: "#TestChan"} */
     {"NS_UNREGISTER_DONE", "$b%s$b unregistered."}, /* {ARGS: "#TestChan"} */
     {"NS_RECOVER_DONE", "$b%s$b has been recovered."}, /* {ARGS: "#TestChan"} */
     {"NS_RESYNC_DONE", "Synchronized users in $b%s$b with the userlist."}, /* {ARGS: "#TestChan"} */
@@ -417,9 +419,12 @@ static void neonserv_bot_ready(struct ClientSocket *client) {
     MYSQL_RES *res;
     MYSQL_ROW row;
     
-    printf_mysql_query("SELECT `automodes` FROM `bots` WHERE `id` = '%d'", client->clientid);
+    printf_mysql_query("SELECT `automodes`, `oper_user`, `oper_pass` FROM `bots` WHERE `id` = '%d'", client->clientid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) != NULL) {
+        if(row[1] && row[2]) {
+            putsock(client, "OPER %s %s", row[1], row[2]);
+        }
         putsock(client, "MODE %s +%s", client->user->nick, row[0]);
     }