public override void Close(string msg = null) { if (!isActive) { return; } SteamManager.LeaveLobby(); isActive = false; IWriteMessage outMsg = new WriteOnlyMessage(); outMsg.Write((byte)DeliveryMethod.Reliable); outMsg.Write((byte)PacketHeader.IsDisconnectMessage); outMsg.Write(msg ?? "Disconnected"); SteamManager.Instance.Networking.SendP2PPacket(hostSteamId, outMsg.Buffer, outMsg.LengthBytes, Facepunch.Steamworks.Networking.SendType.Reliable); Thread.Sleep(100); Steam.SteamManager.Instance.Networking.OnIncomingConnection = null; Steam.SteamManager.Instance.Networking.OnP2PData = null; Steam.SteamManager.Instance.Networking.SetListenChannel(0, false); Steam.SteamManager.Instance.Networking.CloseSession(hostSteamId); steamAuthTicket?.Cancel(); steamAuthTicket = null; hostSteamId = 0; OnDisconnect?.Invoke(); }
public override void Dispose() { ServerPeer.EnetPeer.DisconnectNow(0); #if STEAM_AUTH m_AuthTicket?.Cancel(); m_AuthTicket = null; #endif base.Dispose(); }
public override void Close(string msg = null) { if (!isActive) { return; } isActive = false; netClient.Shutdown(msg ?? TextManager.Get("Disconnecting")); netClient = null; steamAuthTicket?.Cancel(); steamAuthTicket = null; OnDisconnect?.Invoke(); }
private void OnDestroy() { if (gameObject.name == "SteamManager") { if (Server.Instance != null) { Server.Instance.Dispose(); } if (ticket != null) { ticket.Cancel(); } } }