jp.ms.common.modules 1.0.40 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/dto/app-table/bids-panel-item.dto.d.ts +6 -0
  2. package/dist/dto/app-table/bids-panel-item.dto.js +52 -0
  3. package/dist/dto/app-table/bids-panel-item.dto.js.map +1 -0
  4. package/dist/dto/app-table/bids-panel.dto.d.ts +7 -0
  5. package/dist/dto/app-table/bids-panel.dto.js +50 -0
  6. package/dist/dto/app-table/bids-panel.dto.js.map +1 -0
  7. package/dist/dto/app-table/index.d.ts +2 -0
  8. package/dist/dto/app-table/index.js +5 -1
  9. package/dist/dto/app-table/index.js.map +1 -1
  10. package/dist/dto/games/poker/poker-table.dto.d.ts +2 -1
  11. package/dist/dto/games/poker/poker-table.dto.js +6 -0
  12. package/dist/dto/games/poker/poker-table.dto.js.map +1 -1
  13. package/dist/modules/base-achievements/base-achievements.module.js +3 -3
  14. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  15. package/dist/modules/main/main.service.js +1 -1
  16. package/dist/modules/menu/menu-screen.view.js +1 -1
  17. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  18. package/dist/modules/menu/menu.service.js +1 -1
  19. package/dist/modules/menu/menu.service.js.map +1 -1
  20. package/dist/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +57 -57
  22. package/src/dto/app-screen/app-screen-app-bar.dto.ts +36 -36
  23. package/src/dto/app-screen/app-screen-dialog.dto.ts +64 -64
  24. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +42 -42
  25. package/src/dto/app-screen/app-screen-field.dto.ts +59 -59
  26. package/src/dto/app-screen/app-screen-section-button.dto.ts +60 -60
  27. package/src/dto/app-screen/app-screen-section-buttons.dto.ts +14 -14
  28. package/src/dto/app-screen/app-screen-section-image.dto.ts +33 -33
  29. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +105 -105
  30. package/src/dto/app-screen/app-screen-section-req.dto.ts +33 -33
  31. package/src/dto/app-screen/app-screen-section.dto.ts +76 -76
  32. package/src/dto/app-screen/app-screen.dto.ts +50 -50
  33. package/src/dto/app-screen/base-app-screen.dto.ts +16 -16
  34. package/src/dto/app-screen/index.ts +10 -10
  35. package/src/dto/app-table/bids-panel-item.dto.ts +33 -0
  36. package/src/dto/app-table/bids-panel.dto.ts +32 -0
  37. package/src/dto/app-table/card.dto.ts +54 -54
  38. package/src/dto/app-table/cards-deck.dto.ts +22 -22
  39. package/src/dto/app-table/cards-pair-slots-item.dto.ts +45 -45
  40. package/src/dto/app-table/cards-pair-slots.dto.ts +13 -13
  41. package/src/dto/app-table/cards-panel.dto.ts +48 -48
  42. package/src/dto/app-table/cards-player.dto.ts +14 -14
  43. package/src/dto/app-table/cards-slots-item.dto.ts +40 -40
  44. package/src/dto/app-table/cards-slots.dto.ts +13 -13
  45. package/src/dto/app-table/index.ts +15 -13
  46. package/src/dto/app-table/moves-panel-button.dto.ts +24 -24
  47. package/src/dto/app-table/moves-panel.dto.ts +23 -23
  48. package/src/dto/app-table/player.dto.ts +69 -69
  49. package/src/dto/app-table/summary-item.dto.ts +51 -51
  50. package/src/dto/app-table/summary.dto.ts +13 -13
  51. package/src/dto/common/find-free-table.dto.ts +3 -3
  52. package/src/dto/common/index.ts +2 -2
  53. package/src/dto/common/join-tournament.dto.ts +33 -33
  54. package/src/dto/common/log.dto.ts +9 -9
  55. package/src/dto/common/many-tables-tournament-create.dto.ts +125 -125
  56. package/src/dto/common/many-tables-tournament-update.dto.ts +3 -3
  57. package/src/dto/common/player-check-state.dto.ts +33 -33
  58. package/src/dto/common/player-connected.dto.ts +58 -58
  59. package/src/dto/games/fool/fool-player.dto.ts +3 -3
  60. package/src/dto/games/fool/fool-table.dto.ts +81 -81
  61. package/src/dto/games/index.ts +2 -2
  62. package/src/dto/games/poker/poker-player.dto.ts +3 -3
  63. package/src/dto/games/poker/poker-table.dto.ts +81 -76
  64. package/src/dto/index.ts +4 -4
  65. package/src/exception/error-code.enum.ts +4 -4
  66. package/src/exception/global-exception-filter.ts +53 -53
  67. package/src/exception/http-exception-wth-snackbar.ts +27 -27
  68. package/src/exception/index.ts +4 -4
  69. package/src/exception/not-enough-money-for-purchase.exception.ts +14 -14
  70. package/src/exception/not-found-free-room-for-fast-game.exception.ts +14 -14
  71. package/src/index.ts +4 -4
  72. package/src/modules/anti-freeze-system/anti-freeze-system.constants.ts +1 -1
  73. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +20 -20
  74. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +55 -55
  75. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +105 -105
  76. package/src/modules/anti-freeze-system/index.ts +1 -1
  77. package/src/modules/base-achievements/base-achievements.module.ts +322 -322
  78. package/src/modules/base-achievements/index.ts +1 -1
  79. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +20 -20
  80. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +34 -34
  81. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +6 -6
  82. package/src/modules/event-bus/events-bus.module.ts +23 -23
  83. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +6 -6
  84. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +18 -18
  85. package/src/modules/event-bus/index.ts +5 -5
  86. package/src/modules/events/events.constants.ts +1 -1
  87. package/src/modules/events/events.gateway.ts +70 -70
  88. package/src/modules/events/events.interfaces.ts +17 -17
  89. package/src/modules/events/events.module.ts +32 -32
  90. package/src/modules/events/index.ts +1 -1
  91. package/src/modules/index.ts +27 -27
  92. package/src/modules/logger/index.ts +2 -2
  93. package/src/modules/logger/jp-logger.module.ts +10 -10
  94. package/src/modules/logger/jp-logger.service.ts +38 -38
  95. package/src/modules/main/index.ts +1 -1
  96. package/src/modules/main/main-tables-list-screen.view.ts +275 -275
  97. package/src/modules/main/main.constants.ts +1 -1
  98. package/src/modules/main/main.controller.ts +72 -72
  99. package/src/modules/main/main.interfaces.ts +17 -17
  100. package/src/modules/main/main.module.ts +73 -73
  101. package/src/modules/main/main.service.ts +183 -183
  102. package/src/modules/many-tables-tournament/index.ts +1 -1
  103. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +143 -143
  104. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +63 -63
  105. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -3
  106. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +151 -151
  107. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +20 -20
  108. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +80 -80
  109. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +208 -208
  110. package/src/modules/many-tables-tournament-rooms-manager/index.ts +2 -2
  111. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.constants.ts +3 -3
  112. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.interfaces.ts +37 -37
  113. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +84 -84
  114. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +331 -331
  115. package/src/modules/menu/index.ts +1 -1
  116. package/src/modules/menu/menu-screen.view.ts +71 -71
  117. package/src/modules/menu/menu.constants.ts +1 -1
  118. package/src/modules/menu/menu.controller.ts +16 -16
  119. package/src/modules/menu/menu.interfaces.ts +17 -17
  120. package/src/modules/menu/menu.module.ts +39 -39
  121. package/src/modules/menu/menu.service.ts +39 -35
  122. package/src/modules/one-table-tournament/index.ts +1 -1
  123. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +166 -166
  124. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -3
  125. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +104 -104
  126. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +20 -20
  127. package/src/modules/one-table-tournament/one-table-tournament.module.ts +76 -76
  128. package/src/modules/one-table-tournament/one-table-tournament.service.ts +146 -146
  129. package/src/modules/one-table-tournament-rooms-manager/index.ts +2 -2
  130. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.constants.ts +3 -3
  131. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.interfaces.ts +31 -31
  132. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +66 -66
  133. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +220 -220
  134. package/src/modules/players-manager/index.ts +2 -2
  135. package/src/modules/players-manager/players-manager.module.ts +9 -9
  136. package/src/modules/players-manager/players-manager.service.ts +27 -27
  137. package/src/modules/simple-rooms/index.ts +1 -1
  138. package/src/modules/simple-rooms/simple-rooms.constants.ts +1 -1
  139. package/src/modules/simple-rooms/simple-rooms.controller.ts +63 -63
  140. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +20 -20
  141. package/src/modules/simple-rooms/simple-rooms.module.ts +39 -39
  142. package/src/modules/simple-rooms/simple-rooms.service.ts +95 -95
  143. package/src/modules/simple-rooms-manager/index.ts +2 -2
  144. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -3
  145. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +26 -26
  146. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +60 -60
  147. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +190 -190
  148. package/src/modules/support/dump.service.ts +11 -11
  149. package/src/modules/support/index.ts +1 -1
  150. package/src/modules/support/metric.service.ts +41 -41
  151. package/src/modules/support/support.constants.ts +1 -1
  152. package/src/modules/support/support.controller.ts +79 -79
  153. package/src/modules/support/support.interfaces.ts +16 -16
  154. package/src/modules/support/support.module.ts +35 -35
  155. package/src/modules/support/support.service.ts +27 -27
  156. package/src/utils/date.ts +7 -7
  157. package/src/utils/game-table-result.ts +129 -129
  158. package/src/views/index.ts +5 -5
  159. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +37 -37
  160. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +37 -37
  161. package/src/views/simple-room-conifrm-exit-dialog.view.ts +37 -37
  162. package/src/views/table-summary.view.ts +104 -104
  163. package/src/views/tournament-buy-ticket-dialog.view.ts +34 -34
