diff --git a/irc/channel.go b/irc/channel.go index 17e18330..34d46ed6 100644 --- a/irc/channel.go +++ b/irc/channel.go @@ -155,14 +155,16 @@ func (channel *Channel) SetTopic(client *Client, topic string) { return } - if channel.flags[OpOnlyTopic] && !channel.members[client][ChannelOperator] { + if channel.flags[OpOnlyTopic] && !channel.ClientIsOperator(client) { client.ErrChanOPrivIsNeeded(channel) return } channel.topic = topic + + reply := RplTopicMsg(client, channel) for member := range channel.members { - member.replies <- RplTopicMsg(client, channel) + member.replies <- reply } } @@ -307,8 +309,9 @@ func (channel *Channel) Kick(client *Client, target *Client, comment string) { return } + reply := RplKick(channel, client, target, comment) for member := range channel.members { - member.replies <- RplKick(channel, client, target, comment) + member.replies <- reply } channel.Quit(target) } diff --git a/irc/server.go b/irc/server.go index 0a7a8674..8863001d 100644 --- a/irc/server.go +++ b/irc/server.go @@ -526,12 +526,12 @@ func (m *WhoisCommand) HandleServer(server *Server) { continue } client.RplWhoisUser(mclient) - if client.flags[Operator] { + if mclient.flags[Operator] { client.RplWhoisOperator(mclient) } client.RplWhoisIdle(mclient) - client.MultilineReply(client.WhoisChannelsNames(), RPL_WHOISCHANNELS, - "%s :%s", client.Nick()) + client.MultilineReply(mclient.WhoisChannelsNames(), RPL_WHOISCHANNELS, + "%s :%s", mclient.Nick()) client.RplEndOfWhois() } }