From 226a95aab09b9e1f43f61e78179bfa1135816c2d Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Sun, 28 Apr 2013 12:17:53 +0100 Subject: Add method for writing server notices. This allows us to send a server notice to a user without worrying about whether they are registered or not. If a user receives a server notice and they are not registered then the nickname field will contain an asterisk instead of their nick name. --- src/users.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/users.cpp') diff --git a/src/users.cpp b/src/users.cpp index cdc6beed2..7e95dc012 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -388,7 +388,7 @@ bool LocalUser::HasPrivPermission(const std::string &privstr, bool noisy) if (!this->IsOper()) { if (noisy) - this->WriteServ("NOTICE %s :You are not an oper", this->nick.c_str()); + this->WriteNotice("You are not an oper"); return false; } @@ -402,7 +402,8 @@ bool LocalUser::HasPrivPermission(const std::string &privstr, bool noisy) } if (noisy) - this->WriteServ("NOTICE %s :Oper type %s does not have access to priv %s", this->nick.c_str(), oper->NameStr(), privstr.c_str()); + this->WriteNotice("Oper type " + std::string(oper->NameStr()) + " does not have access to priv " + privstr); + return false; } @@ -1047,6 +1048,10 @@ void User::WriteServ(const char* text, ...) this->WriteServ(std::string(textbuffer)); } +void User::WriteNotice(const std::string& text) +{ + this->WriteServ("NOTICE " + (this->registered == REG_ALL ? this->nick : "*") + " :" + text); +} void User::WriteNumeric(unsigned int numeric, const char* text, ...) { -- cgit v1.3.1-10-gc9f91