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
 
virtual std::vector< Acore::ChatCommands::ChatCommandBuilderGetCommands () const =0
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 

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)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ cache_commandscript()

cache_commandscript::cache_commandscript ( )
inline
29: CommandScript("cache_commandscript") { }
Definition: ScriptMgr.h:850

Member Function Documentation

◆ GetCommands()

ChatCommandTable cache_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

32 {
33 static ChatCommandTable cacheCommandTable =
34 {
35 { "info", HandleCacheInfoCommand, SEC_GAMEMASTER, Console::Yes },
36 { "delete", HandleCacheDeleteCommand, SEC_ADMINISTRATOR, Console::Yes },
37 { "refresh", HandleCacheRefreshCommand, SEC_GAMEMASTER, Console::Yes }
38 };
39
40 static ChatCommandTable commandTable =
41 {
42 { "cache", cacheCommandTable },
43 };
44 return commandTable;
45 }
@ SEC_ADMINISTRATOR
Definition: Common.h:69
@ SEC_GAMEMASTER
Definition: Common.h:68
std::vector< ChatCommandBuilder > ChatCommandTable
Definition: ChatCommand.h:50
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:47
static bool HandleCacheRefreshCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition: cs_cache.cpp:98

References HandleCacheDeleteCommand(), HandleCacheInfoCommand(), HandleCacheRefreshCommand(), SEC_ADMINISTRATOR, and SEC_GAMEMASTER.

◆ 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 handler->SetSentErrorMessage(true);
89 return false;
90 }
91
92 sCharacterCache->DeleteCharacterCacheEntry(player->GetGUID(), player->GetName());
93 handler->PSendSysMessage(LANG_COMMAND_CACHE_DELETE, player->GetName(), player->GetGUID().GetCounter());
94 handler->SetSentErrorMessage(false);
95 return true;
96 }
#define sCharacterCache
Definition: CharacterCache.h:83
@ LANG_COMMAND_CACHE_DELETE
Definition: Language.h:1124
@ LANG_PLAYER_NOT_FOUND
Definition: Language.h:522
void SetSentErrorMessage(bool val)
Definition: Chat.h:118
void PSendSysMessage(char const *fmt, Args &&... args)
Definition: Chat.h:60
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition: Chat.cpp:103
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::SendSysMessage(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().

◆ HandleCacheInfoCommand()

static bool cache_commandscript::HandleCacheInfoCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
48 {
49 if (!player)
50 {
51 player = PlayerIdentifier::FromTargetOrSelf(handler);
52 }
53
54 if (!player)
55 {
57 handler->SetSentErrorMessage(true);
58 return false;
59 }
60
61 CharacterCacheEntry const* cache = sCharacterCache->GetCharacterCacheByGuid(player->GetGUID());
62
63 if (!cache)
64 {
65 handler->PSendSysMessage(LANG_COMMAND_CACHE_NOT_FOUND, player->GetName());
66 handler->SetSentErrorMessage(true);
67 return false;
68 }
69
70 handler->PSendSysMessage(LANG_COMMAND_CACHE_INFO, cache->Name, cache->Guid.GetCounter(), cache->AccountId,
71 cache->Class, cache->Race, cache->Sex, cache->Level, cache->MailCount, cache->GuildId, cache->GroupGuid.GetCounter(),
73
74 handler->SetSentErrorMessage(false);
75 return true;
76 }
@ ARENA_SLOT_2v2
Definition: ArenaTeam.h:103
@ ARENA_SLOT_5v5
Definition: ArenaTeam.h:105
@ ARENA_SLOT_3v3
Definition: ArenaTeam.h:104
@ LANG_COMMAND_CACHE_NOT_FOUND
Definition: Language.h:1126
@ LANG_COMMAND_CACHE_INFO
Definition: Language.h:1123
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
LowType GetCounter() const
Definition: ObjectGuid.h:147

References CharacterCacheEntry::AccountId, ARENA_SLOT_2v2, ARENA_SLOT_3v3, ARENA_SLOT_5v5, CharacterCacheEntry::ArenaTeamId, CharacterCacheEntry::Class, Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), ObjectGuid::GetCounter(), 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::SendSysMessage(), ChatHandler::SetSentErrorMessage(), and CharacterCacheEntry::Sex.

Referenced by GetCommands().

◆ HandleCacheRefreshCommand()

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

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

Referenced by GetCommands().