diff options
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index cbc73da75e5..6affb4cb5ed 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -33,6 +33,7 @@ #include "Mail.h" #include "ObjectMgr.h" #include "RBAC.h" +#include "StringConvert.h" #include "World.h" #include "WorldSession.h" #include <sstream> @@ -756,9 +757,9 @@ void GuildAchievementMgr::LoadFromDB(PreparedQueryResult achievementResult, Prep CompletedAchievementData& ca = _completedAchievements[achievementid]; ca.Date = fields[1].GetInt64(); - Tokenizer guids(fields[2].GetString(), ' '); - for (uint32 i = 0; i < guids.size(); ++i) - ca.CompletingPlayers.insert(ObjectGuid::Create<HighGuid::Player>(uint64(strtoull(guids[i], nullptr, 10)))); + for (std::string_view guid : Trinity::Tokenize(fields[2].GetStringView(), ' ', false)) + if (Optional<ObjectGuid::LowType> parsedGuid = Trinity::StringTo<ObjectGuid::LowType>(guid)) + ca.CompletingPlayers.insert(ObjectGuid::Create<HighGuid::Player>(*parsedGuid)); ca.Changed = false; |