@vaitosoi/minejs 0.2.1 → 0.3.1

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 (118) hide show
  1. package/assets/minecraft/26.2/packets.json +4741 -0
  2. package/dist/base/bitset.d.ts +9 -0
  3. package/dist/base/bitset.d.ts.map +1 -0
  4. package/dist/base/bitset.js +46 -0
  5. package/dist/base/bitset.js.map +1 -0
  6. package/dist/base/error.d.ts +105 -0
  7. package/dist/base/error.d.ts.map +1 -0
  8. package/dist/base/error.js +194 -0
  9. package/dist/base/error.js.map +1 -0
  10. package/dist/base/event.d.ts +7 -0
  11. package/dist/base/event.d.ts.map +1 -0
  12. package/dist/base/event.js +3 -0
  13. package/dist/base/event.js.map +1 -0
  14. package/dist/base/math.d.ts +25 -0
  15. package/dist/base/math.d.ts.map +1 -0
  16. package/dist/base/math.js +69 -0
  17. package/dist/base/math.js.map +1 -0
  18. package/dist/base/typing.d.ts +9 -0
  19. package/dist/base/typing.d.ts.map +1 -0
  20. package/dist/base/typing.js +3 -0
  21. package/dist/base/typing.js.map +1 -0
  22. package/dist/client/auth.d.ts +39 -0
  23. package/dist/client/auth.d.ts.map +1 -0
  24. package/dist/client/auth.js +307 -0
  25. package/dist/client/auth.js.map +1 -0
  26. package/dist/client/client.d.ts +73 -0
  27. package/dist/client/client.d.ts.map +1 -0
  28. package/dist/client/client.js +136 -0
  29. package/dist/client/client.js.map +1 -0
  30. package/dist/client/static.d.ts +28 -0
  31. package/dist/client/static.d.ts.map +1 -0
  32. package/dist/client/static.js +43 -0
  33. package/dist/client/static.js.map +1 -0
  34. package/dist/client/tcp.d.ts +84 -0
  35. package/dist/client/tcp.d.ts.map +1 -0
  36. package/dist/client/tcp.js +173 -0
  37. package/dist/client/tcp.js.map +1 -0
  38. package/dist/index.d.ts +21 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +12 -12
  41. package/dist/index.js.map +1 -0
  42. package/dist/packet/decoder.d.ts +293 -0
  43. package/dist/packet/decoder.d.ts.map +1 -0
  44. package/dist/packet/decoder.js +668 -0
  45. package/dist/packet/decoder.js.map +1 -0
  46. package/dist/packet/dispatcher.d.ts +46 -0
  47. package/dist/packet/dispatcher.d.ts.map +1 -0
  48. package/dist/packet/dispatcher.js +626 -0
  49. package/dist/packet/dispatcher.js.map +1 -0
  50. package/dist/packet/encoder.d.ts +163 -0
  51. package/dist/packet/encoder.d.ts.map +1 -0
  52. package/dist/packet/encoder.js +441 -0
  53. package/dist/packet/encoder.js.map +1 -0
  54. package/dist/packet/static.d.ts +33 -0
  55. package/dist/packet/static.d.ts.map +1 -0
  56. package/dist/packet/static.js +42 -0
  57. package/dist/packet/static.js.map +1 -0
  58. package/dist/physics/aabb.d.ts +197 -0
  59. package/dist/physics/aabb.d.ts.map +1 -0
  60. package/dist/physics/aabb.js +576 -0
  61. package/dist/physics/aabb.js.map +1 -0
  62. package/dist/physics/direction.d.ts +153 -0
  63. package/dist/physics/direction.d.ts.map +1 -0
  64. package/dist/physics/direction.js +288 -0
  65. package/dist/physics/direction.js.map +1 -0
  66. package/dist/physics/player.d.ts +110 -0
  67. package/dist/physics/player.d.ts.map +1 -0
  68. package/dist/physics/player.js +558 -0
  69. package/dist/physics/player.js.map +1 -0
  70. package/dist/version/codec.d.ts +18 -0
  71. package/dist/version/codec.d.ts.map +1 -0
  72. package/dist/version/codec.js +214 -0
  73. package/dist/version/codec.js.map +1 -0
  74. package/dist/version/registry.d.ts +236 -0
  75. package/dist/version/registry.d.ts.map +1 -0
  76. package/dist/version/registry.js +289 -0
  77. package/dist/version/registry.js.map +1 -0
  78. package/dist/world/block.d.ts +86 -0
  79. package/dist/world/block.d.ts.map +1 -0
  80. package/dist/world/block.js +232 -0
  81. package/dist/world/block.js.map +1 -0
  82. package/dist/world/entity.d.ts +43 -0
  83. package/dist/world/entity.d.ts.map +1 -0
  84. package/dist/world/entity.js +97 -0
  85. package/dist/world/entity.js.map +1 -0
  86. package/dist/world/state.d.ts +151 -0
  87. package/dist/world/state.d.ts.map +1 -0
  88. package/dist/world/state.js +108 -0
  89. package/dist/world/state.js.map +1 -0
  90. package/dist/world/tick.d.ts +19 -0
  91. package/dist/world/tick.d.ts.map +1 -0
  92. package/dist/world/tick.js +49 -0
  93. package/dist/world/tick.js.map +1 -0
  94. package/package.json +7 -2
  95. package/src/base/error.ts +36 -0
  96. package/src/base/typing.ts +9 -1
  97. package/src/client/client.ts +99 -42
  98. package/src/client/tcp.ts +49 -954
  99. package/src/index.ts +12 -12
  100. package/src/{translator → packet}/decoder.ts +3 -3
  101. package/src/packet/dispatcher.ts +785 -0
  102. package/src/{translator → packet}/encoder.ts +20 -9
  103. package/src/{base → physics}/aabb.ts +5 -5
  104. package/src/{base → physics}/player.ts +41 -25
  105. package/src/version/codec.ts +227 -0
  106. package/src/version/registry.ts +333 -0
  107. package/src/{base → world}/block.ts +12 -11
  108. package/src/{base → world}/entity.ts +5 -5
  109. package/src/world/state.ts +232 -0
  110. package/test/adapter/index.ts +14 -0
  111. package/test/client/index.ts +1 -1
  112. package/test/json/index.ts +3 -0
  113. package/src/base/registry.ts +0 -87
  114. /package/assets/minecraft/{blocks.json → 26.2/blocks.json} +0 -0
  115. /package/assets/minecraft/{entities.json → 26.2/entities.json} +0 -0
  116. /package/src/{translator → packet}/static.ts +0 -0
  117. /package/src/{base → physics}/direction.ts +0 -0
  118. /package/src/{base → world}/tick.ts +0 -0
