diff options
-rw-r--r-- | include/users.h | 11 | ||||
-rw-r--r-- | src/users.cpp | 10 |
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 |