diff options
Diffstat (limited to 'src/core/ms_set.c')
-rw-r--r-- | src/core/ms_set.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/ms_set.c b/src/core/ms_set.c index 6d625acb5..19f7de7ad 100644 --- a/src/core/ms_set.c +++ b/src/core/ms_set.c @@ -17,6 +17,7 @@ static int do_set(User * u); static int do_set_notify(User * u, MemoInfo * mi, char *param); static int do_set_limit(User * u, MemoInfo * mi, char *param); +static int reload_config(int argc, char **argv); static void myMemoServHelp(User * u); /** @@ -28,6 +29,7 @@ static void myMemoServHelp(User * u); int AnopeInit(int argc, char **argv) { Command *c; + EvtHook *hook; moduleAddAuthor("Anope"); moduleAddVersion(VERSION_STRING); @@ -49,6 +51,12 @@ int AnopeInit(int argc, char **argv) moduleSetMemoHelp(myMemoServHelp); + hook = createEventHook(EVENT_RELOAD, reload_config); + if (moduleAddEventHook(hook) != MOD_ERR_OK) { + alog("[\002ms_set\002] Can't hook to EVENT_RELOAD event"); + return MOD_STOP; + } + return MOD_CONT; } @@ -293,3 +301,16 @@ static int do_set_limit(User * u, MemoInfo * mi, char *param) } return MOD_CONT; } + +/** + * Upon /os reload refresh the limit in help output + **/ +static int reload_config(int argc, char **argv) { + Command *c; + + if (argc >= 1 && !stricmp(argv[0], EVENT_START)) + if ((c = findCommand(MEMOSERV, "SET LIMIT"))) + c->help_param1 = (char *) (long) MSMaxMemos; + + return MOD_CONT; +} |