コード例 #1
0
        public void ConnectToServer(IPEndPoint serverEndPoint, PlayerProfile profile, bool bedrock = false)
        {
            WorldProvider    provider;
            INetworkProvider networkProvider;

            IsMultiplayer = true;
            if (bedrock)
            {
                provider = new BedrockWorldProvider(this, serverEndPoint,
                                                    profile, out networkProvider);
            }
            else
            {
                provider = new JavaWorldProvider(this, serverEndPoint, profile,
                                                 out networkProvider);
            }

            LoadWorld(provider, networkProvider);
        }
コード例 #2
0
        public void ConnectToServer(IPEndPoint serverEndPoint, PlayerProfile profile, bool bedrock = false, string hostname = null)
        {
            var oldNetworkPool = NetworkThreadPool;

            var optionsProvider = Services.GetService <IOptionsProvider>();

            NetworkThreadPool = new DedicatedThreadPool(new DedicatedThreadPoolSettings(optionsProvider.AlexOptions.NetworkOptions.NetworkThreads.Value, ThreadType.Background, "Network ThreadPool"));

            try
            {
                var eventDispatcher = Services.GetRequiredService <IEventDispatcher>() as EventDispatcher;
                eventDispatcher?.Reset();

                WorldProvider    provider;
                INetworkProvider networkProvider;
                IsMultiplayer = true;
                if (bedrock)
                {
                    provider = new BedrockWorldProvider(this, serverEndPoint,
                                                        profile, NetworkThreadPool, out networkProvider);
                }
                else
                {
                    provider = new JavaWorldProvider(this, serverEndPoint, profile,
                                                     out networkProvider)
                    {
                        Hostname = hostname
                    };
                }

                LoadWorld(provider, networkProvider);
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"FCL: {ex.ToString()}");
            }

            oldNetworkPool?.Dispose();
        }