public static async void HandleGetGameAccountStateRequest(GetGameAccountStateRequest getGameAccountStateRequest, BnetSession session) { var gameAccount = session.Account.GameAccounts.SingleOrDefault(ga => ga.Id == getGameAccountStateRequest.GameAccountId.Low); if (gameAccount != null) { var getGameAccountStateResponse = new GetGameAccountStateResponse { State = new GameAccountState { GameLevelInfo = new GameLevelInfo { // 'WoW' Program = 0x576F57, Name = gameAccount.Game + gameAccount.Index }, GameStatus = new GameStatus { // 'WoW' Program = 0x576F57, } }, // TODO: Implement?! Tags = new GameAccountFieldTags { GameLevelInfoTag = 4140539163, GameStatusTag = 2562154393 } }; await session.Send(getGameAccountStateResponse); } }
public static void HandleGetGameAccountStateRequest(AuthSession session, GetGameAccountStateRequest getGameAccountStateRequest) { GetGameAccountStateResponse getGameAccountStateResponse = new GetGameAccountStateResponse(); while (true) { IL_B4: uint arg_98_0 = 2765505756u; while (true) { uint num; switch ((num = (arg_98_0 ^ 3049173021u)) % 4u) { case 0u: goto IL_B4; case 1u: getGameAccountStateResponse.State = new GameAccountState { GameLevelInfo = new GameLevelInfo { Program = 5730135u, Name = Module.smethod_35 <string>(3787279757u) }, GameStatus = new GameStatus { Program = 5730135u } }; arg_98_0 = (num * 2239678423u ^ 1144755469u); continue; case 3u: getGameAccountStateResponse.State.GameLevelInfo.Licenses.Add(new AccountLicense { Id = 250u }); arg_98_0 = (num * 1730719577u ^ 2890598956u); continue; } goto Block_1; } } Block_1: getGameAccountStateResponse.Tags = new GameAccountFieldTags { GameLevelInfoTag = 4140539163u, GameStatusTag = 2562154393u }; session.Send(getGameAccountStateResponse); }
BattlenetRpcErrorCode HandleGetGameAccountState(GetGameAccountStateRequest request, GetGameAccountStateResponse response) { return(_session.HandleGetGameAccountState(request, response)); }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 12: { GameAccountHandle request = new GameAccountHandle(); request.MergeFrom(stream); GameAccountBlob response = new GameAccountBlob(); BattlenetRpcErrorCode status = HandleGetGameAccountBlob(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccountBlob(GameAccountHandle: {1}) returned GameAccountBlob: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 13: { GetAccountRequest request = new GetAccountRequest(); request.MergeFrom(stream); GetAccountResponse response = new GetAccountResponse(); BattlenetRpcErrorCode status = HandleGetAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccount(GetAccountRequest: {1}) returned GetAccountResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 14: { CreateGameAccountRequest request = new CreateGameAccountRequest(); request.MergeFrom(stream); GameAccountHandle response = new GameAccountHandle(); BattlenetRpcErrorCode status = HandleCreateGameAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CreateGameAccount(CreateGameAccountRequest: {1}) returned GameAccountHandle: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 15: { IsIgrAddressRequest request = new IsIgrAddressRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleIsIgrAddress(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.IsIgrAddress(IsIgrAddressRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 20: { CacheExpireRequest request = new CacheExpireRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleCacheExpire(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CacheExpire(CacheExpireRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 21: { CredentialUpdateRequest request = new CredentialUpdateRequest(); request.MergeFrom(stream); CredentialUpdateResponse response = new CredentialUpdateResponse(); BattlenetRpcErrorCode status = HandleCredentialUpdate(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CredentialUpdate(CredentialUpdateRequest: {1}) returned CredentialUpdateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 25: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); SubscriptionUpdateResponse response = new SubscriptionUpdateResponse(); BattlenetRpcErrorCode status = HandleSubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Subscribe(SubscriptionUpdateRequest: {1}) returned SubscriptionUpdateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 26: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleUnsubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Unsubscribe(SubscriptionUpdateRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 30: { GetAccountStateRequest request = new GetAccountStateRequest(); request.MergeFrom(stream); GetAccountStateResponse response = new GetAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccountState(GetAccountStateRequest: {1}) returned GetAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 31: { GetGameAccountStateRequest request = new GetGameAccountStateRequest(); request.MergeFrom(stream); GetGameAccountStateResponse response = new GetGameAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetGameAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccountState(GetGameAccountStateRequest: {1}) returned GetGameAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 32: { GetLicensesRequest request = new GetLicensesRequest(); request.MergeFrom(stream); GetLicensesResponse response = new GetLicensesResponse(); BattlenetRpcErrorCode status = HandleGetLicenses(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetLicenses(GetLicensesRequest: {1}) returned GetLicensesResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 33: { GetGameTimeRemainingInfoRequest request = new GetGameTimeRemainingInfoRequest(); request.MergeFrom(stream); GetGameTimeRemainingInfoResponse response = new GetGameTimeRemainingInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameTimeRemainingInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameTimeRemainingInfo(GetGameTimeRemainingInfoRequest: {1}) returned GetGameTimeRemainingInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 34: { GetGameSessionInfoRequest request = new GetGameSessionInfoRequest(); request.MergeFrom(stream); GetGameSessionInfoResponse response = new GetGameSessionInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameSessionInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameSessionInfo(GetGameSessionInfoRequest: {1}) returned GetGameSessionInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 35: { GetCAISInfoRequest request = new GetCAISInfoRequest(); request.MergeFrom(stream); GetCAISInfoResponse response = new GetCAISInfoResponse(); BattlenetRpcErrorCode status = HandleGetCAISInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetCAISInfo(GetCAISInfoRequest: {1}) returned GetCAISInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 36: { ForwardCacheExpireRequest request = new ForwardCacheExpireRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleForwardCacheExpire(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.ForwardCacheExpire(ForwardCacheExpireRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 37: { GetAuthorizedDataRequest request = new GetAuthorizedDataRequest(); request.MergeFrom(stream); GetAuthorizedDataResponse response = new GetAuthorizedDataResponse(); BattlenetRpcErrorCode status = HandleGetAuthorizedData(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAuthorizedData(GetAuthorizedDataRequest: {1}) returned GetAuthorizedDataResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 38: { AccountFlagUpdateRequest request = new AccountFlagUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleAccountFlagUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.AccountFlagUpdate(AccountFlagUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 39: { GameAccountFlagUpdateRequest request = new GameAccountFlagUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleGameAccountFlagUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GameAccountFlagUpdate(GameAccountFlagUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } /* case 40: * { * UpdateParentalControlsAndCAISRequest request = new UpdateParentalControlsAndCAISRequest(); * request.MergeFrom(stream); * * NoData response = new NoData(); * BattlenetRpcErrorCode status = HandleUpdateParentalControlsAndCAIS(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.UpdateParentalControlsAndCAIS(UpdateParentalControlsAndCAISRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * } * case 41: * { * CreateGameAccountRequest request = new CreateGameAccountRequest(); * request.MergeFrom(stream); * * CreateGameAccountResponse response = new CreateGameAccountResponse(); * BattlenetRpcErrorCode status = HandleCreateGameAccount2(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CreateGameAccount2(CreateGameAccountRequest: {1}) returned CreateGameAccountResponse: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * } * case 42: * { * GetGameAccountRequest request = new GetGameAccountRequest(); * request.MergeFrom(stream); * * GetGameAccountResponse response = new GetGameAccountResponse(); * BattlenetRpcErrorCode status = HandleGetGameAccount(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccount(GetGameAccountRequest: {1}) returned GetGameAccountResponse: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, &response); * else * SendResponse(token, status); * break; * } * case 43: * { * QueueDeductRecordRequest request = new QueueDeductRecordRequest(); * request.MergeFrom(stream); * * NoData response = new NoData(); * BattlenetRpcErrorCode status = HandleQueueDeductRecord(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.QueueDeductRecord(QueueDeductRecordRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * }*/ default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 13: { ResolveAccountRequest request = new ResolveAccountRequest(); request.MergeFrom(stream); ResolveAccountResponse response = new ResolveAccountResponse(); BattlenetRpcErrorCode status = HandleResolveAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccount(GetAccountRequest: {1}) returned GetAccountResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 15: { IsIgrAddressRequest request = new IsIgrAddressRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleIsIgrAddress(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.IsIgrAddress(IsIgrAddressRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 25: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); SubscriptionUpdateResponse response = new SubscriptionUpdateResponse(); BattlenetRpcErrorCode status = HandleSubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Subscribe(SubscriptionUpdateRequest: {1}) returned SubscriptionUpdateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 26: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleUnsubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Unsubscribe(SubscriptionUpdateRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 30: { GetAccountStateRequest request = new GetAccountStateRequest(); request.MergeFrom(stream); GetAccountStateResponse response = new GetAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccountState(GetAccountStateRequest: {1}) returned GetAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 31: { GetGameAccountStateRequest request = new GetGameAccountStateRequest(); request.MergeFrom(stream); GetGameAccountStateResponse response = new GetGameAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetGameAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccountState(GetGameAccountStateRequest: {1}) returned GetGameAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 32: { GetLicensesRequest request = new GetLicensesRequest(); request.MergeFrom(stream); GetLicensesResponse response = new GetLicensesResponse(); BattlenetRpcErrorCode status = HandleGetLicenses(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetLicenses(GetLicensesRequest: {1}) returned GetLicensesResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 33: { GetGameTimeRemainingInfoRequest request = new GetGameTimeRemainingInfoRequest(); request.MergeFrom(stream); GetGameTimeRemainingInfoResponse response = new GetGameTimeRemainingInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameTimeRemainingInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameTimeRemainingInfo(GetGameTimeRemainingInfoRequest: {1}) returned GetGameTimeRemainingInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 34: { GetGameSessionInfoRequest request = new GetGameSessionInfoRequest(); request.MergeFrom(stream); GetGameSessionInfoResponse response = new GetGameSessionInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameSessionInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameSessionInfo(GetGameSessionInfoRequest: {1}) returned GetGameSessionInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 35: { GetCAISInfoRequest request = new GetCAISInfoRequest(); request.MergeFrom(stream); GetCAISInfoResponse response = new GetCAISInfoResponse(); BattlenetRpcErrorCode status = HandleGetCAISInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetCAISInfo(GetCAISInfoRequest: {1}) returned GetCAISInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 37: { GetAuthorizedDataRequest request = new GetAuthorizedDataRequest(); request.MergeFrom(stream); GetAuthorizedDataResponse response = new GetAuthorizedDataResponse(); BattlenetRpcErrorCode status = HandleGetAuthorizedData(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAuthorizedData(GetAuthorizedDataRequest: {1}) returned GetAuthorizedDataResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
BattlenetRpcErrorCode HandleGetGameAccountState(GetGameAccountStateRequest request, GetGameAccountStateResponse response) { if (!authed) { return(BattlenetRpcErrorCode.Denied); } if (request.Options.FieldGameLevelInfo) { var gameAccountInfo = accountInfo.GameAccounts.LookupByKey(request.GameAccountId.Low); if (gameAccountInfo != null) { response.State = new GameAccountState(); response.State.GameLevelInfo = new GameLevelInfo(); response.State.GameLevelInfo.Name = gameAccountInfo.DisplayName; response.State.GameLevelInfo.Program = 5730135; // WoW } response.Tags = new GameAccountFieldTags(); response.Tags.GameLevelInfoTag = 0x5C46D483; } if (request.Options.FieldGameStatus) { if (response.State == null) { response.State = new GameAccountState(); } response.State.GameStatus = new GameStatus(); var gameAccountInfo = accountInfo.GameAccounts.LookupByKey(request.GameAccountId.Low); if (gameAccountInfo != null) { response.State.GameStatus.IsSuspended = gameAccountInfo.IsBanned; response.State.GameStatus.IsBanned = gameAccountInfo.IsPermanenetlyBanned; response.State.GameStatus.SuspensionExpires = (gameAccountInfo.UnbanDate * 1000000); } response.State.GameStatus.Program = 5730135; // WoW response.Tags.GameStatusTag = 0x98B75F99; } return(BattlenetRpcErrorCode.Ok); }