9
9
using System . Collections . ObjectModel ;
10
10
using System . IO ;
11
11
using System . Linq ;
12
+ using System . Text ;
12
13
using SteamKit2 . Internal ;
13
14
14
15
namespace SteamKit2
@@ -146,8 +147,11 @@ internal License( CMsgClientLicenseList.License license )
146
147
public ReadOnlyCollection < License > LicenseList { get ; private set ; }
147
148
148
149
149
- internal LicenseListCallback ( CMsgClientLicenseList msg )
150
+ internal LicenseListCallback ( IPacketMsg packetMsg )
150
151
{
152
+ var licenseList = new ClientMsgProtobuf < CMsgClientLicenseList > ( packetMsg ) ;
153
+ var msg = licenseList . Body ;
154
+
151
155
this . Result = ( EResult ) msg . eresult ;
152
156
153
157
var list = msg . licenses
@@ -181,9 +185,12 @@ public sealed class FreeLicenseCallback : CallbackMsg
181
185
/// <value>List of granted packages.</value>
182
186
public ReadOnlyCollection < uint > GrantedPackages { get ; private set ; }
183
187
184
- internal FreeLicenseCallback ( JobID jobID , CMsgClientRequestFreeLicenseResponse msg )
188
+ internal FreeLicenseCallback ( IPacketMsg packetMsg )
185
189
{
186
- this . JobID = jobID ;
190
+ var grantedLicenses = new ClientMsgProtobuf < CMsgClientRequestFreeLicenseResponse > ( packetMsg ) ;
191
+ var msg = grantedLicenses . Body ;
192
+
193
+ this . JobID = grantedLicenses . TargetJobID ;
187
194
188
195
this . Result = ( EResult ) msg . eresult ;
189
196
@@ -211,10 +218,12 @@ public sealed class AppOwnershipTicketCallback : CallbackMsg
211
218
/// </summary>
212
219
public byte [ ] Ticket { get ; private set ; }
213
220
214
-
215
- internal AppOwnershipTicketCallback ( JobID jobID , CMsgClientGetAppOwnershipTicketResponse msg )
221
+ internal AppOwnershipTicketCallback ( IPacketMsg packetMsg )
216
222
{
217
- this . JobID = jobID ;
223
+ var ticketResponse = new ClientMsgProtobuf < CMsgClientGetAppOwnershipTicketResponse > ( packetMsg ) ;
224
+ var msg = ticketResponse . Body ;
225
+
226
+ this . JobID = ticketResponse . TargetJobID ;
218
227
219
228
this . Result = ( EResult ) msg . eresult ;
220
229
this . AppID = msg . app_id ;
@@ -242,9 +251,12 @@ public sealed class DepotKeyCallback : CallbackMsg
242
251
public byte [ ] DepotKey { get ; private set ; }
243
252
244
253
245
- internal DepotKeyCallback ( JobID jobID , CMsgClientGetDepotDecryptionKeyResponse msg )
254
+ internal DepotKeyCallback ( IPacketMsg packetMsg )
246
255
{
247
- JobID = jobID ;
256
+ var keyResponse = new ClientMsgProtobuf < CMsgClientGetDepotDecryptionKeyResponse > ( packetMsg ) ;
257
+ var msg = keyResponse . Body ;
258
+
259
+ JobID = keyResponse . TargetJobID ;
248
260
249
261
Result = ( EResult ) msg . eresult ;
250
262
DepotID = msg . depot_id ;
@@ -270,15 +282,19 @@ public sealed class LegacyGameKeyCallback : CallbackMsg
270
282
/// </summary>
271
283
public string ? Key { get ; private set ; }
272
284
273
- internal LegacyGameKeyCallback ( JobID jobID , MsgClientGetLegacyGameKeyResponse msg , byte [ ] payload )
285
+ internal LegacyGameKeyCallback ( IPacketMsg packetMsg )
274
286
{
275
- JobID = jobID ;
287
+ var keyResponse = new ClientMsg < MsgClientGetLegacyGameKeyResponse > ( packetMsg ) ;
288
+ var msg = keyResponse . Body ;
289
+
290
+ JobID = keyResponse . TargetJobID ;
276
291
AppID = msg . AppId ;
277
292
Result = msg . Result ;
278
293
279
294
if ( msg . Length > 0 )
280
295
{
281
296
var length = ( int ) msg . Length - 1 ;
297
+ var payload = keyResponse . Payload . ToArray ( ) ;
282
298
Key = System . Text . Encoding . ASCII . GetString ( payload , 0 , length ) ;
283
299
}
284
300
}
@@ -299,8 +315,11 @@ public sealed class GameConnectTokensCallback : CallbackMsg
299
315
public ReadOnlyCollection < byte [ ] > Tokens { get ; private set ; }
300
316
301
317
302
- internal GameConnectTokensCallback ( CMsgClientGameConnectTokens msg )
318
+ internal GameConnectTokensCallback ( IPacketMsg packetMsg )
303
319
{
320
+ var gcTokens = new ClientMsgProtobuf < CMsgClientGameConnectTokens > ( packetMsg ) ;
321
+ var msg = gcTokens . Body ;
322
+
304
323
TokensToKeep = msg . max_tokens_to_keep ;
305
324
Tokens = new ReadOnlyCollection < byte [ ] > ( msg . tokens ) ;
306
325
}
@@ -317,12 +336,14 @@ public sealed class VACStatusCallback : CallbackMsg
317
336
public ReadOnlyCollection < uint > BannedApps { get ; private set ; }
318
337
319
338
320
- internal VACStatusCallback ( MsgClientVACBanStatus msg , byte [ ] payload )
339
+ internal VACStatusCallback ( IPacketMsg packetMsg )
321
340
{
341
+ var vacStatus = new ClientMsg < MsgClientVACBanStatus > ( packetMsg ) ;
342
+ var msg = vacStatus . Body ;
343
+
322
344
var tempList = new List < uint > ( ) ;
323
345
324
- using var ms = new MemoryStream ( payload ) ;
325
- using var br = new BinaryReader ( ms ) ;
346
+ using var br = new BinaryReader ( vacStatus . Payload , Encoding . UTF8 , leaveOpen : true ) ;
326
347
for ( int x = 0 ; x < msg . NumBans ; x ++ )
327
348
{
328
349
tempList . Add ( br . ReadUInt32 ( ) ) ;
@@ -355,9 +376,12 @@ public sealed class PICSTokensCallback : CallbackMsg
355
376
public Dictionary < uint , ulong > AppTokens { get ; private set ; }
356
377
357
378
358
- internal PICSTokensCallback ( JobID jobID , CMsgClientPICSAccessTokenResponse msg )
379
+ internal PICSTokensCallback ( IPacketMsg packetMsg )
359
380
{
360
- JobID = jobID ;
381
+ var tokensResponse = new ClientMsgProtobuf < CMsgClientPICSAccessTokenResponse > ( packetMsg ) ;
382
+ var msg = tokensResponse . Body ;
383
+
384
+ JobID = tokensResponse . TargetJobID ;
361
385
362
386
PackageTokensDenied = new ReadOnlyCollection < uint > ( msg . package_denied_tokens ) ;
363
387
AppTokensDenied = new ReadOnlyCollection < uint > ( msg . app_denied_tokens ) ;
@@ -444,9 +468,12 @@ internal PICSChangeData( CMsgClientPICSChangesSinceResponse.PackageChange change
444
468
public Dictionary < uint , PICSChangeData > AppChanges { get ; private set ; }
445
469
446
470
447
- internal PICSChangesCallback ( JobID jobID , CMsgClientPICSChangesSinceResponse msg )
471
+ internal PICSChangesCallback ( IPacketMsg packetMsg )
448
472
{
449
- JobID = jobID ;
473
+ var changesResponse = new ClientMsgProtobuf < CMsgClientPICSChangesSinceResponse > ( packetMsg ) ;
474
+ var msg = changesResponse . Body ;
475
+
476
+ JobID = changesResponse . TargetJobID ;
450
477
451
478
LastChangeNumber = msg . since_change_number ;
452
479
CurrentChangeNumber = msg . current_change_number ;
@@ -591,9 +618,12 @@ internal PICSProductInfo( CMsgClientPICSProductInfoResponse.PackageInfo package_
591
618
public Dictionary < uint , PICSProductInfo > Packages { get ; private set ; }
592
619
593
620
594
- internal PICSProductInfoCallback ( JobID jobID , CMsgClientPICSProductInfoResponse msg )
621
+ internal PICSProductInfoCallback ( IPacketMsg packetMsg )
595
622
{
596
- JobID = jobID ;
623
+ var productResponse = new ClientMsgProtobuf < CMsgClientPICSProductInfoResponse > ( packetMsg ) ;
624
+ var msg = productResponse . Body ;
625
+
626
+ JobID = productResponse . TargetJobID ;
597
627
598
628
MetaDataOnly = msg . meta_data_only ;
599
629
ResponsePending = msg . response_pending ;
@@ -637,8 +667,11 @@ public sealed class GuestPassListCallback : CallbackMsg
637
667
public List < KeyValue > GuestPasses { get ; set ; }
638
668
639
669
640
- internal GuestPassListCallback ( MsgClientUpdateGuestPassesList msg , Stream payload )
670
+ internal GuestPassListCallback ( IPacketMsg packetMsg )
641
671
{
672
+ var guestPasses = new ClientMsg < MsgClientUpdateGuestPassesList > ( packetMsg ) ;
673
+ var msg = guestPasses . Body ;
674
+
642
675
Result = msg . Result ;
643
676
CountGuestPassesToGive = msg . CountGuestPassesToGive ;
644
677
CountGuestPassesToRedeem = msg . CountGuestPassesToRedeem ;
@@ -647,7 +680,7 @@ internal GuestPassListCallback( MsgClientUpdateGuestPassesList msg, Stream paylo
647
680
for ( int i = 0 ; i < CountGuestPassesToGive + CountGuestPassesToRedeem ; i ++ )
648
681
{
649
682
var kv = new KeyValue ( ) ;
650
- kv . TryReadAsBinary ( payload ) ;
683
+ kv . TryReadAsBinary ( guestPasses . Payload ) ;
651
684
GuestPasses . Add ( kv ) ;
652
685
}
653
686
}
@@ -672,9 +705,12 @@ public sealed class RedeemGuestPassResponseCallback : CallbackMsg
672
705
public uint MustOwnAppID { get ; set ; }
673
706
674
707
675
- internal RedeemGuestPassResponseCallback ( JobID jobID , CMsgClientRedeemGuestPassResponse msg )
708
+ internal RedeemGuestPassResponseCallback ( IPacketMsg packetMsg )
676
709
{
677
- JobID = jobID ;
710
+ var redeemedGuestPass = new ClientMsgProtobuf < CMsgClientRedeemGuestPassResponse > ( packetMsg ) ;
711
+ var msg = redeemedGuestPass . Body ;
712
+
713
+ JobID = redeemedGuestPass . TargetJobID ;
678
714
Result = ( EResult ) msg . eresult ;
679
715
PackageID = msg . package_id ;
680
716
MustOwnAppID = msg . must_own_appid ;
@@ -700,9 +736,12 @@ public sealed class PurchaseResponseCallback : CallbackMsg
700
736
public KeyValue PurchaseReceiptInfo { get ; set ; }
701
737
702
738
703
- internal PurchaseResponseCallback ( JobID jobID , CMsgClientPurchaseResponse msg )
739
+ internal PurchaseResponseCallback ( IPacketMsg packetMsg )
704
740
{
705
- JobID = jobID ;
741
+ var purchaseResponse = new ClientMsgProtobuf < CMsgClientPurchaseResponse > ( packetMsg ) ;
742
+ var msg = purchaseResponse . Body ;
743
+
744
+ JobID = purchaseResponse . TargetJobID ;
706
745
Result = ( EResult ) msg . eresult ;
707
746
PurchaseResultDetail = ( EPurchaseResultDetail ) msg . purchase_result_details ;
708
747
PurchaseReceiptInfo = new KeyValue ( ) ;
@@ -735,9 +774,12 @@ public sealed class CDNAuthTokenCallback : CallbackMsg
735
774
/// </summary>
736
775
public DateTime Expiration { get ; set ; }
737
776
738
- internal CDNAuthTokenCallback ( JobID jobID , CMsgClientGetCDNAuthTokenResponse msg )
777
+ internal CDNAuthTokenCallback ( IPacketMsg packetMsg )
739
778
{
740
- JobID = jobID ;
779
+ var response = new ClientMsgProtobuf < CMsgClientGetCDNAuthTokenResponse > ( packetMsg ) ;
780
+ var msg = response . Body ;
781
+
782
+ JobID = response . TargetJobID ;
741
783
742
784
Result = ( EResult ) msg . eresult ;
743
785
Token = msg . token ;
@@ -759,9 +801,12 @@ public sealed class CheckAppBetaPasswordCallback : CallbackMsg
759
801
/// </summary>
760
802
public Dictionary < string , byte [ ] > BetaPasswords { get ; private set ; }
761
803
762
- internal CheckAppBetaPasswordCallback ( JobID jobID , CMsgClientCheckAppBetaPasswordResponse msg )
804
+ internal CheckAppBetaPasswordCallback ( IPacketMsg packetMsg )
763
805
{
764
- JobID = jobID ;
806
+ var response = new ClientMsgProtobuf < CMsgClientCheckAppBetaPasswordResponse > ( packetMsg ) ;
807
+ var msg = response . Body ;
808
+
809
+ JobID = response . TargetJobID ;
765
810
766
811
Result = ( EResult ) msg . eresult ;
767
812
BetaPasswords = [ ] ;
0 commit comments