Ejemplo n.º 1
0
        internal override bool Handle(EndPointOperationCode operationCode, Dictionary <byte, object> parameters, out string errorMessage)
        {
            if (base.Handle(operationCode, parameters, out errorMessage))
            {
                string account  = (string)parameters[(byte)LoginParameterCode.Account];
                string password = (string)parameters[(byte)LoginParameterCode.Password];

                ReturnCode returnCode;
                Player     player;
                if (subject.OperationInterface.Login(account, password, out returnCode, out errorMessage, out player))
                {
                    subject.PlayerOnline(player);
                    Dictionary <byte, object> responseParameter = new Dictionary <byte, object>
                    {
                        { (byte)LoginResponseParameterCode.PlayerID, player.PlayerID },
                        { (byte)LoginResponseParameterCode.LastConnectedIPAddress, player.LastConnectedIPAddress.ToString() },
                        { (byte)LoginResponseParameterCode.Account, player.Account },
                        { (byte)LoginResponseParameterCode.Nickname, player.Nickname }
                    };
                    SendResponse(operationCode, returnCode, errorMessage, responseParameter);
                    return(true);
                }
                else
                {
                    SendResponse(operationCode, returnCode, errorMessage, new Dictionary <byte, object>());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        internal override bool Handle(EndPointOperationCode operationCode, Dictionary <byte, object> parameters, out string errorMessage)
        {
            if (base.Handle(operationCode, parameters, out errorMessage))
            {
                string account  = (string)parameters[(byte)RegisterParameterCode.Account];
                string password = (string)parameters[(byte)RegisterParameterCode.Password];
                string nickname = (string)parameters[(byte)RegisterParameterCode.Nickname];

                ReturnCode returnCode;
                if (subject.OperationInterface.Register(subject.LastConnectedIPAddress, account, password, nickname, out returnCode, out errorMessage))
                {
                    SendResponse(operationCode, returnCode, errorMessage, new Dictionary <byte, object>());
                    return(true);
                }
                else
                {
                    SendResponse(operationCode, returnCode, errorMessage, new Dictionary <byte, object>());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 3
0
        public override void SendResponse(EndPointOperationCode operationCode, ReturnCode returnCode, string debugMessage, Dictionary <byte, object> parameters)
        {
            OperationResponse response = new OperationResponse((byte)operationCode, parameters)
            {
                ReturnCode   = (short)returnCode,
                DebugMessage = debugMessage
            };

            peer.SendOperationResponse(response, new SendParameters());
        }
Ejemplo n.º 4
0
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            EndPointOperationCode     operationCode = (EndPointOperationCode)operationRequest.OperationCode;
            Dictionary <byte, object> parameters    = operationRequest.Parameters;

            string errorMessage;

            if (!ServerEndPoint.OperationManager.Operate(operationCode, parameters, out errorMessage))
            {
                LogService.Error($"OperationRequest Fail, Guid: {Guid}\nErrorMessage: {errorMessage}");
            }
        }
 public bool Operate(EndPointOperationCode operationCode, Dictionary <byte, object> parameters, out string errorMessage)
 {
     if (operationTable.ContainsKey(operationCode))
     {
         if (operationTable[operationCode].Handle(operationCode, parameters, out errorMessage))
         {
             return(true);
         }
         else
         {
             errorMessage = $"EndPointOperation Error: {operationCode} from EndPoint: {endPoint.LastConnectedIPAddress}\nErrorMessage: {errorMessage}";
             return(false);
         }
     }
     else
     {
         errorMessage = $"Unknow EndPointOperation:{operationCode} from EndPoint: {endPoint.LastConnectedIPAddress}";
         return(false);
     }
 }
Ejemplo n.º 6
0
 internal override bool Handle(EndPointOperationCode operationCode, Dictionary <byte, object> parameters, out string errorMessage)
 {
     if (base.Handle(operationCode, parameters, out errorMessage))
     {
         int playerID = (int)parameters[(byte)PlayerOperationParameterCode.PlayerID];
         PlayerOperationCode       resolvedOperationCode = (PlayerOperationCode)parameters[(byte)PlayerOperationParameterCode.OperationCode];
         Dictionary <byte, object> resolvedParameters    = (Dictionary <byte, object>)parameters[(byte)PlayerOperationParameterCode.Parameters];
         if (subject.Player.PlayerID == playerID)
         {
             return(subject.Player.OperationManager.Operate(resolvedOperationCode, resolvedParameters, out errorMessage));
         }
         else
         {
             errorMessage = $"PlayerOperation Error PlayerID: {playerID} Not in EndPoint: {subject.LastConnectedIPAddress}";
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 7
0
 public override void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters)
 {
     LogService.Fatal($"PhotonServer SendOperation from : {peer.ServerEndPoint.LastConnectedIPAddress}");
 }
Ejemplo n.º 8
0
 public abstract void SendResponse(EndPointOperationCode operationCode, ReturnCode returnCode, string debugMessage, Dictionary <byte, object> parameters);
Ejemplo n.º 9
0
 public abstract void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters);
Ejemplo n.º 10
0
 internal void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters)
 {
     endPoint.CommunicationInterface.SendOperation(operationCode, parameters);
 }
Ejemplo n.º 11
0
 public void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters)
 {
     peer.OpCustom((byte)operationCode, parameters, true, 0, true);
 }
Ejemplo n.º 12
0
 internal void SendResponse(EndPointOperationCode operationCode, ReturnCode errorCode, string operationMessage, Dictionary <byte, object> parameters)
 {
     endPoint.CommunicationInterface.SendResponse(operationCode, errorCode, operationMessage, parameters);
 }
Ejemplo n.º 13
0
 public override void SendResponse(EndPointOperationCode operationCode, ReturnCode returnCode, string debugMessage, Dictionary <byte, object> parameters)
 {
     LogService.FatalFormat("EndPoint SendResponse UserOperationCode: {0}", operationCode);
 }
Ejemplo n.º 14
0
 public override void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters)
 {
     PhotonService.Instance.SendOperation(operationCode, parameters);
 }