private static void Main() { Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); Console.Title = Title; log.Info("Initialising..."); ConfigurationManager <WorldServerConfiguration> .Initialise("WorldServer.json"); DatabaseManager.Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Database); GameTableManager.Initialise(); MapManager.Initialise(); SearchManager.Initialise(); EntityManager.Initialise(); EntityCommandManager.Initialise(); GlobalMovementManager.Initialise(); AssetManager.Initialise(); GlobalSpellManager.Initialise(); ServerManager.Initialise(); ResidenceManager.Initialise(); // make sure the assigned realm id in the configuration file exists in the database RealmId = ConfigurationManager <WorldServerConfiguration> .Config.RealmId; if (ServerManager.Servers.All(s => s.Model.Id != RealmId)) { throw new ConfigurationException($"Realm id {RealmId} in configuration file doesn't exist in the database!"); } MessageManager.Initialise(); SocialManager.Initialise(); CommandManager.Initialise(); NetworkManager <WorldSession> .Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Network); WorldManager.Initialise(lastTick => { NetworkManager <WorldSession> .Update(lastTick); MapManager.Update(lastTick); ResidenceManager.Update(lastTick); BuybackManager.Update(lastTick); }); using (WorldServerEmbeddedWebServer.Initialise()) { log.Info("Ready!"); while (true) { Console.Write(">> "); string line = Console.ReadLine(); if (!CommandManager.HandleCommand(new ConsoleCommandContext(), line, false)) { Console.WriteLine("Invalid command"); } } } }
private static void Main() { Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); Console.Title = Title; log.Info("Initialising..."); ConfigurationManager <WorldServerConfiguration> .Initialise("WorldServer.json"); DatabaseManager.Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Database); GameTableManager.Initialise(); EntityManager.Initialise(); EntityCommandManager.Initialise(); AssetManager.Initialise(); ServerManager.Initialise(); MessageManager.Initialise(); SocialManager.Initialise(); CommandManager.Initialise(); NetworkManager <WorldSession> .Initialise(ConfigurationManager <WorldServerConfiguration> .Config.Network); WorldManager.Initialise(lastTick => { NetworkManager <WorldSession> .Update(lastTick); MapManager.Update(lastTick); }); using (WorldServerEmbeddedWebServer.Initialise()) { log.Info("Ready!"); while (true) { Console.Write(">> "); string line = Console.ReadLine(); if (!CommandManager.HandleCommand(new ConsoleCommandContext(), line, false)) { Console.WriteLine("Invalid command"); } } } }
private static void Main() { Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); Console.Title = Title; log.Info("Initialising..."); ConfigurationManager <WorldServerConfiguration> .Instance.Initialise("WorldServer.json"); RealmId = ConfigurationManager <WorldServerConfiguration> .Instance.Config.RealmId; RealmMotd = ConfigurationManager <WorldServerConfiguration> .Instance.Config.MessageOfTheDay; DatabaseManager.Instance.Initialise(ConfigurationManager <WorldServerConfiguration> .Instance.Config.Database); DatabaseManager.Instance.Migrate(); // RBACManager must be initialised before CommandManager RBACManager.Instance.Initialise(); CommandManager.Instance.Initialise(); DisableManager.Instance.Initialise(); GameTableManager.Instance.Initialise(); BaseMapManager.Instance.Initialise(); SearchManager.Instance.Initialise(); EntityManager.Instance.Initialise(); EntityCommandManager.Instance.Initialise(); EntityCacheManager.Instance.Initialise(); FactionManager.Instance.Initialise(); GlobalMovementManager.Instance.Initialise(); GlobalChatManager.Instance.Initialise(); // must be initialised before guilds GlobalAchievementManager.Instance.Initialise(); // must be initialised before guilds GlobalGuildManager.Instance.Initialise(); // must be initialised before residences CharacterManager.Instance.Initialise(); // must be initialised before residences GlobalResidenceManager.Instance.Initialise(); GlobalGuildManager.Instance.ValidateCommunityResidences(); AssetManager.Instance.Initialise(); ItemManager.Instance.Initialise(); PrerequisiteManager.Instance.Initialise(); GlobalSpellManager.Instance.Initialise(); GlobalQuestManager.Instance.Initialise(); GlobalStorefrontManager.Instance.Initialise(); ServerManager.Instance.Initialise(RealmId); MessageManager.Instance.Initialise(); NetworkManager <WorldSession> .Instance.Initialise(ConfigurationManager <WorldServerConfiguration> .Instance.Config.Network); TextFilterManager.Instance.Initialise(); WorldManager.Instance.Initialise(lastTick => { // NetworkManager must be first and MapManager must come before everything else NetworkManager <WorldSession> .Instance.Update(lastTick); MapManager.Instance.Update(lastTick); BuybackManager.Instance.Update(lastTick); GlobalQuestManager.Instance.Update(lastTick); GlobalGuildManager.Instance.Update(lastTick); GlobalResidenceManager.Instance.Update(lastTick); // must be after guild update GlobalChatManager.Instance.Update(lastTick); // process commands after everything else in the tick has processed CommandManager.Instance.Update(lastTick); }); using (WorldServerEmbeddedWebServer.Initialise()) { log.Info("Ready!"); while (true) { Console.Write(">> "); string line = Console.ReadLine(); CommandManager.Instance.HandleCommandDelay(new ConsoleCommandContext(), line); } } }