pw-js-api 0.1.3 → 0.2.1-dev.6b09e9a

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.
@@ -1,6 +1,6 @@
1
1
  import type PWApiClient from "../api/PWApiClient.js";
2
- import { type PlayerChatPacket, type WorldBlockFilledPacket, type WorldBlockPlacedPacket, WorldPacket } from "../gen/world_pb.js";
3
- import type { GameClientSettings, WorldJoinData } from "../types/game.js";
2
+ import { type PlayerChatPacket, type WorldBlockFilledPacket, type WorldBlockPlacedPacket } from "../gen/world_pb.js";
3
+ import type { GameClientSettings, WorldJoinData, Hook } from "../types/game.js";
4
4
  import type { CustomBotEvents, MergedEvents, WorldEvents } from "../types/events.js";
5
5
  import Bucket from "../util/Bucket.js";
6
6
  import type { OmitRecursively, Optional, Promisable } from "../types/misc.js";
@@ -51,7 +51,7 @@ export default class PWGameClient<StateT extends Partial<{
51
51
  *
52
52
  * NOTE: the "this" won't be the client itself. You will need to bind yourself if you want to keep this.
53
53
  */
54
- protected callbacks: Partial<{ [K in keyof MergedEvents]: Array<(data: MergedEvents[K], states: SafeCheck<K, StateT>) => Promisable<void | "STOP">>; }>;
54
+ protected callbacks: Partial<{ [K in keyof MergedEvents]: Array<(data: MergedEvents[K], states?: SafeCheck<K, StateT>) => Promisable<void | "STOP">>; }>;
55
55
  /**
56
56
  * Poorly documented because I cba
57
57
  */
@@ -61,25 +61,25 @@ export default class PWGameClient<StateT extends Partial<{
61
61
  * and may pass it to callbacks (via the second parameter in callbacks). If an error occurs while executing one of the hooks,
62
62
  * the execution of hooks will halt for that packet and callbacks will run without the states.
63
63
  *
64
- * NOTE: This is permanent, if a hook is added, it won't
64
+ * NOTE: This is permanent, if a hook is added, it can't be removed.
65
65
  */
66
- addHook<State extends Pick<Partial<{
66
+ addHook<HookState extends Pick<Partial<{
67
67
  [K in keyof WorldEvents]: any;
68
- }>, keyof WorldEvents>>(hook: (packet: WorldPacket) => any): PWGameClient<StateT & State>;
68
+ }>, keyof WorldEvents>>(hook: Hook<HookState>): PWGameClient<StateT & HookState>;
69
69
  /**
70
70
  * Adds a listener for the event type, it can even be a promise too.
71
71
  *
72
72
  * If the callback returns a specific string "STOP", it will prevent further listeners from being invoked.
73
73
  */
74
74
  addCallback<Event extends keyof CustomBotEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event]) => Promisable<void | "STOP">>): this;
75
- addCallback<Event extends keyof WorldEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event], states: SafeCheck<Event, StateT>) => Promisable<void | "STOP">>): this;
75
+ addCallback<Event extends keyof WorldEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event], states?: SafeCheck<Event, StateT>) => Promisable<void | "STOP">>): this;
76
76
  /**
77
77
  * Adds a listener for the event type, it can even be a promise too.
78
78
  *
79
79
  * If the callback returns a specific string "STOP", it will prevent further listeners from being invoked.
80
80
  */
81
81
  prependCallback<Event extends keyof CustomBotEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event]) => Promisable<void | "STOP">>): this;
82
- prependCallback<Event extends keyof WorldEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event], states: SafeCheck<Event, StateT>) => Promisable<void | "STOP">>): this;
82
+ prependCallback<Event extends keyof WorldEvents>(type: Event, ...cbs: Array<(data: MergedEvents[Event], states?: SafeCheck<Event, StateT>) => Promisable<void | "STOP">>): this;
83
83
  /**
84
84
  * @param type The type of the event
85
85
  * @param cb It can be the function itself (to remove that specific function). If undefined, it will remove ALL functions from that list, it will return undefined.
@@ -88,10 +88,13 @@ export default class PWGameClient<StateT extends Partial<{
88
88
  /**
89
89
  * INTERNAL. Invokes all functions of a callback type, unless one of them prohibits in transit.
90
90
  */
