namespace Otaku.Managers { using Microsoft.VisualBasic; using Otaku; using System; using System.Collections; using System.Text; public static class stringManager { private static string filterCensor; internal static string langExt; private static Hashtable langStrings; private static string[] swearWords; public static string DrunkenTalk(string Text) { Text = Strings.Replace(Text, "s", "sh", 1, -1, CompareMethod.Text); return Text; } 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) { langExt = langExtension; langStrings = new Hashtable(); Out.WriteLine("Initializing strings from system_strings table for language '" + langExtension + "' ..."); string[] strArray = DB.runReadColumn("SELECT stringid FROM system_strings ORDER BY id ASC", 0); string[] strArray2 = DB.runReadColumn("SELECT var_" + langExt + " FROM system_strings ORDER BY id ASC", 0); for (int i = 0; i < strArray.Length; i++) { if (strArray[i] != "") { if (strArray2[i] == "") { strArray2[i] = strArray[i]; } langStrings.Add(strArray[i], strArray2[i]); } } 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."); } } public static void initFilter() { if (Config.getTableEntry("wordfilter_enable") == "1") { Out.WriteLine("Initializing word filter..."); swearWords = DB.runReadColumn("SELECT word FROM wordfilter", 0); 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."); } } 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); } } }