1unit googlegamesManagement;
2{$MODE objfpc}
3{$H+}
4
5interface
6
7uses sysutils, classes, googleservice, restbase, googlebase;
8
9type
10
11  //Top-level schema types
12  TAchievementResetAllResponse = Class;
13  TAchievementResetMultipleForAllRequest = Class;
14  TAchievementResetResponse = Class;
15  TEventsResetMultipleForAllRequest = Class;
16  TGamesPlayedResource = Class;
17  TGamesPlayerExperienceInfoResource = Class;
18  TGamesPlayerLevelResource = Class;
19  THiddenPlayer = Class;
20  THiddenPlayerList = Class;
21  TPlayer = Class;
22  TPlayerScoreResetAllResponse = Class;
23  TPlayerScoreResetResponse = Class;
24  TProfileSettings = Class;
25  TQuestsResetMultipleForAllRequest = Class;
26  TScoresResetMultipleForAllRequest = Class;
27  TAchievementResetAllResponseArray = Array of TAchievementResetAllResponse;
28  TAchievementResetMultipleForAllRequestArray = Array of TAchievementResetMultipleForAllRequest;
29  TAchievementResetResponseArray = Array of TAchievementResetResponse;
30  TEventsResetMultipleForAllRequestArray = Array of TEventsResetMultipleForAllRequest;
31  TGamesPlayedResourceArray = Array of TGamesPlayedResource;
32  TGamesPlayerExperienceInfoResourceArray = Array of TGamesPlayerExperienceInfoResource;
33  TGamesPlayerLevelResourceArray = Array of TGamesPlayerLevelResource;
34  THiddenPlayerArray = Array of THiddenPlayer;
35  THiddenPlayerListArray = Array of THiddenPlayerList;
36  TPlayerArray = Array of TPlayer;
37  TPlayerScoreResetAllResponseArray = Array of TPlayerScoreResetAllResponse;
38  TPlayerScoreResetResponseArray = Array of TPlayerScoreResetResponse;
39  TProfileSettingsArray = Array of TProfileSettings;
40  TQuestsResetMultipleForAllRequestArray = Array of TQuestsResetMultipleForAllRequest;
41  TScoresResetMultipleForAllRequestArray = Array of TScoresResetMultipleForAllRequest;
42  //Anonymous types, using auto-generated names
43  TPlayerTypename = Class;
44  TAchievementResetAllResponseTyperesultsArray = Array of TAchievementResetResponse;
45  THiddenPlayerListTypeitemsArray = Array of THiddenPlayer;
46  TPlayerScoreResetAllResponseTyperesultsArray = Array of TPlayerScoreResetResponse;
47
48  { --------------------------------------------------------------------
49    TAchievementResetAllResponse
50    --------------------------------------------------------------------}
51
52  TAchievementResetAllResponse = Class(TGoogleBaseObject)
53  Private
54    Fkind : String;
55    Fresults : TAchievementResetAllResponseTyperesultsArray;
56  Protected
57    //Property setters
58    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
59    Procedure Setresults(AIndex : Integer; const AValue : TAchievementResetAllResponseTyperesultsArray); virtual;
60    //2.6.4. bug workaround
61    {$IFDEF VER2_6}
62    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
63    {$ENDIF VER2_6}
64  Public
65  Published
66    Property kind : String Index 0 Read Fkind Write Setkind;
67    Property results : TAchievementResetAllResponseTyperesultsArray Index 8 Read Fresults Write Setresults;
68  end;
69  TAchievementResetAllResponseClass = Class of TAchievementResetAllResponse;
70
71  { --------------------------------------------------------------------
72    TAchievementResetMultipleForAllRequest
73    --------------------------------------------------------------------}
74
75  TAchievementResetMultipleForAllRequest = Class(TGoogleBaseObject)
76  Private
77    Fachievement_ids : TStringArray;
78    Fkind : String;
79  Protected
80    //Property setters
81    Procedure Setachievement_ids(AIndex : Integer; const AValue : TStringArray); virtual;
82    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
83    //2.6.4. bug workaround
84    {$IFDEF VER2_6}
85    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
86    {$ENDIF VER2_6}
87  Public
88  Published
89    Property achievement_ids : TStringArray Index 0 Read Fachievement_ids Write Setachievement_ids;
90    Property kind : String Index 8 Read Fkind Write Setkind;
91  end;
92  TAchievementResetMultipleForAllRequestClass = Class of TAchievementResetMultipleForAllRequest;
93
94  { --------------------------------------------------------------------
95    TAchievementResetResponse
96    --------------------------------------------------------------------}
97
98  TAchievementResetResponse = Class(TGoogleBaseObject)
99  Private
100    FcurrentState : String;
101    FdefinitionId : String;
102    Fkind : String;
103    FupdateOccurred : boolean;
104  Protected
105    //Property setters
106    Procedure SetcurrentState(AIndex : Integer; const AValue : String); virtual;
107    Procedure SetdefinitionId(AIndex : Integer; const AValue : String); virtual;
108    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
109    Procedure SetupdateOccurred(AIndex : Integer; const AValue : boolean); virtual;
110  Public
111  Published
112    Property currentState : String Index 0 Read FcurrentState Write SetcurrentState;
113    Property definitionId : String Index 8 Read FdefinitionId Write SetdefinitionId;
114    Property kind : String Index 16 Read Fkind Write Setkind;
115    Property updateOccurred : boolean Index 24 Read FupdateOccurred Write SetupdateOccurred;
116  end;
117  TAchievementResetResponseClass = Class of TAchievementResetResponse;
118
119  { --------------------------------------------------------------------
120    TEventsResetMultipleForAllRequest
121    --------------------------------------------------------------------}
122
123  TEventsResetMultipleForAllRequest = Class(TGoogleBaseObject)
124  Private
125    Fevent_ids : TStringArray;
126    Fkind : String;
127  Protected
128    //Property setters
129    Procedure Setevent_ids(AIndex : Integer; const AValue : TStringArray); virtual;
130    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
131    //2.6.4. bug workaround
132    {$IFDEF VER2_6}
133    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
134    {$ENDIF VER2_6}
135  Public
136  Published
137    Property event_ids : TStringArray Index 0 Read Fevent_ids Write Setevent_ids;
138    Property kind : String Index 8 Read Fkind Write Setkind;
139  end;
140  TEventsResetMultipleForAllRequestClass = Class of TEventsResetMultipleForAllRequest;
141
142  { --------------------------------------------------------------------
143    TGamesPlayedResource
144    --------------------------------------------------------------------}
145
146  TGamesPlayedResource = Class(TGoogleBaseObject)
147  Private
148    FautoMatched : boolean;
149    FtimeMillis : String;
150  Protected
151    //Property setters
152    Procedure SetautoMatched(AIndex : Integer; const AValue : boolean); virtual;
153    Procedure SettimeMillis(AIndex : Integer; const AValue : String); virtual;
154  Public
155  Published
156    Property autoMatched : boolean Index 0 Read FautoMatched Write SetautoMatched;
157    Property timeMillis : String Index 8 Read FtimeMillis Write SettimeMillis;
158  end;
159  TGamesPlayedResourceClass = Class of TGamesPlayedResource;
160
161  { --------------------------------------------------------------------
162    TGamesPlayerExperienceInfoResource
163    --------------------------------------------------------------------}
164
165  TGamesPlayerExperienceInfoResource = Class(TGoogleBaseObject)
166  Private
167    FcurrentExperiencePoints : String;
168    FcurrentLevel : TGamesPlayerLevelResource;
169    FlastLevelUpTimestampMillis : String;
170    FnextLevel : TGamesPlayerLevelResource;
171  Protected
172    //Property setters
173    Procedure SetcurrentExperiencePoints(AIndex : Integer; const AValue : String); virtual;
174    Procedure SetcurrentLevel(AIndex : Integer; const AValue : TGamesPlayerLevelResource); virtual;
175    Procedure SetlastLevelUpTimestampMillis(AIndex : Integer; const AValue : String); virtual;
176    Procedure SetnextLevel(AIndex : Integer; const AValue : TGamesPlayerLevelResource); virtual;
177  Public
178  Published
179    Property currentExperiencePoints : String Index 0 Read FcurrentExperiencePoints Write SetcurrentExperiencePoints;
180    Property currentLevel : TGamesPlayerLevelResource Index 8 Read FcurrentLevel Write SetcurrentLevel;
181    Property lastLevelUpTimestampMillis : String Index 16 Read FlastLevelUpTimestampMillis Write SetlastLevelUpTimestampMillis;
182    Property nextLevel : TGamesPlayerLevelResource Index 24 Read FnextLevel Write SetnextLevel;
183  end;
184  TGamesPlayerExperienceInfoResourceClass = Class of TGamesPlayerExperienceInfoResource;
185
186  { --------------------------------------------------------------------
187    TGamesPlayerLevelResource
188    --------------------------------------------------------------------}
189
190  TGamesPlayerLevelResource = Class(TGoogleBaseObject)
191  Private
192    Flevel : integer;
193    FmaxExperiencePoints : String;
194    FminExperiencePoints : String;
195  Protected
196    //Property setters
197    Procedure Setlevel(AIndex : Integer; const AValue : integer); virtual;
198    Procedure SetmaxExperiencePoints(AIndex : Integer; const AValue : String); virtual;
199    Procedure SetminExperiencePoints(AIndex : Integer; const AValue : String); virtual;
200  Public
201  Published
202    Property level : integer Index 0 Read Flevel Write Setlevel;
203    Property maxExperiencePoints : String Index 8 Read FmaxExperiencePoints Write SetmaxExperiencePoints;
204    Property minExperiencePoints : String Index 16 Read FminExperiencePoints Write SetminExperiencePoints;
205  end;
206  TGamesPlayerLevelResourceClass = Class of TGamesPlayerLevelResource;
207
208  { --------------------------------------------------------------------
209    THiddenPlayer
210    --------------------------------------------------------------------}
211
212  THiddenPlayer = Class(TGoogleBaseObject)
213  Private
214    FhiddenTimeMillis : String;
215    Fkind : String;
216    Fplayer : TPlayer;
217  Protected
218    //Property setters
219    Procedure SethiddenTimeMillis(AIndex : Integer; const AValue : String); virtual;
220    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
221    Procedure Setplayer(AIndex : Integer; const AValue : TPlayer); virtual;
222  Public
223  Published
224    Property hiddenTimeMillis : String Index 0 Read FhiddenTimeMillis Write SethiddenTimeMillis;
225    Property kind : String Index 8 Read Fkind Write Setkind;
226    Property player : TPlayer Index 16 Read Fplayer Write Setplayer;
227  end;
228  THiddenPlayerClass = Class of THiddenPlayer;
229
230  { --------------------------------------------------------------------
231    THiddenPlayerList
232    --------------------------------------------------------------------}
233
234  THiddenPlayerList = Class(TGoogleBaseObject)
235  Private
236    Fitems : THiddenPlayerListTypeitemsArray;
237    Fkind : String;
238    FnextPageToken : String;
239  Protected
240    //Property setters
241    Procedure Setitems(AIndex : Integer; const AValue : THiddenPlayerListTypeitemsArray); virtual;
242    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
243    Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual;
244    //2.6.4. bug workaround
245    {$IFDEF VER2_6}
246    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
247    {$ENDIF VER2_6}
248  Public
249  Published
250    Property items : THiddenPlayerListTypeitemsArray Index 0 Read Fitems Write Setitems;
251    Property kind : String Index 8 Read Fkind Write Setkind;
252    Property nextPageToken : String Index 16 Read FnextPageToken Write SetnextPageToken;
253  end;
254  THiddenPlayerListClass = Class of THiddenPlayerList;
255
256  { --------------------------------------------------------------------
257    TPlayerTypename
258    --------------------------------------------------------------------}
259
260  TPlayerTypename = Class(TGoogleBaseObject)
261  Private
262    FfamilyName : String;
263    FgivenName : String;
264  Protected
265    //Property setters
266    Procedure SetfamilyName(AIndex : Integer; const AValue : String); virtual;
267    Procedure SetgivenName(AIndex : Integer; const AValue : String); virtual;
268  Public
269  Published
270    Property familyName : String Index 0 Read FfamilyName Write SetfamilyName;
271    Property givenName : String Index 8 Read FgivenName Write SetgivenName;
272  end;
273  TPlayerTypenameClass = Class of TPlayerTypename;
274
275  { --------------------------------------------------------------------
276    TPlayer
277    --------------------------------------------------------------------}
278
279  TPlayer = Class(TGoogleBaseObject)
280  Private
281    FavatarImageUrl : String;
282    FbannerUrlLandscape : String;
283    FbannerUrlPortrait : String;
284    FdisplayName : String;
285    FexperienceInfo : TGamesPlayerExperienceInfoResource;
286    Fkind : String;
287    FlastPlayedWith : TGamesPlayedResource;
288    Fname : TPlayerTypename;
289    ForiginalPlayerId : String;
290    FplayerId : String;
291    FprofileSettings : TProfileSettings;
292    Ftitle : String;
293  Protected
294    //Property setters
295    Procedure SetavatarImageUrl(AIndex : Integer; const AValue : String); virtual;
296    Procedure SetbannerUrlLandscape(AIndex : Integer; const AValue : String); virtual;
297    Procedure SetbannerUrlPortrait(AIndex : Integer; const AValue : String); virtual;
298    Procedure SetdisplayName(AIndex : Integer; const AValue : String); virtual;
299    Procedure SetexperienceInfo(AIndex : Integer; const AValue : TGamesPlayerExperienceInfoResource); virtual;
300    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
301    Procedure SetlastPlayedWith(AIndex : Integer; const AValue : TGamesPlayedResource); virtual;
302    Procedure Setname(AIndex : Integer; const AValue : TPlayerTypename); virtual;
303    Procedure SetoriginalPlayerId(AIndex : Integer; const AValue : String); virtual;
304    Procedure SetplayerId(AIndex : Integer; const AValue : String); virtual;
305    Procedure SetprofileSettings(AIndex : Integer; const AValue : TProfileSettings); virtual;
306    Procedure Settitle(AIndex : Integer; const AValue : String); virtual;
307  Public
308  Published
309    Property avatarImageUrl : String Index 0 Read FavatarImageUrl Write SetavatarImageUrl;
310    Property bannerUrlLandscape : String Index 8 Read FbannerUrlLandscape Write SetbannerUrlLandscape;
311    Property bannerUrlPortrait : String Index 16 Read FbannerUrlPortrait Write SetbannerUrlPortrait;
312    Property displayName : String Index 24 Read FdisplayName Write SetdisplayName;
313    Property experienceInfo : TGamesPlayerExperienceInfoResource Index 32 Read FexperienceInfo Write SetexperienceInfo;
314    Property kind : String Index 40 Read Fkind Write Setkind;
315    Property lastPlayedWith : TGamesPlayedResource Index 48 Read FlastPlayedWith Write SetlastPlayedWith;
316    Property name : TPlayerTypename Index 56 Read Fname Write Setname;
317    Property originalPlayerId : String Index 64 Read ForiginalPlayerId Write SetoriginalPlayerId;
318    Property playerId : String Index 72 Read FplayerId Write SetplayerId;
319    Property profileSettings : TProfileSettings Index 80 Read FprofileSettings Write SetprofileSettings;
320    Property title : String Index 88 Read Ftitle Write Settitle;
321  end;
322  TPlayerClass = Class of TPlayer;
323
324  { --------------------------------------------------------------------
325    TPlayerScoreResetAllResponse
326    --------------------------------------------------------------------}
327
328  TPlayerScoreResetAllResponse = Class(TGoogleBaseObject)
329  Private
330    Fkind : String;
331    Fresults : TPlayerScoreResetAllResponseTyperesultsArray;
332  Protected
333    //Property setters
334    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
335    Procedure Setresults(AIndex : Integer; const AValue : TPlayerScoreResetAllResponseTyperesultsArray); virtual;
336    //2.6.4. bug workaround
337    {$IFDEF VER2_6}
338    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
339    {$ENDIF VER2_6}
340  Public
341  Published
342    Property kind : String Index 0 Read Fkind Write Setkind;
343    Property results : TPlayerScoreResetAllResponseTyperesultsArray Index 8 Read Fresults Write Setresults;
344  end;
345  TPlayerScoreResetAllResponseClass = Class of TPlayerScoreResetAllResponse;
346
347  { --------------------------------------------------------------------
348    TPlayerScoreResetResponse
349    --------------------------------------------------------------------}
350
351  TPlayerScoreResetResponse = Class(TGoogleBaseObject)
352  Private
353    FdefinitionId : String;
354    Fkind : String;
355    FresetScoreTimeSpans : TStringArray;
356  Protected
357    //Property setters
358    Procedure SetdefinitionId(AIndex : Integer; const AValue : String); virtual;
359    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
360    Procedure SetresetScoreTimeSpans(AIndex : Integer; const AValue : TStringArray); virtual;
361    //2.6.4. bug workaround
362    {$IFDEF VER2_6}
363    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
364    {$ENDIF VER2_6}
365  Public
366  Published
367    Property definitionId : String Index 0 Read FdefinitionId Write SetdefinitionId;
368    Property kind : String Index 8 Read Fkind Write Setkind;
369    Property resetScoreTimeSpans : TStringArray Index 16 Read FresetScoreTimeSpans Write SetresetScoreTimeSpans;
370  end;
371  TPlayerScoreResetResponseClass = Class of TPlayerScoreResetResponse;
372
373  { --------------------------------------------------------------------
374    TProfileSettings
375    --------------------------------------------------------------------}
376
377  TProfileSettings = Class(TGoogleBaseObject)
378  Private
379    Fkind : String;
380    FprofileVisible : boolean;
381  Protected
382    //Property setters
383    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
384    Procedure SetprofileVisible(AIndex : Integer; const AValue : boolean); virtual;
385  Public
386  Published
387    Property kind : String Index 0 Read Fkind Write Setkind;
388    Property profileVisible : boolean Index 8 Read FprofileVisible Write SetprofileVisible;
389  end;
390  TProfileSettingsClass = Class of TProfileSettings;
391
392  { --------------------------------------------------------------------
393    TQuestsResetMultipleForAllRequest
394    --------------------------------------------------------------------}
395
396  TQuestsResetMultipleForAllRequest = Class(TGoogleBaseObject)
397  Private
398    Fkind : String;
399    Fquest_ids : TStringArray;
400  Protected
401    //Property setters
402    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
403    Procedure Setquest_ids(AIndex : Integer; const AValue : TStringArray); virtual;
404    //2.6.4. bug workaround
405    {$IFDEF VER2_6}
406    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
407    {$ENDIF VER2_6}
408  Public
409  Published
410    Property kind : String Index 0 Read Fkind Write Setkind;
411    Property quest_ids : TStringArray Index 8 Read Fquest_ids Write Setquest_ids;
412  end;
413  TQuestsResetMultipleForAllRequestClass = Class of TQuestsResetMultipleForAllRequest;
414
415  { --------------------------------------------------------------------
416    TScoresResetMultipleForAllRequest
417    --------------------------------------------------------------------}
418
419  TScoresResetMultipleForAllRequest = Class(TGoogleBaseObject)
420  Private
421    Fkind : String;
422    Fleaderboard_ids : TStringArray;
423  Protected
424    //Property setters
425    Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
426    Procedure Setleaderboard_ids(AIndex : Integer; const AValue : TStringArray); virtual;
427    //2.6.4. bug workaround
428    {$IFDEF VER2_6}
429    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
430    {$ENDIF VER2_6}
431  Public
432  Published
433    Property kind : String Index 0 Read Fkind Write Setkind;
434    Property leaderboard_ids : TStringArray Index 8 Read Fleaderboard_ids Write Setleaderboard_ids;
435  end;
436  TScoresResetMultipleForAllRequestClass = Class of TScoresResetMultipleForAllRequest;
437
438  { --------------------------------------------------------------------
439    TAchievementsResource
440    --------------------------------------------------------------------}
441
442  TAchievementsResource = Class(TGoogleResource)
443  Public
444    Class Function ResourceName : String; override;
445    Class Function DefaultAPI : TGoogleAPIClass; override;
446    Function Reset(achievementId: string) : TAchievementResetResponse;
447    Function ResetAll : TAchievementResetAllResponse;
448    Procedure ResetAllForAllPlayers;
449    Procedure ResetForAllPlayers(achievementId: string);
450    Procedure ResetMultipleForAllPlayers(aAchievementResetMultipleForAllRequest : TAchievementResetMultipleForAllRequest);
451  end;
452
453
454  { --------------------------------------------------------------------
455    TApplicationsResource
456    --------------------------------------------------------------------}
457
458
459  //Optional query Options for TApplicationsResource, method ListHidden
460
461  TApplicationsListHiddenOptions = Record
462    maxResults : integer;
463    pageToken : String;
464  end;
465
466  TApplicationsResource = Class(TGoogleResource)
467  Public
468    Class Function ResourceName : String; override;
469    Class Function DefaultAPI : TGoogleAPIClass; override;
470    Function ListHidden(applicationId: string; AQuery : string  = '') : THiddenPlayerList;
471    Function ListHidden(applicationId: string; AQuery : TApplicationslistHiddenOptions) : THiddenPlayerList;
472  end;
473
474
475  { --------------------------------------------------------------------
476    TEventsResource
477    --------------------------------------------------------------------}
478
479  TEventsResource = Class(TGoogleResource)
480  Public
481    Class Function ResourceName : String; override;
482    Class Function DefaultAPI : TGoogleAPIClass; override;
483    Procedure Reset(eventId: string);
484    Procedure ResetAll;
485    Procedure ResetAllForAllPlayers;
486    Procedure ResetForAllPlayers(eventId: string);
487    Procedure ResetMultipleForAllPlayers(aEventsResetMultipleForAllRequest : TEventsResetMultipleForAllRequest);
488  end;
489
490
491  { --------------------------------------------------------------------
492    TPlayersResource
493    --------------------------------------------------------------------}
494
495  TPlayersResource = Class(TGoogleResource)
496  Public
497    Class Function ResourceName : String; override;
498    Class Function DefaultAPI : TGoogleAPIClass; override;
499    Procedure Hide(applicationId: string; playerId: string);
500    Procedure Unhide(applicationId: string; playerId: string);
501  end;
502
503
504  { --------------------------------------------------------------------
505    TQuestsResource
506    --------------------------------------------------------------------}
507
508  TQuestsResource = Class(TGoogleResource)
509  Public
510    Class Function ResourceName : String; override;
511    Class Function DefaultAPI : TGoogleAPIClass; override;
512    Procedure Reset(questId: string);
513    Procedure ResetAll;
514    Procedure ResetAllForAllPlayers;
515    Procedure ResetForAllPlayers(questId: string);
516    Procedure ResetMultipleForAllPlayers(aQuestsResetMultipleForAllRequest : TQuestsResetMultipleForAllRequest);
517  end;
518
519
520  { --------------------------------------------------------------------
521    TRoomsResource
522    --------------------------------------------------------------------}
523
524  TRoomsResource = Class(TGoogleResource)
525  Public
526    Class Function ResourceName : String; override;
527    Class Function DefaultAPI : TGoogleAPIClass; override;
528    Procedure Reset;
529    Procedure ResetForAllPlayers;
530  end;
531
532
533  { --------------------------------------------------------------------
534    TScoresResource
535    --------------------------------------------------------------------}
536
537  TScoresResource = Class(TGoogleResource)
538  Public
539    Class Function ResourceName : String; override;
540    Class Function DefaultAPI : TGoogleAPIClass; override;
541    Function Reset(leaderboardId: string) : TPlayerScoreResetResponse;
542    Function ResetAll : TPlayerScoreResetAllResponse;
543    Procedure ResetAllForAllPlayers;
544    Procedure ResetForAllPlayers(leaderboardId: string);
545    Procedure ResetMultipleForAllPlayers(aScoresResetMultipleForAllRequest : TScoresResetMultipleForAllRequest);
546  end;
547
548
549  { --------------------------------------------------------------------
550    TTurnBasedMatchesResource
551    --------------------------------------------------------------------}
552
553  TTurnBasedMatchesResource = Class(TGoogleResource)
554  Public
555    Class Function ResourceName : String; override;
556    Class Function DefaultAPI : TGoogleAPIClass; override;
557    Procedure Reset;
558    Procedure ResetForAllPlayers;
559  end;
560
561
562  { --------------------------------------------------------------------
563    TGamesManagementAPI
564    --------------------------------------------------------------------}
565
566  TGamesManagementAPI = Class(TGoogleAPI)
567  Private
568    FAchievementsInstance : TAchievementsResource;
569    FApplicationsInstance : TApplicationsResource;
570    FEventsInstance : TEventsResource;
571    FPlayersInstance : TPlayersResource;
572    FQuestsInstance : TQuestsResource;
573    FRoomsInstance : TRoomsResource;
574    FScoresInstance : TScoresResource;
575    FTurnBasedMatchesInstance : TTurnBasedMatchesResource;
576    Function GetAchievementsInstance : TAchievementsResource;virtual;
577    Function GetApplicationsInstance : TApplicationsResource;virtual;
578    Function GetEventsInstance : TEventsResource;virtual;
579    Function GetPlayersInstance : TPlayersResource;virtual;
580    Function GetQuestsInstance : TQuestsResource;virtual;
581    Function GetRoomsInstance : TRoomsResource;virtual;
582    Function GetScoresInstance : TScoresResource;virtual;
583    Function GetTurnBasedMatchesInstance : TTurnBasedMatchesResource;virtual;
584  Public
585    //Override class functions with API info
586    Class Function APIName : String; override;
587    Class Function APIVersion : String; override;
588    Class Function APIRevision : String; override;
589    Class Function APIID : String; override;
590    Class Function APITitle : String; override;
591    Class Function APIDescription : String; override;
592    Class Function APIOwnerDomain : String; override;
593    Class Function APIOwnerName : String; override;
594    Class Function APIIcon16 : String; override;
595    Class Function APIIcon32 : String; override;
596    Class Function APIdocumentationLink : String; override;
597    Class Function APIrootUrl : string; override;
598    Class Function APIbasePath : string;override;
599    Class Function APIbaseURL : String;override;
600    Class Function APIProtocol : string;override;
601    Class Function APIservicePath : string;override;
602    Class Function APIbatchPath : String;override;
603    Class Function APIAuthScopes : TScopeInfoArray;override;
604    Class Function APINeedsAuth : Boolean;override;
605    Class Procedure RegisterAPIResources; override;
606    //Add create function for resources
607    Function CreateAchievementsResource(AOwner : TComponent) : TAchievementsResource;virtual;overload;
608    Function CreateAchievementsResource : TAchievementsResource;virtual;overload;
609    Function CreateApplicationsResource(AOwner : TComponent) : TApplicationsResource;virtual;overload;
610    Function CreateApplicationsResource : TApplicationsResource;virtual;overload;
611    Function CreateEventsResource(AOwner : TComponent) : TEventsResource;virtual;overload;
612    Function CreateEventsResource : TEventsResource;virtual;overload;
613    Function CreatePlayersResource(AOwner : TComponent) : TPlayersResource;virtual;overload;
614    Function CreatePlayersResource : TPlayersResource;virtual;overload;
615    Function CreateQuestsResource(AOwner : TComponent) : TQuestsResource;virtual;overload;
616    Function CreateQuestsResource : TQuestsResource;virtual;overload;
617    Function CreateRoomsResource(AOwner : TComponent) : TRoomsResource;virtual;overload;
618    Function CreateRoomsResource : TRoomsResource;virtual;overload;
619    Function CreateScoresResource(AOwner : TComponent) : TScoresResource;virtual;overload;
620    Function CreateScoresResource : TScoresResource;virtual;overload;
621    Function CreateTurnBasedMatchesResource(AOwner : TComponent) : TTurnBasedMatchesResource;virtual;overload;
622    Function CreateTurnBasedMatchesResource : TTurnBasedMatchesResource;virtual;overload;
623    //Add default on-demand instances for resources
624    Property AchievementsResource : TAchievementsResource Read GetAchievementsInstance;
625    Property ApplicationsResource : TApplicationsResource Read GetApplicationsInstance;
626    Property EventsResource : TEventsResource Read GetEventsInstance;
627    Property PlayersResource : TPlayersResource Read GetPlayersInstance;
628    Property QuestsResource : TQuestsResource Read GetQuestsInstance;
629    Property RoomsResource : TRoomsResource Read GetRoomsInstance;
630    Property ScoresResource : TScoresResource Read GetScoresInstance;
631    Property TurnBasedMatchesResource : TTurnBasedMatchesResource Read GetTurnBasedMatchesInstance;
632  end;
633
634implementation
635
636
637{ --------------------------------------------------------------------
638  TAchievementResetAllResponse
639  --------------------------------------------------------------------}
640
641
642Procedure TAchievementResetAllResponse.Setkind(AIndex : Integer; const AValue : String);
643
644begin
645  If (Fkind=AValue) then exit;
646  Fkind:=AValue;
647  MarkPropertyChanged(AIndex);
648end;
649
650
651
652Procedure TAchievementResetAllResponse.Setresults(AIndex : Integer; const AValue : TAchievementResetAllResponseTyperesultsArray);
653
654begin
655  If (Fresults=AValue) then exit;
656  Fresults:=AValue;
657  MarkPropertyChanged(AIndex);
658end;
659
660
661//2.6.4. bug workaround
662{$IFDEF VER2_6}
663Procedure TAchievementResetAllResponse.SetArrayLength(Const AName : String; ALength : Longint);
664
665begin
666  Case AName of
667  'results' : SetLength(Fresults,ALength);
668  else
669    Inherited SetArrayLength(AName,ALength);
670  end;
671end;
672{$ENDIF VER2_6}
673
674
675
676
677{ --------------------------------------------------------------------
678  TAchievementResetMultipleForAllRequest
679  --------------------------------------------------------------------}
680
681
682Procedure TAchievementResetMultipleForAllRequest.Setachievement_ids(AIndex : Integer; const AValue : TStringArray);
683
684begin
685  If (Fachievement_ids=AValue) then exit;
686  Fachievement_ids:=AValue;
687  MarkPropertyChanged(AIndex);
688end;
689
690
691
692Procedure TAchievementResetMultipleForAllRequest.Setkind(AIndex : Integer; const AValue : String);
693
694begin
695  If (Fkind=AValue) then exit;
696  Fkind:=AValue;
697  MarkPropertyChanged(AIndex);
698end;
699
700
701//2.6.4. bug workaround
702{$IFDEF VER2_6}
703Procedure TAchievementResetMultipleForAllRequest.SetArrayLength(Const AName : String; ALength : Longint);
704
705begin
706  Case AName of
707  'achievement_ids' : SetLength(Fachievement_ids,ALength);
708  else
709    Inherited SetArrayLength(AName,ALength);
710  end;
711end;
712{$ENDIF VER2_6}
713
714
715
716
717{ --------------------------------------------------------------------
718  TAchievementResetResponse
719  --------------------------------------------------------------------}
720
721
722Procedure TAchievementResetResponse.SetcurrentState(AIndex : Integer; const AValue : String);
723
724begin
725  If (FcurrentState=AValue) then exit;
726  FcurrentState:=AValue;
727  MarkPropertyChanged(AIndex);
728end;
729
730
731
732Procedure TAchievementResetResponse.SetdefinitionId(AIndex : Integer; const AValue : String);
733
734begin
735  If (FdefinitionId=AValue) then exit;
736  FdefinitionId:=AValue;
737  MarkPropertyChanged(AIndex);
738end;
739
740
741
742Procedure TAchievementResetResponse.Setkind(AIndex : Integer; const AValue : String);
743
744begin
745  If (Fkind=AValue) then exit;
746  Fkind:=AValue;
747  MarkPropertyChanged(AIndex);
748end;
749
750
751
752Procedure TAchievementResetResponse.SetupdateOccurred(AIndex : Integer; const AValue : boolean);
753
754begin
755  If (FupdateOccurred=AValue) then exit;
756  FupdateOccurred:=AValue;
757  MarkPropertyChanged(AIndex);
758end;
759
760
761
762
763
764{ --------------------------------------------------------------------
765  TEventsResetMultipleForAllRequest
766  --------------------------------------------------------------------}
767
768
769Procedure TEventsResetMultipleForAllRequest.Setevent_ids(AIndex : Integer; const AValue : TStringArray);
770
771begin
772  If (Fevent_ids=AValue) then exit;
773  Fevent_ids:=AValue;
774  MarkPropertyChanged(AIndex);
775end;
776
777
778
779Procedure TEventsResetMultipleForAllRequest.Setkind(AIndex : Integer; const AValue : String);
780
781begin
782  If (Fkind=AValue) then exit;
783  Fkind:=AValue;
784  MarkPropertyChanged(AIndex);
785end;
786
787
788//2.6.4. bug workaround
789{$IFDEF VER2_6}
790Procedure TEventsResetMultipleForAllRequest.SetArrayLength(Const AName : String; ALength : Longint);
791
792begin
793  Case AName of
794  'event_ids' : SetLength(Fevent_ids,ALength);
795  else
796    Inherited SetArrayLength(AName,ALength);
797  end;
798end;
799{$ENDIF VER2_6}
800
801
802
803
804{ --------------------------------------------------------------------
805  TGamesPlayedResource
806  --------------------------------------------------------------------}
807
808
809Procedure TGamesPlayedResource.SetautoMatched(AIndex : Integer; const AValue : boolean);
810
811begin
812  If (FautoMatched=AValue) then exit;
813  FautoMatched:=AValue;
814  MarkPropertyChanged(AIndex);
815end;
816
817
818
819Procedure TGamesPlayedResource.SettimeMillis(AIndex : Integer; const AValue : String);
820
821begin
822  If (FtimeMillis=AValue) then exit;
823  FtimeMillis:=AValue;
824  MarkPropertyChanged(AIndex);
825end;
826
827
828
829
830
831{ --------------------------------------------------------------------
832  TGamesPlayerExperienceInfoResource
833  --------------------------------------------------------------------}
834
835
836Procedure TGamesPlayerExperienceInfoResource.SetcurrentExperiencePoints(AIndex : Integer; const AValue : String);
837
838begin
839  If (FcurrentExperiencePoints=AValue) then exit;
840  FcurrentExperiencePoints:=AValue;
841  MarkPropertyChanged(AIndex);
842end;
843
844
845
846Procedure TGamesPlayerExperienceInfoResource.SetcurrentLevel(AIndex : Integer; const AValue : TGamesPlayerLevelResource);
847
848begin
849  If (FcurrentLevel=AValue) then exit;
850  FcurrentLevel:=AValue;
851  MarkPropertyChanged(AIndex);
852end;
853
854
855
856Procedure TGamesPlayerExperienceInfoResource.SetlastLevelUpTimestampMillis(AIndex : Integer; const AValue : String);
857
858begin
859  If (FlastLevelUpTimestampMillis=AValue) then exit;
860  FlastLevelUpTimestampMillis:=AValue;
861  MarkPropertyChanged(AIndex);
862end;
863
864
865
866Procedure TGamesPlayerExperienceInfoResource.SetnextLevel(AIndex : Integer; const AValue : TGamesPlayerLevelResource);
867
868begin
869  If (FnextLevel=AValue) then exit;
870  FnextLevel:=AValue;
871  MarkPropertyChanged(AIndex);
872end;
873
874
875
876
877
878{ --------------------------------------------------------------------
879  TGamesPlayerLevelResource
880  --------------------------------------------------------------------}
881
882
883Procedure TGamesPlayerLevelResource.Setlevel(AIndex : Integer; const AValue : integer);
884
885begin
886  If (Flevel=AValue) then exit;
887  Flevel:=AValue;
888  MarkPropertyChanged(AIndex);
889end;
890
891
892
893Procedure TGamesPlayerLevelResource.SetmaxExperiencePoints(AIndex : Integer; const AValue : String);
894
895begin
896  If (FmaxExperiencePoints=AValue) then exit;
897  FmaxExperiencePoints:=AValue;
898  MarkPropertyChanged(AIndex);
899end;
900
901
902
903Procedure TGamesPlayerLevelResource.SetminExperiencePoints(AIndex : Integer; const AValue : String);
904
905begin
906  If (FminExperiencePoints=AValue) then exit;
907  FminExperiencePoints:=AValue;
908  MarkPropertyChanged(AIndex);
909end;
910
911
912
913
914
915{ --------------------------------------------------------------------
916  THiddenPlayer
917  --------------------------------------------------------------------}
918
919
920Procedure THiddenPlayer.SethiddenTimeMillis(AIndex : Integer; const AValue : String);
921
922begin
923  If (FhiddenTimeMillis=AValue) then exit;
924  FhiddenTimeMillis:=AValue;
925  MarkPropertyChanged(AIndex);
926end;
927
928
929
930Procedure THiddenPlayer.Setkind(AIndex : Integer; const AValue : String);
931
932begin
933  If (Fkind=AValue) then exit;
934  Fkind:=AValue;
935  MarkPropertyChanged(AIndex);
936end;
937
938
939
940Procedure THiddenPlayer.Setplayer(AIndex : Integer; const AValue : TPlayer);
941
942begin
943  If (Fplayer=AValue) then exit;
944  Fplayer:=AValue;
945  MarkPropertyChanged(AIndex);
946end;
947
948
949
950
951
952{ --------------------------------------------------------------------
953  THiddenPlayerList
954  --------------------------------------------------------------------}
955
956
957Procedure THiddenPlayerList.Setitems(AIndex : Integer; const AValue : THiddenPlayerListTypeitemsArray);
958
959begin
960  If (Fitems=AValue) then exit;
961  Fitems:=AValue;
962  MarkPropertyChanged(AIndex);
963end;
964
965
966
967Procedure THiddenPlayerList.Setkind(AIndex : Integer; const AValue : String);
968
969begin
970  If (Fkind=AValue) then exit;
971  Fkind:=AValue;
972  MarkPropertyChanged(AIndex);
973end;
974
975
976
977Procedure THiddenPlayerList.SetnextPageToken(AIndex : Integer; const AValue : String);
978
979begin
980  If (FnextPageToken=AValue) then exit;
981  FnextPageToken:=AValue;
982  MarkPropertyChanged(AIndex);
983end;
984
985
986//2.6.4. bug workaround
987{$IFDEF VER2_6}
988Procedure THiddenPlayerList.SetArrayLength(Const AName : String; ALength : Longint);
989
990begin
991  Case AName of
992  'items' : SetLength(Fitems,ALength);
993  else
994    Inherited SetArrayLength(AName,ALength);
995  end;
996end;
997{$ENDIF VER2_6}
998
999
1000
1001
1002{ --------------------------------------------------------------------
1003  TPlayerTypename
1004  --------------------------------------------------------------------}
1005
1006
1007Procedure TPlayerTypename.SetfamilyName(AIndex : Integer; const AValue : String);
1008
1009begin
1010  If (FfamilyName=AValue) then exit;
1011  FfamilyName:=AValue;
1012  MarkPropertyChanged(AIndex);
1013end;
1014
1015
1016
1017Procedure TPlayerTypename.SetgivenName(AIndex : Integer; const AValue : String);
1018
1019begin
1020  If (FgivenName=AValue) then exit;
1021  FgivenName:=AValue;
1022  MarkPropertyChanged(AIndex);
1023end;
1024
1025
1026
1027
1028
1029{ --------------------------------------------------------------------
1030  TPlayer
1031  --------------------------------------------------------------------}
1032
1033
1034Procedure TPlayer.SetavatarImageUrl(AIndex : Integer; const AValue : String);
1035
1036begin
1037  If (FavatarImageUrl=AValue) then exit;
1038  FavatarImageUrl:=AValue;
1039  MarkPropertyChanged(AIndex);
1040end;
1041
1042
1043
1044Procedure TPlayer.SetbannerUrlLandscape(AIndex : Integer; const AValue : String);
1045
1046begin
1047  If (FbannerUrlLandscape=AValue) then exit;
1048  FbannerUrlLandscape:=AValue;
1049  MarkPropertyChanged(AIndex);
1050end;
1051
1052
1053
1054Procedure TPlayer.SetbannerUrlPortrait(AIndex : Integer; const AValue : String);
1055
1056begin
1057  If (FbannerUrlPortrait=AValue) then exit;
1058  FbannerUrlPortrait:=AValue;
1059  MarkPropertyChanged(AIndex);
1060end;
1061
1062
1063
1064Procedure TPlayer.SetdisplayName(AIndex : Integer; const AValue : String);
1065
1066begin
1067  If (FdisplayName=AValue) then exit;
1068  FdisplayName:=AValue;
1069  MarkPropertyChanged(AIndex);
1070end;
1071
1072
1073
1074Procedure TPlayer.SetexperienceInfo(AIndex : Integer; const AValue : TGamesPlayerExperienceInfoResource);
1075
1076begin
1077  If (FexperienceInfo=AValue) then exit;
1078  FexperienceInfo:=AValue;
1079  MarkPropertyChanged(AIndex);
1080end;
1081
1082
1083
1084Procedure TPlayer.Setkind(AIndex : Integer; const AValue : String);
1085
1086begin
1087  If (Fkind=AValue) then exit;
1088  Fkind:=AValue;
1089  MarkPropertyChanged(AIndex);
1090end;
1091
1092
1093
1094Procedure TPlayer.SetlastPlayedWith(AIndex : Integer; const AValue : TGamesPlayedResource);
1095
1096begin
1097  If (FlastPlayedWith=AValue) then exit;
1098  FlastPlayedWith:=AValue;
1099  MarkPropertyChanged(AIndex);
1100end;
1101
1102
1103
1104Procedure TPlayer.Setname(AIndex : Integer; const AValue : TPlayerTypename);
1105
1106begin
1107  If (Fname=AValue) then exit;
1108  Fname:=AValue;
1109  MarkPropertyChanged(AIndex);
1110end;
1111
1112
1113
1114Procedure TPlayer.SetoriginalPlayerId(AIndex : Integer; const AValue : String);
1115
1116begin
1117  If (ForiginalPlayerId=AValue) then exit;
1118  ForiginalPlayerId:=AValue;
1119  MarkPropertyChanged(AIndex);
1120end;
1121
1122
1123
1124Procedure TPlayer.SetplayerId(AIndex : Integer; const AValue : String);
1125
1126begin
1127  If (FplayerId=AValue) then exit;
1128  FplayerId:=AValue;
1129  MarkPropertyChanged(AIndex);
1130end;
1131
1132
1133
1134Procedure TPlayer.SetprofileSettings(AIndex : Integer; const AValue : TProfileSettings);
1135
1136begin
1137  If (FprofileSettings=AValue) then exit;
1138  FprofileSettings:=AValue;
1139  MarkPropertyChanged(AIndex);
1140end;
1141
1142
1143
1144Procedure TPlayer.Settitle(AIndex : Integer; const AValue : String);
1145
1146begin
1147  If (Ftitle=AValue) then exit;
1148  Ftitle:=AValue;
1149  MarkPropertyChanged(AIndex);
1150end;
1151
1152
1153
1154
1155
1156{ --------------------------------------------------------------------
1157  TPlayerScoreResetAllResponse
1158  --------------------------------------------------------------------}
1159
1160
1161Procedure TPlayerScoreResetAllResponse.Setkind(AIndex : Integer; const AValue : String);
1162
1163begin
1164  If (Fkind=AValue) then exit;
1165  Fkind:=AValue;
1166  MarkPropertyChanged(AIndex);
1167end;
1168
1169
1170
1171Procedure TPlayerScoreResetAllResponse.Setresults(AIndex : Integer; const AValue : TPlayerScoreResetAllResponseTyperesultsArray);
1172
1173begin
1174  If (Fresults=AValue) then exit;
1175  Fresults:=AValue;
1176  MarkPropertyChanged(AIndex);
1177end;
1178
1179
1180//2.6.4. bug workaround
1181{$IFDEF VER2_6}
1182Procedure TPlayerScoreResetAllResponse.SetArrayLength(Const AName : String; ALength : Longint);
1183
1184begin
1185  Case AName of
1186  'results' : SetLength(Fresults,ALength);
1187  else
1188    Inherited SetArrayLength(AName,ALength);
1189  end;
1190end;
1191{$ENDIF VER2_6}
1192
1193
1194
1195
1196{ --------------------------------------------------------------------
1197  TPlayerScoreResetResponse
1198  --------------------------------------------------------------------}
1199
1200
1201Procedure TPlayerScoreResetResponse.SetdefinitionId(AIndex : Integer; const AValue : String);
1202
1203begin
1204  If (FdefinitionId=AValue) then exit;
1205  FdefinitionId:=AValue;
1206  MarkPropertyChanged(AIndex);
1207end;
1208
1209
1210
1211Procedure TPlayerScoreResetResponse.Setkind(AIndex : Integer; const AValue : String);
1212
1213begin
1214  If (Fkind=AValue) then exit;
1215  Fkind:=AValue;
1216  MarkPropertyChanged(AIndex);
1217end;
1218
1219
1220
1221Procedure TPlayerScoreResetResponse.SetresetScoreTimeSpans(AIndex : Integer; const AValue : TStringArray);
1222
1223begin
1224  If (FresetScoreTimeSpans=AValue) then exit;
1225  FresetScoreTimeSpans:=AValue;
1226  MarkPropertyChanged(AIndex);
1227end;
1228
1229
1230//2.6.4. bug workaround
1231{$IFDEF VER2_6}
1232Procedure TPlayerScoreResetResponse.SetArrayLength(Const AName : String; ALength : Longint);
1233
1234begin
1235  Case AName of
1236  'resetscoretimespans' : SetLength(FresetScoreTimeSpans,ALength);
1237  else
1238    Inherited SetArrayLength(AName,ALength);
1239  end;
1240end;
1241{$ENDIF VER2_6}
1242
1243
1244
1245
1246{ --------------------------------------------------------------------
1247  TProfileSettings
1248  --------------------------------------------------------------------}
1249
1250
1251Procedure TProfileSettings.Setkind(AIndex : Integer; const AValue : String);
1252
1253begin
1254  If (Fkind=AValue) then exit;
1255  Fkind:=AValue;
1256  MarkPropertyChanged(AIndex);
1257end;
1258
1259
1260
1261Procedure TProfileSettings.SetprofileVisible(AIndex : Integer; const AValue : boolean);
1262
1263begin
1264  If (FprofileVisible=AValue) then exit;
1265  FprofileVisible:=AValue;
1266  MarkPropertyChanged(AIndex);
1267end;
1268
1269
1270
1271
1272
1273{ --------------------------------------------------------------------
1274  TQuestsResetMultipleForAllRequest
1275  --------------------------------------------------------------------}
1276
1277
1278Procedure TQuestsResetMultipleForAllRequest.Setkind(AIndex : Integer; const AValue : String);
1279
1280begin
1281  If (Fkind=AValue) then exit;
1282  Fkind:=AValue;
1283  MarkPropertyChanged(AIndex);
1284end;
1285
1286
1287
1288Procedure TQuestsResetMultipleForAllRequest.Setquest_ids(AIndex : Integer; const AValue : TStringArray);
1289
1290begin
1291  If (Fquest_ids=AValue) then exit;
1292  Fquest_ids:=AValue;
1293  MarkPropertyChanged(AIndex);
1294end;
1295
1296
1297//2.6.4. bug workaround
1298{$IFDEF VER2_6}
1299Procedure TQuestsResetMultipleForAllRequest.SetArrayLength(Const AName : String; ALength : Longint);
1300
1301begin
1302  Case AName of
1303  'quest_ids' : SetLength(Fquest_ids,ALength);
1304  else
1305    Inherited SetArrayLength(AName,ALength);
1306  end;
1307end;
1308{$ENDIF VER2_6}
1309
1310
1311
1312
1313{ --------------------------------------------------------------------
1314  TScoresResetMultipleForAllRequest
1315  --------------------------------------------------------------------}
1316
1317
1318Procedure TScoresResetMultipleForAllRequest.Setkind(AIndex : Integer; const AValue : String);
1319
1320begin
1321  If (Fkind=AValue) then exit;
1322  Fkind:=AValue;
1323  MarkPropertyChanged(AIndex);
1324end;
1325
1326
1327
1328Procedure TScoresResetMultipleForAllRequest.Setleaderboard_ids(AIndex : Integer; const AValue : TStringArray);
1329
1330begin
1331  If (Fleaderboard_ids=AValue) then exit;
1332  Fleaderboard_ids:=AValue;
1333  MarkPropertyChanged(AIndex);
1334end;
1335
1336
1337//2.6.4. bug workaround
1338{$IFDEF VER2_6}
1339Procedure TScoresResetMultipleForAllRequest.SetArrayLength(Const AName : String; ALength : Longint);
1340
1341begin
1342  Case AName of
1343  'leaderboard_ids' : SetLength(Fleaderboard_ids,ALength);
1344  else
1345    Inherited SetArrayLength(AName,ALength);
1346  end;
1347end;
1348{$ENDIF VER2_6}
1349
1350
1351
1352
1353{ --------------------------------------------------------------------
1354  TAchievementsResource
1355  --------------------------------------------------------------------}
1356
1357
1358Class Function TAchievementsResource.ResourceName : String;
1359
1360begin
1361  Result:='achievements';
1362end;
1363
1364Class Function TAchievementsResource.DefaultAPI : TGoogleAPIClass;
1365
1366begin
1367  Result:=TgamesManagementAPI;
1368end;
1369
1370Function TAchievementsResource.Reset(achievementId: string) : TAchievementResetResponse;
1371
1372Const
1373  _HTTPMethod = 'POST';
1374  _Path       = 'achievements/{achievementId}/reset';
1375  _Methodid   = 'gamesManagement.achievements.reset';
1376
1377Var
1378  _P : String;
1379
1380begin
1381  _P:=SubstitutePath(_Path,['achievementId',achievementId]);
1382  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TAchievementResetResponse) as TAchievementResetResponse;
1383end;
1384
1385Function TAchievementsResource.ResetAll : TAchievementResetAllResponse;
1386
1387Const
1388  _HTTPMethod = 'POST';
1389  _Path       = 'achievements/reset';
1390  _Methodid   = 'gamesManagement.achievements.resetAll';
1391
1392begin
1393  Result:=ServiceCall(_HTTPMethod,_Path,'',Nil,TAchievementResetAllResponse) as TAchievementResetAllResponse;
1394end;
1395
1396Procedure TAchievementsResource.ResetAllForAllPlayers;
1397
1398Const
1399  _HTTPMethod = 'POST';
1400  _Path       = 'achievements/resetAllForAllPlayers';
1401  _Methodid   = 'gamesManagement.achievements.resetAllForAllPlayers';
1402
1403begin
1404  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1405end;
1406
1407Procedure TAchievementsResource.ResetForAllPlayers(achievementId: string);
1408
1409Const
1410  _HTTPMethod = 'POST';
1411  _Path       = 'achievements/{achievementId}/resetForAllPlayers';
1412  _Methodid   = 'gamesManagement.achievements.resetForAllPlayers';
1413
1414Var
1415  _P : String;
1416
1417begin
1418  _P:=SubstitutePath(_Path,['achievementId',achievementId]);
1419  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1420end;
1421
1422Procedure TAchievementsResource.ResetMultipleForAllPlayers(aAchievementResetMultipleForAllRequest : TAchievementResetMultipleForAllRequest);
1423
1424Const
1425  _HTTPMethod = 'POST';
1426  _Path       = 'achievements/resetMultipleForAllPlayers';
1427  _Methodid   = 'gamesManagement.achievements.resetMultipleForAllPlayers';
1428
1429begin
1430  ServiceCall(_HTTPMethod,_Path,'',aAchievementResetMultipleForAllRequest,Nil);
1431end;
1432
1433
1434
1435{ --------------------------------------------------------------------
1436  TApplicationsResource
1437  --------------------------------------------------------------------}
1438
1439
1440Class Function TApplicationsResource.ResourceName : String;
1441
1442begin
1443  Result:='applications';
1444end;
1445
1446Class Function TApplicationsResource.DefaultAPI : TGoogleAPIClass;
1447
1448begin
1449  Result:=TgamesManagementAPI;
1450end;
1451
1452Function TApplicationsResource.ListHidden(applicationId: string; AQuery : string = '') : THiddenPlayerList;
1453
1454Const
1455  _HTTPMethod = 'GET';
1456  _Path       = 'applications/{applicationId}/players/hidden';
1457  _Methodid   = 'gamesManagement.applications.listHidden';
1458
1459Var
1460  _P : String;
1461
1462begin
1463  _P:=SubstitutePath(_Path,['applicationId',applicationId]);
1464  Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,THiddenPlayerList) as THiddenPlayerList;
1465end;
1466
1467
1468Function TApplicationsResource.ListHidden(applicationId: string; AQuery : TApplicationslistHiddenOptions) : THiddenPlayerList;
1469
1470Var
1471  _Q : String;
1472
1473begin
1474  _Q:='';
1475  AddToQuery(_Q,'maxResults',AQuery.maxResults);
1476  AddToQuery(_Q,'pageToken',AQuery.pageToken);
1477  Result:=ListHidden(applicationId,_Q);
1478end;
1479
1480
1481
1482{ --------------------------------------------------------------------
1483  TEventsResource
1484  --------------------------------------------------------------------}
1485
1486
1487Class Function TEventsResource.ResourceName : String;
1488
1489begin
1490  Result:='events';
1491end;
1492
1493Class Function TEventsResource.DefaultAPI : TGoogleAPIClass;
1494
1495begin
1496  Result:=TgamesManagementAPI;
1497end;
1498
1499Procedure TEventsResource.Reset(eventId: string);
1500
1501Const
1502  _HTTPMethod = 'POST';
1503  _Path       = 'events/{eventId}/reset';
1504  _Methodid   = 'gamesManagement.events.reset';
1505
1506Var
1507  _P : String;
1508
1509begin
1510  _P:=SubstitutePath(_Path,['eventId',eventId]);
1511  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1512end;
1513
1514Procedure TEventsResource.ResetAll;
1515
1516Const
1517  _HTTPMethod = 'POST';
1518  _Path       = 'events/reset';
1519  _Methodid   = 'gamesManagement.events.resetAll';
1520
1521begin
1522  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1523end;
1524
1525Procedure TEventsResource.ResetAllForAllPlayers;
1526
1527Const
1528  _HTTPMethod = 'POST';
1529  _Path       = 'events/resetAllForAllPlayers';
1530  _Methodid   = 'gamesManagement.events.resetAllForAllPlayers';
1531
1532begin
1533  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1534end;
1535
1536Procedure TEventsResource.ResetForAllPlayers(eventId: string);
1537
1538Const
1539  _HTTPMethod = 'POST';
1540  _Path       = 'events/{eventId}/resetForAllPlayers';
1541  _Methodid   = 'gamesManagement.events.resetForAllPlayers';
1542
1543Var
1544  _P : String;
1545
1546begin
1547  _P:=SubstitutePath(_Path,['eventId',eventId]);
1548  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1549end;
1550
1551Procedure TEventsResource.ResetMultipleForAllPlayers(aEventsResetMultipleForAllRequest : TEventsResetMultipleForAllRequest);
1552
1553Const
1554  _HTTPMethod = 'POST';
1555  _Path       = 'events/resetMultipleForAllPlayers';
1556  _Methodid   = 'gamesManagement.events.resetMultipleForAllPlayers';
1557
1558begin
1559  ServiceCall(_HTTPMethod,_Path,'',aEventsResetMultipleForAllRequest,Nil);
1560end;
1561
1562
1563
1564{ --------------------------------------------------------------------
1565  TPlayersResource
1566  --------------------------------------------------------------------}
1567
1568
1569Class Function TPlayersResource.ResourceName : String;
1570
1571begin
1572  Result:='players';
1573end;
1574
1575Class Function TPlayersResource.DefaultAPI : TGoogleAPIClass;
1576
1577begin
1578  Result:=TgamesManagementAPI;
1579end;
1580
1581Procedure TPlayersResource.Hide(applicationId: string; playerId: string);
1582
1583Const
1584  _HTTPMethod = 'POST';
1585  _Path       = 'applications/{applicationId}/players/hidden/{playerId}';
1586  _Methodid   = 'gamesManagement.players.hide';
1587
1588Var
1589  _P : String;
1590
1591begin
1592  _P:=SubstitutePath(_Path,['applicationId',applicationId,'playerId',playerId]);
1593  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1594end;
1595
1596Procedure TPlayersResource.Unhide(applicationId: string; playerId: string);
1597
1598Const
1599  _HTTPMethod = 'DELETE';
1600  _Path       = 'applications/{applicationId}/players/hidden/{playerId}';
1601  _Methodid   = 'gamesManagement.players.unhide';
1602
1603Var
1604  _P : String;
1605
1606begin
1607  _P:=SubstitutePath(_Path,['applicationId',applicationId,'playerId',playerId]);
1608  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1609end;
1610
1611
1612
1613{ --------------------------------------------------------------------
1614  TQuestsResource
1615  --------------------------------------------------------------------}
1616
1617
1618Class Function TQuestsResource.ResourceName : String;
1619
1620begin
1621  Result:='quests';
1622end;
1623
1624Class Function TQuestsResource.DefaultAPI : TGoogleAPIClass;
1625
1626begin
1627  Result:=TgamesManagementAPI;
1628end;
1629
1630Procedure TQuestsResource.Reset(questId: string);
1631
1632Const
1633  _HTTPMethod = 'POST';
1634  _Path       = 'quests/{questId}/reset';
1635  _Methodid   = 'gamesManagement.quests.reset';
1636
1637Var
1638  _P : String;
1639
1640begin
1641  _P:=SubstitutePath(_Path,['questId',questId]);
1642  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1643end;
1644
1645Procedure TQuestsResource.ResetAll;
1646
1647Const
1648  _HTTPMethod = 'POST';
1649  _Path       = 'quests/reset';
1650  _Methodid   = 'gamesManagement.quests.resetAll';
1651
1652begin
1653  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1654end;
1655
1656Procedure TQuestsResource.ResetAllForAllPlayers;
1657
1658Const
1659  _HTTPMethod = 'POST';
1660  _Path       = 'quests/resetAllForAllPlayers';
1661  _Methodid   = 'gamesManagement.quests.resetAllForAllPlayers';
1662
1663begin
1664  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1665end;
1666
1667Procedure TQuestsResource.ResetForAllPlayers(questId: string);
1668
1669Const
1670  _HTTPMethod = 'POST';
1671  _Path       = 'quests/{questId}/resetForAllPlayers';
1672  _Methodid   = 'gamesManagement.quests.resetForAllPlayers';
1673
1674Var
1675  _P : String;
1676
1677begin
1678  _P:=SubstitutePath(_Path,['questId',questId]);
1679  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1680end;
1681
1682Procedure TQuestsResource.ResetMultipleForAllPlayers(aQuestsResetMultipleForAllRequest : TQuestsResetMultipleForAllRequest);
1683
1684Const
1685  _HTTPMethod = 'POST';
1686  _Path       = 'quests/resetMultipleForAllPlayers';
1687  _Methodid   = 'gamesManagement.quests.resetMultipleForAllPlayers';
1688
1689begin
1690  ServiceCall(_HTTPMethod,_Path,'',aQuestsResetMultipleForAllRequest,Nil);
1691end;
1692
1693
1694
1695{ --------------------------------------------------------------------
1696  TRoomsResource
1697  --------------------------------------------------------------------}
1698
1699
1700Class Function TRoomsResource.ResourceName : String;
1701
1702begin
1703  Result:='rooms';
1704end;
1705
1706Class Function TRoomsResource.DefaultAPI : TGoogleAPIClass;
1707
1708begin
1709  Result:=TgamesManagementAPI;
1710end;
1711
1712Procedure TRoomsResource.Reset;
1713
1714Const
1715  _HTTPMethod = 'POST';
1716  _Path       = 'rooms/reset';
1717  _Methodid   = 'gamesManagement.rooms.reset';
1718
1719begin
1720  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1721end;
1722
1723Procedure TRoomsResource.ResetForAllPlayers;
1724
1725Const
1726  _HTTPMethod = 'POST';
1727  _Path       = 'rooms/resetForAllPlayers';
1728  _Methodid   = 'gamesManagement.rooms.resetForAllPlayers';
1729
1730begin
1731  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1732end;
1733
1734
1735
1736{ --------------------------------------------------------------------
1737  TScoresResource
1738  --------------------------------------------------------------------}
1739
1740
1741Class Function TScoresResource.ResourceName : String;
1742
1743begin
1744  Result:='scores';
1745end;
1746
1747Class Function TScoresResource.DefaultAPI : TGoogleAPIClass;
1748
1749begin
1750  Result:=TgamesManagementAPI;
1751end;
1752
1753Function TScoresResource.Reset(leaderboardId: string) : TPlayerScoreResetResponse;
1754
1755Const
1756  _HTTPMethod = 'POST';
1757  _Path       = 'leaderboards/{leaderboardId}/scores/reset';
1758  _Methodid   = 'gamesManagement.scores.reset';
1759
1760Var
1761  _P : String;
1762
1763begin
1764  _P:=SubstitutePath(_Path,['leaderboardId',leaderboardId]);
1765  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TPlayerScoreResetResponse) as TPlayerScoreResetResponse;
1766end;
1767
1768Function TScoresResource.ResetAll : TPlayerScoreResetAllResponse;
1769
1770Const
1771  _HTTPMethod = 'POST';
1772  _Path       = 'scores/reset';
1773  _Methodid   = 'gamesManagement.scores.resetAll';
1774
1775begin
1776  Result:=ServiceCall(_HTTPMethod,_Path,'',Nil,TPlayerScoreResetAllResponse) as TPlayerScoreResetAllResponse;
1777end;
1778
1779Procedure TScoresResource.ResetAllForAllPlayers;
1780
1781Const
1782  _HTTPMethod = 'POST';
1783  _Path       = 'scores/resetAllForAllPlayers';
1784  _Methodid   = 'gamesManagement.scores.resetAllForAllPlayers';
1785
1786begin
1787  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1788end;
1789
1790Procedure TScoresResource.ResetForAllPlayers(leaderboardId: string);
1791
1792Const
1793  _HTTPMethod = 'POST';
1794  _Path       = 'leaderboards/{leaderboardId}/scores/resetForAllPlayers';
1795  _Methodid   = 'gamesManagement.scores.resetForAllPlayers';
1796
1797Var
1798  _P : String;
1799
1800begin
1801  _P:=SubstitutePath(_Path,['leaderboardId',leaderboardId]);
1802  ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
1803end;
1804
1805Procedure TScoresResource.ResetMultipleForAllPlayers(aScoresResetMultipleForAllRequest : TScoresResetMultipleForAllRequest);
1806
1807Const
1808  _HTTPMethod = 'POST';
1809  _Path       = 'scores/resetMultipleForAllPlayers';
1810  _Methodid   = 'gamesManagement.scores.resetMultipleForAllPlayers';
1811
1812begin
1813  ServiceCall(_HTTPMethod,_Path,'',aScoresResetMultipleForAllRequest,Nil);
1814end;
1815
1816
1817
1818{ --------------------------------------------------------------------
1819  TTurnBasedMatchesResource
1820  --------------------------------------------------------------------}
1821
1822
1823Class Function TTurnBasedMatchesResource.ResourceName : String;
1824
1825begin
1826  Result:='turnBasedMatches';
1827end;
1828
1829Class Function TTurnBasedMatchesResource.DefaultAPI : TGoogleAPIClass;
1830
1831begin
1832  Result:=TgamesManagementAPI;
1833end;
1834
1835Procedure TTurnBasedMatchesResource.Reset;
1836
1837Const
1838  _HTTPMethod = 'POST';
1839  _Path       = 'turnbasedmatches/reset';
1840  _Methodid   = 'gamesManagement.turnBasedMatches.reset';
1841
1842begin
1843  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1844end;
1845
1846Procedure TTurnBasedMatchesResource.ResetForAllPlayers;
1847
1848Const
1849  _HTTPMethod = 'POST';
1850  _Path       = 'turnbasedmatches/resetForAllPlayers';
1851  _Methodid   = 'gamesManagement.turnBasedMatches.resetForAllPlayers';
1852
1853begin
1854  ServiceCall(_HTTPMethod,_Path,'',Nil,Nil);
1855end;
1856
1857
1858
1859{ --------------------------------------------------------------------
1860  TGamesManagementAPI
1861  --------------------------------------------------------------------}
1862
1863Class Function TGamesManagementAPI.APIName : String;
1864
1865begin
1866  Result:='gamesManagement';
1867end;
1868
1869Class Function TGamesManagementAPI.APIVersion : String;
1870
1871begin
1872  Result:='v1management';
1873end;
1874
1875Class Function TGamesManagementAPI.APIRevision : String;
1876
1877begin
1878  Result:='20160519';
1879end;
1880
1881Class Function TGamesManagementAPI.APIID : String;
1882
1883begin
1884  Result:='gamesManagement:v1management';
1885end;
1886
1887Class Function TGamesManagementAPI.APITitle : String;
1888
1889begin
1890  Result:='Google Play Game Services Management API';
1891end;
1892
1893Class Function TGamesManagementAPI.APIDescription : String;
1894
1895begin
1896  Result:='The Management API for Google Play Game Services.';
1897end;
1898
1899Class Function TGamesManagementAPI.APIOwnerDomain : String;
1900
1901begin
1902  Result:='google.com';
1903end;
1904
1905Class Function TGamesManagementAPI.APIOwnerName : String;
1906
1907begin
1908  Result:='Google';
1909end;
1910
1911Class Function TGamesManagementAPI.APIIcon16 : String;
1912
1913begin
1914  Result:='http://www.google.com/images/icons/product/search-16.gif';
1915end;
1916
1917Class Function TGamesManagementAPI.APIIcon32 : String;
1918
1919begin
1920  Result:='http://www.google.com/images/icons/product/search-32.gif';
1921end;
1922
1923Class Function TGamesManagementAPI.APIdocumentationLink : String;
1924
1925begin
1926  Result:='https://developers.google.com/games/services';
1927end;
1928
1929Class Function TGamesManagementAPI.APIrootUrl : string;
1930
1931begin
1932  Result:='https://www.googleapis.com/';
1933end;
1934
1935Class Function TGamesManagementAPI.APIbasePath : string;
1936
1937begin
1938  Result:='/games/v1management/';
1939end;
1940
1941Class Function TGamesManagementAPI.APIbaseURL : String;
1942
1943begin
1944  Result:='https://www.googleapis.com/games/v1management/';
1945end;
1946
1947Class Function TGamesManagementAPI.APIProtocol : string;
1948
1949begin
1950  Result:='rest';
1951end;
1952
1953Class Function TGamesManagementAPI.APIservicePath : string;
1954
1955begin
1956  Result:='games/v1management/';
1957end;
1958
1959Class Function TGamesManagementAPI.APIbatchPath : String;
1960
1961begin
1962  Result:='batch';
1963end;
1964
1965Class Function TGamesManagementAPI.APIAuthScopes : TScopeInfoArray;
1966
1967begin
1968  SetLength(Result,2);
1969  Result[0].Name:='https://www.googleapis.com/auth/games';
1970  Result[0].Description:='Share your Google+ profile information and view and manage your game activity';
1971  Result[1].Name:='https://www.googleapis.com/auth/plus.login';
1972  Result[1].Description:='Know the list of people in your circles, your age range, and language';
1973
1974end;
1975
1976Class Function TGamesManagementAPI.APINeedsAuth : Boolean;
1977
1978begin
1979  Result:=True;
1980end;
1981
1982Class Procedure TGamesManagementAPI.RegisterAPIResources;
1983
1984begin
1985  TAchievementResetAllResponse.RegisterObject;
1986  TAchievementResetMultipleForAllRequest.RegisterObject;
1987  TAchievementResetResponse.RegisterObject;
1988  TEventsResetMultipleForAllRequest.RegisterObject;
1989  TGamesPlayedResource.RegisterObject;
1990  TGamesPlayerExperienceInfoResource.RegisterObject;
1991  TGamesPlayerLevelResource.RegisterObject;
1992  THiddenPlayer.RegisterObject;
1993  THiddenPlayerList.RegisterObject;
1994  TPlayerTypename.RegisterObject;
1995  TPlayer.RegisterObject;
1996  TPlayerScoreResetAllResponse.RegisterObject;
1997  TPlayerScoreResetResponse.RegisterObject;
1998  TProfileSettings.RegisterObject;
1999  TQuestsResetMultipleForAllRequest.RegisterObject;
2000  TScoresResetMultipleForAllRequest.RegisterObject;
2001end;
2002
2003
2004Function TGamesManagementAPI.GetAchievementsInstance : TAchievementsResource;
2005
2006begin
2007  if (FAchievementsInstance=Nil) then
2008    FAchievementsInstance:=CreateAchievementsResource;
2009  Result:=FAchievementsInstance;
2010end;
2011
2012Function TGamesManagementAPI.CreateAchievementsResource : TAchievementsResource;
2013
2014begin
2015  Result:=CreateAchievementsResource(Self);
2016end;
2017
2018
2019Function TGamesManagementAPI.CreateAchievementsResource(AOwner : TComponent) : TAchievementsResource;
2020
2021begin
2022  Result:=TAchievementsResource.Create(AOwner);
2023  Result.API:=Self.API;
2024end;
2025
2026
2027
2028Function TGamesManagementAPI.GetApplicationsInstance : TApplicationsResource;
2029
2030begin
2031  if (FApplicationsInstance=Nil) then
2032    FApplicationsInstance:=CreateApplicationsResource;
2033  Result:=FApplicationsInstance;
2034end;
2035
2036Function TGamesManagementAPI.CreateApplicationsResource : TApplicationsResource;
2037
2038begin
2039  Result:=CreateApplicationsResource(Self);
2040end;
2041
2042
2043Function TGamesManagementAPI.CreateApplicationsResource(AOwner : TComponent) : TApplicationsResource;
2044
2045begin
2046  Result:=TApplicationsResource.Create(AOwner);
2047  Result.API:=Self.API;
2048end;
2049
2050
2051
2052Function TGamesManagementAPI.GetEventsInstance : TEventsResource;
2053
2054begin
2055  if (FEventsInstance=Nil) then
2056    FEventsInstance:=CreateEventsResource;
2057  Result:=FEventsInstance;
2058end;
2059
2060Function TGamesManagementAPI.CreateEventsResource : TEventsResource;
2061
2062begin
2063  Result:=CreateEventsResource(Self);
2064end;
2065
2066
2067Function TGamesManagementAPI.CreateEventsResource(AOwner : TComponent) : TEventsResource;
2068
2069begin
2070  Result:=TEventsResource.Create(AOwner);
2071  Result.API:=Self.API;
2072end;
2073
2074
2075
2076Function TGamesManagementAPI.GetPlayersInstance : TPlayersResource;
2077
2078begin
2079  if (FPlayersInstance=Nil) then
2080    FPlayersInstance:=CreatePlayersResource;
2081  Result:=FPlayersInstance;
2082end;
2083
2084Function TGamesManagementAPI.CreatePlayersResource : TPlayersResource;
2085
2086begin
2087  Result:=CreatePlayersResource(Self);
2088end;
2089
2090
2091Function TGamesManagementAPI.CreatePlayersResource(AOwner : TComponent) : TPlayersResource;
2092
2093begin
2094  Result:=TPlayersResource.Create(AOwner);
2095  Result.API:=Self.API;
2096end;
2097
2098
2099
2100Function TGamesManagementAPI.GetQuestsInstance : TQuestsResource;
2101
2102begin
2103  if (FQuestsInstance=Nil) then
2104    FQuestsInstance:=CreateQuestsResource;
2105  Result:=FQuestsInstance;
2106end;
2107
2108Function TGamesManagementAPI.CreateQuestsResource : TQuestsResource;
2109
2110begin
2111  Result:=CreateQuestsResource(Self);
2112end;
2113
2114
2115Function TGamesManagementAPI.CreateQuestsResource(AOwner : TComponent) : TQuestsResource;
2116
2117begin
2118  Result:=TQuestsResource.Create(AOwner);
2119  Result.API:=Self.API;
2120end;
2121
2122
2123
2124Function TGamesManagementAPI.GetRoomsInstance : TRoomsResource;
2125
2126begin
2127  if (FRoomsInstance=Nil) then
2128    FRoomsInstance:=CreateRoomsResource;
2129  Result:=FRoomsInstance;
2130end;
2131
2132Function TGamesManagementAPI.CreateRoomsResource : TRoomsResource;
2133
2134begin
2135  Result:=CreateRoomsResource(Self);
2136end;
2137
2138
2139Function TGamesManagementAPI.CreateRoomsResource(AOwner : TComponent) : TRoomsResource;
2140
2141begin
2142  Result:=TRoomsResource.Create(AOwner);
2143  Result.API:=Self.API;
2144end;
2145
2146
2147
2148Function TGamesManagementAPI.GetScoresInstance : TScoresResource;
2149
2150begin
2151  if (FScoresInstance=Nil) then
2152    FScoresInstance:=CreateScoresResource;
2153  Result:=FScoresInstance;
2154end;
2155
2156Function TGamesManagementAPI.CreateScoresResource : TScoresResource;
2157
2158begin
2159  Result:=CreateScoresResource(Self);
2160end;
2161
2162
2163Function TGamesManagementAPI.CreateScoresResource(AOwner : TComponent) : TScoresResource;
2164
2165begin
2166  Result:=TScoresResource.Create(AOwner);
2167  Result.API:=Self.API;
2168end;
2169
2170
2171
2172Function TGamesManagementAPI.GetTurnBasedMatchesInstance : TTurnBasedMatchesResource;
2173
2174begin
2175  if (FTurnBasedMatchesInstance=Nil) then
2176    FTurnBasedMatchesInstance:=CreateTurnBasedMatchesResource;
2177  Result:=FTurnBasedMatchesInstance;
2178end;
2179
2180Function TGamesManagementAPI.CreateTurnBasedMatchesResource : TTurnBasedMatchesResource;
2181
2182begin
2183  Result:=CreateTurnBasedMatchesResource(Self);
2184end;
2185
2186
2187Function TGamesManagementAPI.CreateTurnBasedMatchesResource(AOwner : TComponent) : TTurnBasedMatchesResource;
2188
2189begin
2190  Result:=TTurnBasedMatchesResource.Create(AOwner);
2191  Result.API:=Self.API;
2192end;
2193
2194
2195
2196initialization
2197  TGamesManagementAPI.RegisterAPI;
2198end.
2199