public static void SendInviteToJoinTeam(Team team, Client.GameState client)
        {
            if (client.Team != null)
            {
                if (!client.Team.Full && client.Team.TeamLeader)
                {
                    Client.GameState Invitee;
                    if (ServerBase.Kernel.GamePool.TryGetValue(team.UID, out Invitee))
                    {
                        if (Invitee.Team == null)
                        {
                            team.UID = client.Entity.UID;
                            PopupLevelBP request = new PopupLevelBP();
                            request.Requester = client.Entity.UID;
                            request.Receiver = Invitee.Entity.UID;
                            request.Level = client.Entity.Level;
                            request.BattlePower = (uint)client.Entity.BattlePower;
                            Invitee.Send(request);
                            Invitee.Send(team);
                            Invitee.Send(request);

                        }
                        else
                        {
                            client.Send(new Message(Invitee.Entity.Name + " is already in a team.", System.Drawing.Color.Purple, Message.TopLeft));
                        }
                    }
                }
            }
        }
        public static void SendRequestJoinToTeam(Team team, Client.GameState client)
        {
            if (client.Team == null && !client.Entity.Dead)
            {
                Client.GameState Leader;
                if (ServerBase.Kernel.GamePool.TryGetValue(team.UID, out Leader))
                {
                    if (Leader.Team != null)
                    {
                        if (Leader.Team.TeamLeader && !Leader.Team.Full)
                        {
                            team.UID = client.Entity.UID;
                            PopupLevelBP request = new PopupLevelBP();
                            request.Requester = client.Entity.UID;
                            request.Receiver = Leader.Entity.UID;
                            request.Level = client.Entity.Level;
                            request.BattlePower = (uint)client.Entity.BattlePower;
                            Leader.Send(request);
                            Leader.Send(team);
                            Leader.Send(request);

                        }
                        else
                        {
                            client.Send(new Message(Leader.Entity.Name + "'s team is already full.", System.Drawing.Color.Peru, Message.TopLeft));
                        }
                    }
                    else
                    {
                        client.Send(new Message(Leader.Entity.Name + "'s doesn't have a team.", System.Drawing.Color.Red, Message.TopLeft));
                    }
                }
            }
        }
        static void RequestTrade(Trade trade, Client.GameState client)
        {
            Client.GameState _client = null;
            if (ServerBase.Kernel.GamePool.TryGetValue(trade.dwParam, out _client))
            {
                if (_client.Trade.InTrade || client.Trade.InTrade || client.Entity.UID == trade.dwParam || ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, _client.Entity.X, _client.Entity.Y) > ServerBase.Constants.pScreenDistance)
                {
                    client.Send(ServerBase.Constants.TradeInProgress);
                    return;
                }
                client.Trade.TraderUID = _client.Entity.UID;
                if (_client.Trade.TraderUID == client.Entity.UID)
                {
                    _client.Trade.InTrade = client.Trade.InTrade = true;
                    trade.Type = Trade.ShowTable;
                    client.Send(trade);
                    trade.dwParam = client.Entity.UID;
                    _client.Send(trade);
                }
                else
                {

                    client.Send(ServerBase.Constants.TradeRequest);
                    trade.dwParam = client.Entity.UID;
                    PopupLevelBP request = new PopupLevelBP();
                    request.Requester = client.Entity.UID;
                    request.Receiver = _client.Entity.UID;
                    request.Level = client.Entity.Level;
                    request.BattlePower = (uint)client.Entity.BattlePower;
                    _client.Send(request);
                    _client.Send(trade);
                    _client.Send(request);

                }
            }
        }