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