diff --git a/sources/commands/invite.cpp b/sources/commands/invite.cpp index 39994ce..7741638 100644 --- a/sources/commands/invite.cpp +++ b/sources/commands/invite.cpp @@ -6,7 +6,7 @@ /* By: sben-tay +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/24 17:29:48 by rparodi #+# #+# */ -/* Updated: 2025/06/19 13:53:17 by sben-tay ### ########.fr */ +/* Updated: 2025/06/20 16:57:53 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/sources/commands/kick.cpp b/sources/commands/kick.cpp index dcf8ebf..20c9289 100644 --- a/sources/commands/kick.cpp +++ b/sources/commands/kick.cpp @@ -6,7 +6,7 @@ /* By: sben-tay +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/24 17:29:48 by rparodi #+# #+# */ -/* Updated: 2025/06/20 16:47:40 by rparodi ### ########.fr */ +/* Updated: 2025/06/20 17:01:49 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,7 +72,7 @@ void Kick::execute() { msgKick += " :" + _args.at(4); msgKick += "\r\n"; - this->_sender->appendToWriteBuffer(msgKick + msgPart); + this->_uTarget->appendToWriteBuffer(msgKick + msgPart); _cTarget->removeUser(this->_uTarget); _cTarget->removeOperator(this->_uTarget); diff --git a/sources/commands/topic.cpp b/sources/commands/topic.cpp index c9379c9..a47aae1 100644 --- a/sources/commands/topic.cpp +++ b/sources/commands/topic.cpp @@ -6,7 +6,7 @@ /* By: sben-tay +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/24 17:29:48 by rparodi #+# #+# */ -/* Updated: 2025/06/18 12:51:40 by rparodi ### ########.fr */ +/* Updated: 2025/06/20 17:09:43 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,12 +18,18 @@ using namespace cmd; e_code Topic::checkArgs() { - if (_args.size() < 2) { + if (_args.size() < 3) { std::string msg461 = ":localhost 461 " + this->_sender->getNickname() + " " + this->_command + " :Not enough parameters\r\n"; this->_sender->appendToWriteBuffer(msg461); return ERR_NEEDMOREPARAMS; } - this->_cTarget = searchList(this->_channels, this->_args[1]); + if (_args.at(1).at(0) != '#') { + WARNING_MSG("Invalid channel name for KICK command"); + INFO_MSG("Channel names must start with a '#' character"); + return ERR_NOSUCHCHANNEL; + } else + _args.at(1).erase(0, 1); + this->_cTarget = searchList(this->_server->getChannelsList(), this->_args[1]); if (this->_cTarget == NULL) return ERR_NOSUCHCHANNEL; if (this->_cTarget->getProtectTopic()) { @@ -46,11 +52,15 @@ void Topic::execute() { ERROR_MSG("Invalid arguments for TOPIC command (see warning message)"); return; } - if (this->_cTarget->getTopic().empty()) { - std::string msg331 = ":localhost 331 " + this->_sender->getNickname() + " " + this->_cTarget->getName() + " :No topic is set" + "\r\n"; - this->_sender->appendToWriteBuffer(msg331); + if (this->_args.size() == 1) { + if (this->_cTarget->getTopic().empty()) { + std::string msg331 = ":localhost 331 " + this->_sender->getNickname() + " " + this->_cTarget->getName() + " :No topic is set" + "\r\n"; + this->_sender->appendToWriteBuffer(msg331); + } else { + std::string msg332 = ":localhost 332 " + this->_sender->getNickname() + " " + this->_cTarget->getName() + " :" + _cTarget->getTopic() + "\r\n"; + this->_sender->appendToWriteBuffer(msg332); + } } else { - std::string msg332 = ":localhost 332 " + this->_sender->getNickname() + " " + this->_cTarget->getName() + " :" + _cTarget->getTopic() + "\r\n"; - this->_sender->appendToWriteBuffer(msg332); + this->_cTarget->setTopic(this->_args.at(2)); } }