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

Member Function Documentation

◆ GetCommands()

ChatCommandTable message_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

45 {
46 static ChatCommandTable commandTable =
47 {
48 { "nameannounce", HandleNameAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
49 { "gmnameannounce", HandleGMNameAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
50 { "announce", HandleAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
51 { "gmannounce", HandleGMAnnounceCommand, SEC_GAMEMASTER, Console::Yes },
52 { "notify", HandleNotifyCommand, SEC_GAMEMASTER, Console::Yes },
53 { "gmnotify", HandleGMNotifyCommand, SEC_GAMEMASTER, Console::Yes },
54 { "whispers", HandleWhispersCommand, SEC_MODERATOR, Console::No },
55 };
56 return commandTable;
57 }
@ SEC_GAMEMASTER
Definition Common.h:59
@ SEC_MODERATOR
Definition Common.h:58
static bool HandleNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:106
static bool HandleGMNotifyCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:122
static bool HandleNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:59
static bool HandleAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:86
static bool HandleWhispersCommand(ChatHandler *handler, Optional< Variant< bool, EXACT_SEQUENCE("remove")> > operationArg, Optional< std::string > playerNameArg)
Definition cs_message.cpp:138
static bool HandleGMNameAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:72
static bool HandleGMAnnounceCommand(ChatHandler *handler, Tail message)
Definition cs_message.cpp:96
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
87 {
88 if (message.empty())
89 return false;
90
91 sWorldSessionMgr->SendServerMessage(SERVER_MSG_STRING, Acore::StringFormat(handler->GetAcoreString(LANG_SYSTEMMESSAGE), message.data()));
92 return true;
93 }
@ 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
97 {
98 if (message.empty())
99 return false;
100
101 handler->SendGMText(LANG_GM_BROADCAST, message.data());
102 return true;
103 }
@ 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
73 {
74 if (message.empty())
75 return false;
76
77 std::string name("Console");
78 if (WorldSession* session = handler->GetSession())
79 name = session->GetPlayer()->GetName();
80
81 handler->SendGMText(LANG_GM_ANNOUNCE_COLOR, name, message.data());
82 return true;
83 }
@ 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
123 {
124 if (message.empty())
125 return false;
126
127 std::string str = handler->GetAcoreString(LANG_GM_NOTIFY);
128 str += message;
129
130 WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
131 data << str;
132 sWorldSessionMgr->SendGlobalGMMessage(&data);
133
134 return true;
135 }
@ 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
60 {
61 if (message.empty())
62 return false;
63
64 std::string name("Console");
65 if (WorldSession* session = handler->GetSession())
66 name = session->GetPlayer()->GetName();
67
68 handler->SendWorldText(LANG_ANNOUNCE_COLOR, name, message.data());
69 return true;
70 }
@ 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
107 {
108 if (message.empty())
109 return false;
110
111 std::string str = handler->GetAcoreString(LANG_GLOBAL_NOTIFY);
112 str += message;
113
114 WorldPacket data(SMSG_NOTIFICATION, (str.size() + 1));
115 data << str;
116 sWorldSessionMgr->SendGlobalMessage(&data);
117
118 return true;
119 }
@ 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
139 {
140 if (!operationArg)
141 {
143 return true;
144 }
145
146 if (operationArg->holds_alternative<bool>())
147 {
148 if (operationArg->get<bool>())
149 {
150 handler->GetSession()->GetPlayer()->SetAcceptWhispers(true);
152 return true;
153 }
154 else
155 {
156 // Remove all players from the Gamemaster's whisper whitelist
158 handler->GetSession()->GetPlayer()->SetAcceptWhispers(false);
160 return true;
161 }
162 }
163
164 if (operationArg->holds_alternative<EXACT_SEQUENCE("remove")>())
165 {
166 if (!playerNameArg)
167 return false;
168
169 if (normalizePlayerName(*playerNameArg))
170 {
171 if (Player* player = ObjectAccessor::FindPlayerByName(*playerNameArg))
172 {
173 handler->GetSession()->GetPlayer()->RemoveFromWhisperWhiteList(player->GetGUID());
174 handler->PSendSysMessage(LANG_COMMAND_WHISPEROFFPLAYER, playerNameArg->c_str());
175 return true;
176 }
177 else
178 {
179 handler->SendErrorMessage(LANG_PLAYER_NOT_FOUND, playerNameArg->c_str());
180 return false;
181 }
182 }
183 }
185 return false;
186 }
#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:1081
void SetAcceptWhispers(bool on)
Definition Player.h:1174
void ClearWhisperWhiteList()
Definition Player.h:2566
void RemoveFromWhisperWhiteList(ObjectGuid guid)
Definition Player.h:2569
bool isAcceptWhispers() const
Definition Player.h:1173
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: