mirror of
https://github.com/ergochat/ergo.git
synced 2025-02-18 06:30:39 +01:00
fix #1858
The channel mode +R used to both prevent joins by unregistered users, and prevent unregistered users who happened to be joined from speaking. This changes the behavior so that +R only prevents joins: 1. This allows users who were invited or SAJOIN'ed to speak 2. To restore the old semantics, chanops can set +RM
This commit is contained in:
parent
bdff4e633f
commit
03b4a6581c
@ -1305,9 +1305,6 @@ func (channel *Channel) CanSpeak(client *Client) (bool, modes.Mode) {
|
|||||||
if channel.flags.HasMode(modes.Moderated) && clientModes.HighestChannelUserMode() == modes.Mode(0) {
|
if channel.flags.HasMode(modes.Moderated) && clientModes.HighestChannelUserMode() == modes.Mode(0) {
|
||||||
return false, modes.Moderated
|
return false, modes.Moderated
|
||||||
}
|
}
|
||||||
if channel.flags.HasMode(modes.RegisteredOnly) && client.Account() == "" {
|
|
||||||
return false, modes.RegisteredOnly
|
|
||||||
}
|
|
||||||
if channel.flags.HasMode(modes.RegisteredOnlySpeak) && client.Account() == "" &&
|
if channel.flags.HasMode(modes.RegisteredOnlySpeak) && client.Account() == "" &&
|
||||||
clientModes.HighestChannelUserMode() == modes.Mode(0) {
|
clientModes.HighestChannelUserMode() == modes.Mode(0) {
|
||||||
return false, modes.RegisteredOnlySpeak
|
return false, modes.RegisteredOnlySpeak
|
||||||
|
Loading…
x
Reference in New Issue
Block a user