summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2016-03-01 16:15:59 +0100
committerAttila Molnar <attilamolnar@hush.com>2016-03-01 16:15:59 +0100
commit49e2df0307b41f76529f26da2fa26456c179cdb2 (patch)
treee292eb2212af06c8d7b7880b2607efd82489bc00
parent4f1005acd1e97a6dac8182f80a0ccf453376ba67 (diff)
Add User::WriteRemoteNotice()
Sends a NOTICE from the local server to the user which can be local or remote
-rw-r--r--include/users.h11
-rw-r--r--src/users.cpp10
2 files changed, 21 insertions, 0 deletions
diff --git a/include/users.h b/include/users.h
index 5e7df74ea..8d53197ba 100644
--- a/include/users.h
+++ b/include/users.h
@@ -519,6 +519,11 @@ class CoreExport User : public Extensible
*/
void WriteNotice(const std::string& text) { this->WriteCommand("NOTICE", ":" + text); }
+ /** Send a NOTICE message from the local server to the user.
+ * @param text Text to send
+ */
+ virtual void WriteRemoteNotice(const std::string& text);
+
void WriteRemoteNumeric(const Numeric::Numeric& numeric);
template <typename T1>
@@ -847,6 +852,12 @@ class CoreExport LocalUser : public User, public insp::intrusive_list_node<Local
void Write(const std::string& text);
void Write(const char*, ...) CUSTOM_PRINTF(2, 3);
+ /** Send a NOTICE message from the local server to the user.
+ * The message will be sent even if the user is connected to a remote server.
+ * @param text Text to send
+ */
+ void WriteRemoteNotice(const std::string& text) CXX11_OVERRIDE;
+
/** Returns true or false for if a user can execute a privilaged oper command.
* This is done by looking up their oper type from User::oper, then referencing
* this to their oper classes and checking the commands they can execute.
diff --git a/src/users.cpp b/src/users.cpp
index 11f103e9d..db5f8a74d 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -830,6 +830,16 @@ void User::WriteFrom(User *user, const char* text, ...)
this->WriteFrom(user, textbuffer);
}
+void User::WriteRemoteNotice(const std::string& text)
+{
+ ServerInstance->PI->SendUserNotice(this, text);
+}
+
+void LocalUser::WriteRemoteNotice(const std::string& text)
+{
+ WriteNotice(text);
+}
+
namespace
{
class WriteCommonRawHandler : public User::ForEachNeighborHandler