Core/ChatCommands: Implement achievement link parsing

This commit is contained in:
Treeston
2018-09-09 12:41:00 +02:00
parent fdbec8b639
commit a4c666dc3d
6 changed files with 112 additions and 18 deletions

View File

@@ -47,20 +47,8 @@ public:
return commandTable;
}
static bool HandleAchievementAddCommand(ChatHandler* handler, char const* args)
static bool HandleAchievementAddCommand(ChatHandler* handler, AchievementEntry const* achievementEntry)
{
if (!*args)
return false;
uint32 achievementId = atoi((char*)args);
if (!achievementId)
{
if (char* id = handler->extractKeyFromLink((char*)args, "Hachievement"))
achievementId = atoul(id);
if (!achievementId)
return false;
}
Player* target = handler->getSelectedPlayer();
if (!target)
{
@@ -68,9 +56,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
if (AchievementEntry const* achievementEntry = sAchievementMgr->GetAchievement(achievementId))
target->CompletedAchievement(achievementEntry);
target->CompletedAchievement(achievementEntry);
return true;
}