/// <summary> /// 连接到服务器 /// </summary> /// <param name="hostname"></param> /// <param name="port"></param> /// <returns></returns> public void Connect(string hostname, ushort port) { _lastServerHostname = hostname; _lastServerPort = port; if (State == MinecraftClientState.InGame) { _adapter.Disconnect(); } _logger.Info($"Connecting {hostname}, {port}"); _adapter = new MinecraftClientAdapter(hostname, port, this); _adapter.Disconnected += (sender, e) => { State = MinecraftClientState.InTitle; Disconnected?.Invoke(sender, e); _world = null; _player = null; }; _adapter.Chat += (sender, e) => { //TODO: Use ChatEventArgs and Minecraft.Text.RichText ChatReceived?.Invoke(sender, e.jsonData); }; _player = new ClientPlayerEntityHandler(_adapter); _world = new WorldHandler(_adapter, _player); _adapter.Connect(); State = MinecraftClientState.InGame; }
/// <summary> /// 断开与服务器的连接 /// </summary> /// <returns></returns> public void Disconnect() { if (State != MinecraftClientState.InGame) { return; } _adapter.Disconnect(); State = MinecraftClientState.InTitle; }