diff --git a/irc/channelmanager.go b/irc/channelmanager.go index c8af03f6..7952682e 100644 --- a/irc/channelmanager.go +++ b/irc/channelmanager.go @@ -128,7 +128,8 @@ func (cm *ChannelManager) Join(client *Client, name string, key string, isSajoin if entry == nil { registered := cm.registeredChannels.Has(casefoldedName) // enforce OpOnlyCreation - if !registered && server.Config().Channels.OpOnlyCreation && !client.HasRoleCapabs("chanreg") { + if !registered && server.Config().Channels.OpOnlyCreation && + !(isSajoin || client.HasRoleCapabs("chanreg")) { return nil, errInsufficientPrivs } // enforce confusables