Fixed logic error for showing AWAY message, some logic changes to QUIT and AWAY.

master
Tomatix 5 years ago
parent 88048039a0
commit c77dd1cb4f
  1. 30
      IdealIRC/IRC.cpp

@ -232,6 +232,15 @@ void IRC::onMsgMode(const IRCPrefix& sender, const std::string& target, const st
void IRC::onMsgQuit(const IRCPrefix& sender, const std::string& message, const std::vector<std::string>& channelsAffected)
{
std::string msg;
if (!message.empty())
msg = fmt::format("Quit: {} ({}@{}) ({})", sender.nickname(), sender.user(), sender.host(), message);
else
msg = fmt::format("Quit: {} ({}@{})", sender.nickname(), sender.user(), sender.host());
if (channelsAffected.empty() && !ignoreVerbosity(Command::IRC::QUIT))
m_status.print(PrintType::Quit, msg.c_str());
for (const auto& channelName : channelsAffected) {
auto channel = getChannel(channelName);
auto memberOpt = channel->getMember(sender.nickname());
@ -239,13 +248,6 @@ void IRC::onMsgQuit(const IRCPrefix& sender, const std::string& message, const s
continue;
if (!ignoreVerbosity(Command::IRC::QUIT)) {
std::string msg;
if (!message.empty())
msg = fmt::format("Quit: {} ({}@{}) ({})", sender.nickname(), sender.user(), sender.host(), message);
else
msg = fmt::format("Quit: {} ({}@{})", sender.nickname(), sender.user(), sender.host());
m_status.printTo(channelName.c_str(), PrintType::Quit, msg.c_str());
}
@ -752,12 +754,14 @@ void IRC::onMsgDCCRequest(std::shared_ptr<DCC> dcc, const IRCPrefix& sender, con
void IRC::v3onMsgAway(const IRCPrefix& sender, const std::string& message, const std::vector<std::string>& channelsAffected)
{
std::string msg;
if (message.empty()) {
msg = fmt::format("{} is now away: {}", sender.nickname(), message);
}
else {
msg = fmt::format("{} is no longer away", sender.nickname(), message);
}
if (message.empty())
msg = fmt::format("{} is no longer away", sender.nickname(), message);
else
msg = fmt::format("{} is now away: {}", sender.nickname(), message);
if (channelsAffected.empty())
getStatus().print(PrintType::ServerInfo, msg.c_str());
for (const auto& channel : channelsAffected)
getStatus().printTo(channel.c_str(), PrintType::ServerInfo, msg.c_str());
}

Loading…
Cancel
Save