aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Guilds/Guild.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-08-25 15:36:45 +0200
committerShauren <shauren.trinity@gmail.com>2012-08-25 15:36:45 +0200
commit07e645d024bc3c3fb5a2707e51ca807e63225594 (patch)
tree775be4bd39fe71394cf689e6f233e1cfa4f9d685 /src/server/game/Guilds/Guild.cpp
parent26bc57733af4c2cedc60b9777cd037d43e4b8063 (diff)
Core/Guilds: Save guild achievements to database periodically and when a member logs out.
Diffstat (limited to 'src/server/game/Guilds/Guild.cpp')
-rw-r--r--src/server/game/Guilds/Guild.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 4b193b62b2b..595ad77feeb 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -1119,6 +1119,15 @@ void Guild::Disband()
sGuildMgr->RemoveGuild(m_id);
}
+void Guild::SaveToDB()
+{
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+
+ m_achievementMgr.SaveToDB(trans);
+
+ CharacterDatabase.CommitTransaction(trans);
+}
+
///////////////////////////////////////////////////////////////////////////////
// HANDLE CLIENT COMMANDS
void Guild::HandleRoster(WorldSession* session /*= NULL*/)
@@ -1833,6 +1842,8 @@ void Guild::HandleMemberLogout(WorldSession* session)
member->UpdateLogoutTime();
}
_BroadcastEvent(GE_SIGNED_OFF, player->GetGUID(), player->GetName());
+
+ SaveToDB();
}
void Guild::HandleDisband(WorldSession* session)