예제 #1
0
        protected internal override void Execute(IOnlineConnection Sender)
        {
            IOnlineConnection ClientToInvite;

            if (OnlineServer.DicPlayerByID.TryGetValue(ClientToInviteID, out ClientToInvite))
            {
                if (!OnlineServer.DicCommunicationGroup.ContainsKey(GroupID))
                {
                    OnlineServer.CreateOrJoinCommunicationGroup(GroupID, true, Sender);
                }

                OnlineServer.JoinCommunicationGroup(GroupID, ClientToInvite);

                ClientToInvite.Send(new ReceiveGroupInviteScriptServer(GroupID, GroupName));
            }
            else
            {
                //cross server
                string CommunicationServerIP;
                int    CommunicationServerPort;
                OnlineServer.Database.GetPlayerCommunicationIP(ClientToInviteID, out CommunicationServerIP, out CommunicationServerPort);

                if (OnlineServer.IP != CommunicationServerIP || OnlineServer.Port != CommunicationServerPort)
                {
                    Sender.Send(new ReceiveRemoteGroupInviteScriptServer(GroupID, GroupName, Sender.ID, Sender.Name, ClientToInviteID, CommunicationServerIP, CommunicationServerPort));
                }
            }
        }
 protected internal override void Execute(IOnlineConnection Sender)
 {
     OnlineCommunicationServer.CreateOrJoinCommunicationGroup(GroupID, SaveLogs, Sender);
 }