lenix 1.7.7 → 1.7.9
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/client/client.ts +53 -33
- package/package.json +1 -1
package/client/client.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { repeat } from '../shared/repeat.ts'
|
|
2
2
|
import type { Vec3, Vec4 } from '../shared/types.ts'
|
|
3
3
|
|
|
4
|
+
type JsonPrimitive = string | number | boolean | null
|
|
5
|
+
type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue }
|
|
6
|
+
|
|
4
7
|
export const client = {
|
|
5
8
|
entity: {
|
|
6
9
|
/**
|
|
@@ -38,7 +41,7 @@ export const client = {
|
|
|
38
41
|
* Gets entity coordinates and heading.
|
|
39
42
|
*/
|
|
40
43
|
coords: (() => {
|
|
41
|
-
function coords(entity: number, excludeH
|
|
44
|
+
function coords(entity: number, excludeH?: true, isAlive?: boolean): Vec3
|
|
42
45
|
function coords(entity: number, excludeH?: false, isAlive?: boolean): Vec4
|
|
43
46
|
function coords(entity: number, excludeH = false, isAlive = true) {
|
|
44
47
|
const entityCoords = GetEntityCoords(entity, isAlive) as Vec3
|
|
@@ -96,27 +99,6 @@ export const client = {
|
|
|
96
99
|
}
|
|
97
100
|
},
|
|
98
101
|
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
|
-
|
|
120
102
|
/**
|
|
121
103
|
* Gets a client player ID.
|
|
122
104
|
*
|
|
@@ -129,7 +111,7 @@ export const client = {
|
|
|
129
111
|
* - id(targetServerId) -> target player's client player ID
|
|
130
112
|
* - id() -> your own client player ID
|
|
131
113
|
*/
|
|
132
|
-
id: (serverId?: number) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
114
|
+
id: (serverId?: number) => serverId !== undefined ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
133
115
|
|
|
134
116
|
/**
|
|
135
117
|
* Gets a player's server ID from their client player ID.
|
|
@@ -143,25 +125,63 @@ export const client = {
|
|
|
143
125
|
* - serverId(targetPlayerId) -> target player's server ID
|
|
144
126
|
* - serverId() -> your own server ID
|
|
145
127
|
*/
|
|
146
|
-
serverId
|
|
128
|
+
serverId(playerId?: number) {
|
|
129
|
+
return GetPlayerServerId(playerId ?? this.id())
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
/* */
|
|
133
|
+
entity: (playerId?: number) => playerId !== undefined ? GetPlayerPed(playerId) : PlayerPedId(),
|
|
147
134
|
|
|
135
|
+
/* */
|
|
136
|
+
netId(playerId?: number) {
|
|
137
|
+
return PedToNet(this.entity(playerId))
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
/* */
|
|
141
|
+
coords(excludeH?: true, isAlive?: boolean) {
|
|
142
|
+
return client.entity.coords(this.entity(), excludeH, isAlive)
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
/* */
|
|
146
|
+
teleport(
|
|
147
|
+
x: number,
|
|
148
|
+
y: number,
|
|
149
|
+
z: number,
|
|
150
|
+
h?: number,
|
|
151
|
+
clearArea?: boolean,
|
|
152
|
+
alive?: boolean,
|
|
153
|
+
deadDisable?: boolean,
|
|
154
|
+
ragdol?: boolean
|
|
155
|
+
) {
|
|
156
|
+
return client.entity.teleport(this.entity(), x, y, z, h, clearArea, alive, deadDisable, ragdol)
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
/* */
|
|
148
160
|
storage: {
|
|
149
161
|
set: <Storage>(
|
|
150
162
|
...[key, value]: {
|
|
151
|
-
[K in keyof Storage]:
|
|
163
|
+
[K in keyof Storage]: Storage[K] extends JsonValue
|
|
164
|
+
? [key: Extract<K, string>, value: Storage[K]]
|
|
165
|
+
: never
|
|
152
166
|
}[keyof Storage]
|
|
153
|
-
) => SetResourceKvp(key, value),
|
|
167
|
+
) => SetResourceKvp(key, JSON.stringify(value)),
|
|
154
168
|
|
|
155
169
|
get: <Storage, K extends Extract<keyof Storage, string>>(
|
|
156
170
|
key: K,
|
|
157
|
-
init?:
|
|
158
|
-
): Storage[K] => {
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
171
|
+
init?: Storage[K] extends JsonValue ? Storage[K] : never
|
|
172
|
+
): Storage[K] extends JsonValue ? Storage[K] : never => {
|
|
173
|
+
const value = GetResourceKvpString(key)
|
|
174
|
+
|
|
175
|
+
if (value === null) {
|
|
176
|
+
if (init === undefined) {
|
|
177
|
+
throw new Error(`Storage<${key}> was never assigned`)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
SetResourceKvp(key, JSON.stringify(init))
|
|
181
|
+
return init as Storage[K] extends JsonValue ? Storage[K] : never
|
|
163
182
|
}
|
|
164
|
-
|
|
183
|
+
|
|
184
|
+
return JSON.parse(value) as Storage[K] extends JsonValue ? Storage[K] : never
|
|
165
185
|
},
|
|
166
186
|
|
|
167
187
|
delete: <Storage>(
|