[Bug Fix] Fix Issue with ClearSpawnTimers() (#4070)

# Notes
- We were using the improper ID for this and not checking if the vector was empty before using.
This commit is contained in:
Alex King 2024-02-12 20:00:45 -05:00 committed by GitHub
parent 508b37dc93
commit 435b6142b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2649,22 +2649,24 @@ void Zone::ClearSpawnTimers()
iterator.Reset(); iterator.Reset();
std::vector<std::string> respawn_ids; std::vector<uint32> respawn_ids;
while (iterator.MoreElements()) { while (iterator.MoreElements()) {
respawn_ids.emplace_back(std::to_string(iterator.GetData()->GetID())); respawn_ids.emplace_back(iterator.GetData()->spawn2_id);
iterator.Advance(); iterator.Advance();
} }
if (!respawn_ids.empty()) {
RespawnTimesRepository::DeleteWhere( RespawnTimesRepository::DeleteWhere(
database, database,
fmt::format( fmt::format(
"`instance_id` = {} AND `id` IN ({})", "`instance_id` = {} AND `id` IN ({})",
GetInstanceID(), GetInstanceID(),
Strings::Implode(", ", respawn_ids) Strings::Join(respawn_ids, ", ")
) )
); );
}
} }
uint32 Zone::GetSpawnKillCount(uint32 in_spawnid) { uint32 Zone::GetSpawnKillCount(uint32 in_spawnid) {