static void iauth_loc_conf_read(void) { dict_t node; const char *str1; const char *str2; node = conf_get_data("modules/blacklist", RECDB_OBJECT); if (node == NULL) return; str1 = database_get_data(node, "debug_bot", RECDB_QSTRING); if (str1) conf.debug_bot = GetUserH(str1); str1 = database_get_data(node, "debug_channel", RECDB_QSTRING); if (conf.debug_bot && str1) { str2 = database_get_data(node, "debug_channel_modes", RECDB_QSTRING); if (!str2) str2 = "+tinms"; conf.debug_channel = AddChannel(str1, now, str2, NULL); AddChannelUser(conf.debug_bot, conf.debug_channel)->modes |= MODE_CHANOP; } else { conf.debug_channel = NULL; } }
int track_finalize(void) { struct mod_chanmode change; dict_t node; char *str; finalized = 1; node = conf_get_data("modules/track", RECDB_OBJECT); if (!node) return 0; str = database_get_data(node, "snomask", RECDB_QSTRING); if (!str) track_cfg.snomask = TRACK_NICK|TRACK_KICK|TRACK_JOIN|TRACK_PART|TRACK_CHANMODE|TRACK_NEW|TRACK_DEL|TRACK_AUTH; else parse_track_conf(str); str = database_get_data(node, "bot", RECDB_QSTRING); if (!str) return 0; track_cfg.bot = GetUserH(str); if (!track_cfg.bot) return 0; mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; change.args[0].u.member = AddChannelUser(track_cfg.bot, track_cfg.channel); mod_chanmode_announce(track_cfg.bot, track_cfg.channel, &change); return 1; }
int snoop_finalize(void) { struct mod_chanmode change; dict_t node; char *str; finalized = 1; node = conf_get_data("modules/snoop", RECDB_OBJECT); if (!node) return 0; str = database_get_data(node, "bot", RECDB_QSTRING); if (!str) return 0; snoop_cfg.bot = GetUserH(str); if (!snoop_cfg.bot) return 0; mod_chanmode_init(&change); change.argc = 1; change.args[0].mode = MODE_CHANOP; change.args[0].u.member = AddChannelUser(snoop_cfg.bot, snoop_cfg.channel); mod_chanmode_announce(snoop_cfg.bot, snoop_cfg.channel, &change); return 1; }
void init_global(const char *nick) { struct chanNode *chan; unsigned int i; G_LOG = log_register_type("Global", "file:global.log"); reg_new_user_func(global_process_user, NULL); reg_auth_func(global_process_auth, NULL); reg_oper_func(global_process_oper, NULL); conf_register_reload(global_conf_read); global_module = module_register("Global", G_LOG, "global.help", NULL); modcmd_register(global_module, "LIST", cmd_list, 1, 0, "flags", "+oper", NULL); modcmd_register(global_module, "MESSAGE", cmd_message, 3, MODCMD_REQUIRE_AUTHED, "flags", "+oper", NULL); modcmd_register(global_module, "MESSAGES", cmd_messages, 1, 0, NULL); modcmd_register(global_module, "NOTICE", cmd_notice, 3, MODCMD_REQUIRE_AUTHED, "flags", "+oper", NULL); modcmd_register(global_module, "REMOVE", cmd_remove, 2, MODCMD_REQUIRE_AUTHED, "flags", "+oper", NULL); if(nick) { const char *modes = conf_get_data("services/global/modes", RECDB_QSTRING); global = AddLocalUser(nick, nick, NULL, "Global Services", modes); global_service = service_register(global); } if(autojoin_channels && global) { for (i = 0; i < autojoin_channels->used; i++) { chan = AddChannel(autojoin_channels->list[i], now, "+nt", NULL, NULL); AddChannelUser(global, chan)->modes |= MODE_CHANOP; } } saxdb_register("Global", global_saxdb_read, global_saxdb_write); reg_exit_func(global_db_cleanup, NULL); message_register_table(msgtab); }