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 ()
 
const std::string & 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 (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ cache_commandscript()

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

Member Function Documentation

◆ GetCommands()

ChatCommandTable cache_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

33 {
34 static ChatCommandTable cacheCommandTable =
35 {
39 };
40
41 static ChatCommandTable commandTable =
42 {
43 { "cache", cacheCommandTable },
44 };
45 return commandTable;
46 }
static bool HandleCacheDeleteCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:77
static bool HandleCacheInfoCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:48
static bool HandleCacheRefreshCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_cache.cpp:96
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
78 {
79 if (!player)
80 {
81 player = PlayerIdentifier::FromTargetOrSelf(handler);
82 }
83
84 if (!player)
85 {
87 return false;
88 }
89
90 sCharacterCache->DeleteCharacterCacheEntry(player->GetGUID(), player->GetName());
91 handler->PSendSysMessage(LANG_COMMAND_CACHE_DELETE, player->GetName(), player->GetGUID().ToString());
92 handler->SetSentErrorMessage(false);
93 return true;
94 }
#define sCharacterCache
Definition CharacterCache.h:83
@ 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
49 {
50 if (!player)
51 {
52 player = PlayerIdentifier::FromTargetOrSelf(handler);
53 }
54
55 if (!player)
56 {
58 return false;
59 }
60
61 CharacterCacheEntry const* cache = sCharacterCache->GetCharacterCacheByGuid(player->GetGUID());
62
63 if (!cache)
64 {
65 handler->SendErrorMessage(LANG_COMMAND_CACHE_NOT_FOUND, player->GetName());
66 return false;
67 }
68
69 handler->PSendSysMessage(LANG_COMMAND_CACHE_INFO, cache->Name, cache->Guid.ToString(), cache->AccountId,
70 cache->Class, cache->Race, cache->Sex, cache->Level, cache->MailCount, cache->GuildId, cache->GroupGuid.ToString(),
72
73 handler->SetSentErrorMessage(false);
74 return true;
75 }
@ 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:47
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
std::string Name
Definition CharacterCache.h:30
uint8 MailCount
Definition CharacterCache.h:36
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
97 {
98 if (!player)
99 {
100 player = PlayerIdentifier::FromTargetOrSelf(handler);
101 }
102
103 if (!player)
104 {
106 return false;
107 }
108
109 if (player->IsConnected())
110 {
111 if (Player* cPlayer = ObjectAccessor::FindConnectedPlayer(player->GetGUID()))
112 {
113 if (sCharacterCache->HasCharacterCacheEntry(cPlayer->GetGUID()))
114 {
115 sCharacterCache->UpdateCharacterData(cPlayer->GetGUID(), cPlayer->GetName(), cPlayer->getGender(), cPlayer->getRace());
116 }
117 else
118 {
119 sCharacterCache->AddCharacterCacheEntry(cPlayer->GetGUID(), cPlayer->GetSession()->GetAccountId(), cPlayer->GetName(),
120 cPlayer->getGender(), cPlayer->getRace(), cPlayer->getClass(), cPlayer->GetLevel());
121 }
122
123 sCharacterCache->UpdateCharacterAccountId(cPlayer->GetGUID(), cPlayer->GetSession()->GetAccountId());
124 sCharacterCache->UpdateCharacterGuildId(cPlayer->GetGUID(), cPlayer->GetGuildId());
125 sCharacterCache->UpdateCharacterMailCount(cPlayer->GetGUID(), cPlayer->GetMailSize(), true);
126 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_2v2, cPlayer->GetArenaTeamId(ARENA_SLOT_2v2));
127 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_3v3, cPlayer->GetArenaTeamId(ARENA_SLOT_3v3));
128 sCharacterCache->UpdateCharacterArenaTeamId(cPlayer->GetGUID(), ARENA_SLOT_5v5, cPlayer->GetArenaTeamId(ARENA_SLOT_5v5));
129
130 if (Group* group = cPlayer->GetGroup())
131 {
132 sCharacterCache->UpdateCharacterGroup(cPlayer->GetGUID(), group->GetGUID());
133 }
134 else
135 {
136 sCharacterCache->ClearCharacterGroup(cPlayer->GetGUID());
137 }
138 }
139 }
140 else
141 {
142 sCharacterCache->RefreshCacheEntry(player->GetGUID().GetCounter());
143 }
144
145 handler->PSendSysMessage(LANG_COMMAND_CACHE_REFRESH, player->GetName(), player->GetGUID().ToString());
146 handler->SetSentErrorMessage(false);
147 return true;
148 }
@ LANG_COMMAND_CACHE_REFRESH
Definition Language.h:1133
Definition Group.h:169
Definition Player.h:1084
Player * FindConnectedPlayer(ObjectGuid const guid)
Definition ObjectAccessor.cpp:257

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(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().


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