summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-09-23 21:20:39 -0400
committerAdam <Adam@anope.org>2016-09-23 21:20:39 -0400
commit1406b3f9953c9c58972e1faf3f36ba7935b7563c (patch)
tree5f66dcac817c48c5925b804f07ebbb5dbadfc8fd
parentd50853b64ddf255c24c66bad2d62428cfb4b8d66 (diff)
Add notice method to m_xmlrpc_main
-rw-r--r--modules/xmlrpc_main.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/xmlrpc_main.cpp b/modules/xmlrpc_main.cpp
index dc5f27ee6..cdbcf3266 100644
--- a/modules/xmlrpc_main.cpp
+++ b/modules/xmlrpc_main.cpp
@@ -79,6 +79,8 @@ class MyXMLRPCEvent : public XMLRPCEvent
this->DoUser(iface, client, request);
else if (request.name == "opers")
this->DoOperType(iface, client, request);
+ else if (request.name == "notice")
+ this->DoNotice(iface, client, request);
return true;
}
@@ -271,6 +273,23 @@ class MyXMLRPCEvent : public XMLRPCEvent
request.reply(ot->GetName(), perms);
}
}
+
+ void DoNotice(XMLRPCServiceInterface *iface, HTTPClient *client, XMLRPCRequest &request)
+ {
+ Anope::string from = request.data.size() > 0 ? request.data[0] : "";
+ Anope::string to = request.data.size() > 1 ? request.data[1] : "";
+ Anope::string message = request.data.size() > 2 ? request.data[2] : "";
+
+ ServiceBot *bi = ServiceBot::Find(from, true);
+ User *u = User::Find(to, true);
+
+ if (!bi || !u || message.empty())
+ return;
+
+ u->SendMessage(bi, message);
+
+ request.reply("result", "Success");
+ }
};
class ModuleXMLRPCMain : public Module