@nativewrappers/server 0.0.160 → 0.0.162

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.
@@ -15,7 +15,7 @@ interface Parameter {
15
15
  type MappedParameters<T extends Parameter[]> = {
16
16
  [K in T[number] as K["name"]]: ParameterTypes[K["type"]];
17
17
  } & {
18
- source: number;
18
+ source: ParameterTypes["playerId"];
19
19
  raw: string;
20
20
  };
21
21
  type CommandHandler<T extends Parameter[]> = (args: MappedParameters<T>) => void | Promise<void>;
package/common/Command.js CHANGED
@@ -27,7 +27,7 @@ function registerCommand(name, commandHandler, restricted = true) {
27
27
  }
28
28
  if (Array.isArray(restricted)) {
29
29
  for (const principal of restricted) {
30
- if (!IsPrincipalAceAllowed(principal, ace)) ExecuteCommand(`add_ace ${restricted} ${ace} allow`);
30
+ if (!IsPrincipalAceAllowed(principal, ace)) ExecuteCommand(`add_ace ${principal} ${ace} allow`);
31
31
  }
32
32
  }
33
33
  }
@@ -52,15 +52,15 @@ registerParameterType("string", (arg) => {
52
52
  $CLIENT: if (GlobalData.IS_CLIENT) {
53
53
  registerParameterType("playerId", (arg) => {
54
54
  const isMe = arg === "me";
55
- const target = isMe ? GetPlayerServerId(PlayerId()) : parseInt(arg, 10);
55
+ if (isMe) {
56
+ return GetPlayerServerId(PlayerId());
57
+ }
58
+ const target = parseInt(arg, 10);
56
59
  if (Number.isNaN(target)) {
57
60
  throw new TypeError(`could not parse argument into a valid playerId`);
58
61
  }
59
- if (isMe) {
60
- return target;
61
- }
62
62
  if (GetPlayerFromServerId(target) === -1) {
63
- throw new Error(`player with server id $${target} didn't exist`);
63
+ throw new Error(`player with server id ${target} didn't exist`);
64
64
  }
65
65
  return target;
66
66
  });
@@ -68,12 +68,15 @@ registerParameterType("string", (arg) => {
68
68
  }
69
69
  $SERVER: {
70
70
  registerParameterType("playerId", (arg, { source: source2 }) => {
71
- const target = arg === "me" ? source2 : parseInt(arg, 10);
71
+ if (arg === "me") {
72
+ return source2;
73
+ }
74
+ const target = parseInt(arg, 10);
72
75
  if (Number.isNaN(target)) {
73
76
  throw new TypeError(`could not parse argument into a valid playerId`);
74
77
  }
75
78
  if (!DoesPlayerExist(target)) {
76
- throw new Error(`player at ${source2} didn't exist`);
79
+ throw new Error(`player at ${target} didn't exist`);
77
80
  }
78
81
  return target;
79
82
  });
@@ -135,15 +138,17 @@ class Command {
135
138
  * @returns A mapped object containing parsed parameters.
136
139
  */
137
140
  mapArguments(source2, args, raw) {
138
- const mapped = {
141
+ const defaultContextObject = {
139
142
  source: source2,
140
143
  raw
141
144
  };
142
- if (!this.params) return mapped;
143
- const defaultContextObject = {
144
- source: source2,
145
+ const parser = commandTypeParserRegistry.get("playerId");
146
+ const parsedSource = parser ? parser("me", defaultContextObject) : source2;
147
+ const mapped = {
148
+ source: parsedSource,
145
149
  raw
146
150
  };
151
+ if (!this.params) return mapped;
147
152
  const result = this.params.every((param, index) => {
148
153
  const arg = args[index];
149
154
  let value = arg;
@@ -151,15 +156,15 @@ class Command {
151
156
  if (!hasArg) {
152
157
  value = param.defaultValue;
153
158
  } else {
154
- const parser = commandTypeParserRegistry.get(param.type);
155
- if (!parser) {
159
+ const parser2 = commandTypeParserRegistry.get(param.type);
160
+ if (!parser2) {
156
161
  console.error(
157
162
  `${param.type} didn't have a valid parser, did you forget to register it with 'registerParameterType'?`
158
163
  );
159
164
  return false;
160
165
  }
161
166
  try {
162
- value = parser(arg, defaultContextObject);
167
+ value = parser2(arg, defaultContextObject);
163
168
  } catch (e) {
164
169
  globalThis.printError("command parsing", e);
165
170
  return false;
@@ -51,6 +51,12 @@ export declare class Player {
51
51
  * @returns the current routhing bucket the player is in, default is 0
52
52
  */
53
53
  get RoutingBucket(): number;
54
+ /**
55
+ * Sets the players routing bucket to {@see routingBucket}
56
+ * You can use onPlayerBucketChange to listen for routing bucket changes
57
+ * {@link https://github.com/citizenfx/fivem/blob/cfed16afb4ba2d920cfd31adb0c27d758988aac3/code/components/citizen-server-impl/src/state/ServerGameState_Scripting.cpp#L1675C1-L1686C25}
58
+ */
59
+ set RoutingBucket(routingBucket: number);
54
60
  get Team(): number;
55
61
  get WantedPosition(): Vector3;
56
62
  get WantedLevel(): number;
@@ -106,6 +106,14 @@ class Player {
106
106
  get RoutingBucket() {
107
107
  return GetPlayerRoutingBucket(this.Src);
108
108
  }
109
+ /**
110
+ * Sets the players routing bucket to {@see routingBucket}
111
+ * You can use onPlayerBucketChange to listen for routing bucket changes
112
+ * {@link https://github.com/citizenfx/fivem/blob/cfed16afb4ba2d920cfd31adb0c27d758988aac3/code/components/citizen-server-impl/src/state/ServerGameState_Scripting.cpp#L1675C1-L1686C25}
113
+ */
114
+ set RoutingBucket(routingBucket) {
115
+ SetPlayerRoutingBucket(this.Handle, routingBucket);
116
+ }
109
117
  get Team() {
110
118
  return GetPlayerTeam(this.Src);
111
119
  }
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "license": "MIT",
10
10
  "type": "module",
11
- "version": "0.0.160",
11
+ "version": "0.0.162",
12
12
  "repository": {
13
13
  "type": "git",
14
14
  "url": "https://github.com/nativewrappers/nativewrappers.git"