diff --git a/common/database.cpp b/common/database.cpp index 9cf5239c4..6e1b7d92e 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -2089,3 +2089,8 @@ void Database::PurgeCharacterParcels() RuleI(Parcel, ParcelPruneDelay) ); } + +void Database::ClearGuildOnlineStatus() +{ + GuildMembersRepository::ClearOnlineStatus(*this); +} diff --git a/common/database.h b/common/database.h index a5a388f19..25d129ac1 100644 --- a/common/database.h +++ b/common/database.h @@ -243,6 +243,7 @@ public: void SetRaidGroupLeaderInfo(uint32 group_id, uint32 raid_id); void PurgeAllDeletedDataBuckets(); + void ClearGuildOnlineStatus(); /* Database Variables */ diff --git a/common/repositories/guild_members_repository.h b/common/repositories/guild_members_repository.h index 330f5e743..de4a3b29d 100644 --- a/common/repositories/guild_members_repository.h +++ b/common/repositories/guild_members_repository.h @@ -190,6 +190,17 @@ public: return UpdateOne(db, m); } + + static void ClearOnlineStatus(Database &db) + { + auto results = db.QueryDatabase( + fmt::format( + "UPDATE {} SET `online` = 0 " + "WHERE `online` = 1;", + TableName() + ) + ); + } }; #endif //EQEMU_GUILD_MEMBERS_REPOSITORY_H diff --git a/world/cliententry.cpp b/world/cliententry.cpp index 6ed12b821..85dfe6ef9 100644 --- a/world/cliententry.cpp +++ b/world/cliententry.cpp @@ -138,7 +138,7 @@ void ClientListEntry::SetOnline(CLE_Status iOnline) "Online status [{}] ({}) status [{}] ({})", AccountName(), AccountID(), - CLEStatusString[CLE_Status::Online], + CLEStatusString[iOnline], static_cast(iOnline) ); diff --git a/world/world_boot.cpp b/world/world_boot.cpp index 4eeb49b38..ec3af8b33 100644 --- a/world/world_boot.cpp +++ b/world/world_boot.cpp @@ -284,6 +284,8 @@ bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv) database.ClearRaid(); database.ClearRaidDetails(); database.ClearRaidLeader(); + LogInfo("Clearing guild online status"); + database.ClearGuildOnlineStatus(); LogInfo("Clearing inventory snapshots"); database.ClearInvSnapshots(); LogInfo("Loading items");