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, Optional< PlayerIdentifier > player)
 
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
30: CommandScript("achievement_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable achievement_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

33 {
34 static ChatCommandTable achievementCommandTable =
35 {
38 };
39 static ChatCommandTable commandTable =
40 {
41 { "achievement", achievementCommandTable }
42 };
43 return commandTable;
44 }
static bool HandleAchievementCheckAllCommand(ChatHandler *handler, Optional< PlayerIdentifier > player)
Definition cs_achievement.cpp:71
static bool HandleAchievementAddCommand(ChatHandler *handler, AchievementEntry const *achievementEntry, Optional< PlayerIdentifier > player)
Definition cs_achievement.cpp:46
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_ACHIEVEMENT_CHECKALL
Definition RBAC.h:135
@ RBAC_PERM_COMMAND_ACHIEVEMENT_ADD
Definition RBAC.h:134

References HandleAchievementAddCommand(), HandleAchievementCheckAllCommand(), rbac::RBAC_PERM_COMMAND_ACHIEVEMENT_ADD, and rbac::RBAC_PERM_COMMAND_ACHIEVEMENT_CHECKALL.

◆ HandleAchievementAddCommand()

static bool achievement_commandscript::HandleAchievementAddCommand ( ChatHandler handler,
AchievementEntry const *  achievementEntry,
Optional< PlayerIdentifier player 
)
inlinestatic
47 {
48 if (!player)
49 player = PlayerIdentifier::FromTargetOrSelf(handler);
50
51 if (!player)
52 {
54 return false;
55 }
56
57 if (player->IsConnected())
58 {
59 player->GetConnectedPlayer()->CompletedAchievement(achievementEntry);
60 handler->PSendSysMessage(LANG_ACHIEVEMENT_ADD_ONLINE, achievementEntry->ID, achievementEntry->name[0], player->GetName());
61 }
62 else
63 {
64 sAchievementMgr->CompletedAchievementForOfflinePlayer(player->GetGUID().GetCounter(), achievementEntry);
65 handler->PSendSysMessage(LANG_ACHIEVEMENT_ADD_OFFLINE, achievementEntry->ID, achievementEntry->name[0], player->GetName());
66 }
67
68 return true;
69 }
#define sAchievementMgr
Definition AchievementMgr.h:451
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:548
@ LANG_ACHIEVEMENT_ADD_ONLINE
Definition Language.h:1454
@ LANG_ACHIEVEMENT_ADD_OFFLINE
Definition Language.h:1455
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
static Optional< PlayerIdentifier > FromTargetOrSelf(ChatHandler *handler)
Definition ChatCommandTags.h:189

References Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), AchievementEntry::ID, LANG_ACHIEVEMENT_ADD_OFFLINE, LANG_ACHIEVEMENT_ADD_ONLINE, LANG_PLAYER_NOT_FOUND, AchievementEntry::name, ChatHandler::PSendSysMessage(), sAchievementMgr, and ChatHandler::SendErrorMessage().

Referenced by GetCommands().

◆ HandleAchievementCheckAllCommand()

static bool achievement_commandscript::HandleAchievementCheckAllCommand ( ChatHandler handler,
Optional< PlayerIdentifier player 
)
inlinestatic
72 {
73 if (!player)
74 {
75 player = PlayerIdentifier::FromTarget(handler);
76 }
77
78 if (!player)
79 {
81 return false;
82 }
83
84 if (player->IsConnected())
85 {
86 if (Player* target = player->GetConnectedPlayer())
87 target->CheckAllAchievementCriteria();
88 }
89 else
90 {
91 auto* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
92 stmt->SetData(0, uint16(AT_LOGIN_CHECK_ACHIEVS));
93 stmt->SetData(1, player->GetGUID().GetCounter());
94 CharacterDatabase.Execute(stmt);
95 }
96
97 return true;
98 }
@ 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
@ AT_LOGIN_CHECK_ACHIEVS
Definition Player.h:596
Definition Player.h:1084
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: