|
|
|
@ -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()); |
|
|
|
|
} |
|
|
|
|