Exemple #1
0
    public static void RemoveFromMatchMaking(int fromClient, Packet packet)
    {
        var isClientInParty = packet.ReadBool();

        if (isClientInParty) //Player In Party
        {
            var partyID      = Dictionaries.dictionaries.PlayerDataHolders[fromClient].PartyID;
            var partyMembers = Parties.GetParty(partyID);
            foreach (var member in partyMembers)
            {
                HandleMatchMaking.RemoveFromQueue(member);
                ServerSend.MatchMakingState(Dictionaries.dictionaries.PlayersByName[member.Username]);
            }
        }
        else //Player Is NOT IN PARTY
        {
            HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[fromClient]);
            ServerSend.MatchMakingState(fromClient);
        }
    }
Exemple #2
0
        /// <summary>Closes and cleans up the TCP connection.</summary>
        public void Disconnect()
        {
            var item = Dictionaries.dictionaries.PlayersByName.FirstOrDefault(kvp => kvp.Value == id);

            if (item.Key != null)
            {
                if (Dictionaries.dictionaries.PlayerDataHolders[id].GetMatchId() != 0)
                {
                    //Dictionaries.Matches[Dictionaries.PlayerDataHolders[id].GetMatchId()].myGamePLay.RemoveGameObjectFromMatch(id);
                    ThreadManager.ExecuteOnMainThread(() =>
                    {
                        // ServerConsoleWriter.WriteLine($"Destroying GameObjects related to Player {id}...");
                        //Dictionaries.PlayerDataHolders[id].DestroyGameObject();
                        Dictionaries.dictionaries.PlayerDataHolders[id].SetMatchId(0);
                        HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[id]);
                        Dictionaries.dictionaries.PlayerDataHolders.Remove(id);
                        Dictionaries.dictionaries.PlayersById.Remove(id);
                        Dictionaries.dictionaries.PlayersByName.Remove(item.Key);
                    });
                }
                else
                {
                    ThreadManager.ExecuteOnMainThread(() =>
                    {
                        //ServerConsoleWriter.WriteLine($"Player {id} had not started a game so no gameobject should be destroyed");
                        HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[id]);
                        Dictionaries.dictionaries.PlayerDataHolders.Remove(id);
                        Dictionaries.dictionaries.PlayersById.Remove(id);
                        Dictionaries.dictionaries.PlayersByName.Remove(item.Key);
                    });
                }
                //ServerConsoleWriter.WriteLine($"Player {id} has been successfully disconnected");
            }

            //Dictionaries.Parties.Remove(id);
            Socket.Close();
            stream        = null;
            receivedData  = null;
            receiveBuffer = null;
            Socket        = null;
        }