From fe11f77be6fca18907ffeee498af7101c2d91417 Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Thu, 26 May 2022 07:14:12 +0200 Subject: [PATCH] Fix +H not working in set::modes-on-join. Reported by ZarTek-Creole in https://bugs.unrealircd.org/view.php?id=6114 We now call HOOKTYPE_LOCAL_CHANMODE on the modes we set in modes-on-join, where 'client' is '&me'. Should be fine, as we already did the same for +P modes (indirectly) in channeldb. --- src/modules/join.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/join.c b/src/modules/join.c index 37610b806..e7c57eb00 100644 --- a/src/modules/join.c +++ b/src/modules/join.c @@ -262,6 +262,7 @@ void _join_channel(Channel *channel, Client *client, MessageTag *recv_mtags, con MessageTag *mtags_mode = NULL; Cmode *cm; char modebuf[BUFSIZE], parabuf[BUFSIZE]; + int should_destroy = 0; channel->mode.mode = MODES_ON_JOIN; @@ -281,6 +282,7 @@ void _join_channel(Channel *channel, Client *client, MessageTag *recv_mtags, con sendto_server(NULL, 0, 0, mtags_mode, ":%s MODE %s %s %s %lld", me.id, channel->name, modebuf, parabuf, (long long)channel->creationtime); sendto_one(client, mtags_mode, ":%s MODE %s %s %s", me.name, channel->name, modebuf, parabuf); + RunHook(HOOKTYPE_LOCAL_CHANMODE, &me, channel, mtags_mode, modebuf, parabuf, 0, 0, &should_destroy); free_message_tags(mtags_mode); }