public bool Match(LocalHostData host) { if (!String.IsNullOrEmpty(gameType) && gameType != host.gameType) { return(false); } if (!String.IsNullOrEmpty(gameName) && gameName != host.gameName) { return(false); } if (!String.IsNullOrEmpty(gameMode) && gameMode != host.gameMode) { return(false); } if (!String.IsNullOrEmpty(gameLevel) && gameLevel != host.gameLevel) { return(false); } if (!connectedPlayers.Match(host.connectedPlayers)) { return(false); } if (!playerLimit.Match(host.playerLimit)) { return(false); } if (passwordProtected != null && passwordProtected != host.passwordProtected) { return(false); } if (dedicatedServer != null && dedicatedServer != host.dedicatedServer) { return(false); } if (useNat != null && useNat != host.useNat) { return(false); } if (useProxy != null && useProxy != host.useProxy) { return(false); } if (!String.IsNullOrEmpty(comment) && comment != host.comment) { return(false); } if (!String.IsNullOrEmpty(platform) && platform != host.platform) { return(false); } return(true); }
internal void _UnconnectedRPCKnownHostResponse(LocalHostData localData, double localTime, NetworkEndPoint endpoint) { if (!_knownHosts.ContainsKey(endpoint)) { return; } var ping = (int)NetworkTime._GetElapsedTimeInMillis(localTime); var data = new HostData(localData, endpoint, ping); _knownHosts[endpoint] = data; _MasterNotifyEvent(MasterServerEvent.KnownHostDataReceived); }
internal override LocalHostData _MasterGetLocalHostData(bool errorCheck, bool notifyOnError) { if (errorCheck) { if (_gameTypeOrNameIsDirty) { _gameTypeOrNameIsDirty = false; notifyOnError = true; } if (!isServer || _status != NetworkStatus.Connected) { if (notifyOnError) { _MasterNotifyEvent(MasterServerEvent.RegistrationFailedNoServer); } return(null); } if (String.IsNullOrEmpty(_gameType)) { if (notifyOnError) { _MasterNotifyEvent(MasterServerEvent.RegistrationFailedGameType); } return(null); } if (String.IsNullOrEmpty(_gameName)) { if (notifyOnError) { _MasterNotifyEvent(MasterServerEvent.RegistrationFailedGameName); } return(null); } } if (localIpAddress == null) { localIpAddress = Utility.TryGetLocalIP(); } var localEndPoint = new NetworkEndPoint(localIpAddress, listenPort); int countServerAsPlayer = (dedicatedServer ? 0 : 1); var data = new LocalHostData(_gameType, _gameName, gameMode, gameLevel, connectionCount + countServerAsPlayer, _ServerGetPlayerLimit() + countServerAsPlayer, !String.IsNullOrEmpty(incomingPassword), dedicatedServer, useNat, useProxy, comment, OnGetPlatform(), DateTime.UtcNow, localEndPoint); return(data); }
internal void _UnconnectedRPCDiscoverHostResponse(LocalHostData localData, double localTime, NetworkEndPoint endpoint) { var ping = (int)NetworkTime._GetElapsedTimeInMillis(localTime); var data = new HostData(localData, endpoint, ping); if (_discoveredHosts.ContainsKey(endpoint)) { _discoveredHosts[endpoint] = data; } else { _discoveredHosts.Add(endpoint, data); } _MasterNotifyEvent(MasterServerEvent.LocalHostDiscovered); }
public bool Equals(LocalHostData other) { return(other != null && internalEndpoint.Equals(other.internalEndpoint) && gameType == other.gameType && gameName == other.gameName && gameMode == other.gameMode && gameLevel == other.gameLevel && connectedPlayers == other.connectedPlayers && playerLimit == other.playerLimit && passwordProtected == other.passwordProtected && dedicatedServer == other.dedicatedServer && useNat == other.useNat && useProxy == other.useProxy && comment == other.comment && platform == other.platform); }
public void CopyFrom(LocalHostData data) { gameType = data.gameType; gameName = data.gameName; gameMode = data.gameMode; gameLevel = data.gameLevel; connectedPlayers = data.connectedPlayers; playerLimit = data.playerLimit; passwordProtected = data.passwordProtected; dedicatedServer = data.dedicatedServer; useNat = data.useNat; useProxy = data.useProxy; comment = data.comment; platform = data.platform; internalEndpoint = data.internalEndpoint; timestamp = data.timestamp; }
public LocalHostData(LocalHostData data) : this(data.gameType, data.gameName, data.gameMode, data.gameLevel, data.connectedPlayers, data.playerLimit, data.passwordProtected, data.dedicatedServer, data.useNat, data.useProxy, data.comment, data.platform, data.timestamp, data.internalEndpoint) { }
public HostData(LocalHostData localHost, NetworkEndPoint externalEndpoint, int ping) : base(localHost) { this.externalEndpoint = externalEndpoint; this.ping = ping; }
public void WriteLocalHostData(LocalHostData value) { value._Write(_buffer); }