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); }
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(); }