@infernus/core 0.8.7
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.
- package/.eslintrc +3 -0
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/bundle.d.ts +1668 -0
- package/dist/bundle.js +1 -0
- package/package.json +37 -0
- package/rollup.config.mjs +29 -0
- package/src/controllers/command/index.ts +57 -0
- package/src/controllers/filterscript/index.ts +69 -0
- package/src/controllers/gamemode/index.ts +277 -0
- package/src/controllers/gamemode/settings.ts +3 -0
- package/src/controllers/gametext/index.ts +61 -0
- package/src/controllers/gangzone/baseGangZone.ts +284 -0
- package/src/controllers/gangzone/gangZoneBus.ts +8 -0
- package/src/controllers/gangzone/gangZoneEvent.ts +91 -0
- package/src/controllers/gangzone/index.ts +2 -0
- package/src/controllers/i18n/index.ts +81 -0
- package/src/controllers/index.ts +12 -0
- package/src/controllers/menu/baseMenu.ts +203 -0
- package/src/controllers/menu/index.ts +2 -0
- package/src/controllers/menu/menuBus.ts +8 -0
- package/src/controllers/menu/menuEvent.ts +76 -0
- package/src/controllers/netstats/index.ts +43 -0
- package/src/controllers/npc/index.ts +2 -0
- package/src/controllers/npc/npcEvent.ts +26 -0
- package/src/controllers/npc/npcFunc.ts +64 -0
- package/src/controllers/player/basePlayer.ts +980 -0
- package/src/controllers/player/index.ts +3 -0
- package/src/controllers/player/pauseChecker.ts +39 -0
- package/src/controllers/player/playerBus.ts +9 -0
- package/src/controllers/player/playerEvent.ts +468 -0
- package/src/controllers/promise/client/index.ts +31 -0
- package/src/controllers/promise/dialog/index.ts +143 -0
- package/src/controllers/textdraw/baseTextDraw.ts +416 -0
- package/src/controllers/textdraw/index.ts +2 -0
- package/src/controllers/textdraw/textdrawBus.ts +8 -0
- package/src/controllers/textdraw/textdrawEvent.ts +61 -0
- package/src/controllers/vehicle/baseVehicle.ts +503 -0
- package/src/controllers/vehicle/index.ts +2 -0
- package/src/controllers/vehicle/vehicleBus.ts +8 -0
- package/src/controllers/vehicle/vehicleEvent.ts +201 -0
- package/src/enums/artwork.ts +5 -0
- package/src/enums/clickSources.ts +3 -0
- package/src/enums/dialogStyles.ts +8 -0
- package/src/enums/editResponseTypes.ts +5 -0
- package/src/enums/index.ts +18 -0
- package/src/enums/invalid.ts +13 -0
- package/src/enums/keys.ts +25 -0
- package/src/enums/limits.ts +18 -0
- package/src/enums/marker.ts +5 -0
- package/src/enums/netstat.ts +11 -0
- package/src/enums/npc.ts +11 -0
- package/src/enums/object.ts +25 -0
- package/src/enums/player.ts +92 -0
- package/src/enums/record.ts +5 -0
- package/src/enums/specialActions.ts +22 -0
- package/src/enums/streamer.ts +10 -0
- package/src/enums/textdrawFonts.ts +23 -0
- package/src/enums/vehicle.ts +32 -0
- package/src/enums/weapon.ts +82 -0
- package/src/interfaces/index.ts +233 -0
- package/src/logger/index.ts +24 -0
- package/src/main.ts +6 -0
- package/src/types/index.ts +48 -0
- package/src/utils/EventBus.ts +60 -0
- package/src/utils/animateUtils.ts +2504 -0
- package/src/utils/colorUtils.ts +43 -0
- package/src/utils/helperUtils.ts +403 -0
- package/src/utils/vehicleUtils.ts +321 -0
- package/src/wrapper/native/callbacks/index.ts +395 -0
- package/src/wrapper/native/functions/index.ts +3131 -0
- package/src/wrapper/streamer/3dtext/3dTextBus.ts +8 -0
- package/src/wrapper/streamer/3dtext/3dTextEvent.ts +70 -0
- package/src/wrapper/streamer/3dtext/base3DText.ts +184 -0
- package/src/wrapper/streamer/3dtext/index.ts +2 -0
- package/src/wrapper/streamer/actor/actorBus.ts +8 -0
- package/src/wrapper/streamer/actor/actorEvent.ts +95 -0
- package/src/wrapper/streamer/actor/baseActor.ts +278 -0
- package/src/wrapper/streamer/actor/index.ts +2 -0
- package/src/wrapper/streamer/area/areaBus.ts +8 -0
- package/src/wrapper/streamer/area/areaEvent.ts +99 -0
- package/src/wrapper/streamer/area/baseArea.ts +450 -0
- package/src/wrapper/streamer/area/index.ts +2 -0
- package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +136 -0
- package/src/wrapper/streamer/checkpoint/checkPointBus.ts +8 -0
- package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +100 -0
- package/src/wrapper/streamer/checkpoint/index.ts +2 -0
- package/src/wrapper/streamer/common/index.ts +318 -0
- package/src/wrapper/streamer/index.ts +9 -0
- package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +128 -0
- package/src/wrapper/streamer/mapIcon/index.ts +2 -0
- package/src/wrapper/streamer/mapIcon/mapIconBus.ts +8 -0
- package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +67 -0
- package/src/wrapper/streamer/object/baseObject.ts +415 -0
- package/src/wrapper/streamer/object/index.ts +2 -0
- package/src/wrapper/streamer/object/objectBus.ts +8 -0
- package/src/wrapper/streamer/object/objectEvent.ts +177 -0
- package/src/wrapper/streamer/pickup/basePickup.ts +114 -0
- package/src/wrapper/streamer/pickup/index.ts +2 -0
- package/src/wrapper/streamer/pickup/pickupBus.ts +8 -0
- package/src/wrapper/streamer/pickup/pickupEvent.ts +84 -0
- package/src/wrapper/streamer/raceCP/baseRaceCP.ts +151 -0
- package/src/wrapper/streamer/raceCP/index.ts +2 -0
- package/src/wrapper/streamer/raceCP/raceCPBus.ts +8 -0
- package/src/wrapper/streamer/raceCP/raceCPEvent.ts +100 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Player } from "@/controllers/player";
|
|
2
|
+
import type { TCommonCallback } from "@/types";
|
|
3
|
+
import { promisifyCallback } from "@/utils/helperUtils";
|
|
4
|
+
import { OnGameModeExit } from "@/wrapper/native/callbacks";
|
|
5
|
+
import {
|
|
6
|
+
OnPlayerPickUpDynamicPickup,
|
|
7
|
+
StreamerItemTypes,
|
|
8
|
+
} from "@infernus/streamer";
|
|
9
|
+
import { Streamer } from "../common";
|
|
10
|
+
import type { DynamicPickup } from "./basePickup";
|
|
11
|
+
import { pickupBus, pickupHooks } from "./pickupBus";
|
|
12
|
+
|
|
13
|
+
export class DynamicPickupEvent<P extends Player, K extends DynamicPickup> {
|
|
14
|
+
private readonly pickups = new Map<number, K>();
|
|
15
|
+
private readonly players;
|
|
16
|
+
|
|
17
|
+
constructor(playersMap: Map<number, P>, destroyOnExit = true) {
|
|
18
|
+
this.players = playersMap;
|
|
19
|
+
pickupBus.on(pickupHooks.created, (pickup: K) => {
|
|
20
|
+
this.pickups.set(pickup.id, pickup);
|
|
21
|
+
});
|
|
22
|
+
pickupBus.on(pickupHooks.destroyed, (pickup: K) => {
|
|
23
|
+
this.pickups.delete(pickup.id);
|
|
24
|
+
});
|
|
25
|
+
if (destroyOnExit) {
|
|
26
|
+
OnGameModeExit(() => {
|
|
27
|
+
this.pickups.forEach((p) => p.destroy());
|
|
28
|
+
this.pickups.clear();
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
OnPlayerPickUpDynamicPickup(
|
|
32
|
+
(playerid: number, pickupid: number): number => {
|
|
33
|
+
const k = this.pickups.get(pickupid);
|
|
34
|
+
if (!k) return 0;
|
|
35
|
+
const p = this.players.get(playerid);
|
|
36
|
+
if (!p) return 0;
|
|
37
|
+
const pFn = promisifyCallback(
|
|
38
|
+
this,
|
|
39
|
+
"onPlayerPickUp",
|
|
40
|
+
"OnPlayerPickUpDynamicPickup"
|
|
41
|
+
);
|
|
42
|
+
return pFn(p, k);
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
Streamer.onItemStreamIn((type, item, player) => {
|
|
46
|
+
if (type === StreamerItemTypes.PICKUP) {
|
|
47
|
+
const pk = this.pickups.get(item);
|
|
48
|
+
const p = this.players.get(player);
|
|
49
|
+
if (pk && p)
|
|
50
|
+
return promisifyCallback(
|
|
51
|
+
this,
|
|
52
|
+
"onStreamIn",
|
|
53
|
+
"Streamer_OnItemStreamIn"
|
|
54
|
+
)(pk, p);
|
|
55
|
+
}
|
|
56
|
+
return 1;
|
|
57
|
+
});
|
|
58
|
+
Streamer.onItemStreamOut((type, item, player) => {
|
|
59
|
+
if (type === StreamerItemTypes.PICKUP) {
|
|
60
|
+
const pk = this.pickups.get(item);
|
|
61
|
+
const p = this.players.get(player);
|
|
62
|
+
if (pk && p)
|
|
63
|
+
return promisifyCallback(
|
|
64
|
+
this,
|
|
65
|
+
"onStreamOut",
|
|
66
|
+
"Streamer_OnItemStreamOut"
|
|
67
|
+
)(pk, p);
|
|
68
|
+
}
|
|
69
|
+
return 1;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
onPlayerPickUp?(player: P, pickup: K): TCommonCallback;
|
|
74
|
+
onStreamIn?(pickup: K, player: P): TCommonCallback;
|
|
75
|
+
onStreamOut?(pickup: K, player: P): TCommonCallback;
|
|
76
|
+
|
|
77
|
+
getPickupsArr(): Array<K> {
|
|
78
|
+
return [...this.pickups.values()];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
getPickupsMap(): Map<number, K> {
|
|
82
|
+
return this.pickups;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Player } from "@/controllers/player";
|
|
2
|
+
import type { IDynamicRaceCp } from "@/interfaces";
|
|
3
|
+
|
|
4
|
+
import { logger } from "@/logger";
|
|
5
|
+
import {
|
|
6
|
+
CreateDynamicRaceCP,
|
|
7
|
+
CreateDynamicRaceCPEx,
|
|
8
|
+
DestroyDynamicCP,
|
|
9
|
+
GetPlayerVisibleDynamicRaceCP,
|
|
10
|
+
IsPlayerInDynamicRaceCP,
|
|
11
|
+
IsValidDynamicCP,
|
|
12
|
+
StreamerDistances,
|
|
13
|
+
StreamerItemTypes,
|
|
14
|
+
TogglePlayerAllDynamicRaceCPs,
|
|
15
|
+
TogglePlayerDynamicRaceCP,
|
|
16
|
+
} from "@infernus/streamer";
|
|
17
|
+
import { Streamer } from "../common";
|
|
18
|
+
|
|
19
|
+
import { raceCPBus, raceCPHooks } from "./raceCPBus";
|
|
20
|
+
|
|
21
|
+
export class DynamicRaceCP {
|
|
22
|
+
private sourceInfo: IDynamicRaceCp;
|
|
23
|
+
private _id = -1;
|
|
24
|
+
get id(): number {
|
|
25
|
+
return this._id;
|
|
26
|
+
}
|
|
27
|
+
constructor(checkPoint: IDynamicRaceCp) {
|
|
28
|
+
this.sourceInfo = checkPoint;
|
|
29
|
+
}
|
|
30
|
+
create(): void | this {
|
|
31
|
+
if (this.id !== -1)
|
|
32
|
+
return logger.warn("[StreamerRaceCP]: Unable to create checkpoint again");
|
|
33
|
+
let { streamdistance, worldid, interiorid, playerid, areaid, priority } =
|
|
34
|
+
this.sourceInfo;
|
|
35
|
+
const { type, size, x, y, z, nextx, nexty, nextz, extended } =
|
|
36
|
+
this.sourceInfo;
|
|
37
|
+
|
|
38
|
+
if (type < 0 || type > 8)
|
|
39
|
+
return logger.error("[StreamerRaceCP]: Invalid type");
|
|
40
|
+
|
|
41
|
+
if (size < 0) return logger.error("[StreamerRaceCP]: Invalid size");
|
|
42
|
+
|
|
43
|
+
streamdistance ??= StreamerDistances.RACE_CP_SD;
|
|
44
|
+
priority ??= 0;
|
|
45
|
+
|
|
46
|
+
if (extended) {
|
|
47
|
+
if (typeof worldid === "number") worldid = [-1];
|
|
48
|
+
else worldid ??= [-1];
|
|
49
|
+
if (typeof interiorid === "number") interiorid = [-1];
|
|
50
|
+
else interiorid ??= [-1];
|
|
51
|
+
if (typeof playerid === "number") playerid = [-1];
|
|
52
|
+
else playerid ??= [-1];
|
|
53
|
+
if (typeof areaid === "number") areaid = [-1];
|
|
54
|
+
else areaid ??= [-1];
|
|
55
|
+
|
|
56
|
+
this._id = CreateDynamicRaceCPEx(
|
|
57
|
+
type,
|
|
58
|
+
x,
|
|
59
|
+
y,
|
|
60
|
+
z,
|
|
61
|
+
nextx,
|
|
62
|
+
nexty,
|
|
63
|
+
nextz,
|
|
64
|
+
size,
|
|
65
|
+
streamdistance,
|
|
66
|
+
worldid,
|
|
67
|
+
interiorid,
|
|
68
|
+
playerid,
|
|
69
|
+
areaid,
|
|
70
|
+
priority
|
|
71
|
+
);
|
|
72
|
+
} else {
|
|
73
|
+
if (Array.isArray(worldid)) worldid = -1;
|
|
74
|
+
else worldid ??= -1;
|
|
75
|
+
if (Array.isArray(interiorid)) interiorid = -1;
|
|
76
|
+
else interiorid ??= -1;
|
|
77
|
+
if (Array.isArray(playerid)) playerid = -1;
|
|
78
|
+
else playerid ??= -1;
|
|
79
|
+
if (Array.isArray(areaid)) areaid = -1;
|
|
80
|
+
else areaid ??= -1;
|
|
81
|
+
|
|
82
|
+
this._id = CreateDynamicRaceCP(
|
|
83
|
+
type,
|
|
84
|
+
x,
|
|
85
|
+
y,
|
|
86
|
+
z,
|
|
87
|
+
nextx,
|
|
88
|
+
nexty,
|
|
89
|
+
nextz,
|
|
90
|
+
size,
|
|
91
|
+
worldid,
|
|
92
|
+
interiorid,
|
|
93
|
+
playerid,
|
|
94
|
+
streamdistance,
|
|
95
|
+
areaid,
|
|
96
|
+
priority
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
raceCPBus.emit(raceCPHooks.created, this);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
destroy(): void | this {
|
|
104
|
+
if (this.id === -1)
|
|
105
|
+
return logger.warn(
|
|
106
|
+
"[StreamerRaceCP]: Unable to destroy the checkpoint before create"
|
|
107
|
+
);
|
|
108
|
+
DestroyDynamicCP(this.id);
|
|
109
|
+
raceCPBus.emit(raceCPHooks.destroyed, this);
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
isValid(): boolean {
|
|
113
|
+
return IsValidDynamicCP(this.id);
|
|
114
|
+
}
|
|
115
|
+
togglePlayer<P extends Player>(player: P, toggle: boolean): void | this {
|
|
116
|
+
if (this.id === -1)
|
|
117
|
+
return logger.warn(
|
|
118
|
+
"[StreamerRaceCP]: Unable to toggle the player before create"
|
|
119
|
+
);
|
|
120
|
+
TogglePlayerDynamicRaceCP(player.id, this.id, toggle);
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
static togglePlayerAll<P extends Player>(player: P, toggle: boolean): number {
|
|
124
|
+
return TogglePlayerAllDynamicRaceCPs(player.id, toggle);
|
|
125
|
+
}
|
|
126
|
+
isPlayerIn<P extends Player>(player: P): boolean {
|
|
127
|
+
if (this.id === -1) return false;
|
|
128
|
+
return IsPlayerInDynamicRaceCP(player.id, this.id);
|
|
129
|
+
}
|
|
130
|
+
static getPlayerVisible<P extends Player, C extends DynamicRaceCP>(
|
|
131
|
+
player: P,
|
|
132
|
+
checkpoints: Map<number, C>
|
|
133
|
+
): C | undefined {
|
|
134
|
+
return checkpoints.get(GetPlayerVisibleDynamicRaceCP(player.id));
|
|
135
|
+
}
|
|
136
|
+
toggleCallbacks(toggle = true): void | number {
|
|
137
|
+
if (this.id === -1)
|
|
138
|
+
return logger.warn(
|
|
139
|
+
"[StreamerRaceCP]: Unable to toggle callbacks before create"
|
|
140
|
+
);
|
|
141
|
+
return Streamer.toggleItemCallbacks(
|
|
142
|
+
StreamerItemTypes.RACE_CP,
|
|
143
|
+
this.id,
|
|
144
|
+
toggle
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
isToggleCallbacks(): boolean {
|
|
148
|
+
if (this.id === -1) false;
|
|
149
|
+
return Streamer.isToggleItemCallbacks(StreamerItemTypes.RACE_CP, this.id);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Player } from "@/controllers/player";
|
|
2
|
+
import type { TCommonCallback } from "@/types";
|
|
3
|
+
import { promisifyCallback } from "@/utils/helperUtils";
|
|
4
|
+
import { OnGameModeExit } from "@/wrapper/native/callbacks";
|
|
5
|
+
import {
|
|
6
|
+
OnPlayerEnterDynamicRaceCP,
|
|
7
|
+
OnPlayerLeaveDynamicRaceCP,
|
|
8
|
+
StreamerItemTypes,
|
|
9
|
+
} from "@infernus/streamer";
|
|
10
|
+
import { Streamer } from "../common";
|
|
11
|
+
import type { DynamicRaceCP } from "./baseRaceCP";
|
|
12
|
+
import { raceCPBus, raceCPHooks } from "./raceCPBus";
|
|
13
|
+
|
|
14
|
+
export class DynamicRaceCPEvent<P extends Player, R extends DynamicRaceCP> {
|
|
15
|
+
private readonly raceCPs = new Map<number, R>();
|
|
16
|
+
private readonly players;
|
|
17
|
+
|
|
18
|
+
constructor(playersMap: Map<number, P>, destroyOnExit = true) {
|
|
19
|
+
this.players = playersMap;
|
|
20
|
+
raceCPBus.on(raceCPHooks.created, (checkpoint: R) => {
|
|
21
|
+
this.raceCPs.set(checkpoint.id, checkpoint);
|
|
22
|
+
});
|
|
23
|
+
raceCPBus.on(raceCPHooks.destroyed, (checkpoint: R) => {
|
|
24
|
+
this.raceCPs.delete(checkpoint.id);
|
|
25
|
+
});
|
|
26
|
+
if (destroyOnExit) {
|
|
27
|
+
OnGameModeExit(() => {
|
|
28
|
+
this.raceCPs.forEach((r) => r.destroy());
|
|
29
|
+
this.raceCPs.clear();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
OnPlayerEnterDynamicRaceCP(
|
|
33
|
+
(playerid: number, checkpointid: number): number => {
|
|
34
|
+
const cp = this.raceCPs.get(checkpointid);
|
|
35
|
+
if (!cp) return 0;
|
|
36
|
+
const p = this.players.get(playerid);
|
|
37
|
+
if (!p) return 0;
|
|
38
|
+
const pFn = promisifyCallback(
|
|
39
|
+
this,
|
|
40
|
+
"onPlayerEnter",
|
|
41
|
+
"OnPlayerEnterDynamicRaceCP"
|
|
42
|
+
);
|
|
43
|
+
return pFn(p, cp);
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
OnPlayerLeaveDynamicRaceCP(
|
|
47
|
+
(playerid: number, checkpointid: number): number => {
|
|
48
|
+
const cp = this.raceCPs.get(checkpointid);
|
|
49
|
+
if (!cp) return 0;
|
|
50
|
+
const p = this.players.get(playerid);
|
|
51
|
+
if (!p) return 0;
|
|
52
|
+
const pFn = promisifyCallback(
|
|
53
|
+
this,
|
|
54
|
+
"onPlayerLeave",
|
|
55
|
+
"OnPlayerLeaveDynamicRaceCP"
|
|
56
|
+
);
|
|
57
|
+
return pFn(p, cp);
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
Streamer.onItemStreamIn((type, item, player) => {
|
|
61
|
+
if (type === StreamerItemTypes.RACE_CP) {
|
|
62
|
+
const cp = this.raceCPs.get(item);
|
|
63
|
+
const p = this.players.get(player);
|
|
64
|
+
if (cp && p)
|
|
65
|
+
return promisifyCallback(
|
|
66
|
+
this,
|
|
67
|
+
"onStreamIn",
|
|
68
|
+
"Streamer_OnItemStreamIn"
|
|
69
|
+
)(cp, p);
|
|
70
|
+
}
|
|
71
|
+
return 1;
|
|
72
|
+
});
|
|
73
|
+
Streamer.onItemStreamOut((type, item, player) => {
|
|
74
|
+
if (type === StreamerItemTypes.RACE_CP) {
|
|
75
|
+
const cp = this.raceCPs.get(item);
|
|
76
|
+
const p = this.players.get(player);
|
|
77
|
+
if (cp && p)
|
|
78
|
+
return promisifyCallback(
|
|
79
|
+
this,
|
|
80
|
+
"onStreamOut",
|
|
81
|
+
"Streamer_OnItemStreamOut"
|
|
82
|
+
)(cp, p);
|
|
83
|
+
}
|
|
84
|
+
return 1;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
onPlayerEnter?(player: P, checkpoint: R): TCommonCallback;
|
|
89
|
+
onPlayerLeave?(player: P, checkpoint: R): TCommonCallback;
|
|
90
|
+
onStreamIn?(checkpoint: R, player: P): TCommonCallback;
|
|
91
|
+
onStreamOut?(checkpoint: R, player: P): TCommonCallback;
|
|
92
|
+
|
|
93
|
+
getRaceCPsArr(): Array<R> {
|
|
94
|
+
return [...this.raceCPs.values()];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
getRaceCPsMap(): Map<number, R> {
|
|
98
|
+
return this.raceCPs;
|
|
99
|
+
}
|
|
100
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"include": ["src/**/*.ts"],
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"types": ["@sa-mp/node"],
|
|
5
|
+
"baseUrl": "./",
|
|
6
|
+
"paths": { "@/*": ["src/*"] },
|
|
7
|
+
"target": "ESNext",
|
|
8
|
+
"module": "ESNext",
|
|
9
|
+
"moduleResolution": "Node",
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"strict": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"removeComments": true
|
|
15
|
+
}
|
|
16
|
+
}
|