AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ChatCommand.cpp File Reference
#include "ChatCommand.h"
#include "AccountMgr.h"
#include "Chat.h"
#include "DBCStores.h"
#include "DatabaseEnv.h"
#include "Log.h"
#include "Player.h"
#include "RBAC.h"
#include "ScriptMgr.h"
#include "StringFormat.h"
#include "Tokenize.h"
#include "WorldSession.h"

Go to the source code of this file.

Classes

struct  Acore::Impl::ChatCommands::FilteredCommandListIterator
 

Namespaces

namespace  Acore
 
namespace  Acore::Impl
 
namespace  Acore::Impl::ChatCommands
 

Typedefs

using ChatSubCommandMap = std::map< std::string_view, Acore::Impl::ChatCommands::ChatCommandNode, StringCompareLessI_T >
 

Functions

static void LogCommandUsage (WorldSession const &session, std::string_view cmdStr)
 

Variables

static ChatSubCommandMap COMMAND_MAP
 

Typedef Documentation

◆ ChatSubCommandMap

Function Documentation

◆ LogCommandUsage()

static void LogCommandUsage ( WorldSession const &  session,
std::string_view  cmdStr 
)
static
157{
158 if (AccountMgr::IsPlayerAccount(session.GetSecurity()))
159 return;
160
161 Player* player = session.GetPlayer();
162 ObjectGuid targetGuid = player->GetTarget();
163 uint32 areaId = player->GetAreaId();
164 uint32 zoneId = player->GetZoneId();
165 std::string areaName = "Unknown";
166 std::string zoneName = "Unknown";
167 LocaleConstant locale = sWorld->GetDefaultDbcLocale();
168
169 if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId))
170 {
171 areaName = area->area_name[locale];
172 }
173
174 if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(zoneId))
175 {
176 zoneName = zone->area_name[locale];
177 }
178
179 std::string logMessage = Acore::StringFormat("Command: {} [Player: {} ({}) (Account: {}) X: {} Y: {} Z: {} Map: {} ({}) Area: {} ({}) Zone: {} ({}) Selected: {} ({})]",
180 cmdStr, player->GetName(), player->GetGUID().ToString(),
181 session.GetAccountId(),
182 player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(),
183 player->FindMap() ? player->FindMap()->GetMapName() : "Unknown",
184 areaId, areaName, zoneId, zoneName,
185 (player->GetSelectedUnit()) ? player->GetSelectedUnit()->GetName() : "",
186 targetGuid.ToString());
187
188 LOG_GM(session.GetAccountId(), logMessage);
189}
LocaleConstant
Definition Common.h:117
DBCStorage< AreaTableEntry > sAreaTableStore(AreaTableEntryfmt)
std::uint32_t uint32
Definition Define.h:107
#define LOG_GM(accountId__,...)
Definition Log.h:164
static bool IsPlayerAccount(uint32 gmlevel)
Definition AccountMgr.cpp:324
const char * GetMapName() const
Definition Map.cpp:1611
Definition ObjectGuid.h:118
std::string ToString() const
Definition ObjectGuid.cpp:47
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
Definition Player.h:1084
ObjectGuid GetTarget() const
Definition Unit.h:861
uint32 GetMapId() const
Definition Position.h:281
Map * FindMap() const
Definition Object.h:626
std::string const & GetName() const
Definition Object.h:528
uint32 GetAreaId() const
Definition Object.cpp:3119
uint32 GetZoneId() const
Definition Object.cpp:3111
#define sWorld
Definition World.h:317
std::string StringFormat(FormatStringView fmt, Args &&... args)
Default AC string format function.
Definition StringFormat.h:44
std::string ToString(Type &&val, Params &&... params)
Definition StringConvert.h:250
Definition DBCStructure.h:519
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122

References WorldObject::FindMap(), WorldSession::GetAccountId(), WorldObject::GetAreaId(), Object::GetGUID(), WorldLocation::GetMapId(), Map::GetMapName(), WorldObject::GetName(), WorldSession::GetPlayer(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), WorldSession::GetSecurity(), Player::GetSelectedUnit(), Unit::GetTarget(), WorldObject::GetZoneId(), AccountMgr::IsPlayerAccount(), LOG_GM, sAreaTableStore, Acore::StringFormat(), sWorld, and ObjectGuid::ToString().

Referenced by Acore::Impl::ChatCommands::ChatCommandNode::TryExecuteCommand().

Variable Documentation

◆ COMMAND_MAP