From 6426b3d6ed466a301ec11ec1b2149f8f035cf1ff Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Sun, 7 Jun 2020 16:11:30 +1000 Subject: [PATCH] Copy Insp's new BOT ISUPPORT token and WHO behaviour --- irc/config.go | 1 + irc/server.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/irc/config.go b/irc/config.go index 54ead42e..c9db3f0b 100644 --- a/irc/config.go +++ b/irc/config.go @@ -1166,6 +1166,7 @@ func (config *Config) generateISupport() (err error) { isupport := &config.Server.isupport isupport.Initialize() isupport.Add("AWAYLEN", strconv.Itoa(config.Limits.AwayLen)) + isupport.Add("BOT", "B") isupport.Add("CASEMAPPING", "ascii") isupport.Add("CHANLIMIT", fmt.Sprintf("%s:%d", chanTypes, config.Channels.MaxChannelsPerClient)) isupport.Add("CHANMODES", strings.Join([]string{modes.Modes{modes.BanMask, modes.ExceptMask, modes.InviteMask}.String(), modes.Modes{modes.Key}.String(), modes.Modes{modes.UserLimit}.String(), modes.Modes{modes.InviteOnly, modes.Moderated, modes.NoOutside, modes.OpOnlyTopic, modes.ChanRoleplaying, modes.Secret, modes.NoCTCP, modes.RegisteredOnly}.String()}, ",")) diff --git a/irc/server.go b/irc/server.go index 4b37bdef..a6f2c168 100644 --- a/irc/server.go +++ b/irc/server.go @@ -444,6 +444,9 @@ func (client *Client) rplWhoReply(channel *Channel, target *Client, rb *Response flags += channel.ClientPrefixes(target, rb.session.capabilities.Has(caps.MultiPrefix)) channelName = channel.name } + if target.HasMode(modes.Bot) { + flags += "B" + } details := target.Details() // hardcode a hopcount of 0 for now rb.Add(nil, client.server.name, RPL_WHOREPLY, client.Nick(), channelName, details.username, details.hostname, client.server.name, details.nick, flags, "0 "+details.realname)