NOTICE from channels are displayed in the channel, with a green "[notice]"
This commit is contained in:
@@ -235,6 +235,21 @@ void IrcClient::forward_server_message(const IrcMessage& message)
|
|||||||
this->bridge->send_xmpp_message(this->hostname, from, body);
|
this->bridge->send_xmpp_message(this->hostname, from, body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IrcClient::on_notice(const IrcMessage& message)
|
||||||
|
{
|
||||||
|
std::string from = message.prefix;
|
||||||
|
const std::string to = message.arguments[0];
|
||||||
|
const std::string body = message.arguments[1];
|
||||||
|
|
||||||
|
if (to == this->current_nick)
|
||||||
|
this->bridge->send_xmpp_message(this->hostname, from, body);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IrcMessage modified_message(std::move(from), "PRIVMSG", {to, std::string("\u000303[notice]\u0003 ") + body});
|
||||||
|
this->on_channel_message(modified_message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void IrcClient::on_isupport_message(const IrcMessage& message)
|
void IrcClient::on_isupport_message(const IrcMessage& message)
|
||||||
{
|
{
|
||||||
const size_t len = message.arguments.size();
|
const size_t len = message.arguments.size();
|
||||||
|
|||||||
@@ -147,6 +147,10 @@ public:
|
|||||||
* When a channel message is received
|
* When a channel message is received
|
||||||
*/
|
*/
|
||||||
void on_channel_message(const IrcMessage& message);
|
void on_channel_message(const IrcMessage& message);
|
||||||
|
/**
|
||||||
|
* A notice is received
|
||||||
|
*/
|
||||||
|
void on_notice(const IrcMessage& message);
|
||||||
/**
|
/**
|
||||||
* Save the topic in the IrcChannel
|
* Save the topic in the IrcChannel
|
||||||
*/
|
*/
|
||||||
@@ -282,7 +286,7 @@ private:
|
|||||||
typedef void (IrcClient::*irc_callback_t)(const IrcMessage&);
|
typedef void (IrcClient::*irc_callback_t)(const IrcMessage&);
|
||||||
|
|
||||||
static const std::unordered_map<std::string, irc_callback_t> irc_callbacks = {
|
static const std::unordered_map<std::string, irc_callback_t> irc_callbacks = {
|
||||||
{"NOTICE", &IrcClient::forward_server_message},
|
{"NOTICE", &IrcClient::on_notice},
|
||||||
{"002", &IrcClient::forward_server_message},
|
{"002", &IrcClient::forward_server_message},
|
||||||
{"003", &IrcClient::forward_server_message},
|
{"003", &IrcClient::forward_server_message},
|
||||||
{"005", &IrcClient::on_isupport_message},
|
{"005", &IrcClient::on_isupport_message},
|
||||||
|
|||||||
Reference in New Issue
Block a user