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

Public Member Functions

 achievement_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 HandleAchievementAddCommand (ChatHandler *handler, AchievementEntry const *achievementEntry)
 
static bool HandleAchievementCheckAllCommand (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

◆ achievement_commandscript()

achievement_commandscript::achievement_commandscript ( )
inline
27: CommandScript("achievement_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable achievement_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

30 {
31 static ChatCommandTable achievementCommandTable =
32 {
33 { "add", HandleAchievementAddCommand, SEC_GAMEMASTER, Console::No },
34 { "checkall", HandleAchievementCheckAllCommand, SEC_ADMINISTRATOR, Console::Yes }
35 };
36 static ChatCommandTable commandTable =
37 {
38 { "achievement", achievementCommandTable }
39 };
40 return commandTable;
41 }
@ SEC_ADMINISTRATOR
Definition Common.h:60
@ SEC_GAMEMASTER
Definition Common.h:59
static bool HandleAchievementCheckAllCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_achievement.cpp:56
static bool HandleAchievementAddCommand(ChatHandler *handler, AchievementEntry const *achievementEntry)
Definition cs_achievement.cpp:43
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46

References HandleAchievementAddCommand(), HandleAchievementCheckAllCommand(), SEC_ADMINISTRATOR, and SEC_GAMEMASTER.

◆ HandleAchievementAddCommand()

static bool achievement_commandscript::HandleAchievementAddCommand ( ChatHandler handler,
AchievementEntry const *  achievementEntry 
)
inlinestatic
44 {
45 Player* target = handler->getSelectedPlayer();
46 if (!target)
47 {
49 return false;
50 }
51 target->CompletedAchievement(achievementEntry);
52
53 return true;
54 }
@ LANG_NO_CHAR_SELECTED
Definition Language.h:149
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:216
Player * getSelectedPlayer() const
Definition Chat.cpp:374
Definition Player.h:1082
void CompletedAchievement(AchievementEntry const *entry)
Definition Player.cpp:13879

References Player::CompletedAchievement(), ChatHandler::getSelectedPlayer(), LANG_NO_CHAR_SELECTED, and ChatHandler::SendErrorMessage().

Referenced by GetCommands().

◆ HandleAchievementCheckAllCommand()

static bool achievement_commandscript::HandleAchievementCheckAllCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
57 {
58 if (!player)
59 {
60 player = PlayerIdentifier::FromTarget(handler);
61 }
62
63 if (!player)
64 {
66 return false;
67 }
68
69 if (player->IsConnected())
70 {
71 if (Player* target = player->GetConnectedPlayer())
72 target->CheckAllAchievementCriteria();
73 }
74 else
75 {
76 auto* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
77 stmt->SetData(0, uint16(AT_LOGIN_CHECK_ACHIEVS));
78 stmt->SetData(1, player->GetGUID().GetCounter());
79 CharacterDatabase.Execute(stmt);
80 }
81
82 return true;
83 }
@ CHAR_UPD_ADD_AT_LOGIN_FLAG
Definition CharacterDatabase.h:276
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
std::uint16_t uint16
Definition Define.h:108
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:540
@ AT_LOGIN_CHECK_ACHIEVS
Definition Player.h:616
static Optional< PlayerIdentifier > FromTarget(ChatHandler *handler)
Definition ChatCommandTags.cpp:138

References AT_LOGIN_CHECK_ACHIEVS, CHAR_UPD_ADD_AT_LOGIN_FLAG, CharacterDatabase, Acore::ChatCommands::PlayerIdentifier::FromTarget(), LANG_PLAYER_NOT_FOUND, and ChatHandler::SendErrorMessage().

Referenced by GetCommands().


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