mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 02:00:11 -08:00
initial implementation of bouncer functionality
This commit is contained in:
parent
a8f04ecc4d
commit
c2faeed4b5
19 changed files with 733 additions and 441 deletions
|
|
@ -46,13 +46,14 @@ func sendRoleplayMessage(server *Server, client *Client, source string, targetSt
|
|||
}
|
||||
|
||||
for _, member := range channel.Members() {
|
||||
if member == client && !client.capabilities.Has(caps.EchoMessage) {
|
||||
continue
|
||||
}
|
||||
if member == client {
|
||||
rb.Add(nil, source, "PRIVMSG", channel.name, message)
|
||||
} else {
|
||||
member.Send(nil, source, "PRIVMSG", channel.name, message)
|
||||
for _, session := range member.Sessions() {
|
||||
if member == client && !session.capabilities.Has(caps.EchoMessage) {
|
||||
continue
|
||||
} else if rb.session == session {
|
||||
rb.Add(nil, source, "PRIVMSG", channel.name, message)
|
||||
} else if member == client || session.capabilities.Has(caps.EchoMessage) {
|
||||
session.Send(nil, source, "PRIVMSG", channel.name, message)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -71,7 +72,7 @@ func sendRoleplayMessage(server *Server, client *Client, source string, targetSt
|
|||
cnick := client.Nick()
|
||||
tnick := user.Nick()
|
||||
user.Send(nil, source, "PRIVMSG", tnick, message)
|
||||
if client.capabilities.Has(caps.EchoMessage) {
|
||||
if rb.session.capabilities.Has(caps.EchoMessage) {
|
||||
rb.Add(nil, source, "PRIVMSG", tnick, message)
|
||||
}
|
||||
if user.HasMode(modes.Away) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue