fix(CORE/locale): achievement_reward_locale should now work (#2811)

Closes #2810
This commit is contained in:
AsunaFrostwyrm
2020-04-10 22:31:39 +02:00
committed by GitHub
parent 9c8c5ea8ff
commit 50287c05f0

View File

@@ -2219,8 +2219,23 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
MailDraft draft(reward->mailTemplate);
if (!reward->mailTemplate)
draft = MailDraft(reward->subject, reward->text);
{
std::string subject = reward->subject;
std::string text = reward->text;
LocaleConstant localeConstant = GetPlayer()->GetSession()->GetSessionDbLocaleIndex();
if (localeConstant != LOCALE_enUS)
{
if(AchievementRewardLocale const* loc = sAchievementMgr->GetAchievementRewardLocale(achievement))
{
ObjectMgr::GetLocaleString(loc->Subject, localeConstant, subject);
ObjectMgr::GetLocaleString(loc->Text, localeConstant, text);
}
}
draft = MailDraft(subject, text);
}
SQLTransaction trans = CharacterDatabase.BeginTransaction();
Item* item = reward->itemId ? Item::CreateItem(reward->itemId, 1, GetPlayer()) : NULL;