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

Public Member Functions

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

Static Public Member Functions

static bool HandleCacheInfoCommand (ChatHandler *handler, Optional< PlayerIdentifier > player)
 
static bool HandleCacheDeleteCommand (ChatHandler *handler, Optional< PlayerIdentifier > player)
 
static bool HandleCacheRefreshCommand (ChatHandler *handler, Optional< PlayerIdentifier > player)
 

Additional Inherited Members

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

Detailed Description

Constructor & Destructor Documentation

◆ cache_commandscript()

cache_commandscript::cache_commandscript ( )
inline
31: CommandScript("cache_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable cache_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

34 {
35 static ChatCommandTable cacheCommandTable =
36 {
40 };
41
42 static ChatCommandTable commandTable =
43 {
44 { "cache", cacheCommandTable },
45 };
46 return commandTable;
47 }
static bool HandleCacheDeleteCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:78
static bool HandleCacheInfoCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:49
static bool HandleCacheRefreshCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:97
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_DEBUG
Definition RBAC.h:193

References HandleCacheDeleteCommand(), HandleCacheInfoCommand(), HandleCacheRefreshCommand(), and rbac::RBAC_PERM_COMMAND_DEBUG.

◆ HandleCacheDeleteCommand()

static bool cache_commandscript::HandleCacheDeleteCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
79 {
80 if (!player)
81 {
82 player = PlayerIdentifier::FromTargetOrSelf(handler);
83 }
84
85 if (!player)
86 {
88 return false;
89 }
90
91 sCharacterCache->DeleteCharacterCacheEntry(player->GetGUID(), player->GetName());
92 handler->PSendSysMessage(LANG_COMMAND_CACHE_DELETE, player->GetName(), player->GetGUID().ToString());
93 handler->SetSentErrorMessage(false);
94 return true;
95 }
#define sCharacterCache
Definition CharacterCache.h:88
@ LANG_COMMAND_CACHE_DELETE
Definition Language.h:1132
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:548
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
void SetSentErrorMessage(bool val)
Definition Chat.h:238
static Optional< PlayerIdentifier > FromTargetOrSelf(ChatHandler *handler)
Definition ChatCommandTags.h:189

References Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), LANG_COMMAND_CACHE_DELETE, LANG_PLAYER_NOT_FOUND, ChatHandler::PSendSysMessage(), sCharacterCache, ChatHandler::SendErrorMessage(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().

◆ HandleCacheInfoCommand()

static bool cache_commandscript::HandleCacheInfoCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
50 {
51 if (!player)
52 {
53 player = PlayerIdentifier::FromTargetOrSelf(handler);
54 }
55
56 if (!player)
57 {
59 return false;
60 }
61
62 CharacterCacheEntry const* cache = sCharacterCache->GetCharacterCacheByGuid(player->GetGUID());
63
64 if (!cache)
65 {
66 handler->SendErrorMessage(LANG_COMMAND_CACHE_NOT_FOUND, player->GetName());
67 return false;
68 }
69
70 handler->PSendSysMessage(LANG_COMMAND_CACHE_INFO, cache->Name, cache->Guid.ToString(), cache->AccountId,
71 cache->Class, cache->Race, cache->Sex, cache->Level, cache->MailCount, cache->GuildId, cache->GroupGuid.ToString(),
73
74 handler->SetSentErrorMessage(false);
75 return true;
76 }
@ ARENA_SLOT_2v2
Definition ArenaTeam.h:102
@ ARENA_SLOT_5v5
Definition ArenaTeam.h:104
@ ARENA_SLOT_3v3
Definition ArenaTeam.h:103
@ LANG_COMMAND_CACHE_NOT_FOUND
Definition Language.h:1134
@ LANG_COMMAND_CACHE_INFO
Definition Language.h:1131
std::string ToString() const
Definition ObjectGuid.cpp:48
Definition CharacterCache.h:28
uint8 Class
Definition CharacterCache.h:32
std::array< uint32, MAX_ARENA_SLOT > ArenaTeamId
Definition CharacterCache.h:38
uint8 Level
Definition CharacterCache.h:35
ObjectGuid GroupGuid
Definition CharacterCache.h:39
ObjectGuid::LowType GuildId
Definition CharacterCache.h:37
uint16 MailCount
Definition CharacterCache.h:36
std::string Name
Definition CharacterCache.h:30
uint8 Sex
Definition CharacterCache.h:34
uint8 Race
Definition CharacterCache.h:33
ObjectGuid Guid
Definition CharacterCache.h:29
uint32 AccountId
Definition CharacterCache.h:31

References CharacterCacheEntry::AccountId, ARENA_SLOT_2v2, ARENA_SLOT_3v3, ARENA_SLOT_5v5, CharacterCacheEntry::ArenaTeamId, CharacterCacheEntry::Class, Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), CharacterCacheEntry::GroupGuid, CharacterCacheEntry::Guid, CharacterCacheEntry::GuildId, LANG_COMMAND_CACHE_INFO, LANG_COMMAND_CACHE_NOT_FOUND, LANG_PLAYER_NOT_FOUND, CharacterCacheEntry::Level, CharacterCacheEntry::MailCount, CharacterCacheEntry::Name, ChatHandler::PSendSysMessage(), CharacterCacheEntry::Race, sCharacterCache, ChatHandler::SendErrorMessage(), ChatHandler::SetSentErrorMessage(), CharacterCacheEntry::Sex, and ObjectGuid::ToString().

Referenced by GetCommands().

◆ HandleCacheRefreshCommand()

static bool cache_commandscript::HandleCacheRefreshCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
98 {
99 if (!player)
100 {
101 player = PlayerIdentifier::FromTargetOrSelf(handler);
102 }
103
104 if (!player)
105 {
107 return false;
108 }
109
110 if (player->IsConnected())
111 {
112 if (Player* cPlayer = ObjectAccessor::FindConnectedPlayer(player->GetGUID()))
113 {
114 if (sCharacterCache->HasCharacterCacheEntry(cPlayer->GetGUID()))
115 {
116 sCharacterCache->UpdateCharacterData(cPlayer->GetGUID(), cPlayer->GetName(), cPlayer->getGender(), cPlayer->getRace());
117 }
118 else
119 {
120 sCharacterCache->AddCharacterCacheEntry(cPlayer->GetGUID(), cPlayer->GetSession()->GetAccountId(), cPlayer->GetName(),
121 cPlayer->getGender(), cPlayer->getRace(), cPlayer->getClass(), cPlayer->GetLevel());
122 }
123
124 sCharacterCache->UpdateCharacterAccountId(cPlayer->GetGUID(), cPlayer->GetSession()->GetAccountId());
125 sCharacterCache->UpdateCharacterGuildId(cPlayer->GetGUID(), cPlayer->GetGuildId());
126 sMailMgr->RecountMailCount(cPlayer->GetGUID().GetCounter());
127 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_2v2, cPlayer->GetArenaTeamId(ARENA_SLOT_2v2));
128 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_3v3, cPlayer->GetArenaTeamId(ARENA_SLOT_3v3));
129 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_5v5, cPlayer->GetArenaTeamId(ARENA_SLOT_5v5));
130
131 if (Group* group = cPlayer->GetGroup())
132 {
133 sCharacterCache->UpdateCharacterGroup(cPlayer->GetGUID(), group->GetGUID());
134 }
135 else
136 {
137 sCharacterCache->ClearCharacterGroup(cPlayer->GetGUID());
138 }
139 }
140 }
141 else
142 {
143 sCharacterCache->RefreshCacheEntry(player->GetGUID().GetCounter());
144 }
145
146 handler->PSendSysMessage(LANG_COMMAND_CACHE_REFRESH, player->GetName(), player->GetGUID().ToString());
147 handler->SetSentErrorMessage(false);
148 return true;
149 }
@ LANG_COMMAND_CACHE_REFRESH
Definition Language.h:1133
#define sMailMgr
Definition MailMgr.h:85
Definition Group.h:177
Definition Player.h:1086
Player * FindConnectedPlayer(ObjectGuid const guid)
Definition ObjectAccessor.cpp:281

References ARENA_SLOT_2v2, ARENA_SLOT_3v3, ARENA_SLOT_5v5, ObjectAccessor::FindConnectedPlayer(), Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), LANG_COMMAND_CACHE_REFRESH, LANG_PLAYER_NOT_FOUND, ChatHandler::PSendSysMessage(), sCharacterCache, ChatHandler::SendErrorMessage(), ChatHandler::SetSentErrorMessage(), and sMailMgr.

Referenced by GetCommands().


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