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); } }
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); } }
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()); }
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); } }
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); } }
public override void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters) { LogService.Fatal($"PhotonServer SendOperation from : {peer.ServerEndPoint.LastConnectedIPAddress}"); }
public abstract void SendResponse(EndPointOperationCode operationCode, ReturnCode returnCode, string debugMessage, Dictionary <byte, object> parameters);
public abstract void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters);
internal void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters) { endPoint.CommunicationInterface.SendOperation(operationCode, parameters); }
public void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters) { peer.OpCustom((byte)operationCode, parameters, true, 0, true); }
internal void SendResponse(EndPointOperationCode operationCode, ReturnCode errorCode, string operationMessage, Dictionary <byte, object> parameters) { endPoint.CommunicationInterface.SendResponse(operationCode, errorCode, operationMessage, parameters); }
public override void SendResponse(EndPointOperationCode operationCode, ReturnCode returnCode, string debugMessage, Dictionary <byte, object> parameters) { LogService.FatalFormat("EndPoint SendResponse UserOperationCode: {0}", operationCode); }
public override void SendOperation(EndPointOperationCode operationCode, Dictionary <byte, object> parameters) { PhotonService.Instance.SendOperation(operationCode, parameters); }