From 442055ff30a0df20951b88c4c2815662cf5cd155 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Wed, 18 Mar 2020 06:13:57 -0400 Subject: [PATCH] fix #842 --- irc/channel.go | 9 +++++++-- irc/handlers.go | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/irc/channel.go b/irc/channel.go index 3958355f..cf61c390 100644 --- a/irc/channel.go +++ b/irc/channel.go @@ -1364,12 +1364,17 @@ func (channel *Channel) Kick(client *Client, target *Client, comment string, rb func (channel *Channel) Invite(invitee *Client, inviter *Client, rb *ResponseBuffer) { chname := channel.Name() if channel.flags.HasMode(modes.InviteOnly) && !channel.ClientIsAtLeast(inviter, modes.ChannelOperator) { - rb.Add(nil, inviter.server.name, ERR_CHANOPRIVSNEEDED, inviter.Nick(), channel.Name(), inviter.t("You're not a channel operator")) + rb.Add(nil, inviter.server.name, ERR_CHANOPRIVSNEEDED, inviter.Nick(), chname, inviter.t("You're not a channel operator")) return } if !channel.hasClient(inviter) { - rb.Add(nil, inviter.server.name, ERR_NOTONCHANNEL, inviter.Nick(), channel.Name(), inviter.t("You're not on that channel")) + rb.Add(nil, inviter.server.name, ERR_NOTONCHANNEL, inviter.Nick(), chname, inviter.t("You're not on that channel")) + return + } + + if channel.hasClient(invitee) { + rb.Add(nil, inviter.server.name, ERR_USERONCHANNEL, inviter.Nick(), invitee.Nick(), chname, inviter.t("User is already on that channel")) return } diff --git a/irc/handlers.go b/irc/handlers.go index f00853e5..3a78261e 100644 --- a/irc/handlers.go +++ b/irc/handlers.go @@ -1042,7 +1042,7 @@ func inviteHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re channel := server.channels.Get(channelName) if channel == nil { - rb.Add(nil, server.name, ERR_NOSUCHCHANNEL, client.nick, utils.SafeErrorParam(channelName), client.t("No such channel")) + rb.Add(nil, server.name, ERR_NOSUCHCHANNEL, client.Nick(), utils.SafeErrorParam(channelName), client.t("No such channel")) return false }