diff --git a/Channel/Channel.cpp b/Channel/Channel.cpp index 1f5fbd0..2b6ccca 100644 --- a/Channel/Channel.cpp +++ b/Channel/Channel.cpp @@ -55,7 +55,12 @@ const std::set &Channel::getMembers() const } // Members -void Channel::addMember(int fd) { this->members_.insert(fd); } +void Channel::addMember(int fd) +{ + invitedMembers_.erase(fd); + this->members_.insert(fd); +} + void Channel::removeMember(int fd) { this->members_.erase(fd); } bool Channel::hasMember(int fd) const { return (this->members_.count(fd) > 0); } diff --git a/Channel/Channel.hpp b/Channel/Channel.hpp index d021b69..f951e96 100644 --- a/Channel/Channel.hpp +++ b/Channel/Channel.hpp @@ -58,7 +58,7 @@ class Channel // modes void setMode(std::string& mode, std::string& args); - void inviteMember(const User& client); // not implemented + void inviteMember(const User& client); bool isInviteOnly() const; bool isInvited(int fd) const; diff --git a/cmds/invite.cpp b/cmds/invite.cpp index fb1711a..50c582a 100644 --- a/cmds/invite.cpp +++ b/cmds/invite.cpp @@ -65,7 +65,8 @@ void Server::invite_cmd(User &client, std::istringstream &ss) return ; } - client_it->second.send("YOUVE BEEN INVITED YAAAAAAAYYYYY!!!!!!"); + client_it->second.send(":" + client.getNick() + "!" + client.getUsername() + "@localhost INVITE " + client_it->second.getNick() + " :" + channel_it->second.getName()); + client.send(std::string(":") + SERVER_NAME " 341 " + client.getNick() + " " + client_it->second.getNick() + " " + channel_it->second.getName()); channel_it->second.inviteMember(client_it->second); }