namespace Holo.Managers { using Holo; using Ion.Storage; using Microsoft.VisualBasic; using System; using System.Collections; using System.Data; using System.Text; using System.Threading; public static class stringManager { private static string filterCensor; internal static string langExt; private static Hashtable langStrings; private static string[] swearWords; public static string filterSwearwords(string Text) { if (Config.enableWordFilter) { for (int i = 0; i < swearWords.Length; i++) { Text = Strings.Replace(Text, swearWords[i], filterCensor, 1, -1, CompareMethod.Text); } } return Text; } public static string getString(string stringID) { try { return langStrings[stringID].ToString(); } catch { return stringID; } } public static string getStringPart(string Input, int startIndex, int Length) { try { return Input.Substring(startIndex, Length); } catch { return ""; } } public static void Init(string langExtension, bool Update) { DataTable table; langExt = langExtension; langStrings = new Hashtable(); Out.WriteLine("Initializing strings from system_strings table for language '" + langExtension + "' ..."); using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT stringid, var_" + langExt + " FROM system_strings ORDER BY id ASC"); } string[] strArray = new string[table.Rows.Count]; string[] strArray2 = new string[table.Rows.Count]; foreach (DataRow row in table.Rows) { langStrings.Add(Convert.ToString(row["stringid"]), Convert.ToString(row["var_" + langExt])); } Out.WriteLine("Loaded " + langStrings.Count + " strings from system_strings table."); if (Config.getTableEntry("welcomemessage_enable") == "1") { if (getString("welcomemessage_text") != "") { Config.enableWelcomeMessage = true; Out.WriteLine("Welcome message enabled."); } else { Out.WriteLine("Welcome message was preferred as enabled, but has been left blank. Ignored."); } } else { Out.WriteLine("Welcome message disabled."); } if (Update) { Thread.CurrentThread.Abort(); } } public static void initFilter(bool Update) { if (Config.getTableEntry("wordfilter_enable") == "1") { DataColumn column; Out.WriteLine("Initializing word filter..."); using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT word FROM wordfilter"); } swearWords = dataHandling.dColToArray(column); filterCensor = Config.getTableEntry("wordfilter_censor"); if ((swearWords.Length == 0) || (filterCensor == "")) { Out.WriteLine("Word filter was preferred as enabled but no words and/or replacement found, wordfilter disabled."); } else { Config.enableWordFilter = true; Out.WriteLine(string.Concat(new object[] { "Word filter enabled, ", swearWords.Length, " word(s) found, replacement: ", filterCensor })); } } else { Out.WriteLine("Word filter disabled."); } if (Update) { Thread.CurrentThread.Abort(); } } public static string wrapParameters(string[] s, int startIndex) { StringBuilder builder = new StringBuilder(); for (int i = startIndex; i < s.Length; i++) { builder.Append(" " + s[i]); } return builder.ToString().Substring(1); } } }