lenix 1.7.6 → 1.7.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.
Files changed (2) hide show
  1. package/client/client.ts +63 -65
  2. package/package.json +1 -1
package/client/client.ts CHANGED
@@ -1,54 +1,7 @@
1
1
  import { repeat } from '../shared/repeat.ts'
2
2
  import type { Vec3, Vec4 } from '../shared/types.ts'
3
3
 
4
- export const client: {
5
- entity: {
6
- handle: (entityNetId?: number) => number
7
- netId: (entity?: number) => number
8
- coords: {
9
- (excludeH: true, entity?: number, isAlive?: boolean): Vec3;
10
- (excludeH?: false, entity?: number, isAlive?: boolean): Vec4
11
- }
12
- teleport: (
13
- x: number,
14
- y: number,
15
- z: number,
16
- h?: number,
17
- entity?: number,
18
- clearArea?: boolean,
19
- alive?: boolean,
20
- deadDisable?: boolean,
21
- ragdol?: boolean
22
- ) => void
23
- playAnim: (
24
- dict: string,
25
- name: string,
26
- blendIn?: number,
27
- blendOut?: number,
28
- ped?: number,
29
- duration?: number,
30
- flag?: number,
31
- playbackFrom?: number,
32
- x?: boolean,
33
- y?: boolean,
34
- z?: boolean
35
- ) => Promise<void>
36
- stopAnim: (dict: string, ped?: number) => void
37
- }
38
- player: {
39
- serverId: (playerId?: number) => number
40
- id: (serverId?: number) => number
41
- storage: {
42
- set: <Storage>(
43
- ...args: {
44
- [K in keyof Storage]: [key: K, value: Storage[K]];
45
- }[keyof Storage]
46
- ) => void;
47
- get: <Storage, K extends keyof Storage>(key: K) => Storage[K];
48
- delete: <Storage>(key: keyof Storage) => void
49
- }
50
- }
51
- } = {
4
+ export const client = {
52
5
  entity: {
53
6
  /**
54
7
  * Gets the local entity handle from a network ID.
@@ -64,7 +17,7 @@ export const client: {
64
17
  * - entity(pedNetId) -> local ped handle
65
18
  * - entity() -> your own player ped handle
66
19
  */
67
- handle: (entityNetId = client.entity.netId()) => NetworkGetEntityFromNetworkId(entityNetId),
20
+ handle: (entityNetId: number) => NetworkGetEntityFromNetworkId(entityNetId),
68
21
 
69
22
  /**
70
23
  * Gets the network ID for an entity.
@@ -79,15 +32,15 @@ export const client: {
79
32
  * - netId(targetPed) -> network ID of that ped
80
33
  * - netId() -> network ID of your own player ped
81
34
  */
82
- netId: (entity = PlayerPedId()) => NetworkGetNetworkIdFromEntity(entity),
35
+ netId: (entity: number) => NetworkGetNetworkIdFromEntity(entity),
83
36
 
84
37
  /**
85
38
  * Gets entity coordinates and heading.
86
39
  */
87
40
  coords: (() => {
88
- function coords(excludeH: true, entity?: number, isAlive?: boolean): Vec3
89
- function coords(excludeH?: false, entity?: number, isAlive?: boolean): Vec4
90
- function coords(excludeH = false, entity = client.entity.handle(), isAlive = true) {
41
+ function coords(entity: number, excludeH: boolean, isAlive?: boolean): Vec3
42
+ function coords(entity: number, excludeH?: false, isAlive?: boolean): Vec4
43
+ function coords(entity: number, excludeH = false, isAlive = true) {
91
44
  const entityCoords = GetEntityCoords(entity, isAlive) as Vec3
92
45
 
93
46
  if (excludeH) return entityCoords
@@ -102,22 +55,28 @@ export const client: {
102
55
  })(),
103
56
 
104
57
  /* */
105
- teleport: (x, y, z, h,
106
- entity = client.entity.handle(),
58
+ teleport: (
59
+ entity: number,
60
+ x: number,
61
+ y: number,
62
+ z: number,
63
+ h?: number,
107
64
  clearArea = false,
108
65
  alive = true,
109
66
  deadDisable = false,
110
67
  ragdol = false
111
68
  ) => {
112
69
  SetEntityCoords(entity, x, y, z, alive, deadDisable, ragdol, clearArea)
113
- SetEntityHeading(entity, h ?? client.entity.coords()[3])
70
+ h && SetEntityHeading(entity, h)
114
71
  },
115
72
 
116
73
  /* */
117
- playAnim: async (dict, name,
74
+ playAnim: async (
75
+ ped: number,
76
+ dict: string,
77
+ name: string,
118
78
  blendIn = 2.0,
119
79
  blendOut = 2.0,
120
- ped = client.entity.handle(),
121
80
  duration = -1,
122
81
  flag = 0,
123
82
  playbackFrom = 0.0,
@@ -131,12 +90,33 @@ export const client: {
131
90
  },
132
91
 
133
92
  /* */
134
- stopAnim: (dict: string, ped = client.entity.handle()) => {
93
+ stopAnim: (ped: number, dict: string) => {
135
94
  RemoveAnimDict(dict)
136
95
  ClearPedTasks(ped)
137
96
  }
138
97
  },
139
98
  player: {
99
+ /* */
100
+ handle: () => PlayerPedId(),
101
+
102
+ /* */
103
+ netId: () => client.entity.netId(client.player.handle()),
104
+
105
+ /* */
106
+ coords: () => client.entity.coords(client.player.handle()),
107
+
108
+ /* */
109
+ teleport: (
110
+ x: number,
111
+ y: number,
112
+ z: number,
113
+ h?: number,
114
+ clearArea?: boolean,
115
+ alive?: boolean,
116
+ deadDisable?: boolean,
117
+ ragdol?: boolean
118
+ ) => client.entity.teleport(client.player.handle(), x, y, z, h, clearArea, alive, deadDisable, ragdol),
119
+
140
120
  /**
141
121
  * Gets a client player ID.
142
122
  *
@@ -149,7 +129,7 @@ export const client: {
149
129
  * - id(targetServerId) -> target player's client player ID
150
130
  * - id() -> your own client player ID
151
131
  */
152
- id: (serverId) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
132
+ id: (serverId?: number) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
153
133
 
154
134
  /**
155
135
  * Gets a player's server ID from their client player ID.
@@ -163,13 +143,31 @@ export const client: {
163
143
  * - serverId(targetPlayerId) -> target player's server ID
164
144
  * - serverId() -> your own server ID
165
145
  */
166
- serverId: (playerId = client.player.id()) => GetPlayerServerId(playerId),
146
+ serverId: (playerId?: number) => GetPlayerServerId(playerId ?? client.player.id()),
167
147
 
168
148
  storage: {
169
- set: (key, value) => SetResourceKvp(key, value),
170
- get: (key) => GetResourceKvpString(key),
171
- delete: (key) => DeleteResourceKvp(key),
149
+ set: <Storage>(
150
+ ...[key, value]: {
151
+ [K in keyof Storage]: [key: Extract<K, string>, value: Extract<Storage[K], string>]
152
+ }[keyof Storage]
153
+ ) => SetResourceKvp(key, value),
154
+
155
+ get: <Storage, K extends Extract<keyof Storage, string>>(
156
+ key: K,
157
+ init?: Extract<Storage[K], string>
158
+ ): Storage[K] => {
159
+ const get = GetResourceKvpString
160
+ if (!get(key)) {
161
+ if (init === undefined || init === null) throw new Error(`Failed to get Storage<${key}> value, reason: The key was never assigned before and you did not provided an initiate value`)
162
+ client.player.storage.set<Storage>(key, init)
163
+ }
164
+ return get(key) as Storage[K]
165
+ },
166
+
167
+ delete: <Storage>(
168
+ key: Extract<keyof Storage, string>
169
+ ) => DeleteResourceKvp(key),
172
170
  /* TODO: add on event */
173
171
  }
174
172
  }
175
- }
173
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lenix",
3
- "version": "1.7.6",
3
+ "version": "1.7.7",
4
4
  "description": "Typed FiveM utilities for client, server, shared, and NUI scripts",
5
5
  "author": "Lenix",
6
6
  "license": "MIT",