From 53664694c4bbb647f01a708bd4d8fbad25f02bed Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Sun, 14 Dec 2025 04:32:02 -0500 Subject: [PATCH] add RPL_WHOISKEYVALUE output (#2302) --- irc/server.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/irc/server.go b/irc/server.go index 3c763593..641d63f2 100644 --- a/irc/server.go +++ b/irc/server.go @@ -637,7 +637,6 @@ func (client *Client) getWhoisOf(target *Client, hasPrivs bool, rb *ResponseBuff if target.HasMode(modes.Bot) { rb.Add(nil, client.server.name, RPL_WHOISBOT, cnick, tnick, fmt.Sprintf(ircfmt.Unescape(client.t("is a $bBot$b on %s")), client.server.Config().Network.Name)) } - if client == target || oper.HasRoleCapab("ban") { for _, session := range target.Sessions() { if session.certfp != "" { @@ -649,6 +648,11 @@ func (client *Client) getWhoisOf(target *Client, hasPrivs bool, rb *ResponseBuff if away, awayMessage := target.Away(); away { rb.Add(nil, client.server.name, RPL_AWAY, cnick, tnick, awayMessage) } + if rb.session.capabilities.Has(caps.Metadata) { + for key, value := range target.ListMetadata() { + rb.Add(nil, client.server.name, RPL_WHOISKEYVALUE, cnick, tnick, key, "*", value) + } + } } // rehash reloads the config and applies the changes from the config file.