@@ -1,27 +1,27 @@
1
- import { HttpException, HttpStatus } from '@nestjs/common';
2
- import { IAppScreenSnackbar } from 'jp.common.models';
3
-
4
- import { ErrorCodeEnum } from './error-code.enum';
5
-
6
- export interface ErrorResponseWithSnackbar {
7
- statusCode: number;
8
- message: string;
9
- errorCode: string;
10
- snackbar: IAppScreenSnackbar;
11
- }
12
-
13
- export class HttpExceptionWithSnackbar extends HttpException {
14
- constructor(
15
- message: string,
16
- errorCode: ErrorCodeEnum,
17
- snackbar: IAppScreenSnackbar,
18
- ) {
19
- const response: ErrorResponseWithSnackbar = {
20
- statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
21
- message,
22
- errorCode,
23
- snackbar,
24
- };
25
- super(response, HttpStatus.INTERNAL_SERVER_ERROR);
26
- }
27
- }
1
+ import { HttpException, HttpStatus } from '@nestjs/common';
2
+ import { IAppScreenSnackbar } from 'jp.common.models';
3
+
4
+ import { ErrorCodeEnum } from './error-code.enum';
5
+
6
+ export interface ErrorResponseWithSnackbar {
7
+ statusCode: number;
8
+ message: string;
9
+ errorCode: string;
10
+ snackbar: IAppScreenSnackbar;
11
+ }
12
+
13
+ export class HttpExceptionWithSnackbar extends HttpException {
14
+ constructor(
15
+ message: string,
16
+ errorCode: ErrorCodeEnum,
17
+ snackbar: IAppScreenSnackbar,
18
+ ) {
19
+ const response: ErrorResponseWithSnackbar = {
20
+ statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
21
+ message,
22
+ errorCode,
23
+ snackbar,
24
+ };
25
+ super(response, HttpStatus.INTERNAL_SERVER_ERROR);
26
+ }
27
+ }
@@ -1,4 +1,4 @@
1
- export { GlobalExceptionFilter } from './global-exception-filter';
2
- export { NotEnoughMoneyForPurchaseException } from './not-enough-money-for-purchase.exception';
3
- export { NotFoundFreeRoomForFastGameException } from './not-found-free-room-for-fast-game.exception';
4
- export { ErrorCodeEnum } from './error-code.enum';
1
+ export { GlobalExceptionFilter } from './global-exception-filter';
2
+ export { NotEnoughMoneyForPurchaseException } from './not-enough-money-for-purchase.exception';
3
+ export { NotFoundFreeRoomForFastGameException } from './not-found-free-room-for-fast-game.exception';
4
+ export { ErrorCodeEnum } from './error-code.enum';
@@ -1,14 +1,14 @@
1
- import { IAppScreenSnackbar } from 'jp.common.models';
2
-
3
- import { ErrorCodeEnum } from './error-code.enum';
4
- import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
5
-
6
- export class NotEnoughMoneyForPurchaseException extends HttpExceptionWithSnackbar {
7
- constructor(snackbar: IAppScreenSnackbar) {
8
- super(
9
- 'Not enough money for purchase',
10
- ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
11
- snackbar,
12
- );
13
- }
14
- }
1
+ import { IAppScreenSnackbar } from 'jp.common.models';
2
+
3
+ import { ErrorCodeEnum } from './error-code.enum';
4
+ import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
5
+
6
+ export class NotEnoughMoneyForPurchaseException extends HttpExceptionWithSnackbar {
7
+ constructor(snackbar: IAppScreenSnackbar) {
8
+ super(
9
+ 'Not enough money for purchase',
10
+ ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
11
+ snackbar,
12
+ );
13
+ }
14
+ }
@@ -1,14 +1,14 @@
1
- import { IAppScreenSnackbar } from 'jp.common.models';
2
-
3
- import { ErrorCodeEnum } from './error-code.enum';
4
- import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
5
-
6
- export class NotFoundFreeRoomForFastGameException extends HttpExceptionWithSnackbar {
7
- constructor(snackbar: IAppScreenSnackbar) {
8
- super(
9
- 'Not found free room for fast game',
10
- ErrorCodeEnum.NOT_FOUND_FREE_ROOM_FOR_FAST_GAME,
11
- snackbar,
12
- );
13
- }
14
- }
1
+ import { IAppScreenSnackbar } from 'jp.common.models';
2
+
3
+ import { ErrorCodeEnum } from './error-code.enum';
4
+ import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
5
+
6
+ export class NotFoundFreeRoomForFastGameException extends HttpExceptionWithSnackbar {
7
+ constructor(snackbar: IAppScreenSnackbar) {
8
+ super(
9
+ 'Not found free room for fast game',
10
+ ErrorCodeEnum.NOT_FOUND_FREE_ROOM_FOR_FAST_GAME,
11
+ snackbar,
12
+ );
13
+ }
14
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './dto';
2
- export * from './modules';
3
- export * from './exception';
4
- export * from './views';
1
+ export * from './dto';
2
+ export * from './modules';
3
+ export * from './exception';
4
+ export * from './views';
@@ -1 +1 @@
1
- export const ANTI_FREEZE_SYSTEM_OPTIONS = Symbol('ANTI_FREEZE_SYSTEM_OPTIONS');
1
+ export const ANTI_FREEZE_SYSTEM_OPTIONS = Symbol('ANTI_FREEZE_SYSTEM_OPTIONS');
@@ -1,20 +1,20 @@
1
- import { ModuleMetadata } from '@nestjs/common';
2
- import { Type } from '@nestjs/common/interfaces/type.interface';
3
- import { DynamicModule } from '@nestjs/common/interfaces/modules/dynamic-module.interface';
4
- import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-reference.interface';
5
-
6
- export interface AntiFreezeSystemOptions extends Pick<
7
- ModuleMetadata,
8
- 'imports'
9
- > {
10
- imports?: Array<
11
- Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference
12
- >;
13
- inject?: any[];
14
- useFactory?: (...args: any[]) => AntiFreezeSystemFactoryOptions;
15
- }
16
-
17
- export interface AntiFreezeSystemFactoryOptions {
18
- antiFreezeSystemTime: string;
19
- antiFreezeSystemCheckCount: number;
20
- }
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { Type } from '@nestjs/common/interfaces/type.interface';
3
+ import { DynamicModule } from '@nestjs/common/interfaces/modules/dynamic-module.interface';
4
+ import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-reference.interface';
5
+
6
+ export interface AntiFreezeSystemOptions extends Pick<
7
+ ModuleMetadata,
8
+ 'imports'
9
+ > {
10
+ imports?: Array<
11
+ Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference
12
+ >;
13
+ inject?: any[];
14
+ useFactory?: (...args: any[]) => AntiFreezeSystemFactoryOptions;
15
+ }
16
+
17
+ export interface AntiFreezeSystemFactoryOptions {
18
+ antiFreezeSystemTime: string;
19
+ antiFreezeSystemCheckCount: number;
20
+ }
@@ -1,55 +1,55 @@
1
- import {
2
- DynamicModule,
3
- Global,
4
- Inject,
5
- Module,
6
- Provider,
7
- } from '@nestjs/common';
8
- import schedule, { Job } from 'node-schedule';
9
-
10
- import { AntiFreezeSystemService } from './anti-freeze-system.service';
11
- import { ANTI_FREEZE_SYSTEM_OPTIONS } from './anti-freeze-system.constants';
12
- import {
13
- AntiFreezeSystemFactoryOptions,
14
- AntiFreezeSystemOptions,
15
- } from './anti-freeze-system.interfaces';
16
-
17
- @Global()
18
- @Module({
19
- providers: [AntiFreezeSystemService],
20
- })
21
- export class AntiFreezeSystemModule {
22
- private antiFreezeSystemJob: Job;
23
-
24
- constructor(
25
- private readonly antiFreezeSystemService: AntiFreezeSystemService,
26
- @Inject(ANTI_FREEZE_SYSTEM_OPTIONS)
27
- private readonly options: AntiFreezeSystemFactoryOptions,
28
- ) {}
29
-
30
- static forRootAsync(options: AntiFreezeSystemOptions): DynamicModule {
31
- return {
32
- module: AntiFreezeSystemModule,
33
- imports: options.imports ?? [],
34
- providers: [
35
- {
36
- provide: ANTI_FREEZE_SYSTEM_OPTIONS,
37
- useFactory: options.useFactory,
38
- inject: options.inject || [],
39
- } as Provider,
40
- ],
41
- };
42
- }
43
-
44
- onModuleInit() {
45
- const antiFreezeSystemTime = this.options.antiFreezeSystemTime;
46
- const antiFreezeSystemCheckCount = this.options.antiFreezeSystemCheckCount;
47
-
48
- if (antiFreezeSystemTime) {
49
- this.antiFreezeSystemJob = schedule.scheduleJob(
50
- antiFreezeSystemTime,
51
- () => this.antiFreezeSystemService.process(antiFreezeSystemCheckCount),
52
- );
53
- }
54
- }
55
- }
1
+ import {
2
+ DynamicModule,
3
+ Global,
4
+ Inject,
5
+ Module,
6
+ Provider,
7
+ } from '@nestjs/common';
8
+ import schedule, { Job } from 'node-schedule';
9
+
10
+ import { AntiFreezeSystemService } from './anti-freeze-system.service';
11
+ import { ANTI_FREEZE_SYSTEM_OPTIONS } from './anti-freeze-system.constants';
12
+ import {
13
+ AntiFreezeSystemFactoryOptions,
14
+ AntiFreezeSystemOptions,
15
+ } from './anti-freeze-system.interfaces';
16
+
17
+ @Global()
18
+ @Module({
19
+ providers: [AntiFreezeSystemService],
20
+ })
21
+ export class AntiFreezeSystemModule {
22
+ private antiFreezeSystemJob: Job;
23
+
24
+ constructor(
25
+ private readonly antiFreezeSystemService: AntiFreezeSystemService,
26
+ @Inject(ANTI_FREEZE_SYSTEM_OPTIONS)
27
+ private readonly options: AntiFreezeSystemFactoryOptions,
28
+ ) {}
29
+
30
+ static forRootAsync(options: AntiFreezeSystemOptions): DynamicModule {
31
+ return {
32
+ module: AntiFreezeSystemModule,
33
+ imports: options.imports ?? [],
34
+ providers: [
35
+ {
36
+ provide: ANTI_FREEZE_SYSTEM_OPTIONS,
37
+ useFactory: options.useFactory,
38
+ inject: options.inject || [],
39
+ } as Provider,
40
+ ],
41
+ };
42
+ }
43
+
44
+ onModuleInit() {
45
+ const antiFreezeSystemTime = this.options.antiFreezeSystemTime;
46
+ const antiFreezeSystemCheckCount = this.options.antiFreezeSystemCheckCount;
47
+
48
+ if (antiFreezeSystemTime) {
49
+ this.antiFreezeSystemJob = schedule.scheduleJob(
50
+ antiFreezeSystemTime,
51
+ () => this.antiFreezeSystemService.process(antiFreezeSystemCheckCount),
52
+ );
53
+ }
54
+ }
55
+ }
@@ -1,105 +1,105 @@
1
- import { Injectable } from '@nestjs/common';
2
- import {
3
- GameRoom,
4
- ManyTablesTournamentRoom,
5
- OneTableTournamentRoom,
6
- TournamentMaster,
7
- } from 'jp.ms.common.engine';
8
-
9
- import { SimpleRoomsManagerService } from '../simple-rooms-manager/simple-rooms-manager.service';
10
- import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
11
- import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
12
-
13
- export interface IRoomSetItem {
14
- tableId: string;
15
- hash: string;
16
- count: number;
17
- room: GameRoom;
18
- }
19
-
20
- @Injectable()
21
- export class AntiFreezeSystemService {
22
- private prevSet: Map<string, IRoomSetItem>;
23
-
24
- constructor(
25
- private readonly simpleRoomsManagerService: SimpleRoomsManagerService,
26
- private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
27
- private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
28
- ) {
29
- this.prevSet = new Map<string, IRoomSetItem>();
30
- }
31
-
32
- process(checkCount: number) {
33
- this.mergeSets();
34
- this.clear(checkCount);
35
- }
36
-
37
- private mergeSets() {
38
- if (this.prevSet.size === 0) {
39
- this.prevSet = this.getCurrentSet();
40
- } else {
41
- const newSet = new Map<string, IRoomSetItem>();
42
- const currentSet = this.getCurrentSet();
43
-
44
- currentSet.forEach((currentSetItem, currentSetKey) => {
45
- const prevSetItem = this.prevSet.get(currentSetKey);
46
- if (prevSetItem && prevSetItem.hash === currentSetItem.hash) {
47
- newSet.set(currentSetKey, {
48
- ...currentSetItem,
49
- count: prevSetItem.count + 1,
50
- });
51
- } else {
52
- newSet.set(currentSetKey, currentSetItem);
53
- }
54
- });
55
-
56
- this.prevSet = newSet;
57
- }
58
- }
59
-
60
- private getCurrentSet() {
61
- const newSet = new Map<string, IRoomSetItem>();
62
- const allTables = [
63
- ...this.simpleRoomsManagerService.getTables(),
64
- ...this.oneTableRoomsManagerService.getTables(),
65
- ...this.manyTablesRoomsManagerService.getTables(),
66
- ];
67
-
68
- const list: Array<IRoomSetItem> = allTables
69
- .filter((item) => item.isInProgress())
70
- .map((item) => ({
71
- tableId: item.getId(),
72
- hash: item.getHash(),
73
- count: 0,
74
- room: item.getRoom(),
75
- }));
76
-
77
- list.forEach((obj) => newSet.set(obj.tableId, obj));
78
-
79
- return newSet;
80
- }
81
-
82
- private clear(checkCount: number) {
83
- this.prevSet.forEach((item) => {
84
- if (item.count === checkCount) {
85
- if (item.room instanceof OneTableTournamentRoom) {
86
- const room = this.oneTableRoomsManagerService.getRoomByTableId(
87
- item.tableId,
88
- );
89
- room?.getRoomMaster<TournamentMaster>().cancelTournament();
90
- } else if (item.room instanceof ManyTablesTournamentRoom) {
91
- const room = this.manyTablesRoomsManagerService.getRoomByTableId(
92
- item.tableId,
93
- );
94
- room?.getRoomMaster<TournamentMaster>().cancelTournament();
95
- } else {
96
- this.simpleRoomsManagerService
97
- .getRoomByTableId(item.tableId)
98
- ?.restartTable(item.tableId);
99
- }
100
-
101
- this.prevSet.delete(item.tableId);
102
- }
103
- });
104
- }
105
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import {
3
+ GameRoom,
4
+ ManyTablesTournamentRoom,
5
+ OneTableTournamentRoom,
6
+ TournamentMaster,
7
+ } from 'jp.ms.common.engine';
8
+
9
+ import { SimpleRoomsManagerService } from '../simple-rooms-manager/simple-rooms-manager.service';
10
+ import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
11
+ import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
12
+
13
+ export interface IRoomSetItem {
14
+ tableId: string;
15
+ hash: string;
16
+ count: number;
17
+ room: GameRoom;
18
+ }
19
+
20
+ @Injectable()
21
+ export class AntiFreezeSystemService {
22
+ private prevSet: Map<string, IRoomSetItem>;
23
+
24
+ constructor(
25
+ private readonly simpleRoomsManagerService: SimpleRoomsManagerService,
26
+ private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
27
+ private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
28
+ ) {
29
+ this.prevSet = new Map<string, IRoomSetItem>();
30
+ }
31
+
32
+ process(checkCount: number) {
33
+ this.mergeSets();
34
+ this.clear(checkCount);
35
+ }
36
+
37
+ private mergeSets() {
38
+ if (this.prevSet.size === 0) {
39
+ this.prevSet = this.getCurrentSet();
40
+ } else {
41
+ const newSet = new Map<string, IRoomSetItem>();
42
+ const currentSet = this.getCurrentSet();
43
+
44
+ currentSet.forEach((currentSetItem, currentSetKey) => {
45
+ const prevSetItem = this.prevSet.get(currentSetKey);
46
+ if (prevSetItem && prevSetItem.hash === currentSetItem.hash) {
47
+ newSet.set(currentSetKey, {
48
+ ...currentSetItem,
49
+ count: prevSetItem.count + 1,
50
+ });
51
+ } else {
52
+ newSet.set(currentSetKey, currentSetItem);
53
+ }
54
+ });
55
+
56
+ this.prevSet = newSet;
57
+ }
58
+ }
59
+
60
+ private getCurrentSet() {
61
+ const newSet = new Map<string, IRoomSetItem>();
62
+ const allTables = [
63
+ ...this.simpleRoomsManagerService.getTables(),
64
+ ...this.oneTableRoomsManagerService.getTables(),
65
+ ...this.manyTablesRoomsManagerService.getTables(),
66
+ ];
67
+
68
+ const list: Array<IRoomSetItem> = allTables
69
+ .filter((item) => item.isInProgress())
70
+ .map((item) => ({
71
+ tableId: item.getId(),
72
+ hash: item.getHash(),
73
+ count: 0,
74
+ room: item.getRoom(),
75
+ }));
76
+
77
+ list.forEach((obj) => newSet.set(obj.tableId, obj));
78
+
79
+ return newSet;
80
+ }
81
+
82
+ private clear(checkCount: number) {
83
+ this.prevSet.forEach((item) => {
84
+ if (item.count === checkCount) {
85
+ if (item.room instanceof OneTableTournamentRoom) {
86
+ const room = this.oneTableRoomsManagerService.getRoomByTableId(
87
+ item.tableId,
88
+ );
89
+ room?.getRoomMaster<TournamentMaster>().cancelTournament();
90
+ } else if (item.room instanceof ManyTablesTournamentRoom) {
91
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(
92
+ item.tableId,
93
+ );
94
+ room?.getRoomMaster<TournamentMaster>().cancelTournament();
95
+ } else {
96
+ this.simpleRoomsManagerService
97
+ .getRoomByTableId(item.tableId)
98
+ ?.restartTable(item.tableId);
99
+ }
100
+
101
+ this.prevSet.delete(item.tableId);
102
+ }
103
+ });
104
+ }
105
+ }
@@ -1 +1 @@
1
- export { AntiFreezeSystemModule } from './anti-freeze-system.module';
1
+ export { AntiFreezeSystemModule } from './anti-freeze-system.module';