AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
message_commandscript Class Reference
Inheritance diagram for message_commandscript:
CommandScript ScriptObject

Public Member Functions

 message_commandscript ()
 
ChatCommandTable GetCommands () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Static Public Member Functions

static bool HandleNameAnnounceCommand (ChatHandler *handler, Tail message)
 
static bool HandleGMNameAnnounceCommand (ChatHandler *handler, Tail message)
 
static bool HandleAnnounceCommand (ChatHandler *handler, Tail message)
 
static bool HandleGMAnnounceCommand (ChatHandler *handler, Tail message)
 
static bool HandleNotifyCommand (ChatHandler *handler, Tail message)
 
static bool HandleGMNotifyCommand (ChatHandler *handler, Tail message)
 
static bool HandleWhispersCommand (ChatHandler *handler, Optional< Variant< bool, EXACT_SEQUENCE("remove")> > operationArg, Optional< std::string > playerNameArg)
 

Additional Inherited Members

- Protected Member Functions inherited from CommandScript
 CommandScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ message_commandscript()

message_commandscript::message_commandscript ( )
inline
36: CommandScript("message_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable message_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

39 {
40 static ChatCommandTable commandTable =
41 {
42 { "nameannounce", HandleNameAnnounceCommand, rbac::RBAC_PERM_COMMAND_NAMEANNOUNCE, Console::Yes },
44 { "announce", HandleAnnounceCommand, rbac::RBAC_PERM_COMMAND_ANNOUNCE, Console::Yes },
45 { "gmannounce", HandleGMAnnounceCommand, rbac::RBAC_PERM_COMMAND_GMANNOUNCE, Console::Yes },
46 { "notify", HandleNotifyCommand, rbac::RBAC_PERM_COMMAND_NOTIFY, Console::Yes },
47 { "gmnotify", HandleGMNotifyCommand, rbac::RBAC_PERM_COMMAND_GMNOTIFY, Console::Yes },
49 };
50 return commandTable;
51 }
static bool HandleNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:100
static bool HandleGMNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:116
static bool HandleNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:53
static bool HandleAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:80
static bool HandleWhispersCommand(ChatHandler *handler, Optional< Variant< bool, EXACT_SEQUENCE("remove")> > operationArg, Optional< std::string > playerNameArg)
Definition cs_message.cpp:132
static bool HandleGMNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:66
static bool HandleGMAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:90
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_GMNOTIFY
Definition RBAC.h:300
@ RBAC_PERM_COMMAND_NOTIFY
Definition RBAC.h:302
@ RBAC_PERM_COMMAND_NAMEANNOUNCE
Definition RBAC.h:301
@ RBAC_PERM_COMMAND_GMNAMEANNOUNCE
Definition RBAC.h:299
@ RBAC_PERM_CAN_FILTER_WHISPERS
Definition RBAC.h:87
@ RBAC_PERM_COMMAND_GMANNOUNCE
Definition RBAC.h:298
@ RBAC_PERM_COMMAND_ANNOUNCE
Definition RBAC.h:294

References HandleAnnounceCommand(), HandleGMAnnounceCommand(), HandleGMNameAnnounceCommand(), HandleGMNotifyCommand(), HandleNameAnnounceCommand(), HandleNotifyCommand(), HandleWhispersCommand(), rbac::RBAC_PERM_CAN_FILTER_WHISPERS, rbac::RBAC_PERM_COMMAND_ANNOUNCE, rbac::RBAC_PERM_COMMAND_GMANNOUNCE, rbac::RBAC_PERM_COMMAND_GMNAMEANNOUNCE, rbac::RBAC_PERM_COMMAND_GMNOTIFY, rbac::RBAC_PERM_COMMAND_NAMEANNOUNCE, and rbac::RBAC_PERM_COMMAND_NOTIFY.

◆ HandleAnnounceCommand()

static bool message_commandscript::HandleAnnounceCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
81 {
82 if (message.empty())
83 return false;
84
85 sWorldSessionMgr->SendServerMessage(SERVER_MSG_STRING, Acore::StringFormat(handler->GetAcoreString(LANG_SYSTEMMESSAGE), message.data()));
86 return true;
87 }
@ SERVER_MSG_STRING
Definition IWorld.h:57
@ LANG_SYSTEMMESSAGE
Definition Language.h:35
#define sWorldSessionMgr
Definition WorldSessionMgr.h:108
virtual std::string GetAcoreString(uint32 entry) const
Definition Chat.cpp:42
std::string StringFormat(FormatStringView fmt, Args &&... args)
Default AC string format function.
Definition StringFormat.h:44

References ChatHandler::GetAcoreString(), LANG_SYSTEMMESSAGE, SERVER_MSG_STRING, Acore::StringFormat(), and sWorldSessionMgr.

Referenced by GetCommands().

◆ HandleGMAnnounceCommand()

static bool message_commandscript::HandleGMAnnounceCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
91 {
92 if (message.empty())
93 return false;
94
95 handler->SendGMText(LANG_GM_BROADCAST, message.data());
96 return true;
97 }
@ LANG_GM_BROADCAST
Definition Language.h:1246
void SendGMText(std::string_view str)
Definition Chat.cpp:124

References LANG_GM_BROADCAST, and ChatHandler::SendGMText().

Referenced by GetCommands().

◆ HandleGMNameAnnounceCommand()

static bool message_commandscript::HandleGMNameAnnounceCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
67 {
68 if (message.empty())
69 return false;
70
71 std::string name("Console");
72 if (WorldSession* session = handler->GetSession())
73 name = session->GetPlayer()->GetName();
74
75 handler->SendGMText(LANG_GM_ANNOUNCE_COLOR, name, message.data());
76 return true;
77 }
@ LANG_GM_ANNOUNCE_COLOR
Definition Language.h:1248
WorldSession * GetSession()
Definition Chat.h:242
Player session in the World.
Definition WorldSession.h:384

References ChatHandler::GetSession(), LANG_GM_ANNOUNCE_COLOR, and ChatHandler::SendGMText().

Referenced by GetCommands().

◆ HandleGMNotifyCommand()

static bool message_commandscript::HandleGMNotifyCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
117 {
118 if (message.empty())
119 return false;
120
121 std::string str = handler->GetAcoreString(LANG_GM_NOTIFY);
122 str += message;
123
124 WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
125 data << str;
126 sWorldSessionMgr->SendGlobalGMMessage(&data);
127
128 return true;
129 }
@ LANG_GM_NOTIFY
Definition Language.h:1247
Definition WorldPacket.h:26
@ SMSG_NOTIFICATION
Definition Opcodes.h:489

References ChatHandler::GetAcoreString(), LANG_GM_NOTIFY, SMSG_NOTIFICATION, and sWorldSessionMgr.

Referenced by GetCommands().

◆ HandleNameAnnounceCommand()

static bool message_commandscript::HandleNameAnnounceCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
54 {
55 if (message.empty())
56 return false;
57
58 std::string name("Console");
59 if (WorldSession* session = handler->GetSession())
60 name = session->GetPlayer()->GetName();
61
62 handler->SendWorldText(LANG_ANNOUNCE_COLOR, name, message.data());
63 return true;
64 }
@ LANG_ANNOUNCE_COLOR
Definition Language.h:745
void SendWorldText(std::string_view str)
Definition Chat.cpp:139

References ChatHandler::GetSession(), LANG_ANNOUNCE_COLOR, and ChatHandler::SendWorldText().

Referenced by GetCommands().

◆ HandleNotifyCommand()

static bool message_commandscript::HandleNotifyCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
101 {
102 if (message.empty())
103 return false;
104
105 std::string str = handler->GetAcoreString(LANG_GLOBAL_NOTIFY);
106 str += message;
107
108 WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
109 data << str;
110 sWorldSessionMgr->SendGlobalMessage(&data);
111
112 return true;
113 }
@ LANG_GLOBAL_NOTIFY
Definition Language.h:136

References ChatHandler::GetAcoreString(), LANG_GLOBAL_NOTIFY, SMSG_NOTIFICATION, and sWorldSessionMgr.

Referenced by GetCommands().

◆ HandleWhispersCommand()

static bool message_commandscript::HandleWhispersCommand ( ChatHandler handler,
Optional< Variant< bool, EXACT_SEQUENCE("remove")> >  operationArg,
Optional< std::string >  playerNameArg 
)
inlinestatic
133 {
134 if (!operationArg)
135 {
137 return true;
138 }
139
140 if (operationArg->holds_alternative<bool>())
141 {
142 if (operationArg->get<bool>())
143 {
144 handler->GetSession()->GetPlayer()->SetAcceptWhispers(true);
146 return true;
147 }
148 else
149 {
150 // Remove all players from the Gamemaster's whisper whitelist
152 handler->GetSession()->GetPlayer()->SetAcceptWhispers(false);
154 return true;
155 }
156 }
157
158 if (operationArg->holds_alternative<EXACT_SEQUENCE("remove")>())
159 {
160 if (!playerNameArg)
161 return false;
162
163 if (normalizePlayerName(*playerNameArg))
164 {
165 if (Player* player = ObjectAccessor::FindPlayerByName(*playerNameArg))
166 {
167 handler->GetSession()->GetPlayer()->RemoveFromWhisperWhiteList(player->GetGUID());
168 handler->PSendSysMessage(LANG_COMMAND_WHISPEROFFPLAYER, playerNameArg->c_str());
169 return true;
170 }
171 else
172 {
173 handler->SendErrorMessage(LANG_PLAYER_NOT_FOUND, playerNameArg->c_str());
174 return false;
175 }
176 }
177 }
179 return false;
180 }
#define EXACT_SEQUENCE(str)
Definition ChatCommandTags.h:109
@ LANG_COMMAND_WHISPEROFF
Definition Language.h:339
@ LANG_USE_BOL
Definition Language.h:311
@ LANG_OFF
Definition Language.h:71
@ LANG_COMMAND_WHISPERACCEPTING
Definition Language.h:337
@ LANG_ON
Definition Language.h:70
@ LANG_COMMAND_WHISPERON
Definition Language.h:338
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:548
@ LANG_COMMAND_WHISPEROFFPLAYER
Definition Language.h:413
bool normalizePlayerName(std::string &name)
Definition ObjectMgr.cpp:209
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:168
Definition Player.h:1084
void SetAcceptWhispers(bool on)
Definition Player.h:1173
void ClearWhisperWhiteList()
Definition Player.h:2600
void RemoveFromWhisperWhiteList(ObjectGuid guid)
Definition Player.h:2603
bool isAcceptWhispers() const
Definition Player.h:1172
Player * GetPlayer() const
Definition WorldSession.h:454
AC_GAME_API std::string GetAcoreString(ChatHandler const *handler, AcoreStrings which)
Definition ChatCommandHelpers.cpp:27
Player * FindPlayerByName(std::string const &name, bool checkInWorld=true)
Definition ObjectAccessor.cpp:271

References Player::ClearWhisperWhiteList(), EXACT_SEQUENCE, ObjectAccessor::FindPlayerByName(), ChatHandler::GetAcoreString(), WorldSession::GetPlayer(), ChatHandler::GetSession(), Player::isAcceptWhispers(), LANG_COMMAND_WHISPERACCEPTING, LANG_COMMAND_WHISPEROFF, LANG_COMMAND_WHISPEROFFPLAYER, LANG_COMMAND_WHISPERON, LANG_OFF, LANG_ON, LANG_PLAYER_NOT_FOUND, LANG_USE_BOL, normalizePlayerName(), ChatHandler::PSendSysMessage(), Player::RemoveFromWhisperWhiteList(), ChatHandler::SendErrorMessage(), ChatHandler::SendSysMessage(), and Player::SetAcceptWhispers().

Referenced by GetCommands().


The documentation for this class was generated from the following file: