mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-11 06:29:29 +01:00
fix duplicated JOIN line sent to resuming clients
Resuming clients without the resume capability would receive two JOIN lines per channel.
This commit is contained in:
parent
453257aace
commit
8d44fa3c3f
@ -993,19 +993,19 @@ func (channel *Channel) resumeAndAnnounce(session *Session) {
|
|||||||
// but really we should send it to voiced clients
|
// but really we should send it to voiced clients
|
||||||
if !channel.flags.HasMode(modes.Auditorium) {
|
if !channel.flags.HasMode(modes.Auditorium) {
|
||||||
for _, member := range channel.Members() {
|
for _, member := range channel.Members() {
|
||||||
for _, session := range member.Sessions() {
|
for _, mSes := range member.Sessions() {
|
||||||
if session.capabilities.Has(caps.Resume) {
|
if mSes == session || mSes.capabilities.Has(caps.Resume) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if session.capabilities.Has(caps.ExtendedJoin) {
|
if mSes.capabilities.Has(caps.ExtendedJoin) {
|
||||||
session.Send(nil, details.nickMask, "JOIN", chname, details.accountName, details.realname)
|
mSes.Send(nil, details.nickMask, "JOIN", chname, details.accountName, details.realname)
|
||||||
} else {
|
} else {
|
||||||
session.Send(nil, details.nickMask, "JOIN", chname)
|
mSes.Send(nil, details.nickMask, "JOIN", chname)
|
||||||
}
|
}
|
||||||
|
|
||||||
if 0 < len(oldModes) {
|
if 0 < len(oldModes) {
|
||||||
session.Send(nil, channel.server.name, "MODE", chname, oldModes, details.nick)
|
mSes.Send(nil, channel.server.name, "MODE", chname, oldModes, details.nick)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user