jp.ms.common.modules 1.0.41 → 1.0.43

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 (234) hide show
  1. package/dist/dto/app-table/card.dto.d.ts +1 -0
  2. package/dist/dto/app-table/card.dto.js +11 -0
  3. package/dist/dto/app-table/card.dto.js.map +1 -1
  4. package/dist/dto/app-table/player.dto.d.ts +1 -0
  5. package/dist/dto/app-table/player.dto.js +11 -0
  6. package/dist/dto/app-table/player.dto.js.map +1 -1
  7. package/dist/dto/games/fool/fool-table.dto.d.ts +1 -0
  8. package/dist/dto/games/fool/fool-table.dto.js +10 -0
  9. package/dist/dto/games/fool/fool-table.dto.js.map +1 -1
  10. package/dist/modules/anti-freeze-system/anti-freeze-system.module.d.ts +3 -1
  11. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +8 -4
  12. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
  13. package/dist/modules/anti-freeze-system/anti-freeze-system.service.d.ts +6 -2
  14. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +37 -10
  15. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
  16. package/dist/modules/base-achievements/base-achievements.module.js +2 -2
  17. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  18. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.d.ts +1 -0
  19. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js +5 -0
  20. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js.map +1 -0
  21. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.d.ts +13 -0
  22. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js +3 -0
  23. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js.map +1 -0
  24. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.d.ts +15 -0
  25. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js +77 -0
  26. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js.map +1 -0
  27. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.d.ts +19 -0
  28. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js +83 -0
  29. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js.map +1 -0
  30. package/dist/modules/event-bus/events-bus.module.js +3 -0
  31. package/dist/modules/event-bus/events-bus.module.js.map +1 -1
  32. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.d.ts +10 -0
  33. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js +26 -0
  34. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js.map +1 -0
  35. package/dist/modules/event-bus/index.d.ts +1 -0
  36. package/dist/modules/event-bus/index.js +3 -1
  37. package/dist/modules/event-bus/index.js.map +1 -1
  38. package/dist/modules/events/events.gateway.d.ts +6 -1
  39. package/dist/modules/events/events.gateway.js +19 -5
  40. package/dist/modules/events/events.gateway.js.map +1 -1
  41. package/dist/modules/index.d.ts +1 -0
  42. package/dist/modules/index.js +3 -1
  43. package/dist/modules/index.js.map +1 -1
  44. package/dist/modules/main/main.controller.d.ts +0 -1
  45. package/dist/modules/main/main.controller.js +0 -12
  46. package/dist/modules/main/main.controller.js.map +1 -1
  47. package/dist/modules/main/main.module.js +1 -1
  48. package/dist/modules/main/main.module.js.map +1 -1
  49. package/dist/modules/main/main.service.d.ts +0 -1
  50. package/dist/modules/main/main.service.js +0 -13
  51. package/dist/modules/main/main.service.js.map +1 -1
  52. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +1 -0
  53. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +12 -0
  54. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  55. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +7 -2
  56. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  57. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +4 -1
  58. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +18 -2
  59. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  60. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js +2 -0
  61. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js.map +1 -1
  62. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.d.ts +3 -2
  63. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js +9 -6
  64. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js.map +1 -1
  65. package/dist/modules/menu/menu-screen.view.d.ts +2 -1
  66. package/dist/modules/menu/menu-screen.view.js +9 -3
  67. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  68. package/dist/modules/menu/menu.interfaces.d.ts +1 -0
  69. package/dist/modules/menu/menu.service.js +1 -1
  70. package/dist/modules/menu/menu.service.js.map +1 -1
  71. package/dist/modules/one-table-tournament/one-table-tournament.module.js +1 -1
  72. package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
  73. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js +2 -0
  74. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js.map +1 -1
  75. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.d.ts +3 -2
  76. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js +9 -6
  77. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js.map +1 -1
  78. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +2 -0
  79. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
  80. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +3 -2
  81. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +8 -5
  82. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/dist/utils/game-table-result.d.ts +4 -3
  85. package/dist/utils/game-table-result.js +54 -4
  86. package/dist/utils/game-table-result.js.map +1 -1
  87. package/package.json +57 -57
  88. package/src/dto/app-screen/app-screen-app-bar.dto.ts +36 -36
  89. package/src/dto/app-screen/app-screen-dialog.dto.ts +64 -64
  90. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +42 -42
  91. package/src/dto/app-screen/app-screen-field.dto.ts +59 -59
  92. package/src/dto/app-screen/app-screen-section-button.dto.ts +60 -60
  93. package/src/dto/app-screen/app-screen-section-buttons.dto.ts +14 -14
  94. package/src/dto/app-screen/app-screen-section-image.dto.ts +33 -33
  95. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +105 -105
  96. package/src/dto/app-screen/app-screen-section-req.dto.ts +33 -33
  97. package/src/dto/app-screen/app-screen-section.dto.ts +76 -76
  98. package/src/dto/app-screen/app-screen.dto.ts +50 -50
  99. package/src/dto/app-screen/base-app-screen.dto.ts +16 -16
  100. package/src/dto/app-screen/index.ts +10 -10
  101. package/src/dto/app-table/bids-panel-item.dto.ts +33 -33
  102. package/src/dto/app-table/bids-panel.dto.ts +32 -32
  103. package/src/dto/app-table/card.dto.ts +63 -54
  104. package/src/dto/app-table/cards-deck.dto.ts +22 -22
  105. package/src/dto/app-table/cards-pair-slots-item.dto.ts +45 -45
  106. package/src/dto/app-table/cards-pair-slots.dto.ts +13 -13
  107. package/src/dto/app-table/cards-panel.dto.ts +48 -48
  108. package/src/dto/app-table/cards-player.dto.ts +14 -14
  109. package/src/dto/app-table/cards-slots-item.dto.ts +40 -40
  110. package/src/dto/app-table/cards-slots.dto.ts +13 -13
  111. package/src/dto/app-table/index.ts +15 -15
  112. package/src/dto/app-table/moves-panel-button.dto.ts +24 -24
  113. package/src/dto/app-table/moves-panel.dto.ts +23 -23
  114. package/src/dto/app-table/player.dto.ts +78 -69
  115. package/src/dto/app-table/summary-item.dto.ts +51 -51
  116. package/src/dto/app-table/summary.dto.ts +13 -13
  117. package/src/dto/common/find-free-table.dto.ts +3 -3
  118. package/src/dto/common/index.ts +2 -2
  119. package/src/dto/common/join-tournament.dto.ts +33 -33
  120. package/src/dto/common/log.dto.ts +9 -9
  121. package/src/dto/common/many-tables-tournament-create.dto.ts +125 -125
  122. package/src/dto/common/many-tables-tournament-update.dto.ts +3 -3
  123. package/src/dto/common/player-check-state.dto.ts +33 -33
  124. package/src/dto/common/player-connected.dto.ts +58 -58
  125. package/src/dto/games/fool/fool-player.dto.ts +3 -3
  126. package/src/dto/games/fool/fool-table.dto.ts +89 -81
  127. package/src/dto/games/index.ts +2 -2
  128. package/src/dto/games/poker/poker-player.dto.ts +3 -3
  129. package/src/dto/games/poker/poker-table.dto.ts +81 -81
  130. package/src/dto/index.ts +4 -4
  131. package/src/exception/error-code.enum.ts +4 -4
  132. package/src/exception/global-exception-filter.ts +53 -53
  133. package/src/exception/http-exception-wth-snackbar.ts +27 -27
  134. package/src/exception/index.ts +4 -4
  135. package/src/exception/not-enough-money-for-purchase.exception.ts +14 -14
  136. package/src/exception/not-found-free-room-for-fast-game.exception.ts +14 -14
  137. package/src/index.ts +4 -4
  138. package/src/modules/anti-freeze-system/anti-freeze-system.constants.ts +1 -1
  139. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +20 -20
  140. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +59 -55
  141. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +136 -105
  142. package/src/modules/anti-freeze-system/index.ts +1 -1
  143. package/src/modules/base-achievements/base-achievements.module.ts +324 -322
  144. package/src/modules/base-achievements/index.ts +1 -1
  145. package/src/modules/confirmation-message-manager/confirmation-message-manager.constants.ts +3 -0
  146. package/src/modules/confirmation-message-manager/confirmation-message-manager.interfaces.ts +20 -0
  147. package/src/modules/confirmation-message-manager/confirmation-message-manager.module.ts +77 -0
  148. package/src/modules/confirmation-message-manager/confirmation-message-manager.service.ts +91 -0
  149. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +20 -20
  150. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +34 -34
  151. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +6 -6
  152. package/src/modules/event-bus/events-bus.module.ts +26 -23
  153. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +6 -6
  154. package/src/modules/event-bus/events-bus.player-ws-message.subscribe.service.ts +30 -0
  155. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +18 -18
  156. package/src/modules/event-bus/index.ts +6 -5
  157. package/src/modules/events/events.constants.ts +1 -1
  158. package/src/modules/events/events.gateway.ts +84 -70
  159. package/src/modules/events/events.interfaces.ts +17 -17
  160. package/src/modules/events/events.module.ts +32 -32
  161. package/src/modules/events/index.ts +1 -1
  162. package/src/modules/index.ts +28 -27
  163. package/src/modules/logger/index.ts +2 -2
  164. package/src/modules/logger/jp-logger.module.ts +10 -10
  165. package/src/modules/logger/jp-logger.service.ts +38 -38
  166. package/src/modules/main/index.ts +1 -1
  167. package/src/modules/main/main-tables-list-screen.view.ts +275 -275
  168. package/src/modules/main/main.constants.ts +1 -1
  169. package/src/modules/main/main.controller.ts +51 -72
  170. package/src/modules/main/main.interfaces.ts +17 -17
  171. package/src/modules/main/main.module.ts +73 -73
  172. package/src/modules/main/main.service.ts +154 -183
  173. package/src/modules/many-tables-tournament/index.ts +1 -1
  174. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +143 -143
  175. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +63 -63
  176. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -3
  177. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +164 -151
  178. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +20 -20
  179. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +89 -80
  180. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +241 -208
  181. package/src/modules/many-tables-tournament-rooms-manager/index.ts +2 -2
  182. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.constants.ts +3 -3
  183. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.interfaces.ts +37 -37
  184. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +89 -84
  185. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +333 -331
  186. package/src/modules/menu/index.ts +1 -1
  187. package/src/modules/menu/menu-screen.view.ts +78 -71
  188. package/src/modules/menu/menu.constants.ts +1 -1
  189. package/src/modules/menu/menu.controller.ts +16 -16
  190. package/src/modules/menu/menu.interfaces.ts +18 -17
  191. package/src/modules/menu/menu.module.ts +39 -39
  192. package/src/modules/menu/menu.service.ts +40 -39
  193. package/src/modules/one-table-tournament/index.ts +1 -1
  194. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +166 -166
  195. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -3
  196. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +104 -104
  197. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +20 -20
  198. package/src/modules/one-table-tournament/one-table-tournament.module.ts +80 -76
  199. package/src/modules/one-table-tournament/one-table-tournament.service.ts +146 -146
  200. package/src/modules/one-table-tournament-rooms-manager/index.ts +2 -2
  201. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.constants.ts +3 -3
  202. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.interfaces.ts +31 -31
  203. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +71 -66
  204. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +222 -220
  205. package/src/modules/players-manager/index.ts +2 -2
  206. package/src/modules/players-manager/players-manager.module.ts +9 -9
  207. package/src/modules/players-manager/players-manager.service.ts +27 -27
  208. package/src/modules/simple-rooms/index.ts +1 -1
  209. package/src/modules/simple-rooms/simple-rooms.constants.ts +1 -1
  210. package/src/modules/simple-rooms/simple-rooms.controller.ts +63 -63
  211. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +20 -20
  212. package/src/modules/simple-rooms/simple-rooms.module.ts +39 -39
  213. package/src/modules/simple-rooms/simple-rooms.service.ts +95 -95
  214. package/src/modules/simple-rooms-manager/index.ts +2 -2
  215. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -3
  216. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +26 -26
  217. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +65 -60
  218. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +192 -190
  219. package/src/modules/support/dump.service.ts +11 -11
  220. package/src/modules/support/index.ts +1 -1
  221. package/src/modules/support/metric.service.ts +41 -41
  222. package/src/modules/support/support.constants.ts +1 -1
  223. package/src/modules/support/support.controller.ts +79 -79
  224. package/src/modules/support/support.interfaces.ts +16 -16
  225. package/src/modules/support/support.module.ts +35 -35
  226. package/src/modules/support/support.service.ts +27 -27
  227. package/src/utils/date.ts +7 -7
  228. package/src/utils/game-table-result.ts +190 -129
  229. package/src/views/index.ts +5 -5
  230. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +37 -37
  231. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +37 -37
  232. package/src/views/simple-room-conifrm-exit-dialog.view.ts +37 -37
  233. package/src/views/table-summary.view.ts +104 -104
  234. package/src/views/tournament-buy-ticket-dialog.view.ts +34 -34
