private static void autoBroadcastNews()
 {
     var news = File.ReadAllLines("news.txt");
         do
         {
             ChatManager cm = new ChatManager(manager);
             cm.News(news[new Random().Next(news.Length)]);
             Thread.Sleep(300000); //5 min
         }
         while (true);
 }
        //public List<Player> GuildMembersOf(string guild)
        //{
        //    return (from i in Worlds where i.Key != 0 from e in i.Value.Players where String.Equals(e.Value.Guild, guild, StringComparison.CurrentCultureIgnoreCase) select e.Value).ToList();
        //}

        public void Initialize()
        {
            log.Info("Initializing Realm Manager...");

            GameData = new XmlData();
            Behaviors = new BehaviorDb(this);
            GeneratorCache.Init();
            MerchantLists.InitMerchatLists(GameData);

            AddWorld(World.NEXUS_ID, Worlds[0] = new Nexus());
            AddWorld(World.MARKET, new ClothBazaar());
            AddWorld(World.TEST_ID, new Test());
            AddWorld(World.TUT_ID, new Tutorial(true));
            AddWorld(World.DAILY_QUEST_ID, new DailyQuestRoom());
            Monitor = new RealmPortalMonitor(this);

            Task.Factory.StartNew(() => GameWorld.AutoName(1, true)).ContinueWith(_ => AddWorld(_.Result), TaskScheduler.Default);

            Chat = new ChatManager(this);
            Commands = new CommandManager(this);

            log.Info("Realm Manager initialized.");
        }
示例#3
0
        public RealmManager(Resources resources, Database db, ServerConfig config)
        {
            InstanceId = Guid.NewGuid().ToString();
            Database   = db;
            Resources  = resources;
            Config     = config;
            Config.serverInfo.instanceId = InstanceId;
            TPS = config.serverSettings.tps;

            // all these deal with db pub/sub... probably should put more thought into their structure...
            InterServer        = new ISManager(Database, config);
            ISControl          = new ISControl(this);
            Chat               = new ChatManager(this);
            DbServerController = new DbServerManager(this); // probably could integrate this with ChatManager and rename...
            DbEvents           = new DbEvents(this);

            // basic server necessities
            ConMan = new ConnectManager(this,
                                        config.serverSettings.maxPlayers,
                                        config.serverSettings.maxPlayersWithPriority);
            Behaviors = new BehaviorDb(this);
            Commands  = new CommandManager(this);

            // some necessities that shouldn't be (will work this out later)
            MerchantLists.Init(this);
            Tinker = new DbTinker(db.Conn);
            if (Config.serverSettings.enableMarket)
            {
                Market = new Market(this);
            }

            var serverMode = config.serverSettings.mode;

            switch (serverMode)
            {
            case ServerMode.Single:
                InitializeNexusHub();
                AddWorld("Realm");
                break;

            case ServerMode.Nexus:
                InitializeNexusHub();
                break;

            case ServerMode.Realm:
                AddWorld("Realm");
                break;

            case ServerMode.Marketplace:
                AddWorld("Marketplace", true);
                AddWorld("Vault");
                AddWorld("ClothBazaar");
                break;
            }

            // add portal monitor to nexus and initialize worlds
            if (Worlds.ContainsKey(World.Nexus))
            {
                Monitor = new PortalMonitor(this, Worlds[World.Nexus]);
            }
            foreach (var world in Worlds.Values)
            {
                OnWorldAdded(world);
            }

            _initialized = true;
        }
示例#4
0
        public void Initialize()
        {
            log.Info("Initializing Realm Manager...");

            this.GameData = new XmlData();
            this.Behaviors = new BehaviorDb(this);

            AddWorld(World.NEXUS_ID, Worlds[0] = new Nexus());
            Monitor = new RealmPortalMonitor(this);

            AddWorld(World.TUT_ID, new Tutorial(true));
            AddWorld(World.NEXUS_LIMBO, new NexusLimbo());
            AddWorld(World.VAULT_ID, new Vault(true));
            AddWorld(World.TEST_ID, new Test());
            AddWorld(World.RAND_REALM, new RandomRealm());
            AddWorld(World.GAUNTLET, new GauntletMap());

            //AddWorld(new GameWorld(1, "Medusa", true));

            Chat = new ChatManager(this);
            Commands = new CommandManager(this);

            log.Info("Realm Manager initialized.");
        }
        public void Initialize()
        {
            log.Info("Initializing Realm Manager...");

            GameData = new XmlData();
            Behaviors = new BehaviorDb(this);

            MerchantLists.InitMerchantLists(GameData);

            AddWorld(World.NEXUS_ID, Worlds[0] = new Nexus());
            Monitor = new RealmPortalMonitor(this);

            AddWorld(World.TUT_ID, new Tutorial(true));
            AddWorld(World.NEXUS_LIMBO, new NexusLimbo());
            AddWorld(World.VAULT_ID, new Vault(true));
            AddWorld(World.TEST_ID, new Test());
            AddWorld(World.RAND_REALM, new RandomRealm());
            AddWorld(World.PVP, new PVPArena());
            AddWorld(World.SHOP_ID, new Shop());

            if (Program.Settings.GetValue<bool>("hasRealm"))
                AddWorld(GameWorld.AutoName(1, true));

            Chat = new ChatManager(this);
            Commands = new CommandManager();

            UnusualEffects.Init();

            log.Info("Realm Manager initialized.");
        }
 private static void AutoBroadcaster()
 {
     var news = File.ReadAllLines("news.txt");
     while (true)
     {
         ChatManager chat = new ChatManager(manager);
         string text = news[new Random().Next(news.Length)];
         if (text.StartsWith("#"))
             chat.Announce(text.TrimStart('#'));
         else chat.News(text);
         Thread.Sleep(1 * 60 * 1000);
     }
 }