{ "CSMSG_MUST_BE_OPPED", "You must be a channel operator in $b%s$b to register it." },
{ "CSMSG_PROXY_FORBIDDEN", "You may not register a channel for someone else." },
{ "CSMSG_OWN_TOO_MANY", "%s already owns enough channels (at least %d); use FORCE to override." },
+ { "CMSG_ALERT_REGISTERED" "%s registered to %s by %s." },
/* Do-not-register channels */
{ "CSMSG_NOT_DNR", "$b%s$b is not a valid channel name or *account." },
{ "CSMSG_UNREG_NODELETE", "$b%s$b is protected from unregistration." },
{ "CSMSG_CHAN_SUSPENDED", "$b$C$b access to $b%s$b has been temporarily suspended (%s)." },
{ "CSMSG_CONFIRM_UNREG", "To confirm this unregistration, you must use 'unregister %s'." },
+ { "CMSG_ALERT_UNREGISTERED" "%s %s" },
/* Channel moving */
{ "CSMSG_MOVE_SUCCESS", "Channel registration has been moved to $b%s$b." },
DECLARE_LIST(dnrList, struct do_not_register *);
DEFINE_LIST(dnrList, struct do_not_register *)
+#define chanserv_notice(target, format...) send_message(target , chanserv , ## format)
+#define chanserv_oper_message(format...) do { if(chanserv_conf.oper_channel) send_channel_message(chanserv_conf.oper_channel , chanserv , ## format); } while(0)
+
static int eject_user(struct userNode *user, struct chanNode *channel, unsigned int argc, char *argv[], struct svccmd *cmd, int action);
struct userNode *chanserv;
const char *new_channel_authed;
const char *new_channel_unauthed;
const char *new_channel_msg;
+
+ struct chanNode *oper_channel;
} chanserv_conf;
struct listData
channel->channel->channel_info = NULL;
dict_delete(channel->notes);
- sprintf(msgbuf, "%s %s", channel->channel->name, reason);
if(!IsSuspended(channel))
DelChannelUser(chanserv, channel->channel, msgbuf, 0);
- global_message(MESSAGE_RECIPIENT_OPERS | MESSAGE_RECIPIENT_HELPERS, msgbuf);
+ chanserv_oper_message(CSMSGL_CHANNEL_UNREGISTERED, channel->channel->name, reason);
UnlockChannel(channel->channel);
free(channel);
registered_channels--;
else
reply("CSMSG_REG_SUCCESS", channel->name);
- sprintf(reason, "%s registered to %s by %s.", channel->name, handle->handle, user->handle_info->handle);
- global_message(MESSAGE_RECIPIENT_OPERS | MESSAGE_RECIPIENT_HELPERS, reason);
+ chanserv_oper_message(CSMSG_ALERT_REGISTERED, channel->name, handle->handle, user->handle_info->handle);
return 1;
}
chanserv_conf.old_ban_names = strlist;
str = database_get_data(conf_node, "off_channel", RECDB_QSTRING);
off_channel = str ? atoi(str) : 0;
+
+ str = database_get_data(conf_node, "oper_chan", RECDB_QSTRING);
+ if(str)
+ {
+ chanserv_conf.oper_channel = AddChannel(str, now, "+tinms", NULL);
+ }
+ else
+ {
+ chanserv_conf.oper_channel = NULL;
+ }
}
static void
static const struct message_entry msgtab[] = {
{ "WDMSG_REGISTER_SUCCESS", "$b%s$b is now registered with %s." },
+ { "WDMSG_UNREG_SUCCESS", "$b%s$b is now unregistered." },
{ "WDMSG_NOT_REGISTERED", "$b%s$b is not registered with %s." },
{ "WDMSG_ALREADY_ADDED", "$b%s$b is already added. (ID: %s)" },
{ "WDMSG_BADWORD_ADDED", "added '$b%s$b' to the badword list with ID %s." },
unsigned long ban_duration;
unsigned long gline_duration;
struct chanNode *alert_channel;
+ struct chanNode *oper_channel;
} watchdog_conf;
const char *watchdog_module_deps[] = { NULL };
static struct badword *add_badword(const char *badword_mask, unsigned int triggered, unsigned int action, unsigned int alert, const char *id);
#define watchdog_notice(target, format...) send_message(target , watchdog , ## format)
#define watchdog_debug(format...) do { if(watchdog_conf.alert_channel) send_channel_message(watchdog_conf.alert_channel , watchdog , ## format); } while(0)
+#define watchdog_oper_message(format...) do { if(watchdog_conf.oper_channel) send_channel_message(watchdog_conf.oper_channel , watchdog , ## format); } while(0)
static MODCMD_FUNC(cmd_addbad)
{
add_channel(channel->name);
reply("WDMSG_REGISTER_SUCCESS", channel->name, watchdog->nick);
+ watchdog_oper_message("WDMSG_REGISTER_SUCCESS", channel->name, watchdog->nick);
return 1;
}
DelChannelUser(watchdog, channel, reason, 0);
dict_remove(chanlist, channel->name);
reply("CSMSG_UNREG_SUCCESS", channel->name);
+ watchdog_oper_message("CSMSG_UNREG_SUCCESS", channel->name);
return 1;
} else {
reply("WDMSG_NOT_REGISTERED", channel->name, watchdog->nick);
watchdog_conf.alert_channel = NULL;
}
+ str = database_get_data(conf_node, "oper_chan", RECDB_QSTRING);
+ if(str)
+ {
+ watchdog_conf.oper_channel = AddChannel(str, now, "+tinms", NULL);
+ }
+ else
+ {
+ watchdog_conf.oper_channel = NULL;
+ }
}
static int
#define KEY_EXPIRY "expiry"
#define KEY_DEBUG_CHANNEL "debug_channel"
+#define KEY_OPER_CHANNEL "oper_channel"
#define KEY_GLOBAL_EXCEPTIONS "global_exceptions"
#define KEY_NETWORK_RULES "network_rules"
#define KEY_TRIGGER "trigger"
#define spamserv_notice(target, format...) send_message(target , spamserv , ## format)
#define spamserv_debug(format...) do { if(spamserv_conf.debug_channel) send_channel_message(spamserv_conf.debug_channel , spamserv , ## format); } while(0)
+#define spamserv_oper_message(format...) do { if(spamserv_conf.oper_channel) send_channel_message(spamserv_conf.oper_channel , spamserv , ## format); } while(0)
#define ss_reply(format...) send_message(user , spamserv , ## format)
#define SET_SUBCMDS_SIZE 10
{ "SSMSG_STATUS_MEMORY", "$bMemory Information:$b" },
{ "SSMSG_STATUS_CHANNEL_LIST", "$bRegistered Channels:$b" },
{ "SSMSG_STATUS_NO_CHANNEL", "No channels registered." },
+ { "SSMSG_CHANNEL_REGISTERED", "%s (channel %s) registered by %s." },
+ { "SSMSG_CHANNEL_UNREGISTERED", "%s (channel %s) unregistered by %s." },
{ NULL, NULL }
};
static struct
{
struct chanNode *debug_channel;
+ struct chanNode *oper_channel;
struct string_list *global_exceptions;
const char *network_rules;
unsigned char trigger;
spamserv_join_channel(cInfo->channel);
- snprintf(reason, sizeof(reason), "%s (channel %s) registered by %s.", spamserv->nick, channel->name, user->handle_info->handle);
- global_message(MESSAGE_RECIPIENT_OPERS | MESSAGE_RECIPIENT_HELPERS, reason);
+ spamserv_oper_message("SSMSG_CHANNEL_REGISTERED", spamserv->nick, channel->name, user->handle_info->handle);
ss_reply("SSMSG_REG_SUCCESS", channel->name);
return 1;
spamserv_unregister_channel(cInfo);
- snprintf(reason, sizeof(reason), "%s (channel %s) unregistered by %s.", spamserv->nick, channel->name, user->handle_info->handle);
- global_message(MESSAGE_RECIPIENT_OPERS | MESSAGE_RECIPIENT_HELPERS, reason);
+ spamserv_oper_message("SSMSG_CHANNEL_UNREGISTERED", spamserv->nick, channel->name, user->handle_info->handle);
ss_reply("SSMSG_UNREG_SUCCESS", channel->name);
return 1;
}
str = database_get_data(conf_node, KEY_DEBUG_CHANNEL, RECDB_QSTRING);
-
if(str)
{
spamserv_conf.debug_channel = AddChannel(str, now, "+tinms", NULL);
spamserv_conf.debug_channel = NULL;
}
+ str = database_get_data(conf_node, KEY_OPER_CHANNEL, RECDB_QSTRING);
+ if(str)
+ {
+ spamserv_conf.oper_channel = AddChannel(str, now, "+tinms", NULL);
+ }
+ else
+ {
+ spamserv_conf.oper_channel = NULL;
+ }
+
spamserv_conf.global_exceptions = database_get_data(conf_node, KEY_GLOBAL_EXCEPTIONS, RECDB_STRING_LIST);
str = database_get_data(conf_node, KEY_NETWORK_RULES, RECDB_QSTRING);
"new_channel_unauthed_join" ""; //only sent if the user is unauthed
"new_channel_authed_join" ""; //only sent if the user is authed
"new_channel_message" ""; //always after the message above
+ "oper_channel" "#opers";
};
// unless you specified ".disabled".)
"nick" "SpamServ";
"debug_channel" "#spamserv";
+ "oper_channel" "#opers";
// url of the network rules. if you don't have network rules, remove this key.
"network_rules" "http://www.gamesurge.net/aup";
// trigger for spamserv; remove this key to disable the trigger
"gline_duration" "1h";
"punishment_reason" "Your message contained a forbidden word.";
"alert_chan" "#opers";
+ "oper_channel" "#opers";
};
"hostserv" {