aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/AchievementMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp7
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;