Example #1
0
        internal WaitHandle CloseFileStreams(TorrentManager manager)
        {
            ManualResetEvent handle = new ManualResetEvent(false);

            IOLoop.Queue(delegate {
                // Process all pending reads/writes then close any open streams
                try
                {
                    LoopTask();
                    if (manager.HasMetadata)
                    {
                        writer.Close(manager.Torrent.Files);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(null, "Close file streams error: {0}", ex.Message);
                    SetError(manager, Reason.WriteFailure, ex);
                }
                finally
                {
                    handle.Set();
                }
            });

            return(handle);
        }
Example #2
0
        public Server()
        {
            Log("Starting Server");
            s = this;
            consolePlayer = new ConsolePlayer(s);
            consolePlayer.SetUsername(ConsoleName);
            //Group.DefaultGroup = new DefaultGroup(); //debugging
            mainlevel = new World(0, 127, 0, "main", new Random().Next());
            World.worlds.Add(mainlevel);
            ml = new MainLoop("server");
            #region updatetimer
            ml.Queue(delegate
            {
                updateTimer.Elapsed += delegate
                {
                Player.GlobalUpdate();
                }; updateTimer.Start();
            });
            #endregion
            //TODO AI Update Timer

            //Setup();

            Log("Server Started");

            //new Creeper(new Point3(0, 0, 0), mainlevel);
        }
Example #3
0
        void DhtEngineStateChanged(object o, EventArgs e)
        {
            if (dhtEngine.State != DhtState.Ready)
            {
                return;
            }

            MainLoop.Queue(delegate {
                foreach (TorrentManager manager in torrents)
                {
                    if (!manager.CanUseDht)
                    {
                        continue;
                    }

                    dhtEngine.Announce(manager.InfoHash, Listener.Endpoint.Port);
                    dhtEngine.GetPeers(manager.InfoHash);
                }
            });
        }
Example #4
0
        public Server()
        {
            Log("Starting Server");
            s = this;
            mainlevel = new World(0, 127, 0, "main");
            World.worlds.Add(mainlevel);
            ml = new MainLoop("server");
            #region updatetimer
            ml.Queue(delegate
            {
                updateTimer.Elapsed += delegate
                {
                    Player.GlobalUpdate();
                }; updateTimer.Start();
            });
            #endregion

            Setup();

            Log("Server Started");
        }
Example #5
0
        public Server()
        {
            Log("Starting Server");
            s = this;
            if (Directory.Exists("main"))
            {
                mainlevel = World.LoadLVL("main");
            }
            else
            {
                mainlevel = new World(0, 127, 0, "main", 0) { ChunkLimit = 4 };
                World.worlds.Add(mainlevel);
            } //changed to seed 0 for now
            ml = new MainLoop("server");
            #region updatetimer
            ml.Queue(delegate
            {
                updateTimer.Elapsed += delegate
                {
                Player.GlobalUpdate();
                }; updateTimer.Start();
            });
            ml.Queue(delegate
            {
                playerlisttimer.Elapsed += delegate
                {
                    Player.PlayerlistUpdate();
                }; playerlisttimer.Start();
            });
            #endregion
            //TODO AI Update Timer

            //Setup();

            //new Creeper(new Point3(0, 72, 0), mainlevel);
        }