91
- protected invoke<Event extends keyof MergedEvents>(type: Event, data: MergedEvents[Event]): Promise<{
91
+ protected invoke<Event extends keyof CustomBotEvents>(type: Event, data: MergedEvents[Event]): Promise<{
92
+ count: number;
93
+ stopped: boolean;
94
+ }>;
95
+ protected invoke<Event extends keyof WorldEvents>(type: Event, data: MergedEvents[Event], states: SafeCheck<Event, StateT>): Promise<{
92
96
  count: number;
93
97
  stopped: boolean;
94
- variables: any;
95
98
  }>;
96
99
  /**
97
100
  * This assumes that the connection
@@ -107,6 +107,27 @@ class PWGameClient {
107
107
  if (packet.case === undefined) {
108
108
  return this.invoke("unknown", packet.value);
109
109
  } //this.callbacks.raw?.(packet);;
110
+ let states = {}; // | undefined;
111
+ if (this.hooks.length) {
112
+ try {
113
+ states = {};
114
+ for (let i = 0, len = this.hooks.length; i < len; i++) {
115
+ const res = this.hooks[i](rawPacket);
116
+ if (typeof res === "object") {
117
+ const entries = Object.entries(res);
118
+ for (let j = 0, jen = entries.length; j < jen; j++) {
119
+ states[entries[j][0]] = entries[j][1];
120
+ }
121
+ }
122
+ }
123
+ }
124
+ catch (err) {
125
+ this.invoke("debug", "Unable to execute all hooks safely");
126
+ // TODO: separate event for error
127
+ console.error(err);
128
+ states = {};
129
+ }
130
+ }
110
131
  switch (packet.case) {
111
132
  case "playerInitPacket":
112
133
  if (this.settings.handlePackets.findIndex(v => v === "INIT") !== -1)
@@ -121,7 +142,26 @@ class PWGameClient {
121
142
  res(this);
122
143
  // Give the client the init again as they might could have missed it even by a few milliseconds.
123
144
  return setTimeout(() => {
124
- this.invoke(packet.case, packet.value);
145
+ // TODO: deduplicate this part.
146
+ if (this.hooks.length) {
147
+ try {
148
+ states = {};
149
+ for (let i = 0, len = this.hooks.length; i < len; i++) {
150
+ const res = this.hooks[i](packet);
151
+ const entries = Object.entries(res);
152
+ for (let j = 0, jen = entries.length; j < jen; j++) {
153
+ states[entries[j][0]] = entries[j][1];
154
+ }
155
+ }
156
+ }
157
+ catch (err) {
158
+ this.invoke("debug", "Unable to execute all hooks safely");
159
+ // TODO: separate event for error
160
+ console.error(err);
161
+ states = {};
162
+ }
163
+ }
164
+ this.invoke(packet.case, packet.value, states);
125
165
  }, 1500);
126
166
  }
127
167
  break;
@@ -130,7 +170,7 @@ class PWGameClient {
130
170
  this.send("ping", undefined, true);
131
171
  break;
132
172
  }
133
- this.invoke(packet.case, packet.value);
173
+ this.invoke(packet.case, packet.value, states);
134
174
  };
135
175
  socket.onopen = (evt) => {
136
176
  this.invoke("debug", "Connected successfully, waiting for init packet.");
@@ -193,7 +233,7 @@ class PWGameClient {
193
233
  * and may pass it to callbacks (via the second parameter in callbacks). If an error occurs while executing one of the hooks,
194
234
  * the execution of hooks will halt for that packet and callbacks will run without the states.
195
235
  *
196
- * NOTE: This is permanent, if a hook is added, it won't
236
+ * NOTE: This is permanent, if a hook is added, it can't be removed.
197
237
  */
198
238
  addHook(hook) {
199
239
  // if (this.callbacks["raw"] === undefined) this.callbacks["raw"] = [];
@@ -239,25 +279,20 @@ class PWGameClient {
239
279
  }
240
280
  return;
241
281
  }
242
- /**
243
- * INTERNAL. Invokes all functions of a callback type, unless one of them prohibits in transit.
244
- */
245
- invoke(type, data) {
282
+ invoke(type, data, states) {
246
283
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
247
284
  const cbs = this.callbacks[type];
248
285
  let result = {
249
- count: 0, stopped: false,
250
- variables: {}
286
+ count: 0, stopped: false
251
287
  };
252
288
  if (cbs === undefined)
253
289
  return result;
254
290
  for (let i = 0, len = cbs.length; i < len; i++) {
255
- const res = yield cbs[i](data, result.variables);
291
+ const res = yield cbs[i](data, states);
256
292
  result.count++;
257
293
  if (typeof res === "object") {
258
294
  const keys = Object.keys(res);
259
295
  for (let j = 0, jen = keys.length; j < jen; j++) {
260
- result.variables[keys[j]] = res[keys[j]];
261
296
  data[keys[j]] = res[keys[j]];
262
297
  }
263
298
  }
@@ -308,4 +343,4 @@ class PWGameClient {
308
343
  }
309
344
  }
310
345
  exports.default = PWGameClient;
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFdHYW1lQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2dhbWUvUFdHYW1lQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9EQUFnSztBQUVoSyx1REFBZ0Q7QUFDaEQsaURBQThDO0FBRTlDLGlDQUFrQztBQUNsQyxpREFBa0U7QUFFbEUsMEVBQXVDO0FBS3ZDLE1BQXFCLFlBQVk7SUF3QjdCLFlBQVksR0FBK0MsRUFBRSxRQUFzQzs7UUFiekYsZ0JBQVcsR0FBRyxJQUFJLG1CQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxJQUFJLG1CQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxDLG9CQUFlLEdBQUc7WUFDeEIsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNSLEtBQUssRUFBRSxDQUFDO1NBQ1gsQ0FBQTtRQXVMRCx5REFBeUQ7UUFDekQsa0JBQWtCO1FBQ2xCLElBQUk7UUFFSjs7Ozs7V0FLRztRQUNPLGNBQVMsR0FBRyxFQUVnSCxDQUFDO1FBRXZJLG9CQUFvQjtRQUVwQiwyRUFBMkU7UUFFM0U7O1dBRUc7UUFDSyxVQUFLLEdBQWtDLEVBQUUsQ0FBQztRQXBNOUMsd0RBQXdEO1FBQ3hELElBQUksR0FBRyxJQUFJLFlBQVksSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNYLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDZixHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ1osYUFBYSxFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGFBQWEsbUNBQUksSUFBSTtZQUM5QyxjQUFjLEVBQUUsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsY0FBYyxtQ0FBSSxDQUFDO1lBQzdDLGlCQUFpQixFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGlCQUFpQixtQ0FBSSxJQUFJO1lBQ3RELGdCQUFnQixFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGdCQUFnQixtQ0FBSSxLQUFLO1lBQ3JELGFBQWEsRUFBRSxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxhQUFhLG1DQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JELENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxTQUFTOztRQUNULE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFVBQVUsTUFBSyxpQkFBUyxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNHLFNBQVMsQ0FBQyxNQUFjLEVBQUUsUUFBd0I7OztZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsTUFBTSxLQUFLLENBQUMsbUZBQW1GLENBQUMsQ0FBQztZQUVoSCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxVQUFVLE1BQUssaUJBQVMsQ0FBQyxVQUFVO2dCQUFFLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDaEcsZ0dBQWdHO1lBRWhHLE1BQU0sUUFBUSxHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsMENBQUcsQ0FBQyxDQUFDLG1DQUFJLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUU1RCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxNQUFNLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1lBRWhJLE1BQU0sVUFBVSxHQUFHLEdBQUcsdUJBQVEsQ0FBQyxNQUFNLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtrQkFDdkQsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLGVBQWUsR0FBRztvQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztpQkFDN0IsQ0FBQztZQUNOLENBQUM7WUFFRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFOztnQkFDNUIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYztvQkFBRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWxJLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7b0JBQzNCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7d0JBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO29CQUNqSCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO29CQUV2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEtBQTBCLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN0RixDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixtQ0FBSSxJQUFJLENBQUMsQ0FBQztnQkFFNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUEwQixFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN0RixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsR0FBMEIsRUFBRSxHQUEwQjtRQUNuRyxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7UUFFbEMsZUFBZTtRQUNmLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVqQixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7O1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUEscUJBQVUsRUFBQywrQkFBaUIsRUFBRSxHQUFHLENBQUMsSUFBSSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RJLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFFN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUU5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxnQ0FBZ0M7WUFFbEMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssa0JBQWtCO29CQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFFcEMsSUFBSSxNQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLDBDQUFFLFlBQVk7d0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDOzt3QkFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO29CQUVyQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ1IsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNyQixJQUFJLEdBQUcsSUFBSSxDQUFDO3dCQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFFdkIsZ0dBQWdHO3dCQUNoRyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzNDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDYixDQUFDO29CQUNELE1BQU07Z0JBQ1YsS0FBSyxNQUFNO29CQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN2QyxNQUFNO1lBQ2QsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFBO1FBRUQsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGtEQUFrRCxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLHdDQUF3QyxHQUFHLENBQUMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1lBRW5HLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDUixhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxJQUFJLHFCQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVM7b0JBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxnRkFBZ0YsQ0FBQyxDQUFDO2dCQUMxSSx1REFBdUQ7Z0JBQ3ZELDRGQUE0RjtnQkFDNUYsSUFBSTtnQkFFSixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztvQkFFakQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUM5QixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDOztvQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSwwRkFBMEYsQ0FBQyxDQUFDO1lBQzVILENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBZSxFQUFFLEdBQThFO1FBQzVHLE1BQU0sVUFBVSxHQUFHLEdBQUcsdUJBQVEsQ0FBQyxNQUFNLFNBQVMsT0FBTyxFQUFFO2NBQ2pELENBQUMsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsUUFBUSxNQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3RixNQUFNLEdBQUcsR0FBRyxJQUFJLFlBQVksQ0FBQyxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsWUFBWSxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMxRSxHQUFHLENBQUMsZUFBZSxHQUFHO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQzdCLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTs7WUFDNUIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYztnQkFBRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUM7WUFFaEksTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTs7Z0JBQzNCLE1BQUEsR0FBRyxDQUFDLE1BQU0sMENBQUUsS0FBSyxFQUFFLENBQUM7Z0JBRXBCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWM7b0JBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO2dCQUMvRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUV0RCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEtBQTBCLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3BGLENBQUMsRUFBRSxNQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLG1DQUFJLElBQUksQ0FBQyxDQUFDO1lBRTNDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsS0FBMEIsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBeUJEOzs7Ozs7T0FNRztJQUVILE9BQU8sQ0FBb0YsSUFBa0M7UUFDekgsdUVBQXVFO1FBRXZFLG1DQUFtQztRQUVuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0Qix1Q0FBdUM7UUFFdkMsT0FBTyxJQUErQyxDQUFDO0lBQzNELENBQUM7SUFVRCxXQUFXLENBQW1DLElBQVcsRUFBRSxHQUFHLEdBQXNHO1FBQ2hLLDZCQUE2QjtRQUU3QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWxFLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVsQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBVUQsZUFBZSxDQUFtQyxJQUFXLEVBQUUsR0FBRyxHQUFzRztRQUNwSyw2QkFBNkI7UUFFN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVsRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWxDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBbUMsSUFBVyxFQUFFLEVBQStGO1FBQ3pKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUFDLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQzthQUM3RSxDQUFDO1lBQ0YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNuRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTztJQUNYLENBQUM7SUFFRDs7T0FFRztJQUNhLE1BQU0sQ0FBbUMsSUFBVyxFQUFFLElBQXlCOztZQUMzRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWpDLElBQUksTUFBTSxHQUFHO2dCQUNULEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUs7Z0JBQ3hCLFNBQVMsRUFBRSxFQUFTO2FBQ3ZCLENBQUM7WUFFRixJQUFJLEdBQUcsS0FBSyxTQUFTO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBRXJDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFakQsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUVmLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBRTlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDOUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBRXRCLE9BQU8sTUFBTSxDQUFDO2dCQUNsQixDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7S0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksQ0FBa0MsSUFBVyxFQUFFLEtBQTZFLEVBQUUsTUFBTSxHQUFHLEtBQUs7UUFDNUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFFM0gsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFOztZQUFDLE9BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQ2hDLElBQUEsbUJBQVEsRUFBQywrQkFBaUIsRUFBRSxJQUFBLGlCQUFNLEVBQUMsK0JBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBOEMsRUFBRSxDQUFDLENBQUMsQ0FDeEksQ0FBQTtTQUFBLENBQUM7UUFFRixJQUFJLE1BQU07WUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUN4QixJQUFJLElBQUksS0FBSyxrQkFBa0I7Z0JBQUUsSUFBSSxFQUFFLENBQUE7O2dCQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBRSxJQUFJLEtBQUssa0JBQWtCLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxZQUE2QixLQUFLOztRQUN6QyxpREFBaUQ7UUFDakQsSUFBSSxTQUFTLEtBQUssSUFBSTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzs7WUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXpDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxFQUFFLENBQUM7UUFFckIsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsVUFBVSxNQUFLLGlCQUFTLENBQUMsTUFBTSxDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQXZYRCwrQkF1WEMifQ==
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFdHYW1lQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2dhbWUvUFdHYW1lQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9EQUFnSztBQUVoSyx1REFBZ0Q7QUFDaEQsaURBQThDO0FBRTlDLGlDQUFrQztBQUNsQyxpREFBa0U7QUFFbEUsMEVBQXVDO0FBS3ZDLE1BQXFCLFlBQVk7SUF3QjdCLFlBQVksR0FBK0MsRUFBRSxRQUFzQzs7UUFiekYsZ0JBQVcsR0FBRyxJQUFJLG1CQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxJQUFJLG1CQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxDLG9CQUFlLEdBQUc7WUFDeEIsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNSLEtBQUssRUFBRSxDQUFDO1NBQ1gsQ0FBQTtRQXNPRCx5REFBeUQ7UUFDekQsa0JBQWtCO1FBQ2xCLElBQUk7UUFFSjs7Ozs7V0FLRztRQUNPLGNBQVMsR0FBRyxFQUVpSCxDQUFDO1FBRXhJLG9CQUFvQjtRQUVwQiwyRUFBMkU7UUFFM0U7O1dBRUc7UUFDSyxVQUFLLEdBQWtDLEVBQUUsQ0FBQztRQW5QOUMsd0RBQXdEO1FBQ3hELElBQUksR0FBRyxJQUFJLFlBQVksSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNYLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDZixHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ1osYUFBYSxFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGFBQWEsbUNBQUksSUFBSTtZQUM5QyxjQUFjLEVBQUUsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsY0FBYyxt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
@@ -1,5 +1,8 @@
1
1
  /** @module Types/Game */
2
2
 
3
+ import type { WorldPacket } from "../gen/world_pb";
4
+ import type { WorldEvents } from "./events";
5
+
3
6
  export interface GameClientSettings {
4
7
  /**
5
8
  * If the client should try to reconnect when it disconnects.
@@ -47,4 +50,9 @@ export interface WorldJoinData {
47
50
  world_title: string;
48
51
  world_width?: number;
49
52
  world_height?: number;
50
- }
53
+ }
54
+
55
+ // Despite State not being used, this is important for the typings anyway.
56
+ export type Hook<State extends Pick<Partial<{
57
+ [K in keyof WorldEvents]: any;
58
+ }>, keyof WorldEvents>> = (packet: WorldPacket) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pw-js-api",
3
- "version": "0.1.3",
3
+ "version": "0.2.1-dev.6b09e9a",
4
4
  "description": "A PixelWalker Library, aims to be minimal with support for browsers.",
5
5
  "exports": {
6
6
  "bun": "./dist/index.js",