Core/Chat: Allow incorrect spell/skill language assignments to mirror client behavior

This commit is contained in:
Shauren
2021-05-02 00:44:31 +02:00
parent ede3e415ab
commit 14098b28b3
13 changed files with 75 additions and 151 deletions

View File

@@ -27,17 +27,15 @@ namespace Trinity
{
ChatPacketSender::ChatPacketSender(ChatMsg chatType, ::Language language, WorldObject const* sender, WorldObject const* receiver,
std::string message, uint32 achievementId /*= 0*/, LocaleConstant locale /*= LOCALE_enUS*/)
: Type(chatType), Language(language), Sender(sender), Receiver(receiver), Text(std::move(message)), AchievementId(achievementId), Locale(locale), LanguageSkillId(0)
: Type(chatType), Language(language), Sender(sender), Receiver(receiver), Text(std::move(message)), AchievementId(achievementId), Locale(locale)
{
UntranslatedPacket.Initialize(Type, Language, Sender, Receiver, Text, AchievementId, "", Locale);
UntranslatedPacket.Write();
if (LanguageDesc const* languageDesc = sLanguageMgr->GetLanguageDescById(language))
LanguageSkillId = languageDesc->SkillId;
}
void ChatPacketSender::operator()(Player const* player) const
{
if (Language == LANG_UNIVERSAL || Language == LANG_ADDON || Language == LANG_ADDON_LOGGED || player->CanUnderstandLanguageSkillId(LanguageSkillId))
if (Language == LANG_UNIVERSAL || Language == LANG_ADDON || Language == LANG_ADDON_LOGGED || player->CanUnderstandLanguage(Language))
{
player->SendDirectMessage(UntranslatedPacket.GetRawPacket());
return;