@@ -1,105 +1,136 @@
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 { Inject, 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
+ import { JpLoggerService } from '../logger';
13
+
14
+ import { AntiFreezeSystemFactoryOptions } from './anti-freeze-system.interfaces';
15
+ import { ANTI_FREEZE_SYSTEM_OPTIONS } from './anti-freeze-system.constants';
16
+
17
+ export interface IRoomSetItem {
18
+ tableId: string;
19
+ hash: string;
20
+ count: number;
21
+ room: GameRoom;
22
+ }
23
+
24
+ @Injectable()
25
+ export class AntiFreezeSystemService {
26
+ private prevSet: Map<string, IRoomSetItem>;
27
+
28
+ constructor(
29
+ private readonly simpleRoomsManagerService: SimpleRoomsManagerService,
30
+ private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
31
+ private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
32
+ @Inject() private readonly logger: JpLoggerService,
33
+ @Inject(ANTI_FREEZE_SYSTEM_OPTIONS)
34
+ private readonly options: AntiFreezeSystemFactoryOptions,
35
+ ) {
36
+ this.prevSet = new Map<string, IRoomSetItem>();
37
+ }
38
+
39
+ process() {
40
+ this.mergeSets();
41
+ this.clear();
42
+ }
43
+
44
+ private mergeSets() {
45
+ if (this.prevSet.size === 0) {
46
+ this.prevSet = this.getCurrentSet();
47
+ } else {
48
+ const newSet = new Map<string, IRoomSetItem>();
49
+ const currentSet = this.getCurrentSet();
50
+
51
+ currentSet.forEach((currentSetItem, currentSetKey) => {
52
+ const prevSetItem = this.prevSet.get(currentSetKey);
53
+ if (prevSetItem && prevSetItem.hash === currentSetItem.hash) {
54
+ newSet.set(currentSetKey, {
55
+ ...currentSetItem,
56
+ count: prevSetItem.count + 1,
57
+ });
58
+
59
+ this.logger.log(
60
+ `${AntiFreezeSystemService.name}: tableId: ${prevSetItem.tableId}, count: ${prevSetItem.count}`,
61
+ );
62
+ } else {
63
+ newSet.set(currentSetKey, currentSetItem);
64
+ }
65
+ });
66
+
67
+ this.prevSet = newSet;
68
+ }
69
+ }
70
+
71
+ private getCurrentSet() {
72
+ const newSet = new Map<string, IRoomSetItem>();
73
+ const allTables = [
74
+ ...this.simpleRoomsManagerService.getTables(),
75
+ ...this.oneTableRoomsManagerService.getTables(),
76
+ ...this.manyTablesRoomsManagerService.getTables(),
77
+ ];
78
+
79
+ const list: Array<IRoomSetItem> = allTables
80
+ .filter((item) => item.isInProgress())
81
+ .map((item) => ({
82
+ tableId: item.getId(),
83
+ hash: item.getHash(),
84
+ count: 0,
85
+ room: item.getRoom(),
86
+ }));
87
+
88
+ list.forEach((obj) => newSet.set(obj.tableId, obj));
89
+
90
+ return newSet;
91
+ }
92
+
93
+ private clear() {
94
+ this.prevSet.forEach((item) => {
95
+ if (item.count === this.options.antiFreezeSystemCheckCount) {
96
+ if (item.room instanceof OneTableTournamentRoom) {
97
+ this.logger.log(
98
+ `${AntiFreezeSystemService.name}: cancel tournamentId: ${item.room.getId()}`,
99
+ );
100
+ const room = this.oneTableRoomsManagerService.getRoomByTableId(
101
+ item.tableId,
102
+ );
103
+ room?.getTables().forEach((table) => {
104
+ table.getPlayers().forEach((player) => {
105
+ room?.handleLeaveTournament(player);
106
+ });
107
+ });
108
+ room?.getRoomMaster<TournamentMaster>().onTournamentCancel();
109
+ } else if (item.room instanceof ManyTablesTournamentRoom) {
110
+ this.logger.log(
111
+ `${AntiFreezeSystemService.name}: cancel tournamentId: ${item.room.getId()}`,
112
+ );
113
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(
114
+ item.tableId,
115
+ );
116
+ room?.getTables().forEach((table) => {
117
+ table.getPlayers().forEach((player) => {
118
+ room?.handleLeaveTournament(player);
119
+ });
120
+ });
121
+ room?.getRoomMaster<TournamentMaster>().onTournamentCancel();
122
+ } else {
123
+ this.logger.log(
124
+ `${AntiFreezeSystemService.name}: restart tableId: ${item.tableId}`,
125
+ );
126
+
127
+ this.simpleRoomsManagerService
128
+ .getRoomByTableId(item.tableId)
129
+ ?.restartTable(item.tableId);
130
+ }
131
+
132
+ this.prevSet.delete(item.tableId);
133
+ }
134
+ });
135
+ }
136
+ }
@@ -1 +1 @@
1
- export { AntiFreezeSystemModule } from './anti-freeze-system.module';
1
+ export { AntiFreezeSystemModule } from './anti-freeze-system.module';