X-Git-Url: http://git.pk910.de/?p=srvx.git;a=blobdiff_plain;f=src%2Fopserv.c;h=d358d57637b4c59f10a51e819e99ee32115d2e6c;hp=e6efce3c0e50031c4526797485c04779fbc5fcd4;hb=52ad451848654edc3f544e7e52eb773b156da9ff;hpb=39540c5719fd88e5a6e4d75c827613a021c24546 diff --git a/src/opserv.c b/src/opserv.c index e6efce3..d358d57 100644 --- a/src/opserv.c +++ b/src/opserv.c @@ -297,6 +297,7 @@ static const struct message_entry msgtab[] = { { "OSMSG_DEVNULL_SET_M", "OverrideNoAmsg: %s" }, { "OSMSG_DEVNULL_SET_N", "MaxSendQ: %s" }, { "OSMSG_DEVNULL_SET_N_i", "MaxSendQ: %i" }, + { "OSMSG_DEVNULL_SET_OPME", "OpMe: %s" }, { "OSMSG_DEVNULL_SET_DONE", "Done." }, { "OSMSG_DEVNULL_RENAMED", "Devnull class %s renamed to %s" }, { "OSMSG_DEVNULL_SET_INVALID", "Invalid Option for setting %s" }, @@ -1239,7 +1240,7 @@ static MODCMD_FUNC(cmd_part) static MODCMD_FUNC(cmd_mode) { - if (!modcmd_chanmode(argv+1, argc-1, MCP_ALLOW_OVB|MCP_KEY_FREE|MC_ANNOUNCE)) { + if (!modcmd_chanmode(argv+1, argc-1, MCP_ALLOW_OVB|MCP_KEY_FREE|MC_ANNOUNCE|MCP_OPERMODE)) { reply("MSG_INVALID_MODES", unsplit_string(argv+1, argc-1, NULL)); return 0; } @@ -4093,6 +4094,8 @@ opserv_staff_alert(struct userNode *user, UNUSED_ARG(struct handle_info *old_han || user->uplink->burst || !user->handle_info) return; + else if (IsBot(user)) + return; else if (user->handle_info->opserv_level) type = "OPER"; else if (IsNetworkHelper(user)) @@ -4103,9 +4106,9 @@ opserv_staff_alert(struct userNode *user, UNUSED_ARG(struct handle_info *old_han return; if (irc_in_addr_is_valid(user->ip)) - send_channel_notice(opserv_conf.staff_auth_channel, opserv, IDENT_FORMAT" authed to %s account %s", IDENT_DATA(user), type, user->handle_info->handle); + send_channel_message(opserv_conf.staff_auth_channel, opserv, IDENT_FORMAT" authed to %s account %s", IDENT_DATA(user), type, user->handle_info->handle); else - send_channel_notice(opserv_conf.staff_auth_channel, opserv, "%s [%s@%s] authed to %s account %s", user->nick, user->ident, user->hostname, type, user->handle_info->handle); + send_channel_message(opserv_conf.staff_auth_channel, opserv, "%s [%s@%s] authed to %s account %s", user->nick, user->ident, user->hostname, type, user->handle_info->handle); } static void @@ -4271,7 +4274,7 @@ static MODCMD_FUNC(cmd_listdevnull) count++; } tbl.length = count+1; - tbl.width = 14; + tbl.width = 15; tbl.flags = 0; tbl.flags = TABLE_NO_FREE; tbl.contents = malloc(tbl.length * sizeof(tbl.contents[0])); @@ -4290,6 +4293,7 @@ static MODCMD_FUNC(cmd_listdevnull) tbl.contents[0][11] = "+S"; tbl.contents[0][12] = "+X"; tbl.contents[0][13] = "MaxQ"; + tbl.contents[0][14] = "OpMe"; if(!count) { table_send(cmd->parent->bot, user->nick, 0, NULL, tbl); @@ -4369,6 +4373,11 @@ static MODCMD_FUNC(cmd_listdevnull) } else { tbl.contents[ii][13] = off; } + if(DEVNULL_FLAGGED(th, MODE_OPME)) { + tbl.contents[ii][14] = on; + } else { + tbl.contents[ii][14] = off; + } } table_send(cmd->parent->bot, user->nick, 0, NULL, tbl); for(ii = 1; ii < tbl.length; ++ii) @@ -4405,6 +4414,7 @@ static MODCMD_FUNC(cmd_listdevnull) send_message_type(4, user, opserv,"+k = ChanServ Mode (mode +k)"); send_message_type(4, user, opserv,"+S = NetServ Mode (mode +S)"); send_message_type(4, user, opserv,"+X = XtraOp Mode (mode +X)"); + send_message_type(4, user, opserv,"OpMe = ChanServ opme command"); return 1; } @@ -4612,6 +4622,17 @@ static MODCMD_FUNC(cmd_setdevnull) th->maxsendq = strtoul(argv[offset+3], NULL, 0); reply("OSMSG_DEVNULL_SET_DONE"); } + } + else if(!strcmp("OPME",argv[offset+2])) { + if (!strcmp("OFF",argv[offset+3]) || !strcmp("0",argv[offset+3])) { + DEVNULL_CLEAR_FLAG(th, MODE_OPME); + reply("OSMSG_DEVNULL_SET_DONE"); + } else if (!strcmp("ON",argv[offset+3]) || !strcmp("1",argv[offset+3])) { + DEVNULL_SET_FLAG(th, MODE_OPME); + reply("OSMSG_DEVNULL_SET_DONE"); + } else { + reply("OSMSG_DEVNULL_SET_INVALID", argv[offset+3]); + } } else { reply("OSMSG_DEVNULL_SET_INVALID", argv[offset+2]); } @@ -4685,6 +4706,11 @@ static MODCMD_FUNC(cmd_setdevnull) } else { reply("OSMSG_DEVNULL_SET_N", "off"); } + if(DEVNULL_FLAGGED(th, MODE_OPME)) { + reply("OSMSG_DEVNULL_SET_OPME", "on"); + } else { + reply("OSMSG_DEVNULL_SET_OPME", "off"); + } } } else { reply("OSMSG_DEVNULL_NOTFOUND", argv[offset+1]); @@ -4781,14 +4807,17 @@ static MODCMD_FUNC(cmd_simul) { struct userNode *target; char *line; - if(!(target=GetUserH(argv[1]))) { - reply("OSMSG_SVSNONICK", argv[1]); - return 0; + if(argc > 2) { + if(!(target=GetUserH(argv[1]))) { + reply("OSMSG_SVSNONICK", argv[1]); + return 0; + } + line = unsplit_string(argv + 2, argc - 2, NULL); + irc_simul(target,line); + reply("OSMSG_SIMUL",target->nick,line); + return 1; } - line = unsplit_string(argv + 2, argc - 2, NULL); - irc_simul(target,line); - reply("OSMSG_SIMUL",target->nick,line); - return 1; + return 0; } static MODCMD_FUNC(cmd_relay)