rock-mod 0.20.0 → 0.22.0

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 (194) hide show
  1. package/dist/client/RockMod.d.ts +1 -1
  2. package/dist/client/RockMod.js +4 -0
  3. package/dist/client/entities/ccmp/blip/CCMPBlip.d.ts +38 -0
  4. package/dist/client/entities/ccmp/blip/CCMPBlip.js +118 -0
  5. package/dist/client/entities/ccmp/blip/CCMPBlipsManager.d.ts +27 -0
  6. package/dist/client/entities/ccmp/blip/CCMPBlipsManager.js +191 -0
  7. package/dist/client/entities/ccmp/camera/CCMPCamera.d.ts +24 -0
  8. package/dist/client/entities/ccmp/camera/CCMPCamera.js +58 -0
  9. package/dist/client/entities/ccmp/camera/CCMPCameraManager.d.ts +16 -0
  10. package/dist/client/entities/ccmp/camera/CCMPCameraManager.js +51 -0
  11. package/dist/client/entities/ccmp/colshape/CCMPColshape.d.ts +26 -0
  12. package/dist/client/entities/ccmp/colshape/CCMPColshape.js +83 -0
  13. package/dist/client/entities/ccmp/colshape/CCMPColshapesManager.d.ts +31 -0
  14. package/dist/client/entities/ccmp/colshape/CCMPColshapesManager.js +193 -0
  15. package/dist/client/entities/ccmp/marker/CCMPMarker.d.ts +34 -0
  16. package/dist/client/entities/ccmp/marker/CCMPMarker.js +109 -0
  17. package/dist/client/entities/ccmp/marker/CCMPMarkersManager.d.ts +27 -0
  18. package/dist/client/entities/ccmp/marker/CCMPMarkersManager.js +180 -0
  19. package/dist/client/entities/ccmp/object/CCMPObject.d.ts +53 -0
  20. package/dist/client/entities/ccmp/object/CCMPObject.js +218 -0
  21. package/dist/client/entities/ccmp/object/CCMPObjectsManager.d.ts +27 -0
  22. package/dist/client/entities/ccmp/object/CCMPObjectsManager.js +177 -0
  23. package/dist/client/entities/ccmp/ped/CCMPPed.d.ts +65 -0
  24. package/dist/client/entities/ccmp/ped/CCMPPed.js +199 -0
  25. package/dist/client/entities/ccmp/ped/CCMPPedsManager.d.ts +27 -0
  26. package/dist/client/entities/ccmp/ped/CCMPPedsManager.js +177 -0
  27. package/dist/client/entities/ccmp/player/CCMPPlayer.d.ts +112 -0
  28. package/dist/client/entities/ccmp/player/CCMPPlayer.js +338 -0
  29. package/dist/client/entities/ccmp/player/CCMPPlayersManager.d.ts +85 -0
  30. package/dist/client/entities/ccmp/player/CCMPPlayersManager.js +331 -0
  31. package/dist/client/entities/ccmp/vehicle/CCMPVehicle.d.ts +119 -0
  32. package/dist/client/entities/ccmp/vehicle/CCMPVehicle.js +392 -0
  33. package/dist/client/entities/ccmp/vehicle/CCMPVehiclesManager.d.ts +27 -0
  34. package/dist/client/entities/ccmp/vehicle/CCMPVehiclesManager.js +183 -0
  35. package/dist/client/entities/common/baseObject/IBaseObject.d.ts +2 -1
  36. package/dist/client/entities/common/entity/IEntity.d.ts +3 -0
  37. package/dist/client/entities/ragemp/entity/RageEntity.d.ts +7 -0
  38. package/dist/client/entities/ragemp/entity/RageEntity.js +45 -2
  39. package/dist/client/factories/ccmp/CCMPManagersFactory.d.ts +48 -0
  40. package/dist/client/factories/ccmp/CCMPManagersFactory.js +189 -0
  41. package/dist/client/factories/ccmp/createNotImplementedProxy.d.ts +1 -0
  42. package/dist/client/factories/ccmp/createNotImplementedProxy.js +24 -0
  43. package/dist/client/game/ccmp/browser/CCMPBrowserManager.d.ts +22 -0
  44. package/dist/client/game/ccmp/browser/CCMPBrowserManager.js +66 -0
  45. package/dist/client/game/ccmp/chat/CCMPChatManager.d.ts +26 -0
  46. package/dist/client/game/ccmp/chat/CCMPChatManager.js +41 -0
  47. package/dist/client/game/ccmp/controls/CCMPControlsManager.d.ts +33 -0
  48. package/dist/client/game/ccmp/controls/CCMPControlsManager.js +47 -0
  49. package/dist/client/game/ccmp/cursor/CCMPCursorManager.d.ts +6 -0
  50. package/dist/client/game/ccmp/cursor/CCMPCursorManager.js +15 -0
  51. package/dist/client/game/ccmp/gameplay/CCMPGameplayManager.d.ts +6 -0
  52. package/dist/client/game/ccmp/gameplay/CCMPGameplayManager.js +10 -0
  53. package/dist/client/game/ccmp/graphics/CCMPGraphicsManager.d.ts +58 -0
  54. package/dist/client/game/ccmp/graphics/CCMPGraphicsManager.js +112 -0
  55. package/dist/client/game/ccmp/gui/CCMPGuiManager.d.ts +5 -0
  56. package/dist/client/game/ccmp/gui/CCMPGuiManager.js +17 -0
  57. package/dist/client/game/ccmp/keys/CCMPKeysManager.d.ts +41 -0
  58. package/dist/client/game/ccmp/keys/CCMPKeysManager.js +94 -0
  59. package/dist/client/game/ccmp/nametags/CCMPNametagsManager.d.ts +4 -0
  60. package/dist/client/game/ccmp/nametags/CCMPNametagsManager.js +6 -0
  61. package/dist/client/game/ccmp/native/CCMPNativeCallerManager.d.ts +74 -0
  62. package/dist/client/game/ccmp/native/CCMPNativeCallerManager.js +129 -0
  63. package/dist/client/game/ccmp/native/_generated/nativeDispatch.d.ts +5 -0
  64. package/dist/client/game/ccmp/native/_generated/nativeDispatch.js +8123 -0
  65. package/dist/client/game/ccmp/object/CCMPGameObjectManager.d.ts +4 -0
  66. package/dist/client/game/ccmp/object/CCMPGameObjectManager.js +6 -0
  67. package/dist/client/game/ccmp/pathfind/CCMPPathfindManager.d.ts +26 -0
  68. package/dist/client/game/ccmp/pathfind/CCMPPathfindManager.js +31 -0
  69. package/dist/client/game/ccmp/raycasting/CCMPRaycastingManager.d.ts +10 -0
  70. package/dist/client/game/ccmp/raycasting/CCMPRaycastingManager.js +46 -0
  71. package/dist/client/game/ccmp/storage/CCMPStorageManager.d.ts +7 -0
  72. package/dist/client/game/ccmp/storage/CCMPStorageManager.js +14 -0
  73. package/dist/client/game/ccmp/streaming/CCMPStreamingManager.d.ts +17 -0
  74. package/dist/client/game/ccmp/streaming/CCMPStreamingManager.js +41 -0
  75. package/dist/client/game/ccmp/ui/CCMPUiManager.d.ts +41 -0
  76. package/dist/client/game/ccmp/ui/CCMPUiManager.js +69 -0
  77. package/dist/client/game/ccmp/zone/CCMPZoneManager.d.ts +19 -0
  78. package/dist/client/game/ccmp/zone/CCMPZoneManager.js +20 -0
  79. package/dist/client/game/common/browser/IBrowserManager.d.ts +7 -0
  80. package/dist/client/game/common/chat/IChatManager.d.ts +1 -0
  81. package/dist/client/game/common/controls/IControlsManager.d.ts +3 -0
  82. package/dist/client/game/common/graphics/IGraphicsManager.d.ts +17 -0
  83. package/dist/client/game/common/streaming/IStreamingManager.d.ts +2 -0
  84. package/dist/client/game/ragemp/browser/RageBrowserManager.d.ts +2 -1
  85. package/dist/client/game/ragemp/browser/RageBrowserManager.js +30 -1
  86. package/dist/client/game/ragemp/chat/RageChatManager.d.ts +1 -0
  87. package/dist/client/game/ragemp/chat/RageChatManager.js +3 -0
  88. package/dist/client/game/ragemp/controls/RageControlsManager.d.ts +3 -0
  89. package/dist/client/game/ragemp/controls/RageControlsManager.js +9 -0
  90. package/dist/client/game/ragemp/graphics/RageGraphicsManager.d.ts +5 -1
  91. package/dist/client/game/ragemp/graphics/RageGraphicsManager.js +12 -0
  92. package/dist/client/game/ragemp/streaming/RageStreamingManager.d.ts +2 -0
  93. package/dist/client/game/ragemp/streaming/RageStreamingManager.js +6 -0
  94. package/dist/client/net/ccmp/CCMPConsoleForwarder.d.ts +11 -0
  95. package/dist/client/net/ccmp/CCMPConsoleForwarder.js +153 -0
  96. package/dist/client/net/ccmp/CCMPNetManager.d.ts +23 -0
  97. package/dist/client/net/ccmp/CCMPNetManager.js +55 -0
  98. package/dist/client/net/ccmp/dataHandler/CCMPDataHandler.d.ts +23 -0
  99. package/dist/client/net/ccmp/dataHandler/CCMPDataHandler.js +43 -0
  100. package/dist/client/net/ccmp/events/CCMPEventsBridge.d.ts +14 -0
  101. package/dist/client/net/ccmp/events/CCMPEventsBridge.js +19 -0
  102. package/dist/client/net/ccmp/events/CCMPEventsManager.d.ts +72 -0
  103. package/dist/client/net/ccmp/events/CCMPEventsManager.js +177 -0
  104. package/dist/client/net/ccmp/events/CCMPInProcessEmitter.d.ts +45 -0
  105. package/dist/client/net/ccmp/events/CCMPInProcessEmitter.js +133 -0
  106. package/dist/client/net/ccmp/events/CCMPRenderTicker.d.ts +18 -0
  107. package/dist/client/net/ccmp/events/CCMPRenderTicker.js +74 -0
  108. package/dist/client/net/ccmp/events/CCMPSyncedMetaBridge.d.ts +29 -0
  109. package/dist/client/net/ccmp/events/CCMPSyncedMetaBridge.js +45 -0
  110. package/dist/client/net/ccmp/rpc/CCMPRPCManager.d.ts +22 -0
  111. package/dist/client/net/ccmp/rpc/CCMPRPCManager.js +31 -0
  112. package/dist/client/net/common/dataHandler/IDataHandler.d.ts +2 -2
  113. package/dist/client/net/common/events/types.d.ts +6 -4
  114. package/dist/client/net/common/events/types.js +1 -0
  115. package/dist/client/net/ragemp/dataHandler/RageDataHandler.d.ts +2 -2
  116. package/dist/client/utils/ccmp/CCMPUtilsManager.d.ts +18 -0
  117. package/dist/client/utils/ccmp/CCMPUtilsManager.js +20 -0
  118. package/dist/server/RockMod.d.ts +1 -1
  119. package/dist/server/RockMod.js +4 -0
  120. package/dist/server/entities/ccmp/baseObject/CCMPBaseObject.d.ts +8 -0
  121. package/dist/server/entities/ccmp/baseObject/CCMPBaseObject.js +21 -0
  122. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsIterator.d.ts +8 -0
  123. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsIterator.js +16 -0
  124. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsManager.d.ts +19 -0
  125. package/dist/server/entities/ccmp/baseObject/CCMPBaseObjectsManager.js +49 -0
  126. package/dist/server/entities/ccmp/blip/CCMPBlip.d.ts +36 -0
  127. package/dist/server/entities/ccmp/blip/CCMPBlip.js +86 -0
  128. package/dist/server/entities/ccmp/blip/CCMPBlipsManager.d.ts +9 -0
  129. package/dist/server/entities/ccmp/blip/CCMPBlipsManager.js +33 -0
  130. package/dist/server/entities/ccmp/colshape/CCMPCircleColshape.d.ts +7 -0
  131. package/dist/server/entities/ccmp/colshape/CCMPCircleColshape.js +10 -0
  132. package/dist/server/entities/ccmp/colshape/CCMPColshape.d.ts +25 -0
  133. package/dist/server/entities/ccmp/colshape/CCMPColshape.js +53 -0
  134. package/dist/server/entities/ccmp/colshape/CCMPColshapesManager.d.ts +28 -0
  135. package/dist/server/entities/ccmp/colshape/CCMPColshapesManager.js +108 -0
  136. package/dist/server/entities/ccmp/colshape/CCMPCuboidColshape.d.ts +7 -0
  137. package/dist/server/entities/ccmp/colshape/CCMPCuboidColshape.js +10 -0
  138. package/dist/server/entities/ccmp/colshape/CCMPCylinderColshape.d.ts +7 -0
  139. package/dist/server/entities/ccmp/colshape/CCMPCylinderColshape.js +10 -0
  140. package/dist/server/entities/ccmp/colshape/CCMPRectangleColshape.d.ts +7 -0
  141. package/dist/server/entities/ccmp/colshape/CCMPRectangleColshape.js +10 -0
  142. package/dist/server/entities/ccmp/colshape/CCMPSphereColshape.d.ts +7 -0
  143. package/dist/server/entities/ccmp/colshape/CCMPSphereColshape.js +10 -0
  144. package/dist/server/entities/ccmp/entity/CCMPEntitiesManager.d.ts +8 -0
  145. package/dist/server/entities/ccmp/entity/CCMPEntitiesManager.js +10 -0
  146. package/dist/server/entities/ccmp/entity/CCMPEntity.d.ts +13 -0
  147. package/dist/server/entities/ccmp/entity/CCMPEntity.js +28 -0
  148. package/dist/server/entities/ccmp/marker/CCMPMarker.d.ts +34 -0
  149. package/dist/server/entities/ccmp/marker/CCMPMarker.js +85 -0
  150. package/dist/server/entities/ccmp/marker/CCMPMarkersManager.d.ts +9 -0
  151. package/dist/server/entities/ccmp/marker/CCMPMarkersManager.js +30 -0
  152. package/dist/server/entities/ccmp/object/CCMPObject.d.ts +48 -0
  153. package/dist/server/entities/ccmp/object/CCMPObject.js +68 -0
  154. package/dist/server/entities/ccmp/object/CCMPObjectsManager.d.ts +9 -0
  155. package/dist/server/entities/ccmp/object/CCMPObjectsManager.js +27 -0
  156. package/dist/server/entities/ccmp/ped/CCMPPed.d.ts +33 -0
  157. package/dist/server/entities/ccmp/ped/CCMPPed.js +82 -0
  158. package/dist/server/entities/ccmp/ped/CCMPPedsManager.d.ts +9 -0
  159. package/dist/server/entities/ccmp/ped/CCMPPedsManager.js +28 -0
  160. package/dist/server/entities/ccmp/player/CCMPPlayer.d.ts +65 -0
  161. package/dist/server/entities/ccmp/player/CCMPPlayer.js +180 -0
  162. package/dist/server/entities/ccmp/player/CCMPPlayersManager.d.ts +12 -0
  163. package/dist/server/entities/ccmp/player/CCMPPlayersManager.js +66 -0
  164. package/dist/server/entities/ccmp/vehicle/CCMPVehicle.d.ts +58 -0
  165. package/dist/server/entities/ccmp/vehicle/CCMPVehicle.js +161 -0
  166. package/dist/server/entities/ccmp/vehicle/CCMPVehiclesManager.d.ts +9 -0
  167. package/dist/server/entities/ccmp/vehicle/CCMPVehiclesManager.js +31 -0
  168. package/dist/server/entities/ccmp/worldObject/CCMPWorldObject.d.ts +9 -0
  169. package/dist/server/entities/ccmp/worldObject/CCMPWorldObject.js +7 -0
  170. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsIterator.d.ts +10 -0
  171. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsIterator.js +40 -0
  172. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsManager.d.ts +11 -0
  173. package/dist/server/entities/ccmp/worldObject/CCMPWorldObjectsManager.js +16 -0
  174. package/dist/server/entities/mock/player/MockPlayersManager.js +2 -1
  175. package/dist/server/entities/ragemp/entity/RageEntity.d.ts +5 -1
  176. package/dist/server/entities/ragemp/entity/RageEntity.js +17 -1
  177. package/dist/server/entities/ragemp/object/RageObjectsManager.js +1 -1
  178. package/dist/server/entities/ragemp/ped/RagePedsManager.js +1 -1
  179. package/dist/server/entities/ragemp/vehicle/RageVehiclesManager.js +1 -1
  180. package/dist/server/factories/ccmp/CCMPManagersFactory.d.ts +23 -0
  181. package/dist/server/factories/ccmp/CCMPManagersFactory.js +46 -0
  182. package/dist/server/net/ccmp/CCMPNetManager.d.ts +19 -0
  183. package/dist/server/net/ccmp/CCMPNetManager.js +112 -0
  184. package/dist/server/net/ccmp/events/CCMPEventsManager.d.ts +17 -0
  185. package/dist/server/net/ccmp/events/CCMPEventsManager.js +54 -0
  186. package/dist/server/net/ccmp/rpc/CCMPRPCManager.d.ts +8 -0
  187. package/dist/server/net/ccmp/rpc/CCMPRPCManager.js +18 -0
  188. package/dist/server/net/common/events/types.d.ts +2 -0
  189. package/dist/server/net/common/events/types.js +1 -0
  190. package/dist/server/utils/ccmp/CCMPUtilsManager.d.ts +4 -0
  191. package/dist/server/utils/ccmp/CCMPUtilsManager.js +9 -0
  192. package/dist/server/world/ccmp/CCMPWorldManager.d.ts +10 -0
  193. package/dist/server/world/ccmp/CCMPWorldManager.js +24 -0
  194. package/package.json +3 -1
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCMPNetManager = void 0;
4
+ const CCMPEventsManager_1 = require("./events/CCMPEventsManager");
5
+ const CCMPRPCManager_1 = require("./rpc/CCMPRPCManager");
6
+ /**
7
+ * Имя cooperation-события для синтеза `rm::playerReady` на клиенте.
8
+ *
9
+ * Клиент шлёт это сразу после `connectionStateChanged.connected = true`;
10
+ * сервер отвечает тому же игроку этим же именем с `{ remoteId }`. Клиентский
11
+ * `CCMPEventsBridge` ловит ответ и эмитит `rm::playerReady`.
12
+ */
13
+ const CLIENT_READY_EVENT = "rm::clientReady";
14
+ /**
15
+ * Имя приватного события для зеркалирования клиентских `console.*` вызовов
16
+ * в серверный stdout. Реализация клиента — `CCMPConsoleForwarder`.
17
+ */
18
+ const CLIENT_LOG_EVENT = "rm::clientLog";
19
+ function isSerializedError(value) {
20
+ return typeof value === "object" && value !== null && value.__error === true;
21
+ }
22
+ function isSerializedToString(value) {
23
+ return (typeof value === "object" && value !== null && typeof value.__toString === "string");
24
+ }
25
+ function rehydrateArg(value) {
26
+ if (isSerializedError(value)) {
27
+ // Приоритет: stack -> name+message -> toString-репрезентация.
28
+ if (value.stack) {
29
+ return value.stack;
30
+ }
31
+ if (value.name && value.message) {
32
+ return `${value.name}: ${value.message}`;
33
+ }
34
+ if (value.message) {
35
+ return value.message;
36
+ }
37
+ if (value.toString) {
38
+ return value.toString;
39
+ }
40
+ return "<unknown error>";
41
+ }
42
+ if (isSerializedToString(value)) {
43
+ return value.__toString;
44
+ }
45
+ return value;
46
+ }
47
+ function pickConsoleSink(level) {
48
+ switch (level) {
49
+ case "error":
50
+ return console.error.bind(console);
51
+ case "warn":
52
+ return console.warn.bind(console);
53
+ case "info":
54
+ return console.info ? console.info.bind(console) : console.log.bind(console);
55
+ case "debug":
56
+ return console.debug ? console.debug.bind(console) : console.log.bind(console);
57
+ case "log":
58
+ default:
59
+ return console.log.bind(console);
60
+ }
61
+ }
62
+ class CCMPNetManager {
63
+ _eventsManager;
64
+ _rpcManager;
65
+ get events() {
66
+ return this._eventsManager;
67
+ }
68
+ get rpc() {
69
+ return this._rpcManager;
70
+ }
71
+ constructor() {
72
+ this._eventsManager = new CCMPEventsManager_1.CCMPEventsManager();
73
+ this._rpcManager = new CCMPRPCManager_1.CCMPRPCManager();
74
+ this._registerClientReadyCooperation();
75
+ this._registerClientLogForwarder();
76
+ // Маркер успешной загрузки актуального rock-mod на серверной стороне.
77
+ // Если эта строка не появилась в stdout при старте ccmp-server.exe —
78
+ // значит сервер всё ещё держит в памяти старую сборку rock-mod (не
79
+ // забыт перезапуск процесса).
80
+ console.log("[rock-mod] CCMP server net manager initialized");
81
+ }
82
+ _registerClientReadyCooperation() {
83
+ // Регистрируем напрямую через `ccmp.on` (а не через events.onClient),
84
+ // потому что событие не входит в `IClientToServerEvents` — это
85
+ // приватный rock-mod протокол.
86
+ ccmp.on(CLIENT_READY_EVENT, (player) => {
87
+ const ccmpPlayer = ccmp.players.getById(player.id);
88
+ if (!ccmpPlayer) {
89
+ return;
90
+ }
91
+ // Зеркалит контракт client-side `CCMPEventsManager`: payload всегда
92
+ // массивом, на клиенте развернётся обратно в позиционные аргументы.
93
+ ccmpPlayer.emit(CLIENT_READY_EVENT, [{ remoteId: player.id }]);
94
+ });
95
+ }
96
+ /**
97
+ * Принимает зеркалированные клиентские `console.*` вызовы и печатает в
98
+ * серверный stdout. Необходимо для отладки CCMP-клиента: иначе ошибки
99
+ * boot'а уходят в игровую консоль (F8), не видны разработчику.
100
+ *
101
+ * Парный клиент — `CCMPConsoleForwarder`.
102
+ */
103
+ _registerClientLogForwarder() {
104
+ ccmp.on(CLIENT_LOG_EVENT, (player, payload) => {
105
+ const level = payload?.level ?? "log";
106
+ const args = Array.isArray(payload?.args) ? payload.args : [];
107
+ const sink = pickConsoleSink(level);
108
+ sink(`[client:${player.id}]`, ...args.map(rehydrateArg));
109
+ });
110
+ }
111
+ }
112
+ exports.CCMPNetManager = CCMPNetManager;
@@ -0,0 +1,17 @@
1
+ import { type CcmpServerBuiltinEvents } from "@classic-mp/types/server";
2
+ import { type IEventsManager } from "../../common/events/IEventsManager";
3
+ import { type IServerInternalEvents } from "../../common/events/types";
4
+ import { type IClientToServerEvents, type IServerToClientEvents } from "../../../../shared";
5
+ import { type CCMPPlayer } from "../../../entities/ccmp/player/CCMPPlayer";
6
+ export interface ICCMPServerInternalEvents extends IServerInternalEvents, CcmpServerBuiltinEvents {
7
+ }
8
+ export declare class CCMPEventsManager implements IEventsManager {
9
+ onInternal(events: Partial<ICCMPServerInternalEvents>): void;
10
+ offInternal<K extends keyof IServerInternalEvents>(eventName: K, listener: IServerInternalEvents[K]): void;
11
+ emitInternal<K extends keyof IServerInternalEvents>(eventName: K, ...args: Parameters<IServerInternalEvents[K]>): void;
12
+ onClient(events: Partial<IClientToServerEvents>): void;
13
+ offClient<K extends keyof IClientToServerEvents>(eventName: K, listener: IClientToServerEvents[K]): void;
14
+ emitClient<K extends keyof IServerToClientEvents>(player: CCMPPlayer, eventName: K, ...args: Parameters<IServerToClientEvents[K]>): void;
15
+ emitAllClients<K extends keyof IServerToClientEvents>(eventName: K, ...args: Parameters<IServerToClientEvents[K]>): void;
16
+ private _getRockModPlayer;
17
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCMPEventsManager = void 0;
4
+ const RockMod_1 = require("../../../RockMod");
5
+ class CCMPEventsManager {
6
+ onInternal(events) {
7
+ for (const eventName of Object.keys(events)) {
8
+ // @ts-expect-error mixed CCMP built-in + rm:: keys typing
9
+ ccmp.on(eventName, events[eventName]);
10
+ }
11
+ }
12
+ offInternal(eventName, listener) {
13
+ ccmp.off(eventName, listener);
14
+ }
15
+ emitInternal(eventName, ...args) {
16
+ ccmp.emit(eventName, ...args);
17
+ }
18
+ onClient(events) {
19
+ for (const eventName of Object.keys(events)) {
20
+ // @ts-expect-error generic event typing
21
+ const handler = events[eventName];
22
+ // Клиент шлёт variadic args упакованными в массив через
23
+ // `ccmp.emitServer(name, args)` (см. client CCMPEventsManager.emitServer).
24
+ // Разворачиваем массив обратно в позиционные аргументы. Скалярные/объектные
25
+ // payload'ы прокидываем как единственный аргумент.
26
+ ccmp.on(eventName, (player, data) => {
27
+ const rockModPlayer = this._getRockModPlayer(player);
28
+ const args = Array.isArray(data) ? data : [data];
29
+ handler(rockModPlayer, ...args);
30
+ });
31
+ }
32
+ }
33
+ offClient(eventName, listener) {
34
+ ccmp.off(eventName, listener);
35
+ }
36
+ emitClient(player, eventName, ...args) {
37
+ const ccmpPlayer = ccmp.players.getById(player.id);
38
+ if (!ccmpPlayer) {
39
+ throw new Error(`Player with id ${player.id} not found`);
40
+ }
41
+ ccmpPlayer.emit(eventName, args);
42
+ }
43
+ emitAllClients(eventName, ...args) {
44
+ ccmp.emitAllClients(eventName, args);
45
+ }
46
+ _getRockModPlayer(player) {
47
+ const playerId = player?.id;
48
+ if (typeof playerId !== "number") {
49
+ throw new Error("CCMPEventsManager.onClient: event sender does not contain numeric player id");
50
+ }
51
+ return RockMod_1.RockMod.instance.players.getByID(playerId);
52
+ }
53
+ }
54
+ exports.CCMPEventsManager = CCMPEventsManager;
@@ -0,0 +1,8 @@
1
+ import { type IRPCManager } from "../../common/rpc/IRPCManager";
2
+ import { type CCMPPlayer } from "../../../entities/ccmp/player/CCMPPlayer";
3
+ import { type IClientRPCList, type IServerRPCList } from "../../../../shared/net/common/rpc/types";
4
+ export declare class CCMPRPCManager implements IRPCManager {
5
+ register<K extends keyof IServerRPCList>(_rpcName: K, _handler: (player: CCMPPlayer, ...args: Parameters<IServerRPCList[K]>) => ReturnType<IServerRPCList[K]>): void;
6
+ unregister<K extends keyof IServerRPCList>(_rpcName: K): void;
7
+ emitClient<K extends keyof IClientRPCList>(_player: CCMPPlayer, _rpcName: K, ..._args: Parameters<IClientRPCList[K]>): Promise<ReturnType<IClientRPCList[K]>>;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCMPRPCManager = void 0;
4
+ const notImplemented = (name) => {
5
+ throw new Error(`Not implemented yet: ${name}`);
6
+ };
7
+ class CCMPRPCManager {
8
+ register(_rpcName, _handler) {
9
+ notImplemented("CCMPRPCManager.register");
10
+ }
11
+ unregister(_rpcName) {
12
+ notImplemented("CCMPRPCManager.unregister");
13
+ }
14
+ emitClient(_player, _rpcName, ..._args) {
15
+ return notImplemented("CCMPRPCManager.emitClient");
16
+ }
17
+ }
18
+ exports.CCMPRPCManager = CCMPRPCManager;
@@ -9,6 +9,7 @@ export declare enum ServerInternalEventName {
9
9
  PlayerExitVehicle = "rm::playerExitVehicle",
10
10
  PlayerEnteredColshape = "rm::playerEnteredColshape",
11
11
  PlayerLeftColshape = "rm::playerLeftColshape",
12
+ PlayerDimensionChange = "rm::playerDimensionChange",
12
13
  EntityCreated = "rm::entityCreated",
13
14
  EntityDestroyed = "rm::entityDestroyed"
14
15
  }
@@ -22,6 +23,7 @@ export interface IServerInternalEvents {
22
23
  [ServerInternalEventName.PlayerExitVehicle]: (player: IPlayer, vehicle: IVehicle) => void;
23
24
  [ServerInternalEventName.PlayerEnteredColshape]: (player: IPlayer, colshape: IColshape) => void;
24
25
  [ServerInternalEventName.PlayerLeftColshape]: (player: IPlayer, colshape: IColshape) => void;
26
+ [ServerInternalEventName.PlayerDimensionChange]: (player: IPlayer, oldDimension: number, newDimension: number) => void;
25
27
  [ServerInternalEventName.EntityCreated]: (object: IBaseObject) => void;
26
28
  [ServerInternalEventName.EntityDestroyed]: (object: IBaseObject) => void;
27
29
  }
@@ -12,6 +12,7 @@ var ServerInternalEventName;
12
12
  ServerInternalEventName["PlayerExitVehicle"] = "rm::playerExitVehicle";
13
13
  ServerInternalEventName["PlayerEnteredColshape"] = "rm::playerEnteredColshape";
14
14
  ServerInternalEventName["PlayerLeftColshape"] = "rm::playerLeftColshape";
15
+ ServerInternalEventName["PlayerDimensionChange"] = "rm::playerDimensionChange";
15
16
  ServerInternalEventName["EntityCreated"] = "rm::entityCreated";
16
17
  ServerInternalEventName["EntityDestroyed"] = "rm::entityDestroyed";
17
18
  })(ServerInternalEventName || (exports.ServerInternalEventName = ServerInternalEventName = {}));
