Ejemplo n.º 1
0
        private void button15_Click(object sender, EventArgs e)
        {
            ArrayList alreadyBanned = new ArrayList();

            alreadyBanned.AddRange(ArrayList.Adapter(ConfigLoadFunc.TimeBanLoad("banned.xml")));
            Int64  unix_timebanned = (Int64)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds;
            string connectionString;

            connectionString = "Data Source=" + databaseHost + ";User Id=" + databaseUser + ";Password="******";Database=" + realmDatabase;
            MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(connectionString);
            conn.Open();
            string query = "UPDATE account SET banned = \"1\" WHERE username = \"" + Convert.ToString(listBox1.SelectedItem) + "\"";

            MySql.Data.MySqlClient.MySqlCommand resQuery = new MySql.Data.MySqlClient.MySqlCommand(query, conn);
            resQuery.ExecuteNonQuery();
            conn.Close();
            string tobeBanned = Convert.ToString(listBox1.SelectedItem);
            Int64  timeBan    = unix_timebanned + (Convert.ToInt64(timebanBox.Text) * 60);

            alreadyBanned.Add(tobeBanned + @"%" + timeBan + @";");
            if ((string)alreadyBanned[0] == "none")
            {
                alreadyBanned.RemoveAt(0);
            }
            MainFunctions.WriteBans((string[])alreadyBanned.ToArray(typeof(string)));
            WriteLog("Account: " + listBox1.SelectedItem + " BANNNED FOR " + timebanBox.Text + " minutes!", Color.Red);
            button12_Click(null, null);
        }