@@ -0,0 +1,163 @@
1
+ import { Vec3 } from "../physics/direction";
2
+ import { FixedSizeTag, Tag } from "./static";
3
+ export declare function makeMovementFlag(onGround: boolean, pushingWall: boolean): number;
4
+ export declare class BinaryEncoder {
5
+ private buffer;
6
+ getBuffer(): Buffer<ArrayBuffer>;
7
+ wipeBuffer(): void;
8
+ writeRaw(buf: Buffer): this;
9
+ /**
10
+ * Write shortcut
11
+ *
12
+ * Allocate `size`-byte buffer, use writeFunc to write the data, then concatenate to internal buffer;
13
+ */
14
+ write(size: number, val: any, writeFunc: (buf: Buffer) => ((val: any) => void)): this;
15
+ /**
16
+ * Write 1 byte singed integer
17
+ */
18
+ writeByte(val: number): this;
19
+ /**
20
+ * Write 1 byte unsinged integer
21
+ */
22
+ writeUByte(val: number): this;
23
+ /**
24
+ * Write 2 bytes singed integer
25
+ */
26
+ writeShort(val: number): this;
27
+ /**
28
+ * Write 2 bytes unsinged integer
29
+ */
30
+ writeUShort(val: number): this;
31
+ /**
32
+ * Write 4 bytes singed integer
33
+ */
34
+ writeInt(val: number): this;
35
+ /**
36
+ * Write 6 bytes singed integer
37
+ */
38
+ writeLong(val: bigint): this;
39
+ /**
40
+ * Write 4 bytes float
41
+ */
42
+ writeFloat(val: number): this;
43
+ /**
44
+ * Write 8 bytes double
45
+ */
46
+ writeDouble(val: number): this;
47
+ /**
48
+ * Write boolean
49
+ */
50
+ writeBoolean(val: boolean): this;
51
+ /**
52
+ * Write a VarInt
53
+ *
54
+ * A VarInt packet would look like this:
55
+ *
56
+ * `[7 bits of data][1 bit indicate if the VarInt ended here]`
57
+ */
58
+ writeVarInt(value: number): this;
59
+ /**
60
+ * Write a VarLong
61
+ *
62
+ * Similar to VarInt, A VarLong packet would look like this:
63
+ *
64
+ * `[7 bits of data][1 bit indicate if the VarLong ended here]`
65
+ */
66
+ writeVarLong(value: bigint): this;
67
+ /**
68
+ * Write a string
69
+ *
70
+ * A string packet would look like this:
71
+ *
72
+ * `[VarInt as length, if not provided][N bits of data]`
73
+ */
74
+ writeString(str: string): this;
75
+ /**
76
+ * Write a Position
77
+ *
78
+ * A position packet is a 64-bit value, split into three signed integer parts:
79
+ * ```
80
+ * x: 26 MSBs
81
+ * z: 26 middle bits
82
+ * y: 12 LSBs
83
+ * ```
84
+ *
85
+ * @returns a Position
86
+ */
87
+ writePosition(position: Vec3): this;
88
+ /**
89
+ * Write a length-prefixed array with raw buffer
90
+ *
91
+ * An array packet would look like this:
92
+ * `[VarInt as length][N bytes of data]`
93
+ *
94
+ * @param size size of the item, in byte
95
+ * @returns a length-prefixed array
96
+ */
97
+ writePrefixedArray(length: number, writeFunc: (encoder: BinaryEncoder, index: number) => BinaryEncoder | Buffer): this;
98
+ /**
99
+ * Write a length-prefixed array with raw buffer
100
+ *
101
+ * An array packet would look like this:
102
+ * `[VarInt as length][N bytes of data]`
103
+ *
104
+ * @param size size of the item, in byte
105
+ * @returns a length-prefixed array
106
+ */
107
+ writeRawPrefixedArray(data: Buffer, size: number): this;
108
+ private pack;
109
+ /**
110
+ * Write LpVec3
111
+ *
112
+ * Read this article for more information: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3
113
+ */
114
+ writeLpVec3(vec3: Vec3): this;
115
+ }
116
+ type CompoundField = any | {
117
+ tag: Tag;
118
+ value: any;
119
+ };
120
+ export interface StaticTypedField {
121
+ __isStatic: true;
122
+ type: Tag;
123
+ value: any;
124
+ }
125
+ export declare class NBTEncoder extends BinaryEncoder {
126
+ private object;
127
+ constructor(object: Record<string, CompoundField>);
128
+ /**
129
+ * Write buffer to buffer
130
+ */
131
+ writeTag(tag: Tag): this;
132
+ /**
133
+ * Write a fixed-size tag to buffer
134
+ */
135
+ writeFixedSize(type: FixedSizeTag, value: any): this;
136
+ /**
137
+ * Auto find the suitable tag and write it to the buffer
138
+ */
139
+ writeNumber(val: number | bigint): this;
140
+ /**
141
+ * Write a string
142
+ */
143
+ writeString(str: string): this;
144
+ /**
145
+ * Write a list
146
+ * Unsafe
147
+ */
148
+ writeList(type: Tag, arr: any[]): this;
149
+ /**
150
+ * Write a byte / int / long array
151
+ */
152
+ writeArray(type: Extract<Tag, Tag.ByteArray | Tag.IntArray | Tag.LongArray>, arr: any[]): this;
153
+ /**
154
+ * Write a compound
155
+ */
156
+ writeObject(obj: Record<string, any>): this;
157
+ /**
158
+ * Start encode
159
+ */
160
+ encode(): Buffer<ArrayBuffer>;
161
+ }
162
+ export {};
163
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/packet/encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,441 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NBTEncoder = exports.BinaryEncoder = void 0;
4
+ exports.makeMovementFlag = makeMovementFlag;
5
+ const static_1 = require("./static");
6
+ const error_1 = require("../base/error");
7
+ const static_2 = require("./static");
8
+ function makeMovementFlag(onGround, pushingWall) {
9
+ let flag = 0;
10
+ if (onGround)
11
+ flag &= 1;
12
+ if (pushingWall)
13
+ flag |= 1 << 2;
14
+ return flag;
15
+ }
16
+ class BinaryEncoder {
17
+ buffer = Buffer.alloc(0);
18
+ getBuffer() {
19
+ return Buffer.from(this.buffer);
20
+ }
21
+ wipeBuffer() {
22
+ this.buffer = Buffer.alloc(0);
23
+ }
24
+ writeRaw(buf) {
25
+ this.buffer = Buffer.concat([this.buffer, buf]);
26
+ return this;
27
+ }
28
+ /**
29
+ * Write shortcut
30
+ *
31
+ * Allocate `size`-byte buffer, use writeFunc to write the data, then concatenate to internal buffer;
32
+ */
33
+ write(size, val, writeFunc) {
34
+ const buf = Buffer.alloc(size);
35
+ writeFunc(buf).bind(buf)(val);
36
+ this.writeRaw(buf);
37
+ return this;
38
+ }
39
+ /**
40
+ * Write 1 byte singed integer
41
+ */
42
+ writeByte(val) { return this.write(1, val, (buf) => buf.writeInt8); }
43
+ /**
44
+ * Write 1 byte unsinged integer
45
+ */
46
+ writeUByte(val) { return this.write(1, val, (buf) => buf.writeUInt8); }
47
+ /**
48
+ * Write 2 bytes singed integer
49
+ */
50
+ writeShort(val) { return this.write(2, val, (buf) => buf.writeInt16BE); }
51
+ /**
52
+ * Write 2 bytes unsinged integer
53
+ */
54
+ writeUShort(val) { return this.write(2, val, (buf) => buf.writeUInt16BE); }
55
+ /**
56
+ * Write 4 bytes singed integer
57
+ */
58
+ writeInt(val) { return this.write(4, val, (buf) => buf.writeInt32BE); }
59
+ /**
60
+ * Write 6 bytes singed integer
61
+ */
62
+ writeLong(val) { return this.write(8, val, (buf) => buf.writeBigInt64BE); }
63
+ /**
64
+ * Write 4 bytes float
65
+ */
66
+ writeFloat(val) { return this.write(4, val, (buf) => buf.writeFloatBE); }
67
+ /**
68
+ * Write 8 bytes double
69
+ */
70
+ writeDouble(val) { return this.write(8, val, (buf) => buf.writeDoubleBE); }
71
+ /**
72
+ * Write boolean
73
+ */
74
+ writeBoolean(val) { return this.writeByte(val == true ? 1 : 0); }
75
+ // Source: https://minecraft.wiki/w/Java_Edition_protocol/Packets#VarInt_and_VarLong
76
+ /**
77
+ * Write a VarInt
78
+ *
79
+ * A VarInt packet would look like this:
80
+ *
81
+ * `[7 bits of data][1 bit indicate if the VarInt ended here]`
82
+ */
83
+ writeVarInt(value) {
84
+ while (true) {
85
+ if ((value & ~static_1.SEGMENT_BITS) == 0) {
86
+ this.writeUByte(value);
87
+ return this;
88
+ }
89
+ this.writeUByte((value & static_1.SEGMENT_BITS) | static_1.CONTINUE_BIT);
90
+ // Note: >>> means that the leftmost bits are filled with zeroes regardless of the sign,
91
+ // rather than being filled with copies of the sign bit to preserve the sign.
92
+ // In languages that don't have a ">>>" operator, This behavior can often be selected by
93
+ // performing the shift on an unsigned type.
94
+ value >>>= 7;
95
+ }
96
+ }
97
+ /**
98
+ * Write a VarLong
99
+ *
100
+ * Similar to VarInt, A VarLong packet would look like this:
101
+ *
102
+ * `[7 bits of data][1 bit indicate if the VarLong ended here]`
103
+ */
104
+ writeVarLong(value) {
105
+ // Force the value to behave as an unsigned 64-bit integer for two's complement arithmetic
106
+ value = BigInt.asUintN(64, value);
107
+ while (true) {
108
+ if ((value & ~BigInt(static_1.SEGMENT_BITS)) == BigInt(0)) {
109
+ this.writeUByte(Number(value));
110
+ return this;
111
+ }
112
+ this.writeUByte(Number(value & BigInt(static_1.SEGMENT_BITS)) | static_1.CONTINUE_BIT);
113
+ // Use '>>=' instead of '>>>=' because 'bigint' does not support unsigned right shifts.
114
+ // Since we applied BigInt.asUintN earlier, the value is guaranteed to be positive,
115
+ // so '>>' will correctly fill the leftmost bits with zeroes.
116
+ // Edited by Copilot since I have no idea what this is :D
117
+ value >>= BigInt(7);
118
+ }
119
+ }
120
+ /**
121
+ * Write a string
122
+ *
123
+ * A string packet would look like this:
124
+ *
125
+ * `[VarInt as length, if not provided][N bits of data]`
126
+ */
127
+ writeString(str) {
128
+ this.writeVarInt(str.length);
129
+ this.writeRaw(Buffer.from(str));
130
+ return this;
131
+ }
132
+ /**
133
+ * Write a Position
134
+ *
135
+ * A position packet is a 64-bit value, split into three signed integer parts:
136
+ * ```
137
+ * x: 26 MSBs
138
+ * z: 26 middle bits
139
+ * y: 12 LSBs
140
+ * ```
141
+ *
142
+ * @returns a Position
143
+ */
144
+ writePosition(position) {
145
+ const val = BigInt(((position.x & 0x3FFFFFF) << 38) |
146
+ ((position.z & 0x3FFFFFF) << 12) |
147
+ (position.y & 0xFFF));
148
+ this.writeLong(val);
149
+ return this;
150
+ }
151
+ /**
152
+ * Write a length-prefixed array with raw buffer
153
+ *
154
+ * An array packet would look like this:
155
+ * `[VarInt as length][N bytes of data]`
156
+ *
157
+ * @param size size of the item, in byte
158
+ * @returns a length-prefixed array
159
+ */
160
+ writePrefixedArray(length, writeFunc) {
161
+ const array = Array.from({ length }, (_, index) => {
162
+ const val = writeFunc(new BinaryEncoder(), index);
163
+ if (val instanceof BinaryEncoder)
164
+ return val.getBuffer();
165
+ else
166
+ return val;
167
+ });
168
+ this.writeVarInt(length);
169
+ this.writeRaw(Buffer.concat(array));
170
+ return this;
171
+ }
172
+ /**
173
+ * Write a length-prefixed array with raw buffer
174
+ *
175
+ * An array packet would look like this:
176
+ * `[VarInt as length][N bytes of data]`
177
+ *
178
+ * @param size size of the item, in byte
179
+ * @returns a length-prefixed array
180
+ */
181
+ writeRawPrefixedArray(data, size) {
182
+ const length = Math.ceil(data.length / size);
183
+ this.writeVarInt(length);
184
+ this.writeRaw(data);
185
+ return this;
186
+ }
187
+ // For writing LpVec3
188
+ pack(value) {
189
+ return Math.round((value * 0.5 + 0.5) * static_1.MAX_QUANTIZED_VALUE);
190
+ }
191
+ /**
192
+ * Write LpVec3
193
+ *
194
+ * Read this article for more information: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3
195
+ */
196
+ writeLpVec3(vec3) {
197
+ const maxCoordinate = Math.max(Math.abs(vec3.x), Math.max(Math.abs(vec3.y), Math.abs(vec3.z)));
198
+ // Checking for NaN values in our maxCoordinate
199
+ if (isNaN(maxCoordinate) || maxCoordinate < 1 / static_1.MAX_QUANTIZED_VALUE) {
200
+ this.writeByte(0);
201
+ }
202
+ else {
203
+ const scaleFactor = BigInt(Math.ceil(maxCoordinate));
204
+ const needContinuation = (scaleFactor & static_1.SCALE_BITS) != scaleFactor;
205
+ const packedScale = needContinuation ? scaleFactor & static_1.SCALE_BITS | static_1.CONTINUATION_FLAG : scaleFactor;
206
+ const packedX = BigInt(this.pack(vec3.x)) / scaleFactor << 3n;
207
+ const packedY = BigInt(this.pack(vec3.y)) / scaleFactor << 18n;
208
+ const packedZ = BigInt(this.pack(vec3.z)) / scaleFactor << 33n;
209
+ const packed = packedZ | packedY | packedX | packedScale;
210
+ this.writeByte(Number(packed));
211
+ this.writeByte(Number(packed >> 8n));
212
+ this.writeInt(Number(packed >> 16n));
213
+ if (needContinuation) {
214
+ this.writeVarInt(Number(scaleFactor >> 2n));
215
+ }
216
+ }
217
+ return this;
218
+ }
219
+ }
220
+ exports.BinaryEncoder = BinaryEncoder;
221
+ // Check if N is floating point
222
+ // Got from https://stackoverflow.com/a/3886106/17106809
223
+ const isFloat = (n) => (typeof (n) == "number" && n % 1 !== 0) ||
224
+ (typeof (n) == "bigint" && n % BigInt(1) !== BigInt(0));
225
+ function getTagOfNumber(n) {
226
+ if (isFloat(n)) {
227
+ if (-Math.pow(2, 4 * 8 - 1) <= n && n <= Math.pow(2, 4 * 8 - 1) - 1)
228
+ return static_2.Tag.Float;
229
+ else if (BigInt(-Math.pow(2, 8 * 8 - 1)) <= n && n <= BigInt(Math.pow(2, 8 * 8 - 1) - 1))
230
+ return static_2.Tag.Double;
231
+ else
232
+ throw new error_1.NumberTooBig(n);
233
+ }
234
+ else {
235
+ if (-Math.pow(2, 1 * 8 - 1) <= n && n <= Math.pow(2, 1 * 8 - 1) - 1)
236
+ return static_2.Tag.Byte;
237
+ else if (-Math.pow(2, 2 * 8 - 1) <= n && n <= Math.pow(2, 2 * 8 - 1) - 1)
238
+ return static_2.Tag.Short;
239
+ else if (-Math.pow(2, 4 * 8 - 1) <= n && n <= Math.pow(2, 4 * 8 - 1) - 1)
240
+ return static_2.Tag.Int;
241
+ else if (BigInt(-Math.pow(2, 8 * 8 - 1)) <= n && n <= BigInt(Math.pow(2, 8 * 8 - 1) - 1))
242
+ return static_2.Tag.Long;
243
+ else
244
+ throw new error_1.NumberTooBig(n);
245
+ }
246
+ }
247
+ class NBTEncoder extends BinaryEncoder {
248
+ object;
249
+ constructor(object) {
250
+ super();
251
+ this.object = object;
252
+ }
253
+ /**
254
+ * Write buffer to buffer
255
+ */
256
+ writeTag(tag) {
257
+ this.writeFixedSize(static_2.Tag.Byte, tag);
258
+ return this;
259
+ }
260
+ /**
261
+ * Write a fixed-size tag to buffer
262
+ */
263
+ writeFixedSize(type, value) {
264
+ switch (type) {
265
+ case static_2.Tag.Byte:
266
+ this.writeByte(value);
267
+ break;
268
+ case static_2.Tag.Short:
269
+ this.writeShort(value);
270
+ break;
271
+ case static_2.Tag.Int:
272
+ this.writeInt(value);
273
+ break;
274
+ case static_2.Tag.Long:
275
+ this.writeLong(BigInt(value));
276
+ break;
277
+ case static_2.Tag.Float:
278
+ this.writeFloat(value);
279
+ break;
280
+ case static_2.Tag.Double:
281
+ this.writeDouble(value);
282
+ break;
283
+ default: throw new error_1.UnexpectedValue("fixed-size tag", type.toString(16));
284
+ }
285
+ return this;
286
+ }
287
+ /**
288
+ * Auto find the suitable tag and write it to the buffer
289
+ */
290
+ writeNumber(val) {
291
+ const tag = getTagOfNumber(val);
292
+ this.writeFixedSize(tag, val);
293
+ return this;
294
+ }
295
+ /**
296
+ * Write a string
297
+ */
298
+ writeString(str) {
299
+ this.writeUShort(str.length);
300
+ if (str.length === 0)
301
+ return this;
302
+ this.writeRaw(Buffer.from(str));
303
+ return this;
304
+ }
305
+ /**
306
+ * Write a list
307
+ * Unsafe
308
+ */
309
+ writeList(type, arr) {
310
+ this.writeFixedSize(static_2.Tag.Byte, type);
311
+ this.writeInt(arr.length);
312
+ if (arr.length === 0)
313
+ return this;
314
+ if (type == static_2.Tag.String)
315
+ for (const item of arr)
316
+ this.writeString(item);
317
+ else
318
+ this.writeRaw(Buffer.from(arr));
319
+ return this;
320
+ }
321
+ /**
322
+ * Write a byte / int / long array
323
+ */
324
+ writeArray(type, arr) {
325
+ this.writeInt(arr.length);
326
+ for (const item of arr)
327
+ switch (type) {
328
+ case static_2.Tag.ByteArray:
329
+ this.writeByte(item);
330
+ break;
331
+ case static_2.Tag.IntArray:
332
+ this.writeInt(item);
333
+ break;
334
+ case static_2.Tag.LongArray:
335
+ this.writeLong(BigInt(item));
336
+ break;
337
+ }
338
+ return this;
339
+ }
340
+ /**
341
+ * Write a compound
342
+ */
343
+ writeObject(obj) {
344
+ for (const [name, val] of Object.entries(obj)) {
345
+ switch (typeof val) {
346
+ case "string": {
347
+ this.writeTag(static_2.Tag.String)
348
+ .writeString(name)
349
+ .writeString(val);
350
+ break;
351
+ }
352
+ case "number":
353
+ case "bigint": {
354
+ const tag = getTagOfNumber(val);
355
+ this.writeTag(tag)
356
+ .writeString(name)
357
+ .writeFixedSize(tag, val);
358
+ break;
359
+ }
360
+ case "object": {
361
+ if (typeof val === "object" &&
362
+ "__isStatic" in val &&
363
+ val["__isStatic"] === true &&
364
+ "type" in val && (0, static_1.isTag)(val["type"]) &&
365
+ "value" in val) {
366
+ const tag = val["type"];
367
+ const value = val["value"];
368
+ // TODO: Handle other type
369
+ this.writeTag(tag);
370
+ if ((0, static_1.isFixedSizeTag)(tag))
371
+ this.writeFixedSize(tag, value);
372
+ else if (tag === static_2.Tag.String)
373
+ this.writeString(value);
374
+ }
375
+ else if (Array.isArray(val)) {
376
+ let suitableTagForArray = static_2.Tag.Byte, listItemTag = static_2.Tag.Float;
377
+ for (const item of val) {
378
+ if (isNaN(Number(item))) {
379
+ suitableTagForArray = static_2.Tag.List;
380
+ // Just support list of string and float for now
381
+ if (typeof item !== "string")
382
+ throw new error_1.InvalidValue("list item", typeof item);
383
+ listItemTag = static_2.Tag.String;
384
+ break;
385
+ }
386
+ const itemTag = getTagOfNumber(item);
387
+ if (itemTag == static_2.Tag.Float || itemTag == static_2.Tag.Double) {
388
+ suitableTagForArray = static_2.Tag.List;
389
+ listItemTag = itemTag;
390
+ break;
391
+ }
392
+ if (suitableTagForArray < itemTag)
393
+ suitableTagForArray = itemTag;
394
+ }
395
+ if (suitableTagForArray === static_2.Tag.List)
396
+ this.writeTag(static_2.Tag.List)
397
+ .writeString(name)
398
+ .writeList(listItemTag, val);
399
+ else {
400
+ let arrTag;
401
+ switch (suitableTagForArray) {
402
+ case static_2.Tag.Byte:
403
+ arrTag = static_2.Tag.ByteArray;
404
+ break;
405
+ case static_2.Tag.Short:
406
+ case static_2.Tag.Int:
407
+ arrTag = static_2.Tag.IntArray;
408
+ break;
409
+ case static_2.Tag.Long:
410
+ arrTag = static_2.Tag.LongArray;
411
+ break;
412
+ }
413
+ this.writeTag(arrTag)
414
+ .writeString(name)
415
+ .writeArray(arrTag, val);
416
+ }
417
+ }
418
+ else {
419
+ this.writeTag(static_2.Tag.Compound)
420
+ .writeString(name)
421
+ .writeObject(val);
422
+ }
423
+ break;
424
+ }
425
+ }
426
+ }
427
+ this.writeTag(static_2.Tag.End);
428
+ return this;
429
+ }
430
+ /**
431
+ * Start encode
432
+ */
433
+ encode() {
434
+ this.writeTag(static_2.Tag.Compound)
435
+ .writeString("") // Root name is empty
436
+ .writeObject(this.object);
437
+ return this.getBuffer();
438
+ }
439
+ }
440
+ exports.NBTEncoder = NBTEncoder;
441
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/packet/encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /** @hidden */
2
+ export declare const SEGMENT_BITS = 127;
3
+ /** @hidden */
4
+ export declare const CONTINUE_BIT = 128;
5
+ /** @hidden */
6
+ export declare const MAX_QUANTIZED_VALUE = 32766;
7
+ /** @hidden */
8
+ export declare const CONTINUATION_FLAG: bigint;
9
+ /** @hidden */
10
+ export declare const SCALE_BITS: bigint;
11
+ /** @hidden */
12
+ export declare enum Tag {
13
+ End = 0,
14
+ Byte = 1,
15
+ Short = 2,
16
+ Int = 3,
17
+ Long = 4,
18
+ Float = 5,
19
+ Double = 6,
20
+ ByteArray = 7,
21
+ String = 8,
22
+ List = 9,
23
+ Compound = 10,
24
+ IntArray = 11,
25
+ LongArray = 12
26
+ }
27
+ /** @hidden */
28
+ export type FixedSizeTag = Extract<Tag, Tag.Byte | Tag.Short | Tag.Int | Tag.Long | Tag.Float | Tag.Double>;
29
+ /** @hidden */
30
+ export declare const isTag: (tag: any) => tag is Tag;
31
+ /** @hidden */
32
+ export declare const isFixedSizeTag: (tag: Tag) => tag is FixedSizeTag;
33
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../src/packet/static.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,eAAO,MAAM,YAAY,MAAO,CAAC;AACjC,cAAc;AACd,eAAO,MAAM,YAAY,MAAO,CAAC;AACjC,cAAc;AACd,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,cAAc;AACd,eAAO,MAAM,iBAAiB,QAAe,CAAC;AAC9C,cAAc;AACd,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,cAAc;AACd,oBAAY,GAAG;IACX,GAAG,IAAO;IACV,IAAI,IAAO;IACX,KAAK,IAAO;IACZ,GAAG,IAAO;IACV,IAAI,IAAO;IACX,KAAK,IAAO;IACZ,MAAM,IAAO;IACb,SAAS,IAAO;IAChB,MAAM,IAAO;IACb,IAAI,IAAO;IACX,QAAQ,KAAO;IACf,QAAQ,KAAO;IACf,SAAS,KAAO;CACnB;AAED,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAClC,GAAG,CAAC,IAAI,GACN,GAAG,CAAC,KAAK,GACT,GAAG,CAAC,GAAG,GACP,GAAG,CAAC,IAAI,GACR,GAAG,CAAC,KAAK,GACT,GAAG,CAAC,MAAM,CAAC,CAAC;AAElB,cAAc;AACd,eAAO,MAAM,KAAK,QAAS,GAAG,KAAG,GAAG,IAAI,GACN,CAAC;AAEnC,cAAc;AACd,eAAO,MAAM,cAAc,QAAS,GAAG,KAAG,GAAG,IAAI,YAQ5C,CAAC"}