@@ -0,0 +1,4 @@
1
+ import { type IUtilsManager } from "../common";
2
+ export declare class CCMPUtilsManager implements IUtilsManager {
3
+ hash(value: string): number;
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCMPUtilsManager = void 0;
4
+ class CCMPUtilsManager {
5
+ hash(value) {
6
+ return ccmp.hash(value);
7
+ }
8
+ }
9
+ exports.CCMPUtilsManager = CCMPUtilsManager;
@@ -0,0 +1,10 @@
1
+ import { type IWorldManager, type IWorldTime } from "../common";
2
+ import type { WeatherTypeEnum } from "../../../shared/common/world";
3
+ export declare class CCMPWorldManager implements IWorldManager {
4
+ get time(): IWorldTime;
5
+ get weather(): WeatherTypeEnum;
6
+ setTimeHour(value: number): void;
7
+ setTimeMinute(value: number): void;
8
+ setTimeSecond(value: number): void;
9
+ setWeather(value: WeatherTypeEnum): void;
10
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCMPWorldManager = void 0;
4
+ class CCMPWorldManager {
5
+ get time() {
6
+ return ccmp.world.time;
7
+ }
8
+ get weather() {
9
+ return ccmp.world.weather;
10
+ }
11
+ setTimeHour(value) {
12
+ ccmp.world.hour = value;
13
+ }
14
+ setTimeMinute(value) {
15
+ ccmp.world.minute = value;
16
+ }
17
+ setTimeSecond(value) {
18
+ ccmp.world.second = value;
19
+ }
20
+ setWeather(value) {
21
+ ccmp.world.weather = value;
22
+ }
23
+ }
24
+ exports.CCMPWorldManager = CCMPWorldManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rock-mod",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "scripts": {
39
39
  "start": "npx tsx src/server/index.ts",
40
+ "generate:natives": "node scripts/generate-native-dispatch.mjs",
40
41
  "build": "npm run build:shared && npm run build:server && npm run build:client",
41
42
  "build:shared": "tsc --project src/shared/tsconfig.json",
42
43
  "build:server": "tsc --project src/server/tsconfig.json",
@@ -86,6 +87,7 @@
86
87
  "@swc/helpers": "^0.5.15"
87
88
  },
88
89
  "devDependencies": {
90
+ "@classic-mp/types": "^1.6.0",
89
91
  "@rollup/plugin-commonjs": "^25.0.7",
90
92
  "@rollup/plugin-node-resolve": "^15.2.3",
91
93
  "@rollup/plugin-terser": "^0.4.4",