1
0
Fork 0
forked from External/ergo

import changes

This commit is contained in:
Failure 2024-07-24 17:10:22 -07:00
parent 30f47a9b22
commit ca62b268b0
16 changed files with 272 additions and 34 deletions

View file

@ -477,6 +477,12 @@ func (channel *Channel) Names(client *Client, rb *ResponseBuffer) {
if respectAuditorium && memberData.modes.HighestChannelUserMode() == modes.Mode(0) {
continue
}
if rb.session.capabilities.Has(caps.ExtendedNames) {
away, _ := target.Away()
if away {
nick = nick + "*"
}
}
tl.AddParts(memberData.modes.Prefixes(isMultiPrefix), nick)
}
}
@ -795,6 +801,8 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp
}
client.server.logger.Debug("channels", fmt.Sprintf("%s joined channel %s", details.nick, chname))
// I think this is assured to always be a good join point
client.server.cefManager.CEFMessage("POLL", channel.NameCasefolded())
givenMode := func() (givenMode modes.Mode) {
channel.joinPartMutex.Lock()
@ -991,6 +999,7 @@ func (channel *Channel) playJoinForSession(session *Session) {
channel.Names(client, sessionRb)
}
sessionRb.Send(false)
client.server.cefManager.CEFMessage("POLL", channel.NameCasefolded())
}
// Part parts the given client from this channel, with the given message.
@ -1450,6 +1459,7 @@ func (channel *Channel) Quit(client *Client) {
client.server.channels.Cleanup(channel)
}
client.removeChannel(channel)
client.server.cefManager.KickBroadcast(channel.name, client.Username())
}
func (channel *Channel) Kick(client *Client, target *Client, comment string, rb *ResponseBuffer, hasPrivs bool) {
@ -1513,7 +1523,7 @@ func (channel *Channel) Purge(source string) {
now := time.Now().UTC()
for _, member := range members {
tnick := member.Nick()
msgid := utils.GenerateSecretToken()
msgid := utils.GenerateMessageIdStr()
for _, session := range member.Sessions() {
session.sendFromClientInternal(false, now, msgid, source, "*", false, nil, "KICK", chname, tnick, member.t("This channel has been purged by the server administrators and cannot be used"))
}