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 void CancelAuthSessionTicket() { if (SteamTicket != null) { SteamTicket.Cancel(); SteamTicket = null; } }
private void SetSessionAuthTicket(Auth.Ticket ticket) { if (m_AuthTicket != null) { throw new Exception("An auth ticket is already active"); } m_AuthTicket = ticket; }
public static bool Init() { _client = new Client(_appId); if (_client == null) { return(false); } _ticket = _client.Auth.GetAuthSessionTicket(); return(_ticket != null); }
public override void Dispose() { ServerPeer.EnetPeer.DisconnectNow(0); #if STEAM_AUTH m_AuthTicket?.Cancel(); m_AuthTicket = null; #endif base.Dispose(); }
public Auth.Ticket GetAuthSessionTicket() { if (Client.Instance == null) { Debug.LogError("Failed to get steam ticket. Steam client not initialized."); return(null); } SteamTicket = Client.Instance.Auth.GetAuthSessionTicket(); return(SteamTicket); }
private void clRPC_HandShake() { Debug.Log("Getting steam auth ticket."); Auth.Ticket ticket = Client.Auth.GetAuthSessionTicket(); ulong steamId = Client.SteamId; byte[] ticketData = ticket.Data; string username = Me.Username; // 버전, 스팀티켓, 스팀id 전송 _view.RPC(RPCOption.ToServer, "svRPC_HandShake", Config.Version, ticketData, steamId, username); }
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(); }
public override void Start(object endPoint, int ownerKey) { if (isActive) { return; } this.ownerKey = ownerKey; netPeerConfiguration = new NetPeerConfiguration("barotrauma"); netPeerConfiguration.DisableMessageType(NetIncomingMessageType.DebugMessage | NetIncomingMessageType.WarningMessage | NetIncomingMessageType.Receipt | NetIncomingMessageType.ErrorMessage | NetIncomingMessageType.Error); netClient = new NetClient(netPeerConfiguration); if (SteamManager.IsInitialized) { steamAuthTicket = SteamManager.GetAuthSessionTicket(); //TODO: wait for GetAuthSessionTicketResponse_t if (steamAuthTicket == null) { throw new Exception("GetAuthSessionTicket returned null"); } } incomingLidgrenMessages = new List <NetIncomingMessage>(); initializationStep = ConnectionInitialization.SteamTicketAndVersion; if (!(endPoint is IPEndPoint ipEndPoint)) { throw new InvalidCastException("endPoint is not IPEndPoint"); } if (ServerConnection != null) { throw new InvalidOperationException("ServerConnection is not null"); } netClient.Start(); ServerConnection = new LidgrenConnection("Server", netClient.Connect(ipEndPoint), 0); ServerConnection.Status = NetworkConnectionStatus.Connected; isActive = true; }
public static void Init() { try { _client = new Client(_appId); if (_client == null) { IsLoaded = false; return; } _ticket = _client.Auth.GetAuthSessionTicket(); IsLoaded = _ticket != null; } catch (Exception) { Debug.WriteLine("Failed to load Steam."); } }
public override void Start(object endPoint, int ownerKey) { steamAuthTicket = SteamManager.GetAuthSessionTicket(); //TODO: wait for GetAuthSessionTicketResponse_t if (steamAuthTicket == null) { throw new Exception("GetAuthSessionTicket returned null"); } if (!(endPoint is UInt64 steamIdEndpoint)) { throw new InvalidCastException("endPoint is not UInt64"); } hostSteamId = steamIdEndpoint; Steam.SteamManager.Instance.Networking.OnIncomingConnection = OnIncomingConnection; Steam.SteamManager.Instance.Networking.OnP2PData = OnP2PData; Steam.SteamManager.Instance.Networking.SetListenChannel(0, true); ServerConnection = new SteamP2PConnection("Server", hostSteamId); incomingInitializationMessages = new List <IReadMessage>(); incomingDataMessages = new List <IReadMessage>(); IWriteMessage outMsg = new WriteOnlyMessage(); outMsg.Write((byte)DeliveryMethod.Reliable); outMsg.Write((byte)PacketHeader.IsConnectionInitializationStep); outMsg.Write((byte)ConnectionInitialization.ConnectionStarted); SteamManager.Instance.Networking.SendP2PPacket(hostSteamId, outMsg.Buffer, outMsg.LengthBytes, Facepunch.Steamworks.Networking.SendType.Reliable); initializationStep = ConnectionInitialization.SteamTicketAndVersion; timeout = NetworkConnection.TimeoutThreshold; heartbeatTimer = 1.0; isActive = true; }