From bc098658c6a6b1611ff881dd21ab113540d37935 Mon Sep 17 00:00:00 2001 From: click Date: Thu, 2 Dec 2010 03:54:52 +0100 Subject: Core/Chat: Configure automatic owner declaration for custom chat channels (patch by leak) Closes issue 4974. --HG-- branch : trunk --- src/server/shared/Database/Implementation/CharacterDatabase.cpp | 7 +++++++ src/server/shared/Database/Implementation/CharacterDatabase.h | 6 ++++++ 2 files changed, 13 insertions(+) (limited to 'src/server/shared/Database/Implementation') diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 92257ba9ace..1164fcceffe 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -215,5 +215,12 @@ bool CharacterDatabaseConnection::Open() PrepareStatement(CHAR_DEL_CRESPAWNTIME, "DELETE FROM creature_respawn WHERE guid = ? AND instance = ?"); PrepareStatement(CHAR_ADD_CRESPAWNTIME, "INSERT INTO creature_respawn VALUES (?, ?, ?)"); + // Chat channel handling + PrepareStatement(CHAR_LOAD_CHANNEL, "SELECT m_announce, m_ownership, m_password, BannedList FROM channels WHERE m_name = ? AND m_team = ?"); + PrepareStatement(CHAR_ADD_CHANNEL, "INSERT INTO channels (m_name, m_team, last_used) VALUES (? , ?, UNIX_TIMESTAMP())"); + PrepareStatement(CHAR_SET_CHANNEL, "UPDATE channels SET m_announce = ?, m_ownership = ?, m_password = ?, BannedList = ?, last_used = UNIX_TIMESTAMP() WHERE m_name = ? AND m_team = ?"); + PrepareStatement(CHAR_SET_CHANNEL_USAGE, "UPDATE channels SET last_used = UNIX_TIMESTAMP() WHERE m_name = ? AND m_team = ?"); + PrepareStatement(CHAR_CLEAN_CHANNEL, "DELETE FROM channels WHERE m_ownership = 1 AND (last_used + ?) < UNIX_TIMESTAMP()"); + return true; } diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index e8fc1b64418..3346632e75d 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -181,6 +181,12 @@ enum CharacterDatabaseStatements CHAR_DEL_CRESPAWNTIME, CHAR_ADD_CRESPAWNTIME, + CHAR_LOAD_CHANNEL, + CHAR_ADD_CHANNEL, + CHAR_SET_CHANNEL, + CHAR_SET_CHANNEL_USAGE, + CHAR_CLEAN_CHANNEL, + MAX_CHARACTERDATABASE_STATEMENTS, }; -- cgit v1.2.3