private bnet.protocol.storage.ExecuteResponse LoadAccountDigest(IBNetClient client, bnet.protocol.storage.ExecuteRequest request) { var results = new List <bnet.protocol.storage.OperationResult>(); foreach (var operation in request.OperationsList) { var operationResult = bnet.protocol.storage.OperationResult.CreateBuilder().SetTableId(operation.TableId); operationResult.AddData( bnet.protocol.storage.Cell.CreateBuilder() .SetColumnId(request.OperationsList[0].ColumnId) .SetRowId(request.OperationsList[0].RowId) .SetVersion(1) .SetData(client.Account.Digest.ToByteString()) .Build()); results.Add(operationResult.Build()); } var builder = bnet.protocol.storage.ExecuteResponse.CreateBuilder(); foreach (var result in results) { builder.AddResults(result); } return(builder.Build()); }
private bnet.protocol.storage.ExecuteResponse GetHeroDigest(IBNetClient client, bnet.protocol.storage.ExecuteRequest request) { var results = new List <bnet.protocol.storage.OperationResult>(); foreach (var operation in request.OperationsList) { // find the requested toons entity-id. var stream = new MemoryStream(operation.RowId.Hash.ToByteArray()); // contains ToonHandle in field form with one unknown field (which is not in message definition): // int16 unknown; uint8 realm; uint8 region; uint32 program; uint64 id; stream.ReadValueU16(); // unknown stream.ReadValueU8(); // realm stream.ReadValueU8(); // region stream.ReadValueU32(false); // program var toonId = stream.ReadValueU64(false); if (!client.Account.Toons.ContainsKey(toonId)) { Logger.Error("Can't find the requested toon: {0}", toonId); continue; } var toon = client.Account.Toons[toonId]; var operationResult = bnet.protocol.storage.OperationResult.CreateBuilder().SetTableId(operation.TableId); operationResult.AddData( bnet.protocol.storage.Cell.CreateBuilder() .SetColumnId(request.OperationsList[0].ColumnId) .SetRowId(request.OperationsList[0].RowId) .SetVersion(1) .SetData(toon.Digest.ToByteString()) .Build() ); results.Add(operationResult.Build()); } var builder = bnet.protocol.storage.ExecuteResponse.CreateBuilder(); foreach (var result in results) { builder.AddResults(result); } return(builder.Build()); }
private bnet.protocol.storage.ExecuteResponse GetHeroDigest(IBNetClient client, bnet.protocol.storage.ExecuteRequest request) { var results = new List<bnet.protocol.storage.OperationResult>(); foreach(var operation in request.OperationsList) { // find the requested toons entity-id. var stream = new MemoryStream(operation.RowId.Hash.ToByteArray()); // contains ToonHandle in field form with one unknown field (which is not in message definition): // int16 unknown; uint8 realm; uint8 region; uint32 program; uint64 id; stream.ReadValueU16(); // unknown stream.ReadValueU8(); // realm stream.ReadValueU8(); // region stream.ReadValueU32(false); // program var toonId=stream.ReadValueU64(false); if(!client.Account.Toons.ContainsKey(toonId)) { Logger.Error("Can't find the requested toon: {0}", toonId); continue; } var toon = client.Account.Toons[toonId]; var operationResult = bnet.protocol.storage.OperationResult.CreateBuilder().SetTableId(operation.TableId); operationResult.AddData( bnet.protocol.storage.Cell.CreateBuilder() .SetColumnId(request.OperationsList[0].ColumnId) .SetRowId(request.OperationsList[0].RowId) .SetVersion(1) .SetData(toon.Digest.ToByteString()) .Build() ); results.Add(operationResult.Build()); } var builder = bnet.protocol.storage.ExecuteResponse.CreateBuilder(); foreach(var result in results) { builder.AddResults(result); } return builder.Build(); }
private bnet.protocol.storage.ExecuteResponse LoadAccountDigest(IBNetClient client, bnet.protocol.storage.ExecuteRequest request) { var results = new List<bnet.protocol.storage.OperationResult>(); foreach (var operation in request.OperationsList) { var operationResult = bnet.protocol.storage.OperationResult.CreateBuilder().SetTableId(operation.TableId); operationResult.AddData( bnet.protocol.storage.Cell.CreateBuilder() .SetColumnId(request.OperationsList[0].ColumnId) .SetRowId(request.OperationsList[0].RowId) .SetVersion(1) .SetData(client.Account.Digest.ToByteString()) .Build()); results.Add(operationResult.Build()); } var builder = bnet.protocol.storage.ExecuteResponse.CreateBuilder(); foreach (var result in results) { builder.AddResults(result); } return builder.Build(); }