private void UserRejected(ulong steamId, JoinResult reason) { _userRejected.Invoke((MyDedicatedServerBase)MyMultiplayer.Static, steamId, reason); }
private void UserRejected(ulong steamID, JoinResult reason) { m_pendingMembers.Remove(steamID); m_waitingForGroup.Remove(steamID); if (m_members.Contains(steamID)) { RaiseClientLeft(steamID, ChatMemberStateChangeEnum.Disconnected); } else { SendJoinResult(steamID, reason); } }
public JoinRsp(View v, Digest d, JoinResult result) { view = v; digest = d; joinResult = result; }
public WaitingForGroup(ulong id, JoinResult response, ulong owner) { SteamId = id; Response = response; SteamOwner = owner; }
void Update() { if (Input.GetButtonDown("Fire1")) { if (!m_PlayerList.ContainsKey(m_MyPlayerID)) { // not receive join return; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit)) { // send to server my move GameObject myPlayer = m_PlayerList[m_MyPlayerID]; PlayerController myPlayerControl = myPlayer.GetComponent <PlayerController>(); Vector3 rayPos = hit.point; Vector3 vector = transform.position - rayPos; Vector3 normal = vector.normalized; float angle = NormalAngle(normal); angle -= 90; try { MoveRequest moveRequestPay = new MoveRequest(); moveRequestPay.m_PlayerID = myPlayerControl.m_PlayerID; moveRequestPay.m_PosX = rayPos.x; moveRequestPay.m_PosY = rayPos.y; moveRequestPay.m_PosZ = rayPos.z; moveRequestPay.m_Angle = angle; moveRequestPay.m_Speed = myPlayerControl.m_Speed; string requestPayload = JsonFx.Json.JsonWriter.Serialize(moveRequestPay); NetworkManager.GetInstance().SendPacket(PacketTypes.PKT_CS_MOVE, requestPayload); } catch (Exception e) { Debug.LogError(e); } } } if (joinList.Count > 0) { JoinResult packet = joinList[0]; //Debug.Log("X:"+packet.m_PosX+" Y:"+packet.m_PosY+" Z:"+ packet.m_PosZ); if (packet.m_PlayerID == -4444) { foreach (GameObject player in m_PlayerList.Values) { Destroy(player); } m_PlayerList.Clear(); joinList.RemoveAt(0); return; } Vector3 pos = new Vector3(packet.m_PosX, packet.m_PosY, packet.m_PosZ); Vector3 rot = new Vector3(0.0f, packet.m_Angle, 0.0f); float speed = packet.m_Speed; int playerID = packet.m_PlayerID; GameObject newPlayer = Instantiate(m_PlayerObject, pos, Quaternion.Euler(rot)) as GameObject; PlayerController newPlayerControl = newPlayer.GetComponent <PlayerController>(); newPlayerControl.m_Speed = speed; newPlayerControl.m_PlayerID = playerID; m_PlayerList.Add(playerID, newPlayer); joinList.RemoveAt(0); } if (moveList.Count > 0) { MoveResult packet = moveList[0]; try { GameObject player = m_PlayerList[packet.m_PlayerID]; PlayerController playerControl = player.GetComponent <PlayerController>(); playerControl.AddMoveResult(packet); } catch (Exception e) { //no character sync Debug.LogError(e); } moveList.RemoveAt(0); } }
public void Deserialize(CompactReader reader) { view = reader.ReadObject() as View; digest = reader.ReadObject() as Digest; joinResult = (JoinResult)reader.ReadObject(); }
//Largely copied from SE private void ValidateAuthTicketResponse(ulong steamID, AuthSessionResponseEnum response, ulong ownerSteamID) { _log.Info($"Server ValidateAuthTicketResponse ({response}), owner: {ownerSteamID}"); if (steamID != ownerSteamID) { _log.Info($"User {steamID} is using a game owned by {ownerSteamID}. Tracking..."); _gameOwnerIds[steamID] = ownerSteamID; if (MySandboxGame.ConfigDedicated.Banned.Contains(ownerSteamID)) { _log.Info($"Game owner {ownerSteamID} is banned. Banning and rejecting client {steamID}..."); UserRejected(steamID, JoinResult.BannedByAdmins); BanPlayer(steamID); } } if (response == AuthSessionResponseEnum.OK) { if (MySession.Static.MaxPlayers > 0 && _members.Count - 1 >= MySession.Static.MaxPlayers) { UserRejected(steamID, JoinResult.ServerFull); } else if (MySandboxGame.ConfigDedicated.Administrators.Contains(steamID.ToString()) /*|| MySandboxGame.ConfigDedicated.Administrators.Contains(MyDedicatedServerBase.ConvertSteamIDFrom64(steamID))*/) { UserAccepted(steamID); } else if (MySandboxGame.ConfigDedicated.GroupID == 0) { switch (MySession.Static.OnlineMode) { case MyOnlineModeEnum.PUBLIC: UserAccepted(steamID); break; case MyOnlineModeEnum.PRIVATE: UserRejected(steamID, JoinResult.NotInGroup); break; case MyOnlineModeEnum.FRIENDS: //TODO: actually verify friendship UserRejected(steamID, JoinResult.NotInGroup); break; } } else if (SteamServerAPI.Instance.GetAccountType(MySandboxGame.ConfigDedicated.GroupID) != AccountType.Clan) { UserRejected(steamID, JoinResult.GroupIdInvalid); } else if (SteamServerAPI.Instance.GameServer.RequestGroupStatus(steamID, MySandboxGame.ConfigDedicated.GroupID)) { // Returns false when there's no connection to Steam _waitingForGroup.Add(steamID); } else { UserRejected(steamID, JoinResult.SteamServersOffline); } } else { JoinResult joinResult = JoinResult.TicketInvalid; switch (response) { case AuthSessionResponseEnum.AuthTicketCanceled: joinResult = JoinResult.TicketCanceled; break; case AuthSessionResponseEnum.AuthTicketInvalidAlreadyUsed: joinResult = JoinResult.TicketAlreadyUsed; break; case AuthSessionResponseEnum.LoggedInElseWhere: joinResult = JoinResult.LoggedInElseWhere; break; case AuthSessionResponseEnum.NoLicenseOrExpired: joinResult = JoinResult.NoLicenseOrExpired; break; case AuthSessionResponseEnum.UserNotConnectedToSteam: joinResult = JoinResult.UserNotConnected; break; case AuthSessionResponseEnum.VACBanned: joinResult = JoinResult.VACBanned; break; case AuthSessionResponseEnum.VACCheckTimedOut: joinResult = JoinResult.VACCheckTimedOut; break; } UserRejected(steamID, joinResult); } }
public override void OnJoinedRoom() { Debug.Log("Room Joined"); _joinResult = JoinResult.Succeeded; }
public void SendJoinResult(ulong sendTo, JoinResult joinResult, ulong adminID = 0) { JoinResultMsg msg = new JoinResultMsg(); msg.JoinResult = joinResult; msg.Admin = adminID; ReplicationLayer.SendJoinResult(ref msg,sendTo); }
private static void UserRejected(ulong steamId, JoinResult joinResult) { MethodInfo userRejectedMethod = typeof(MyDedicatedServerBase).GetMethod("UserRejected", BindingFlags.NonPublic | BindingFlags.Instance); userRejectedMethod.Invoke(MyMultiplayer.Static, new object[] { steamId, joinResult }); }
void PacketHandler.Run(int cridential, string payload) { JoinResult joinResult = JsonFx.Json.JsonReader.Deserialize <JoinResult>(payload); PlayerManager.GetInstance().AddNewPlayer(joinResult); }
public void SendJoinResult(ulong sendTo, JoinResult joinResult, ulong adminID = 0) { JoinResultMsg msg = new JoinResultMsg(); msg.JoinResult = joinResult; msg.Admin = adminID; SendControlMessage(sendTo, ref msg); }
private void UserRejected(ulong steamId, JoinResult reason) { typeof(MyDedicatedServerBase).GetMethod("UserRejected", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(MyMultiplayer.Static, new object[] { steamId, reason }); }
static void Main(string[] args) { Console.WriteLine(DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond); Console.ReadLine(); Uri r1URI = new Uri("tcp://127.0.0.1:50006"); Uri r2URI = new Uri("tcp://127.0.0.1:50007"); Uri r3URI = new Uri("tcp://127.0.0.1:50008"); RaftServer r1 = new RaftServer(r1URI, 1, 20); RaftServer r2 = new RaftServer(r2URI, 1, 20); RaftServer r3 = new RaftServer(r3URI, 1, 20); List <Uri> list = new List <Uri>(); list.Add(r1URI); list.Add(r2URI); list.Add(r3URI); r1.Start(list); r2.Start(list); r3.Start(list); Task.Run(() => { Uri clientURL = new Uri("tcp://127.0.0.1:50009"); Hub hub = new Hub(list, clientURL, new SimpleGame()); hub.OnStart += (stage) => { global::System.Console.WriteLine("GAME STARTING IN CLIENT"); }; try { JoinResult result = hub.Join("TESTE"); } catch (InvalidUsernameException exc) { } }); /* * Timer tmr = new Timer(); * * tmr.Interval = 5000; // 0.1 second * tmr.Elapsed += (object sender, ElapsedEventArgs e) => * { * bool accepted; * int commitedAt; * r1.OnCommand(new RaftCommand() { Name = "TEste1" }, out accepted, out commitedAt); * r2.OnCommand(new RaftCommand() { Name = "TEste2" }, out accepted, out commitedAt); * r3.OnCommand(new RaftCommand() { Name = "TEste3" }, out accepted, out commitedAt); * r1.OnCommand(new RaftCommand() { Name = "TEste4" }, out accepted, out commitedAt); * r2.OnCommand(new RaftCommand() { Name = "TEste5" }, out accepted, out commitedAt); * r3.OnCommand(new RaftCommand() { Name = "TEste6" }, out accepted, out commitedAt); * }; // We'll write it in a bit * * tmr.Start(); // The countdown is launched! */ /* Uri uri = new Uri(); * Server.Server server = new Server.Server(); * Server.Server server2 = new Server.Server(new Uri("tcp:3002"), new Uri("tcp:3001")); * Server.Server server3 = new Server.Server(new Uri("tcp:3003"), new Uri("tcp:3001")); * Console.ReadLine();*/ Console.ReadLine(); }
void GameServer_ValidateAuthTicketResponse(ulong steamID, SteamSDK.AuthSessionResponseEnum response, ulong steamOwner) { MyLog.Default.WriteLineAndConsole("Server ValidateAuthTicketResponse (" + response.ToString() + "), owner: " + steamOwner.ToString()); if (response == AuthSessionResponseEnum.OK) { if (MemberLimit > 0 && m_members.Count - 1 >= MemberLimit) // Unfortunately, DS counds into the members, so subtract it { UserRejected(steamID, JoinResult.ServerFull); } else if (m_groupId == 0 || MySandboxGame.ConfigDedicated.Administrators.Contains(steamID.ToString()) || MySandboxGame.ConfigDedicated.Administrators.Contains(ConvertSteamIDFrom64(steamID))) { UserAccepted(steamID); } else if (SteamServerAPI.Instance.GetAccountType(m_groupId) != AccountType.Clan) { UserRejected(steamID, JoinResult.GroupIdInvalid); } else if (SteamServerAPI.Instance.GameServer.RequestGroupStatus(steamID, m_groupId)) { // Returns false when there's no connection to Steam m_waitingForGroup.Add(steamID); } else { UserRejected(steamID, JoinResult.SteamServersOffline); } } else { JoinResult joinResult = JoinResult.TicketInvalid; switch (response) { case AuthSessionResponseEnum.AuthTicketCanceled: joinResult = JoinResult.TicketCanceled; break; case AuthSessionResponseEnum.AuthTicketInvalidAlreadyUsed: joinResult = JoinResult.TicketAlreadyUsed; break; case AuthSessionResponseEnum.LoggedInElseWhere: joinResult = JoinResult.LoggedInElseWhere; break; case AuthSessionResponseEnum.NoLicenseOrExpired: joinResult = JoinResult.NoLicenseOrExpired; break; case AuthSessionResponseEnum.UserNotConnectedToSteam: joinResult = JoinResult.UserNotConnected; break; case AuthSessionResponseEnum.VACBanned: joinResult = JoinResult.VACBanned; break; case AuthSessionResponseEnum.VACCheckTimedOut: joinResult = JoinResult.VACCheckTimedOut; break; } UserRejected(steamID, joinResult); } }
public override void OnJoinRoomFailed(short returnCode, string message) { Debug.Log(message); _joinResult = JoinResult.Failed; }
public void AddNewPlayer(JoinResult packet) { joinList.Add(packet); Debug.Log("AddNewPlayer!:" + packet.m_PlayerID); }