Ejemplo n.º 2
0
        //Function to check the hash value of the config file
        static void SignedCheck()
        {
            string[] aHash = { "TimerInterval", "MangosName", "RealmName", "MangosHosted", "RealmHosted", "RealmPath", "AppPath", "DatabaseHost", "DatabaseUsername", "DatabasePassword", "MangosDatabase", "RealmDatabase" };
            foreach (string hash in aHash)
            {
                //SimpleHash - see SHA1.cs class file
                hashedText += SimpleHash.ComputeHash(ConfigLoadFunc.ConfigLoad(hash, "config.xml"), "SHA1", StrToByteArray("mangoshash"));
            }
            //If matches then return
            if (hashedText == ConfigLoadFunc.ConfigLoad("Signed", "config.xml"))
            {
                return;
            }
            //If hash doesn't match then launch configuration editor
            else
            {
                DialogResult hashError = MessageBox.Show("Error: Configuration file incorrectly signed! Please use the configuration editor instead of making manual changes!", "Error in Signed Configuration File", MessageBoxButtons.OK, MessageBoxIcon.Error);

                if (hashError == DialogResult.OK)
                {
                    try
                    {
                        Process.Start("\".\\Configuration Editor.exe\"");
                    }
                    catch (Win32Exception)
                    {
                        DialogResult error = MessageBox.Show("Error: Configuration Editor not found! Please check the location of \"Configuration Editor.exe\"", "Error Loading Configuration Editor", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        if (error == DialogResult.OK)
                        {
                            Application.Exit();
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void generalTimer_Tick(object sender, EventArgs e)
        {
            button3_Click(null, null);
            label17.Text = Convert.ToString(oCount);
            if (oCount > maxoCount)
            {
                label16.Text = Convert.ToString(oCount);
            }
            //Check TimeBans
            string[] Banned = null;
            Banned = ConfigLoadFunc.TimeBanLoad("banned.xml");
            ArrayList toBanList = new ArrayList();

            foreach (string s in Banned)
            {
                int       a          = 0;
                string    bannedname = "";
                string    bantime    = "";
                Int64     unix_time  = (Int64)((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
                ArrayList indvBans   = new ArrayList();
                indvBans = ArrayList.Adapter(s.Split(Convert.ToChar(";")));
                foreach (string i in indvBans)
                {
                    a = i.IndexOf(@"%");
                    if (a != -1)
                    {
                        bannedname = i.Substring(0, a);
                        bantime    = i.Substring(a + 1);
                        bantime.Remove(bantime.Length - 1);

                        if (Convert.ToInt64(bantime) < unix_time)
                        {
                            string connectionString;
                            connectionString = "Data Source=" + databaseHost + ";User Id=" + databaseUser + ";Password="******";Database=" + realmDatabase;
                            MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(connectionString);
                            conn.Open();
                            string query = "UPDATE account SET banned = \"0\" WHERE username = \"" + bannedname + "\"";
                            MySql.Data.MySqlClient.MySqlCommand resQuery = new MySql.Data.MySqlClient.MySqlCommand(query, conn);
                            resQuery.ExecuteNonQuery();
                            conn.Close();
                            WriteLog("Time ban on " + bannedname + " removed!", Color.Red);
                        }
                        else
                        {
                            toBanList.Add(i);
                        }
                    }
                }
                MainFunctions.WriteBans((string[])(toBanList.ToArray(typeof(string))));
            }
        }
Ejemplo n.º 4
0
        public GUIForm()
        {
            InitializeComponent();
            label19.Text         = Convert.ToString(cCount);
            label16.Text         = "0";
            label17.Text         = "0";
            generalTimer.Enabled = true;
            ConsoleText.Text     = "";
            label7.Text          = "Restarter Stopped.";
            WriteLog("GUI Loaded", Color.Green);
            //Check config hash
            SignedCheck();
            // Load all variables from config -> better at start or as needed from xml?
            if (ConfigLoadFunc.ConfigLoad("loadtest", "config.xml") == "loadok")
            {
                restarterTimer.Interval = Convert.ToInt32(ConfigLoadFunc.ConfigLoad("TimerInterval", "config.xml"));
                mangosHosted            = Convert.ToInt16(ConfigLoadFunc.ConfigLoad("MangosHosted", "config.xml"));
                realmHosted             = Convert.ToInt16(ConfigLoadFunc.ConfigLoad("RealmHosted", "config.xml"));
                mangosName     = ConfigLoadFunc.ConfigLoad("MangosName", "config.xml");
                realmName      = ConfigLoadFunc.ConfigLoad("RealmName", "config.xml");
                databaseHost   = ConfigLoadFunc.ConfigLoad("DatabaseHost", "config.xml");
                databaseUser   = ConfigLoadFunc.ConfigLoad("DatabaseUsername", "config.xml");
                databasePass   = ConfigLoadFunc.ConfigLoad("DatabasePassword", "config.xml");
                mangosDatabase = ConfigLoadFunc.ConfigLoad("MangosDatabase", "config.xml");
                realmDatabase  = ConfigLoadFunc.ConfigLoad("RealmDatabase", "config.xml");


                //Replace @CURRENT@ tags - included simply to help users
                if (ConfigLoadFunc.ConfigLoad("AppPath", "config.xml") == "@CURRENT@")
                {
                    AppPath = ".";
                }
                else
                {
                    AppPath = ConfigLoadFunc.ConfigLoad("AppPath", "config.xml");
                }
                if (ConfigLoadFunc.ConfigLoad("RealmPath", "config.xml") == "@CURRENT@")
                {
                    rAppPath = ".";
                }
                else
                {
                    rAppPath = ConfigLoadFunc.ConfigLoad("RealmPath", "config.xml");
                }
            }
            else
            {
                Application.Exit();
            }
            WriteLog("Config Loaded Successfully", Color.Green);
        }
Ejemplo n.º 5
0
        public Form1()
        {
            InitializeComponent();
            //Default values for all variables
            dTimer    = "10000";
            dmName    = "mangosd";
            drName    = "realmd";
            drHosted  = "Yes";
            dmHosted  = "Yes";
            dappPath  = "@CURRENT@";
            drappPath = "@CURRENT@";
            dHost     = "localhost";
            duName    = "root";
            dpWord    = "password";
            dmData    = "mangos";
            drData    = "realmd";

            //Use "loadtest" parameter on ConfigLoad to check for config file existence. If returns default then use default values above
            if (ConfigLoadFunc.ConfigLoad("loadtest", "config.xml") == "default")
            {
                timerBox.Text   = dTimer;
                mnameBox.Text   = dmName;
                rnameBox.Text   = drName;
                rhostedBox.Text = drHosted;
                mhostedBox.Text = dmHosted;
                appBox.Text     = dappPath;
                rpathBox.Text   = drappPath;
                hostBox.Text    = dHost;
                userBox.Text    = duName;
                passBox.Text    = dpWord;
                mangosData.Text = dmData;
                realmData.Text  = drData;
            }
            //Otherwise use values from config.xml
            else
            {
                timerBox.Text = ConfigLoadFunc.ConfigLoad("TimerInterval", "config.xml");
                mnameBox.Text = ConfigLoadFunc.ConfigLoad("MangosName", "config.xml");
                rnameBox.Text = ConfigLoadFunc.ConfigLoad("RealmName", "config.xml");
                if (ConfigLoadFunc.ConfigLoad("RealmHosted", "config.xml") == "1")
                {
                    rhostedBox.Text = "Yes";
                }
                else
                {
                    rhostedBox.Text = "No";
                }
                if (ConfigLoadFunc.ConfigLoad("MangosHosted", "config.xml") == "1")
                {
                    mhostedBox.Text = "Yes";
                }
                else
                {
                    mhostedBox.Text = "No";
                }
                appBox.Text     = ConfigLoadFunc.ConfigLoad("AppPath", "config.xml");
                rpathBox.Text   = ConfigLoadFunc.ConfigLoad("RealmPath", "config.xml");
                hostBox.Text    = ConfigLoadFunc.ConfigLoad("DatabaseHost", "config.xml");
                userBox.Text    = ConfigLoadFunc.ConfigLoad("DatabaseUsername", "config.xml");
                passBox.Text    = ConfigLoadFunc.ConfigLoad("DatabasePassword", "config.xml");
                mangosData.Text = ConfigLoadFunc.ConfigLoad("MangosDatabase", "config.xml");
                realmData.Text  = ConfigLoadFunc.ConfigLoad("RealmDatabase", "config.xml");
            }
        }
Ejemplo n.º 6
0
        private void button1_Click(object sender, EventArgs e)
        {
            //If config file exists then delete it
            if (File.Exists("config.xml") == true)
            {
                File.Delete("config.xml");
            }
            XmlTextWriter textWriter = new XmlTextWriter("config.xml", null); //Create new XML file ready for output

            //Write all XML
            textWriter.WriteStartDocument();
            textWriter.WriteComment("MaNGOS GUI Config File");
            textWriter.WriteComment("Generated by Configuration Editor");
            textWriter.WriteStartElement("Config");
            textWriter.WriteStartElement("TimerInterval");
            textWriter.WriteString(timerBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("MangosHosted");
            if (mhostedBox.Text == "Yes")
            {
                textWriter.WriteString("1");
            }
            else
            {
                textWriter.WriteString("0");
            }
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("RealmHosted");
            if (rhostedBox.Text == "Yes")
            {
                textWriter.WriteString("1");
            }
            else
            {
                textWriter.WriteString("0");
            }
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("MangosName");
            textWriter.WriteString(mnameBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("RealmName");
            textWriter.WriteString(rnameBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("AppPath");
            textWriter.WriteString(appBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("RealmPath");
            textWriter.WriteString(rpathBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("DatabaseHost");
            textWriter.WriteString(hostBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("DatabaseUsername");
            textWriter.WriteString(userBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("DatabasePassword");
            textWriter.WriteString(passBox.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("MangosDatabase");
            textWriter.WriteString(mangosData.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("RealmDatabase");
            textWriter.WriteString(realmData.Text);
            textWriter.WriteEndElement();
            textWriter.WriteStartElement("Signed");
            textWriter.WriteString("");
            textWriter.WriteEndElement();
            textWriter.WriteEndElement();
            textWriter.WriteEndDocument();
            textWriter.Close();
            //Calculate hash based on written config file then rewrite file including hash.
            //Function will be rewritten as inefficient at the moment
            //Problem with generating hash on the fly is access permissions with ConfigLoad using XML to get values for hash
            string hashedText = "";

            string[] aHash = { "TimerInterval", "MangosName", "RealmName", "MangosHosted", "RealmHosted", "RealmPath", "AppPath", "DatabaseHost", "DatabaseUsername", "DatabasePassword", "MangosDatabase", "RealmDatabase" };
            foreach (string hash in aHash)
            {
                hashedText += SimpleHash.ComputeHash(ConfigLoadFunc.ConfigLoad(hash, "config.xml"), "SHA1", StrToByteArray("mangoshash"));
            }
            if (File.Exists("config.xml") == true)
            {
                File.Delete("config.xml");
            }
            XmlTextWriter finalWriter = new XmlTextWriter("config.xml", null);

            finalWriter.WriteStartDocument();
            finalWriter.WriteComment("MaNGOS GUI Config File");
            finalWriter.WriteComment("Generated by Configuration Editor");
            finalWriter.WriteStartElement("Config");
            finalWriter.WriteStartElement("TimerInterval");
            finalWriter.WriteString(timerBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("MangosHosted");
            if (mhostedBox.Text == "Yes")
            {
                finalWriter.WriteString("1");
            }
            else
            {
                finalWriter.WriteString("0");
            }
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("RealmHosted");
            if (rhostedBox.Text == "Yes")
            {
                finalWriter.WriteString("1");
            }
            else
            {
                finalWriter.WriteString("0");
            }
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("MangosName");
            finalWriter.WriteString(mnameBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("RealmName");
            finalWriter.WriteString(rnameBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("AppPath");
            finalWriter.WriteString(appBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("RealmPath");
            finalWriter.WriteString(rpathBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("DatabaseHost");
            finalWriter.WriteString(hostBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("DatabaseUsername");
            finalWriter.WriteString(userBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("DatabasePassword");
            finalWriter.WriteString(passBox.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("MangosDatabase");
            finalWriter.WriteString(mangosData.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("RealmDatabase");
            finalWriter.WriteString(realmData.Text);
            finalWriter.WriteEndElement();
            finalWriter.WriteStartElement("Signed");
            finalWriter.WriteString(hashedText);
            finalWriter.WriteEndElement();
            finalWriter.WriteEndElement();
            finalWriter.WriteEndDocument();
            finalWriter.Close();
            //If GUI is open, restart it to reload new config file settings
            if (Process.GetProcessesByName("MaNGOS-GUI").Length > 0)
            {
                Process[] restarterProcess = Process.GetProcessesByName("MaNGOS-GUI");
                restarterProcess[0].Kill();
                Process.Start("\".\\MaNGOS-GUI.exe\"");
            }
            //Close this program
            this.Close();
        }