public MultiplayerServer() { var reader = new PacketReader(); PacketReader = reader; Clients = new List<IRemoteClient>(); EnvironmentWorker = new Timer(DoEnvironment); PacketHandlers = new PacketHandler[0x100]; Worlds = new List<IWorld>(); EntityManagers = new List<IEntityManager>(); LogProviders = new List<ILogProvider>(); Scheduler = new EventScheduler(this); var blockRepository = new BlockRepository(); blockRepository.DiscoverBlockProviders(); BlockRepository = blockRepository; var itemRepository = new ItemRepository(); itemRepository.DiscoverItemProviders(); ItemRepository = itemRepository; BlockProvider.ItemRepository = ItemRepository; BlockProvider.BlockRepository = BlockRepository; var craftingRepository = new CraftingRepository(); craftingRepository.DiscoverRecipes(); CraftingRepository = craftingRepository; PendingBlockUpdates = new Queue<BlockUpdate>(); EnableClientLogging = false; QueryProtocol = new TrueCraft.QueryProtocol(this); WorldLighters = new List<WorldLighting>(); AccessConfiguration = Configuration.LoadConfiguration<AccessConfiguration>("access.yaml"); reader.RegisterCorePackets(); Handlers.PacketHandlers.RegisterHandlers(this); }