using Mirror; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using UnityEngine.Events; namespace LightReflectiveMirror { public partial class LightReflectiveMirrorTransport : Transport { // Connection/auth variables public Transport clientToServerTransport; public string serverIP = null; public ushort endpointServerPort = 8080; public float heartBeatInterval = 3; public bool connectOnAwake = true; public string authenticationKey = "Secret Auth Key"; public UnityEvent diconnectedFromRelay; // NAT Puncher variables public bool useNATPunch = false; public int NATPunchtroughPort = -1; // LLB variables (LRM Load Balancer) public bool useLoadBalancer = false; public ushort loadBalancerPort = 7070; public string loadBalancerAddress = null; // Server hosting variables public string serverName = "My awesome server!"; public string extraServerData = "Map 1"; public int maxServerPlayers = 10; public bool isPublicServer = true; // Server list variables public UnityEvent serverListUpdated; public List relayServerList { private set; get; } = new List(); // Current Server Information public int serverId = -1; private LRMDirectConnectModule _directConnectModule; private byte[] _clientSendBuffer; private bool _connectedToRelay = false; private bool _isClient = false; private bool _isServer = false; private bool _directConnected = false; private bool _isAuthenticated = false; private int _currentMemberId; private bool _callbacksInitialized = false; private int _cachedHostID; private UdpClient _NATPuncher; private IPEndPoint _NATIP; private IPEndPoint _relayPuncherIP; private byte[] _punchData = new byte[1] { 1 }; private IPEndPoint _directConnectEndpoint; private SocketProxy _clientProxy; private BiDictionary _serverProxies = new BiDictionary(); private BiDictionary _connectedRelayClients = new BiDictionary(); private BiDictionary _connectedDirectClients = new BiDictionary(); } }