]> jfr.im git - solanum.git/blobdiff - extensions/force_user_invis.c
Note that messages caught in +g/+G are discarded
[solanum.git] / extensions / force_user_invis.c
index 6a53ee5e817455649f31990a6f6a65762202f2c1..f4970df787ddebddb9ec4ac0a4b635d8057d6b96 100644 (file)
 static const char noi_desc[] =
        "Do not allow users to remove user mode +i unless they are operators";
 
-static void h_noi_umode_changed(hook_data_umode_changed *);
+static void h_noi_umode_changed(void *);
 
 mapi_hfn_list_av1 noi_hfnlist[] = {
-       { "umode_changed", (hookfn) h_noi_umode_changed },
+       { "umode_changed", h_noi_umode_changed },
        { NULL, NULL }
 };
 
 DECLARE_MODULE_AV2(force_user_invis, NULL, NULL, NULL, NULL, noi_hfnlist, NULL, NULL, noi_desc);
 
 static void
-h_noi_umode_changed(hook_data_umode_changed *hdata)
+h_noi_umode_changed(void *data)
 {
+       hook_data_umode_changed *hdata = data;
        struct Client *source_p = hdata->client;
 
-       if (MyClient(source_p) && !IsOper(source_p) && !IsInvisible(source_p)) {
+       if (MyClient(source_p) && !IsOperGeneral(source_p) && !IsInvisible(source_p)) {
                SetInvisible(source_p);
        }
 }