mirror-chatterino2/src/providers/twitch/ircmessagehandler.hpp

40 lines
1.3 KiB
C++
Raw Normal View History

2018-01-01 23:54:54 +01:00
#pragma once
#include <IrcMessage>
namespace chatterino {
2018-02-05 15:11:50 +01:00
namespace providers {
namespace twitch {
2018-06-04 12:23:23 +02:00
class TwitchServer;
2018-01-01 23:54:54 +01:00
class IrcMessageHandler
{
IrcMessageHandler() = default;
2018-01-01 23:54:54 +01:00
public:
static IrcMessageHandler &getInstance();
2018-06-04 12:23:23 +02:00
void handlePrivMessage(Communi::IrcPrivateMessage *message, TwitchServer &server);
2018-01-01 23:54:54 +01:00
void handleRoomStateMessage(Communi::IrcMessage *message);
void handleClearChatMessage(Communi::IrcMessage *message);
void handleUserStateMessage(Communi::IrcMessage *message);
void handleWhisperMessage(Communi::IrcMessage *message);
2018-06-04 12:23:23 +02:00
void handleUserNoticeMessage(Communi::IrcMessage *message, TwitchServer &server);
2018-01-01 23:54:54 +01:00
void handleModeMessage(Communi::IrcMessage *message);
void handleNoticeMessage(Communi::IrcNoticeMessage *message);
void handleWriteConnectionNoticeMessage(Communi::IrcNoticeMessage *message);
void handleJoinMessage(Communi::IrcMessage *message);
void handlePartMessage(Communi::IrcMessage *message);
2018-06-04 12:23:23 +02:00
private:
void addMessage(Communi::IrcMessage *message, const QString &target, const QString &content,
2018-06-07 15:49:24 +02:00
TwitchServer &server, bool isResub, bool isAction);
2018-01-01 23:54:54 +01:00
};
2018-02-05 15:11:50 +01:00
} // namespace twitch
} // namespace providers
} // namespace chatterino