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
35: CommandScript("message_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable message_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

38 {
39 static ChatCommandTable commandTable =
40 {
41 { "nameannounce", HandleNameAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
42 { "gmnameannounce", HandleGMNameAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
43 { "announce", HandleAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
44 { "gmannounce", HandleGMAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
45 { "notify", HandleNotifyCommand, SEC_GAMEMASTER, Console::Yes },
46 { "gmnotify", HandleGMNotifyCommand, SEC_GAMEMASTER, Console::Yes },
47 { "whispers", HandleWhispersCommand, SEC_MODERATOR, Console::No },
48 };
49 return commandTable;
50 }
@ SEC_GAMEMASTER
Definition Common.h:59
@ SEC_MODERATOR
Definition Common.h:58
static bool HandleNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:99
static bool HandleGMNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:115
static bool HandleNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:52
static bool HandleAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:79
static bool HandleWhispersCommand(ChatHandler *handler, Optional< Variant< bool, EXACT_SEQUENCE("remove")> > operationArg, Optional< std::string > playerNameArg)
Definition cs_message.cpp:131
static bool HandleGMNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:65
static bool HandleGMAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:89
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46

References HandleAnnounceCommand(), HandleGMAnnounceCommand(), HandleGMNameAnnounceCommand(), HandleGMNotifyCommand(), HandleNameAnnounceCommand(), HandleNotifyCommand(), HandleWhispersCommand(), SEC_GAMEMASTER, and SEC_MODERATOR.

◆ HandleAnnounceCommand()

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

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
90 {
91 if (message.empty())
92 return false;
93
94 handler->SendGMText(LANG_GM_BROADCAST, message.data());
95 return true;
96 }
@ LANG_GM_BROADCAST
Definition Language.h:1166
void SendGMText(std::string_view str)
Definition Chat.cpp:116

References LANG_GM_BROADCAST, and ChatHandler::SendGMText().

Referenced by GetCommands().

◆ HandleGMNameAnnounceCommand()

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

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

Referenced by GetCommands().

◆ HandleGMNotifyCommand()

static bool message_commandscript::HandleGMNotifyCommand ( ChatHandler handler,
Tail  message 
)
inlinestatic
116 {
117 if (message.empty())
118 return false;
119
120 std::string str = handler->GetAcoreString(LANG_GM_NOTIFY);
121 str += message;
122
123 WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
124 data << str;
125 sWorldSessionMgr->SendGlobalGMMessage(&data);
126
127 return true;
128 }
@ LANG_GM_NOTIFY
Definition Language.h:1167
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
53 {
54 if (message.empty())
55 return false;
56
57 std::string name("Console");
58 if (WorldSession* session = handler->GetSession())
59 name = session->GetPlayer()->GetName();
60
61 handler->SendWorldText(LANG_ANNOUNCE_COLOR, name, message.data());
62 return true;
63 }
@ LANG_ANNOUNCE_COLOR
Definition Language.h:735
void SendWorldText(std::string_view str)
Definition Chat.cpp:131

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

Referenced by GetCommands().

◆ HandleNotifyCommand()

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

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
132 {
133 if (!operationArg)
134 {
136 return true;
137 }
138
139 if (operationArg->holds_alternative<bool>())
140 {
141 if (operationArg->get<bool>())
142 {
143 handler->GetSession()->GetPlayer()->SetAcceptWhispers(true);
145 return true;
146 }
147 else
148 {
149 // Remove all players from the Gamemaster's whisper whitelist
151 handler->GetSession()->GetPlayer()->SetAcceptWhispers(false);
153 return true;
154 }
155 }
156
157 if (operationArg->holds_alternative<EXACT_SEQUENCE("remove")>())
158 {
159 if (!playerNameArg)
160 return false;
161
162 if (normalizePlayerName(*playerNameArg))
163 {
164 if (Player* player = ObjectAccessor::FindPlayerByName(*playerNameArg))
165 {
166 handler->GetSession()->GetPlayer()->RemoveFromWhisperWhiteList(player->GetGUID());
167 handler->PSendSysMessage(LANG_COMMAND_WHISPEROFFPLAYER, playerNameArg->c_str());
168 return true;
169 }
170 else
171 {
172 handler->SendErrorMessage(LANG_PLAYER_NOT_FOUND, playerNameArg->c_str());
173 return false;
174 }
175 }
176 }
178 return false;
179 }
#define EXACT_SEQUENCE(str)
Definition ChatCommandTags.h:109
@ LANG_COMMAND_WHISPEROFF
Definition Language.h:332
@ LANG_USE_BOL
Definition Language.h:304
@ LANG_OFF
Definition Language.h:71
@ LANG_COMMAND_WHISPERACCEPTING
Definition Language.h:330
@ LANG_ON
Definition Language.h:70
@ LANG_COMMAND_WHISPERON
Definition Language.h:331
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:540
@ LANG_COMMAND_WHISPEROFFPLAYER
Definition Language.h:405
bool normalizePlayerName(std::string &name)
Definition ObjectMgr.cpp:208
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:211
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:216
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:160
Definition Player.h:1082
void SetAcceptWhispers(bool on)
Definition Player.h:1175
void ClearWhisperWhiteList()
Definition Player.h:2568
void RemoveFromWhisperWhiteList(ObjectGuid guid)
Definition Player.h:2571
bool isAcceptWhispers() const
Definition Player.h:1174
Player * GetPlayer() const
Definition WorldSession.h:376
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: