예제 #1
0
        public SpamFilter(GameState.PlayerArrayList players)
        {
            _trackers = new SpamTracker[players.Count];
            for (int x = 0; x < players.Count; x++)
            {
                _trackers[x] = new SpamTracker(players[x]);
            }
            HaloServer server = (HaloServer)ServerManager.ServerList[0];

            server._serverExtensions._logInterpreter
        }
예제 #2
0
        private void myXPButton2_Click(object sender, System.EventArgs e)
        {
            txtHSTLog.Text = "2004-08-20 23:25:26	Starting HALOCE server process\r\n"+
                             "2004-08-20 23:25:29	Binding Server Extensions\r\n"+
                             "2004-08-20 23:25:31	Logfile monitor thread started\r\n"+
                             "2004-08-20 23:25:31	Initializing IRC bot\r\n"+
                             "2004-08-20 23:25:32	Server Extensions active - listening for triggers.\r\n"+
                             "2004-08-20 23:25:45	IRC Bot connected to irc.shadowfire.org, joined #hst_test\r\n";
            HaloServer hs = (HaloServer)ServerManager.ServerList[0];

            hs.Start();
        }
예제 #3
0
        private void UpdateMapInfo()
        {
            HaloServer hs = (HaloServer)ServerManager.ServerList[0];

            if (!hs.Active())
            {
                lblMapName.Text = "";
                lblPlayers.Text = "";
            }
            else
            {
                lblMapName.Text  = hs._serverExtensions._logInterpreter.gameStatus.CurrentMap;
                lblGameType.Text = hs._serverExtensions._logInterpreter.gameStatus.CurrentGameMode;
            }
        }
예제 #4
0
        public void StartUp()
        {
            // Setup a file0based Trace Listener
            Trace.AutoFlush = true;

            // First, determine the filename to use:
            string dir      = Environment.CurrentDirectory + "\\";
            string baseName = "hstlogfile." + DateTime.Now.ToShortDateString().Replace("/", "-");
            string ext      = ".txt";

            // If this file exists, rename appropriately
            //if (System.IO.File.Exists(dir + baseName + ext))
            //{
            //	int x = 1;
            //	while (System.IO.File.Exists(dir + baseName + "." + Convert.ToString(x) + ext))
            //	{
            //		x++;
            //	}
            //	baseName = baseName + "." + Convert.ToString(x);
            //}
            System.IO.FileStream traceLog = new System.IO.FileStream(dir + baseName + ext, System.IO.FileMode.OpenOrCreate);

            // Creates the new trace listener.
            System.Diagnostics.TextWriterTraceListener newListener =
                new System.Diagnostics.TextWriterTraceListener(traceLog);

            // Add the listener
            Trace.Listeners.Add(newListener);
            Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

            // If the settings folder does not exist, create it
            if (!System.IO.Directory.Exists(Environment.CurrentDirectory + "\\settings"))
            {
                Trace.WriteLine("Settings folder was not found - it is being created.");
                System.IO.Directory.CreateDirectory(Environment.CurrentDirectory + "\\settings");
            }

            Thread.CurrentThread.Priority = ThreadPriority.Lowest;             // We don't want anything to interfere with
            // the game servers that are being managed.

            //////////////////////////////////////////////////////////////
            // Initialization: Part One - Load settings from files
            //////////////////////////////////////////////////////////////

            // Read the settings.ini file for global settings
            string settingsFile = Environment.CurrentDirectory + "\\settings\\settings.ini";

            if (!System.IO.File.Exists(settingsFile))
            {
                Trace.WriteLine("Applications settings file (" + settingsFile + ") does not exist!");
                Trace.WriteLine("Could not initialize - reinstall HST to repair this problem.");
                return;
            }

            IConfigSource source          = new IniConfigSource(settingsFile);
            string        installedFolder = source.Configs["Paths"].GetString("InstalledFolder");
            string        dataFolder      = source.Configs["Paths"].GetString("DataFolder");

            ServerManager.ServerList = new System.Collections.ArrayList();
            HaloServer h = new HaloServer(installedFolder);

            h._ipAddress   = System.Net.IPAddress.Parse(source.Configs["Settings"].GetString("IPAddress"));
            h._port        = Convert.ToInt32(source.Configs["Settings"].GetString("Port"));
            h._commandLine = "haloceded.exe";
            h._parameters  = "-ip " + h._ipAddress + " " +
                             "-port " + Convert.ToString(h._port) + " " +
                             "-path \"" + dataFolder + "\"";
            ServerManager.ServerList.Add(h);
        }
        static void Main(string[] args)
        {
            // Setup a trace listener to the console
            Trace.AutoFlush = true;

            // First, determine the filename to use:
            string dir      = Environment.CurrentDirectory + "\\";
            string baseName = "hstlogfile." + DateTime.Now.ToShortDateString().Replace("/", "-");
            string ext      = ".txt";

            // If this file exists, rename appropriately
            if (System.IO.File.Exists(dir + baseName + ext))
            {
                int x = 1;
                while (System.IO.File.Exists(dir + baseName + "." + Convert.ToString(x) + ext))
                {
                    x++;
                }
                baseName = baseName + "." + Convert.ToString(x);
            }
            System.IO.FileStream traceLog = new System.IO.FileStream(dir + baseName + ext, System.IO.FileMode.OpenOrCreate);

            // Creates the new trace listener.
            System.Diagnostics.TextWriterTraceListener newListener =
                new System.Diagnostics.TextWriterTraceListener(traceLog);

            // Add the listener
            Trace.Listeners.Add(newListener);
            Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

            // If the settings folder does not exist, create it
            if (!System.IO.Directory.Exists(Environment.CurrentDirectory + "\\settings"))
            {
                Trace.WriteLine("Settings folder was not found - it is being created.");
                System.IO.Directory.CreateDirectory(Environment.CurrentDirectory + "\\settings");
            }

            Thread.CurrentThread.Priority = ThreadPriority.Lowest;             // We don't want anything to interfere with
            // the game servers that are being managed.

            //////////////////////////////////////////////////////////////
            // Initialization: Part One - Load settings from files
            //////////////////////////////////////////////////////////////

            // Open the database connection
            string dbFile = Environment.CurrentDirectory + "\\settings\\global_settings.mdb";

            if (!System.IO.File.Exists(dbFile))
            {
                Trace.WriteLine("Database file not found - " + dbFile);
                Trace.WriteLine("Could not initialize - reinstall HST to repair this problem.");
            }
            DB.OpenDatabase(dbFile);

            // Start all of the server processes
            ServerManager.ServerList = new System.Collections.ArrayList();

            // Load the server list from the database
            OleDbDataReader dr = DB.GetData("select * from servers");

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    string     startupFolder = dr.GetString(dr.GetOrdinal("installed_dir"));
                    HaloServer h             = new HaloServer(startupFolder);
                    h.name         = dr.GetString(dr.GetOrdinal("name"));
                    h.id           = Convert.ToString(dr.GetInt32(dr.GetOrdinal("server_id")));
                    h._ipAddress   = System.Net.IPAddress.Parse(dr.GetString(dr.GetOrdinal("ip_address")));
                    h._port        = dr.GetInt32(dr.GetOrdinal("port"));
                    h._commandLine = dr.GetString(dr.GetOrdinal("commandline"));
                    h._parameters  = dr.GetString(dr.GetOrdinal("parameters"));
                    ServerManager.ServerList.Add(h);
                    h.Start();
                }
            }
            else
            {
                Trace.WriteLine("No servers found.");
            }
            dr.Close();

            string input;

            while (true)
            {
                input = Console.ReadLine().ToUpper();
                if (input == "QUIT")
                {
                    // There are still child threads running - we need to fix that.
                    foreach (System.Collections.DictionaryEntry de in ServerManager.ServerList)
                    {
                        GameServer g = (GameServer)de.Value;
                        g.Stop();
                    }
                    break;
                }
                if (input.StartsWith("STOP"))
                {
                    GameServer g = (GameServer)ServerManager.ServerList[0];
                    Trace.WriteLine("Stopping Server: " + g.name);
                    g.Stop();
                }
                if (input.StartsWith("START"))
                {
                    GameServer g = (GameServer)ServerManager.ServerList[0];
                    Trace.WriteLine("Starting Server: " + g.name);
                    g.Start();
                }

                /*if (input.StartsWith("WEB"))
                 * {
                 *      if (hServ.Active)
                 *      {
                 *              Trace.WriteLine("Web server active.");
                 *              Trace.WriteLine("IP: " + hServ.Ip);
                 *              Trace.WriteLine("Port: " + Convert.ToString(hServ.Port));
                 *              Trace.WriteLine(" ");
                 *      }
                 *      else
                 *      {
                 *              Trace.WriteLine("Web Server not currently active.");
                 *      }
                 * }*/
            }
        }