channels now PART when they are destroyed

This commit is contained in:
fourtf
2018-04-21 00:40:17 +02:00
parent f571a336e0
commit f58ee01cf5
9 changed files with 48 additions and 24 deletions
+20 -7
View File
@@ -39,7 +39,11 @@ void IrcMessageHandler::handleRoomStateMessage(Communi::IrcMessage *message)
QString channelName = words.at(1);
auto channel = TwitchServer::getInstance().getChannel(channelName);
auto channel = TwitchServer::getInstance().getChannelOrEmpty(channelName);
if (channel->isEmpty()) {
return;
}
if (auto twitchChannel = dynamic_cast<twitch::TwitchChannel *>(channel.get())) {
// set the room id of the channel
@@ -63,9 +67,9 @@ void IrcMessageHandler::handleClearChatMessage(Communi::IrcMessage *message)
}
// get channel
auto chan = TwitchServer::getInstance().getChannel(chanName);
auto chan = TwitchServer::getInstance().getChannelOrEmpty(chanName);
if (!chan) {
if (chan->isEmpty()) {
debug::Log("[IrcMessageHandler:handleClearChatMessage] Twitch channel {} not found",
chanName);
return;
@@ -133,7 +137,11 @@ void IrcMessageHandler::handleUserStateMessage(Communi::IrcMessage *message)
return;
}
auto c = TwitchServer::getInstance().getChannel(channelName);
auto c = TwitchServer::getInstance().getChannelOrEmpty(channelName);
if (c->isEmpty()) {
return;
}
twitch::TwitchChannel *tc = dynamic_cast<twitch::TwitchChannel *>(c.get());
if (tc != nullptr) {
tc->setMod(_mod == "1");
@@ -177,7 +185,12 @@ void IrcMessageHandler::handleUserNoticeMessage(Communi::IrcMessage *message)
void IrcMessageHandler::handleModeMessage(Communi::IrcMessage *message)
{
auto channel = TwitchServer::getInstance().getChannel(message->parameter(0).remove(0, 1));
auto channel =
TwitchServer::getInstance().getChannelOrEmpty(message->parameter(0).remove(0, 1));
if (channel->isEmpty()) {
return;
}
if (message->parameter(1) == "+o") {
channel->modList.append(message->parameter(2));
@@ -200,9 +213,9 @@ void IrcMessageHandler::handleNoticeMessage(Communi::IrcNoticeMessage *message)
return;
}
auto channel = TwitchServer::getInstance().getChannel(channelName);
auto channel = TwitchServer::getInstance().getChannelOrEmpty(channelName);
if (!channel) {
if (channel->isEmpty()) {
debug::Log("[IrcManager:handleNoticeMessage] Channel {} not found in channel manager",
channelName);
return;