using System; using System.Collections; using System.Collections.Generic; using Mirror; using UnityEngine; public class CupidConnector : MonoBehaviour { public kcp2k.KcpTransport transport; void Start() { #if UNITY_SERVER //Server code string[] args = Environment.GetCommandLineArgs(); int matchId = 0; string dedicatedSecret = "38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328"; string internalApiBase = null; for (int i = 0; i < args.Length; i++) { if (args[i].Contains("-port") && i + 1 < args.Length) { Cupid.RoomPort = int.Parse(args[i + 1]); Logger.SetFileName(Cupid.RoomPort.ToString()); } if (i + 1 < args.Length) { if (string.Equals(args[i], "-matchId", StringComparison.OrdinalIgnoreCase) || string.Equals(args[i], "-matchid", StringComparison.OrdinalIgnoreCase)) int.TryParse(args[i + 1], out matchId); else if (string.Equals(args[i], "-dedicatedSecret", StringComparison.OrdinalIgnoreCase)) dedicatedSecret = args[i + 1]; else if (string.Equals(args[i], "-internalApiBase", StringComparison.OrdinalIgnoreCase)) internalApiBase = args[i + 1]; } } GameManager.ConfigureDedicatedMatchReporting(matchId); if(Cupid.RoomPort < 0){ Logger.Log("Invalid port, Did you pass the -port arguement?"); return; } if(matchId <=0){ Logger.Log("Invalid match id, Did you pass the -matchId arguement?"); return; } transport.Port = (ushort)Cupid.RoomPort; Logger.Log($"Starting server at port {Cupid.RoomPort}"); NetworkManager.singleton.StartServer(); #else //Client code if(Cupid.RoomPort <0){ Logger.Log("Invalid Room port"); return; } transport.Port = (ushort)Cupid.RoomPort; NetworkManager.singleton.networkAddress = Cupid.ServerAddress; Logger.Log($"Starting client at ${Cupid.ServerAddress}:{Cupid.RoomPort}"); NetworkManager.singleton.StartClient(); #endif } #if UNITY_SERVER float t=0; int _t = 0; void Update(){ if(t < 60){ t += Time.deltaTime; }else{ if(NetworkServer.connections.Count <= 0){ Logger.Log("Closing port " + Cupid.RoomPort + " due to no players"); GameManager.ReportDedicatedMatchRoomClosed(); Application.Quit(); } } if((int)t !=_t){ _t = (int)t; Logger.Log(NetworkServer.connections.Count.ToString()); } } #else void Update(){ // Debug.Log(NetworkServer.connections.Count); } #endif void OnValidate(){ if(GetComponent()!=null){ GetComponent().headlessStartMode= HeadlessStartOptions.DoNothing; } if(transport == null){ transport = GetComponent(); } } }