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 dTable; langExt = langExtension; langStrings = new Hashtable(); Out.WriteLine("Initializing strings from system_strings table for language '" + langExtension + "' ..."); using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dTable = dbClient.getTable("SELECT stringid, var_" + langExt + " FROM system_strings ORDER BY id ASC"); } string[] langKeys = new string[dTable.Rows.Count]; string[] langVars = new string[dTable.Rows.Count]; foreach (DataRow dRow in dTable.Rows) { langStrings.Add(Convert.ToString(dRow["stringid"]), Convert.ToString(dRow["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 dCol; Out.WriteLine("Initializing word filter..."); using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dCol = dbClient.getColumn("SELECT word FROM wordfilter"); } swearWords = dataHandling.dColToArray(dCol); 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 sb = new StringBuilder(); for (int i = startIndex; i < s.Length; i++) { sb.Append(" " + s[i]); } return sb.ToString().Substring(1); } } }