|
@@ -767,6 +767,7 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp
|
767
|
767
|
modestr = fmt.Sprintf("+%v", givenMode)
|
768
|
768
|
}
|
769
|
769
|
|
|
770
|
+ isAway, awayMessage := client.Away()
|
770
|
771
|
for _, member := range channel.Members() {
|
771
|
772
|
for _, session := range member.Sessions() {
|
772
|
773
|
if session == rb.session {
|
|
@@ -783,6 +784,9 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp
|
783
|
784
|
if givenMode != 0 {
|
784
|
785
|
session.Send(nil, client.server.name, "MODE", chname, modestr, details.nick)
|
785
|
786
|
}
|
|
787
|
+ if isAway && session.capabilities.Has(caps.AwayNotify) {
|
|
788
|
+ session.sendFromClientInternal(false, time.Time{}, "", details.nickMask, details.account, nil, "AWAY", awayMessage)
|
|
789
|
+ }
|
786
|
790
|
}
|
787
|
791
|
}
|
788
|
792
|
|
|
@@ -1458,8 +1462,8 @@ func (channel *Channel) Invite(invitee *Client, inviter *Client, rb *ResponseBuf
|
1458
|
1462
|
tnick := invitee.Nick()
|
1459
|
1463
|
rb.Add(nil, inviter.server.name, RPL_INVITING, cnick, tnick, chname)
|
1460
|
1464
|
invitee.Send(nil, inviter.NickMaskString(), "INVITE", tnick, chname)
|
1461
|
|
- if invitee.Away() {
|
1462
|
|
- rb.Add(nil, inviter.server.name, RPL_AWAY, cnick, tnick, invitee.AwayMessage())
|
|
1465
|
+ if away, awayMessage := invitee.Away(); away {
|
|
1466
|
+ rb.Add(nil, inviter.server.name, RPL_AWAY, cnick, tnick, awayMessage)
|
1463
|
1467
|
}
|
1464
|
1468
|
}
|
1465
|
1469
|
|