cubyz-node-client 0.1.0 → 1.0.0

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/README.md CHANGED
@@ -45,7 +45,7 @@ export CUBYZ_LOG_LEVEL=debug
45
45
  npm run sandbox
46
46
  ```
47
47
 
48
- The example connects to the configured server, logs chat/player events, emits a greeting, and then shuts down gracefully after a few seconds.
48
+ The example connects to the configured server, logs chat/player events, emits a greeting, and stays connected until interrupted with Ctrl+C.
49
49
 
50
50
  ## Programmatic usage
51
51
 
@@ -64,8 +64,8 @@ connection.on("connected", () => {
64
64
  console.log("Channel handshake ready");
65
65
  });
66
66
 
67
- connection.on("handshakeComplete", (spawnData) => {
68
- console.log("Server spawn data received:", spawnData);
67
+ connection.on("handshakeComplete", () => {
68
+ console.log("Handshake complete, bot is ready!");
69
69
  connection.sendChat("Hello world from tooling!");
70
70
  });
71
71
 
@@ -101,7 +101,7 @@ interface CubyzConnectionOptions {
101
101
  host: string; // Server hostname or IP
102
102
  port: number; // Server UDP port (default: 47649)
103
103
  name: string; // Player/bot name
104
- version?: string; // Protocol version (default: "0.1.0-dev")
104
+ version?: string; // Protocol version (default: "0.0.0")
105
105
  logger?: CubyzConnectionLogger; // Custom logger (default: no-op)
106
106
  logLevel?: LogLevel; // "debug" | "info" | "warn" | "error" | "silent"
107
107
  }
@@ -110,10 +110,11 @@ interface CubyzConnectionOptions {
110
110
  #### Events
111
111
 
112
112
  - **`connected`**: Emitted when the channel handshake with the server completes
113
- - **`handshakeComplete(spawnData: string)`**: Emitted when the server sends spawn/world data (ZON format)
113
+ - **`handshakeComplete()`**: Emitted when the server handshake finishes and the bot is ready
114
114
  - **`chat(message: string)`**: Emitted when a chat message is received from the server
115
- - **`players(names: string[])`**: Emitted when the player list updates
116
- - **`protocol(event: ProtocolEvent)`**: Emitted for other protocol messages (entity updates, etc.)
115
+ - **`players(players: PlayerData[])`**: Emitted when the player list updates (each player has `id` and `name`)
116
+ - **`entityPositions(packet: EntityPositionPacket)`**: Emitted when entity/item position updates are received
117
+ - **`protocol(event: ProtocolEvent)`**: Emitted for other protocol messages
117
118
  - **`disconnect(event: DisconnectEvent)`**: Emitted when the connection closes (reason: "server" | "timeout")
118
119
 
119
120
  #### Methods
@@ -122,9 +123,9 @@ interface CubyzConnectionOptions {
122
123
  - **`close(options?: CloseOptions)`**: Close the connection gracefully (optionally skip server notification)
123
124
  - **`sendChat(message: string)`**: Send a chat message to the server
124
125
  - **`teleport(x: number, y: number, z: number)`**: Update player position
125
- - **`setRotation(yawDeg: number, pitchDeg?: number, rollDeg?: number)`**: Update player rotation (degrees)
126
+ - **`setRotation(yawDeg: number, pitchDeg = 0, rollDeg = 0)`**: Update player rotation (degrees)
126
127
  - **`getPlayerNames(): string[]`**: Get the current list of known player names
127
- - **`publishPlayerState(force?: boolean)`**: Manually send a player state update
128
+ - **`publishPlayerState(force = false)`**: Manually send a player state update
128
129
 
129
130
  ## Key exports
130
131
 
@@ -168,6 +169,35 @@ export interface PlayerState {
168
169
  rotation: Vector3;
169
170
  }
170
171
 
172
+ export interface PlayerData {
173
+ id: number;
174
+ name: string;
175
+ }
176
+
177
+ export type PlayersEvent = PlayerData[];
178
+
179
+ export interface EntitySnapshot {
180
+ id: number;
181
+ position: Vector3;
182
+ velocity: Vector3;
183
+ rotation: Vector3;
184
+ timestamp: number;
185
+ }
186
+
187
+ export interface ItemSnapshot {
188
+ index: number;
189
+ position: Vector3;
190
+ velocity: Vector3;
191
+ timestamp: number;
192
+ }
193
+
194
+ export interface EntityPositionPacket {
195
+ timestamp: number;
196
+ basePosition: Vector3;
197
+ entities: EntitySnapshot[];
198
+ items: ItemSnapshot[];
199
+ }
200
+
171
201
  export interface ProtocolEvent {
172
202
  channelId: number;
173
203
  protocolId: number;
package/dist/binary.d.ts CHANGED
@@ -9,3 +9,4 @@ export declare function addSeq(base: number, delta: number): number;
9
9
  export declare function seqLessThan(a: number, b: number): boolean;
10
10
  export declare function writeInt32BE(buffer: Buffer, offset: number, value: number): void;
11
11
  export declare function readInt32BE(buffer: Buffer, offset: number): number;
12
+ export declare function readFloat16BE(buffer: Buffer, offset: number): number;
package/dist/binary.js CHANGED
@@ -48,4 +48,20 @@ export function writeInt32BE(buffer, offset, value) {
48
48
  export function readInt32BE(buffer, offset) {
49
49
  return buffer.readInt32BE(offset);
50
50
  }
51
+ export function readFloat16BE(buffer, offset) {
52
+ const raw = buffer.readUInt16BE(offset);
53
+ const sign = (raw & 0x8000) !== 0 ? -1 : 1;
54
+ const exponent = (raw >> 10) & 0x1f;
55
+ const fraction = raw & 0x3ff;
56
+ if (exponent === 0) {
57
+ if (fraction === 0) {
58
+ return sign * 0;
59
+ }
60
+ return sign * 2 ** -14 * (fraction / 0x400);
61
+ }
62
+ if (exponent === 0x1f) {
63
+ return fraction === 0 ? sign * Infinity : Number.NaN;
64
+ }
65
+ return sign * 2 ** (exponent - 15) * (1 + fraction / 0x400);
66
+ }
51
67
  //# sourceMappingURL=binary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC;IAC5B,GAAG,CAAC;QACF,IAAI,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;QAC5B,SAAS,MAAM,CAAC,CAAC;QACjB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,IAAI,CAAC;QACf,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,QAAQ,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,MAAM,GAAG,CAAC;IAEV,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC;QAChC,QAAQ,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC1C,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,KAAa;IAChD,OAAO,OAAO,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,MAAc,EACd,KAAa;IAEb,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,MAAc;IACxD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,25 @@ export interface PlayerState {
18
18
  velocity: Vector3;
19
19
  rotation: Vector3;
20
20
  }
21
+ export interface EntitySnapshot {
22
+ id: number;
23
+ position: Vector3;
24
+ velocity: Vector3;
25
+ rotation: Vector3;
26
+ timestamp: number;
27
+ }
28
+ export interface ItemSnapshot {
29
+ index: number;
30
+ position: Vector3;
31
+ velocity: Vector3;
32
+ timestamp: number;
33
+ }
34
+ export interface EntityPositionPacket {
35
+ timestamp: number;
36
+ basePosition: Vector3;
37
+ entities: EntitySnapshot[];
38
+ items: ItemSnapshot[];
39
+ }
21
40
  export interface ProtocolEvent {
22
41
  channelId: number;
23
42
  protocolId: number;
@@ -44,13 +63,19 @@ type CubyzConnectionEvents = {
44
63
  connected: [];
45
64
  handshakeComplete: [string];
46
65
  chat: [string];
47
- players: [string[]];
66
+ players: [PlayersEvent];
67
+ entityPositions: [EntityPositionPacket];
48
68
  protocol: [ProtocolEvent];
49
69
  disconnect: [DisconnectEvent];
50
70
  };
51
71
  export interface DisconnectEvent {
52
72
  reason: "server" | "timeout";
53
73
  }
74
+ export type PlayersEvent = PlayerData[];
75
+ export interface PlayerData {
76
+ id: number;
77
+ name: string;
78
+ }
54
79
  export declare class CubyzConnection extends EventEmitter {
55
80
  readonly host: string;
56
81
  readonly port: number;
@@ -67,6 +92,8 @@ export declare class CubyzConnection extends EventEmitter {
67
92
  private readonly receiveChannels;
68
93
  private readonly pendingConfirmations;
69
94
  private readonly playerMap;
95
+ private readonly entityStates;
96
+ private readonly itemStates;
70
97
  private lastKeepAliveSent;
71
98
  private lastInbound;
72
99
  private lastInitSent;
@@ -103,8 +130,14 @@ export declare class CubyzConnection extends EventEmitter {
103
130
  private handleProtocol;
104
131
  private handleHandshake;
105
132
  private handleEntityUpdate;
133
+ private handleEntityPosition;
106
134
  private emitPlayers;
135
+ getPlayers(): PlayerData[];
107
136
  getPlayerNames(): string[];
137
+ getEntityStates(): EntitySnapshot[];
138
+ getEntityState(id: number): EntitySnapshot | undefined;
139
+ getItemStates(): ItemSnapshot[];
140
+ getItemState(index: number): ItemSnapshot | undefined;
108
141
  sendChat(message: string): void;
109
142
  teleport(x: number, y: number, z: number): void;
110
143
  setRotation(yawDeg: number, pitchDeg?: number, rollDeg?: number): void;
@@ -2,7 +2,7 @@ import { Buffer } from "node:buffer";
2
2
  import { randomInt } from "node:crypto";
3
3
  import dgram from "node:dgram";
4
4
  import { EventEmitter } from "node:events";
5
- import { readInt32BE, writeInt32BE } from "./binary.js";
5
+ import { readFloat16BE, readInt32BE, writeInt32BE } from "./binary.js";
6
6
  import { CHANNEL, CONFIRMATION_BATCH_SIZE, DEFAULT_VERSION, HANDSHAKE_STATE, INIT_RESEND_INTERVAL_MS, KEEP_ALIVE_INTERVAL_MS, KEEP_ALIVE_TIMEOUT_MS, PROTOCOL, } from "./constants.js";
7
7
  import { parseChannelPacket, ReceiveChannel } from "./receiveChannel.js";
8
8
  import { SendChannel } from "./sendChannel.js";
@@ -15,6 +15,14 @@ const LOG_LEVEL_ORDER = {
15
15
  error: 3,
16
16
  silent: 4,
17
17
  };
18
+ const ENTITY_POSITION_TYPE = {
19
+ NO_VELOCITY_ENTITY: 0,
20
+ F16_VELOCITY_ENTITY: 1,
21
+ F32_VELOCITY_ENTITY: 2,
22
+ NO_VELOCITY_ITEM: 3,
23
+ F16_VELOCITY_ITEM: 4,
24
+ F32_VELOCITY_ITEM: 5,
25
+ };
18
26
  function randomSequence() {
19
27
  return randomInt(0, 0x7fffffff);
20
28
  }
@@ -51,6 +59,8 @@ export class CubyzConnection extends EventEmitter {
51
59
  receiveChannels = new Map();
52
60
  pendingConfirmations = [];
53
61
  playerMap = new Map();
62
+ entityStates = new Map();
63
+ itemStates = new Map();
54
64
  lastKeepAliveSent = Date.now();
55
65
  lastInbound = Date.now();
56
66
  lastInitSent = 0;
@@ -369,6 +379,10 @@ export class CubyzConnection extends EventEmitter {
369
379
  case PROTOCOL.HANDSHAKE:
370
380
  await this.handleHandshake(payload);
371
381
  break;
382
+ case PROTOCOL.ENTITY_POSITION:
383
+ this.handleEntityPosition(payload);
384
+ this.emit("protocol", { channelId, protocolId, payload });
385
+ break;
372
386
  case PROTOCOL.ENTITY:
373
387
  this.handleEntityUpdate(payload);
374
388
  this.emit("protocol", { channelId, protocolId, payload });
@@ -544,18 +558,206 @@ export class CubyzConnection extends EventEmitter {
544
558
  this.emitPlayers();
545
559
  }
546
560
  }
561
+ handleEntityPosition(payload) {
562
+ const headerSize = 2 + 8 * 3;
563
+ if (payload.length < headerSize) {
564
+ this.log("warn", "Entity position payload too short", {
565
+ length: payload.length,
566
+ });
567
+ return;
568
+ }
569
+ let offset = 0;
570
+ const ensure = (size) => {
571
+ if (offset + size > payload.length) {
572
+ throw new Error(`Entity position packet truncated, needed ${size} bytes at offset ${offset}`);
573
+ }
574
+ };
575
+ const readVec3f32 = () => {
576
+ ensure(12);
577
+ const vector = {
578
+ x: payload.readFloatBE(offset),
579
+ y: payload.readFloatBE(offset + 4),
580
+ z: payload.readFloatBE(offset + 8),
581
+ };
582
+ offset += 12;
583
+ return vector;
584
+ };
585
+ const readVec3f16 = () => {
586
+ ensure(6);
587
+ const vector = {
588
+ x: readFloat16BE(payload, offset),
589
+ y: readFloat16BE(payload, offset + 2),
590
+ z: readFloat16BE(payload, offset + 4),
591
+ };
592
+ offset += 6;
593
+ return vector;
594
+ };
595
+ try {
596
+ ensure(2);
597
+ const timestamp = payload.readInt16BE(offset);
598
+ offset += 2;
599
+ ensure(24);
600
+ const basePosition = {
601
+ x: payload.readDoubleBE(offset),
602
+ y: payload.readDoubleBE(offset + 8),
603
+ z: payload.readDoubleBE(offset + 16),
604
+ };
605
+ offset += 24;
606
+ const nextEntityStates = new Map();
607
+ const nextItemStates = new Map();
608
+ const entitiesForEvent = [];
609
+ const itemsForEvent = [];
610
+ while (offset < payload.length) {
611
+ ensure(1);
612
+ const type = payload[offset];
613
+ offset += 1;
614
+ let velocity = { x: 0, y: 0, z: 0 };
615
+ if (type === ENTITY_POSITION_TYPE.F16_VELOCITY_ENTITY ||
616
+ type === ENTITY_POSITION_TYPE.F16_VELOCITY_ITEM) {
617
+ velocity = readVec3f16();
618
+ }
619
+ else if (type === ENTITY_POSITION_TYPE.F32_VELOCITY_ENTITY ||
620
+ type === ENTITY_POSITION_TYPE.F32_VELOCITY_ITEM) {
621
+ velocity = readVec3f32();
622
+ }
623
+ switch (type) {
624
+ case ENTITY_POSITION_TYPE.NO_VELOCITY_ENTITY:
625
+ case ENTITY_POSITION_TYPE.F16_VELOCITY_ENTITY:
626
+ case ENTITY_POSITION_TYPE.F32_VELOCITY_ENTITY: {
627
+ ensure(4);
628
+ const id = payload.readUInt32BE(offset);
629
+ offset += 4;
630
+ const delta = readVec3f32();
631
+ const rotation = readVec3f32();
632
+ const position = {
633
+ x: basePosition.x + delta.x,
634
+ y: basePosition.y + delta.y,
635
+ z: basePosition.z + delta.z,
636
+ };
637
+ const state = {
638
+ id,
639
+ position,
640
+ velocity,
641
+ rotation,
642
+ timestamp,
643
+ };
644
+ nextEntityStates.set(id, state);
645
+ entitiesForEvent.push({
646
+ id,
647
+ position: { ...position },
648
+ velocity: { ...velocity },
649
+ rotation: { ...rotation },
650
+ timestamp,
651
+ });
652
+ break;
653
+ }
654
+ case ENTITY_POSITION_TYPE.NO_VELOCITY_ITEM:
655
+ case ENTITY_POSITION_TYPE.F16_VELOCITY_ITEM:
656
+ case ENTITY_POSITION_TYPE.F32_VELOCITY_ITEM: {
657
+ ensure(2);
658
+ const index = payload.readUInt16BE(offset);
659
+ offset += 2;
660
+ const delta = readVec3f32();
661
+ const position = {
662
+ x: basePosition.x + delta.x,
663
+ y: basePosition.y + delta.y,
664
+ z: basePosition.z + delta.z,
665
+ };
666
+ const state = {
667
+ index,
668
+ position,
669
+ velocity,
670
+ timestamp,
671
+ };
672
+ nextItemStates.set(index, state);
673
+ itemsForEvent.push({
674
+ index,
675
+ position: { ...position },
676
+ velocity: { ...velocity },
677
+ timestamp,
678
+ });
679
+ break;
680
+ }
681
+ default: {
682
+ this.log("warn", "Unknown entity position entry type", { type });
683
+ return;
684
+ }
685
+ }
686
+ }
687
+ this.entityStates.clear();
688
+ for (const [id, state] of nextEntityStates) {
689
+ this.entityStates.set(id, state);
690
+ }
691
+ this.itemStates.clear();
692
+ for (const [index, state] of nextItemStates) {
693
+ this.itemStates.set(index, state);
694
+ }
695
+ const packet = {
696
+ timestamp,
697
+ basePosition: { ...basePosition },
698
+ entities: entitiesForEvent,
699
+ items: itemsForEvent,
700
+ };
701
+ this.emit("entityPositions", packet);
702
+ }
703
+ catch (err) {
704
+ this.log("warn", "Failed to decode entity position payload", err);
705
+ }
706
+ }
547
707
  emitPlayers() {
548
- const players = this.getPlayerNames();
708
+ const players = this.getPlayers();
549
709
  this.emit("players", players);
550
710
  }
711
+ getPlayers() {
712
+ return [...this.playerMap.entries()]
713
+ .filter(([id]) => typeof id === "number")
714
+ .filter(([, name]) => typeof name === "string" && name.length > 0)
715
+ .map(([id, name]) => ({ id: id, name: name }));
716
+ }
551
717
  getPlayerNames() {
552
- const names = [];
553
- for (const value of this.playerMap.values()) {
554
- if (typeof value === "string" && value.length > 0) {
555
- names.push(value);
556
- }
557
- }
558
- return names;
718
+ return this.getPlayers().map((player) => player.name);
719
+ }
720
+ getEntityStates() {
721
+ return Array.from(this.entityStates.values(), (state) => ({
722
+ id: state.id,
723
+ position: { ...state.position },
724
+ velocity: { ...state.velocity },
725
+ rotation: { ...state.rotation },
726
+ timestamp: state.timestamp,
727
+ }));
728
+ }
729
+ getEntityState(id) {
730
+ const state = this.entityStates.get(id);
731
+ if (!state) {
732
+ return undefined;
733
+ }
734
+ return {
735
+ id: state.id,
736
+ position: { ...state.position },
737
+ velocity: { ...state.velocity },
738
+ rotation: { ...state.rotation },
739
+ timestamp: state.timestamp,
740
+ };
741
+ }
742
+ getItemStates() {
743
+ return Array.from(this.itemStates.values(), (state) => ({
744
+ index: state.index,
745
+ position: { ...state.position },
746
+ velocity: { ...state.velocity },
747
+ timestamp: state.timestamp,
748
+ }));
749
+ }
750
+ getItemState(index) {
751
+ const state = this.itemStates.get(index);
752
+ if (!state) {
753
+ return undefined;
754
+ }
755
+ return {
756
+ index: state.index,
757
+ position: { ...state.position },
758
+ velocity: { ...state.velocity },
759
+ timestamp: state.timestamp,
760
+ };
559
761
  }
560
762
  sendChat(message) {
561
763
  const payload = Buffer.from(message, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export type ChannelId = (typeof CHANNEL)[keyof typeof CHANNEL];
11
11
  export type SequencedChannelId = typeof CHANNEL.LOSSY | typeof CHANNEL.FAST | typeof CHANNEL.SLOW;
12
12
  export declare const PROTOCOL: {
13
13
  readonly HANDSHAKE: 1;
14
+ readonly ENTITY_POSITION: 6;
14
15
  readonly ENTITY: 8;
15
16
  readonly PLAYER_STATE: 4;
16
17
  readonly CHAT: 10;
package/dist/constants.js CHANGED
@@ -9,6 +9,7 @@ export const CHANNEL = {
9
9
  };
10
10
  export const PROTOCOL = {
11
11
  HANDSHAKE: 1,
12
+ ENTITY_POSITION: 6,
12
13
  ENTITY: 8,
13
14
  PLAYER_STATE: 4,
14
15
  CHAT: 10,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACL,CAAC;AAQX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,EAAE;CACA,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,GAAG;CACL,CAAC;AAKX,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,6CAA6C"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACL,CAAC;AAQX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,CAAC;IAClB,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,EAAE;CACA,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,GAAG;CACL,CAAC;AAKX,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,6CAA6C"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { addSeq, decodeVarInt, encodeVarInt, seqLessThan } from "./binary.js";
2
- export type { CloseOptions, CubyzConnectionLogger, CubyzConnectionOptions, DisconnectEvent, LogLevel, PlayerState, ProtocolEvent, Vector3, } from "./connection.js";
2
+ export type { CloseOptions, CubyzConnectionLogger, CubyzConnectionOptions, DisconnectEvent, EntityPositionPacket, EntitySnapshot, ItemSnapshot, LogLevel, PlayerState, ProtocolEvent, Vector3, } from "./connection.js";
3
3
  export { CubyzConnection } from "./connection.js";
4
4
  export * from "./constants.js";
5
5
  export { ReceiveChannel } from "./receiveChannel.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cubyz-node-client",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Cubyz Node.js Client Library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",