using System; using System.Collections.Generic; using System.Data; using Snowlight.Storage; namespace Snowlight.Game.Moderation { public static class ModerationPresets { private static List mUserMessagePresets; private static List mRoomMessagePresets; private static Dictionary mUserActionPresetCategories; private static Dictionary> mUserActionPresetMessages; public static List UserMessagePresets { get { return mUserMessagePresets; } } public static List RoomMessagePresets { get { return mRoomMessagePresets; } } public static Dictionary> UserActionPresets { get { Dictionary> Result = new Dictionary>(); foreach (KeyValuePair Category in mUserActionPresetCategories) { Result.Add(Category.Value, new Dictionary()); if (mUserActionPresetMessages.ContainsKey(Category.Key)) { foreach (KeyValuePair Data in mUserActionPresetMessages[Category.Key]) { Result[Category.Value].Add(Data.Key, Data.Value); } } } return Result; } } public static void Initialize(SqlDatabaseClient MySqlClient) { mUserMessagePresets = new List(); mRoomMessagePresets = new List(); mUserActionPresetCategories = new Dictionary(); mUserActionPresetMessages = new Dictionary>(); Reload(MySqlClient); } public static void Reload(SqlDatabaseClient MySqlClient) { int i = 0; mUserMessagePresets.Clear(); mRoomMessagePresets.Clear(); mUserActionPresetCategories.Clear(); mUserActionPresetMessages.Clear(); DataTable BasicPresetTable = MySqlClient.ExecuteQueryTable("SELECT type,message FROM moderation_presets"); foreach (DataRow Row in BasicPresetTable.Rows) { string Message = (string)Row["message"]; switch ((string)Row["type"]) { case "room": mRoomMessagePresets.Add(Message); break; case "user": mUserMessagePresets.Add(Message); break; } i++; } DataTable UserActionCategoryTable = MySqlClient.ExecuteQueryTable("SELECT id,caption FROM moderation_preset_action_categories"); foreach (DataRow Row in UserActionCategoryTable.Rows) { mUserActionPresetCategories.Add((uint)Row["id"], (string)Row["caption"]); i++; } DataTable UserActionMsgTable = MySqlClient.ExecuteQueryTable("SELECT id,parent_id,caption,message_text FROM moderation_preset_action_messages"); foreach (DataRow Row in UserActionMsgTable.Rows) { uint ParentId = (uint)Row["parent_id"]; if (!mUserActionPresetMessages.ContainsKey(ParentId)) { mUserActionPresetMessages.Add(ParentId, new Dictionary()); } mUserActionPresetMessages[ParentId].Add((string)Row["caption"], (string)Row["message_text"]); i++; } Output.WriteLine("Loaded " + i + " moderation categories and presets.", OutputLevel.DebugInformation); } } }