X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/6c639159b0e1acb5bc0d2e9e9d439218c4190028..0c5dd86cfcd1c018ebf69ce515e94b5fbbccb5ac:/extensions/helpops.c diff --git a/extensions/helpops.c b/extensions/helpops.c index 5633420e..1fb3b423 100644 --- a/extensions/helpops.c +++ b/extensions/helpops.c @@ -108,17 +108,31 @@ do_dehelper(struct Client *source_p, struct Client *target_p) static int _modinit(void) { + rb_dlink_node *ptr; + user_modes[UMODECHAR_HELPOPS] = find_umode_slot(); construct_umodebuf(); + RB_DLINK_FOREACH (ptr, global_client_list.head) + { + struct Client *client_p = ptr->data; + if (IsPerson(client_p) && (client_p->umodes & user_modes[UMODECHAR_HELPOPS])) + helper_add(client_p); + } + return 0; } static void _moddeinit(void) { + rb_dlink_node *n, *tn; + user_modes[UMODECHAR_HELPOPS] = 0; construct_umodebuf(); + + RB_DLINK_FOREACH_SAFE(n, tn, helper_list.head) + rb_dlinkDestroy(n, &helper_list); } static void