@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,84 @@
1
+ import { Socket, SocketConstructorOpts } from "node:net";
2
+ import { TypedEmmiter } from "../base/event";
3
+ import { BinaryDecoder } from "../packet/decoder";
4
+ import { AuthOption } from "./auth";
5
+ import { SharedState } from "../world/state";
6
+ import { EncodeResult } from "../version/codec";
7
+ import { TextComponent } from "../base/typing";
8
+ export interface TCPClientOption {
9
+ /** Server host */
10
+ host: string;
11
+ /** Server port */
12
+ port: number;
13
+ /**
14
+ * Server protocol version.
15
+ *
16
+ * Currentlt support `776` or version `26.2`
17
+ *
18
+ * @see https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol_version_numbers
19
+ */
20
+ protocolVersion: number;
21
+ /** Player name */
22
+ playerName: string;
23
+ /**
24
+ * Set to true only if you are playing in offline server or crack server
25
+ */
26
+ isOffline?: boolean;
27
+ /**
28
+ * Send empty `Known Packet` to let server send all Registry data, which may consume a lot of bandwith
29
+ */
30
+ loadRegistry?: boolean;
31
+ debug?: {
32
+ /** Log the incoming packet */
33
+ packetLogger: boolean;
34
+ };
35
+ auth?: AuthOption;
36
+ }
37
+ export interface TCPClientEvents {
38
+ connect: [];
39
+ raw: [buffer: Buffer];
40
+ destroy: [];
41
+ }
42
+ export interface Message {
43
+ sender: string;
44
+ target: string | undefined;
45
+ content: string;
46
+ raw: {
47
+ sender: TextComponent;
48
+ target: TextComponent | undefined;
49
+ content: TextComponent | undefined;
50
+ };
51
+ }
52
+ declare const TCPClient_base: new () => TypedEmmiter<TCPClientEvents>;
53
+ /**
54
+ * Low-level client. You SHOULD NOT use this client unless you know what are you doing
55
+ *
56
+ * @see https://minecraft.wiki/w/Java_Edition_protocol/Packets?oldid=3445844
57
+ */
58
+ export declare class TCPClient extends TCPClient_base {
59
+ private state;
60
+ readonly option: TCPClientOption;
61
+ readonly socket: Socket;
62
+ /**
63
+ * | Value | Meaning |
64
+ * |-------|---------|
65
+ * | 0 | not set yet |
66
+ * | -1 | dont compress |
67
+ * | > 0 | compression threshold |
68
+ */
69
+ private bufferPool;
70
+ constructor(state: SharedState, option: TCPClientOption, socketOption?: SocketConstructorOpts);
71
+ sendInitPacket: () => void;
72
+ forwardPacket: (packetId: number, decoder: BinaryDecoder) => void;
73
+ parsePacket: (packetId: string | number, data: object) => EncodeResult;
74
+ /**
75
+ * Connect to server
76
+ */
77
+ connect(): Promise<void>;
78
+ disconnect(): void;
79
+ private handlePacket;
80
+ write(buf: Buffer): void;
81
+ sendPacket(packetId: number | string, data: Record<string, any>): void;
82
+ }
83
+ export {};
84
+ //# sourceMappingURL=tcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../../src/client/tcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAIzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAiC,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,MAAM,WAAW,eAAe;IAC5B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,KAAK,CAAC,EAAE;QACJ,8BAA8B;QAC9B,YAAY,EAAE,OAAO,CAAA;KACxB,CAAC;IAGF,IAAI,CAAC,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,EAAE,CAAC;IACZ,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrB,OAAO,EAAE,EAAE,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE;QACD,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;QAClC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;KACrC,CAAA;CACJ;wCAcyD,YAAY,CAAC,eAAe,CAAC;AALvF;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,cAAyD;IAchF,OAAO,CAAC,KAAK;aACG,MAAM,EAAE,eAAe;IAd3C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAG/B;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAA2B;IAE7C,YACY,KAAK,EAAE,WAAW,EACV,MAAM,EAAE,eAAe,EACvC,YAAY,CAAC,EAAE,qBAAqB,EAOvC;IAEM,cAAc,EAAE,MAAM,IAAI,CAAwD;IAClF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAA+D;IAChI,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,YAAY,CAA+D;IAE5I;;OAEG;IACU,OAAO,kBAkCnB;IAEM,UAAU,SAGhB;IAMD,OAAO,CAAC,YAAY;IAyCb,KAAK,CAAC,GAAG,EAAE,MAAM,QASvB;IAEM,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAiCrE;CAEJ"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TCPClient = void 0;
4
+ const node_net_1 = require("node:net");
5
+ const node_events_1 = require("node:events");
6
+ const node_zlib_1 = require("node:zlib");
7
+ const decoder_1 = require("../packet/decoder");
8
+ const encoder_1 = require("../packet/encoder");
9
+ const state_1 = require("../world/state");
10
+ const error_1 = require("../base/error");
11
+ // export enum TCPServerIntent {
12
+ // Status = 1,
13
+ // Login = 2,
14
+ // Transfer = 3,
15
+ // }
16
+ /**
17
+ * Low-level client. You SHOULD NOT use this client unless you know what are you doing
18
+ *
19
+ * @see https://minecraft.wiki/w/Java_Edition_protocol/Packets?oldid=3445844
20
+ */
21
+ class TCPClient extends node_events_1.EventEmitter {
22
+ state;
23
+ option;
24
+ socket;
25
+ // Internal var
26
+ /**
27
+ * | Value | Meaning |
28
+ * |-------|---------|
29
+ * | 0 | not set yet |
30
+ * | -1 | dont compress |
31
+ * | > 0 | compression threshold |
32
+ */
33
+ bufferPool = Buffer.alloc(0);
34
+ constructor(state, option, socketOption) {
35
+ super();
36
+ this.state = state;
37
+ this.option = option;
38
+ this.socket = new node_net_1.Socket(socketOption);
39
+ if (!option.isOffline && !option.auth)
40
+ throw new error_1.MissingAuthOption();
41
+ }
42
+ sendInitPacket = () => { throw new Error("method not implemented"); };
43
+ forwardPacket = (...args) => { throw new Error("method not implemented"); };
44
+ parsePacket = (...args) => { throw new Error("method not implemented"); };
45
+ /**
46
+ * Connect to server
47
+ */
48
+ async connect() {
49
+ this.state.status = state_1.ClientStatus.Connecting;
50
+ const connection = this.socket.connect({
51
+ host: this.option.host,
52
+ port: this.option.port
53
+ });
54
+ connection.on("connect", () => {
55
+ this.emit("connect");
56
+ this.sendInitPacket();
57
+ });
58
+ connection.on("data", (data) => {
59
+ let buf = Buffer.from(data);
60
+ if (this.state.decipher) {
61
+ buf = this.state.decipher.update(buf);
62
+ }
63
+ this.emit("raw", Buffer.from(buf));
64
+ this.bufferPool = Buffer.concat([this.bufferPool, buf]);
65
+ this.handlePacket();
66
+ });
67
+ connection.once("end", () => {
68
+ this.emit("destroy");
69
+ if (this.state.status === state_1.ClientStatus.Disconnected)
70
+ return;
71
+ this.state.status = state_1.ClientStatus.Disconnected;
72
+ this.state.state = state_1.ConnectionState.Disconnected;
73
+ // this.emit("disconnect", "socket close");
74
+ });
75
+ connection.once("close", () => {
76
+ this.emit("destroy");
77
+ if (this.state.status === state_1.ClientStatus.Disconnected)
78
+ return;
79
+ this.state.status = state_1.ClientStatus.Disconnected;
80
+ this.state.state = state_1.ConnectionState.Disconnected;
81
+ // this.emit("disconnect", "socket close");
82
+ });
83
+ }
84
+ disconnect() {
85
+ if (!this.socket.closed)
86
+ this.socket.destroy();
87
+ }
88
+ /*
89
+ * Read packet
90
+ */
91
+ handlePacket() {
92
+ while (true) {
93
+ if (this.bufferPool.length === 0)
94
+ break;
95
+ let decoder = new decoder_1.BinaryDecoder(this.bufferPool);
96
+ let packetLength;
97
+ try {
98
+ packetLength = decoder.readVarInt();
99
+ }
100
+ catch (e) {
101
+ break; // Not enough data to read VarInt
102
+ }
103
+ if (this.bufferPool.length - decoder.offset < packetLength)
104
+ break;
105
+ const expectedPacketEnd = decoder.offset + packetLength;
106
+ let packetID;
107
+ if (this.state.compressionThreshold === 0)
108
+ packetID = decoder.readVarInt();
109
+ else if (this.state.compressionThreshold === -1) {
110
+ decoder.readVarInt();
111
+ packetID = decoder.readVarInt();
112
+ }
113
+ else {
114
+ const dataLength = decoder.readVarInt();
115
+ if (dataLength === 0) {
116
+ packetID = decoder.readVarInt();
117
+ }
118
+ else {
119
+ const dataBuffer = this.bufferPool.subarray(decoder.offset, expectedPacketEnd);
120
+ const decompressed = (0, node_zlib_1.inflateSync)(dataBuffer);
121
+ decoder = new decoder_1.BinaryDecoder(decompressed);
122
+ packetID = decoder.readVarInt();
123
+ }
124
+ }
125
+ this.forwardPacket(packetID, decoder);
126
+ this.bufferPool = this.bufferPool.subarray(expectedPacketEnd);
127
+ }
128
+ }
129
+ /*
130
+ * Send packet
131
+ */
132
+ write(buf) {
133
+ if (!this.socket.writable)
134
+ throw new error_1.SockerIsNotWritable();
135
+ let sendBuffer = buf;
136
+ if (this.state.cipher)
137
+ sendBuffer = this.state.cipher.update(sendBuffer);
138
+ this.socket.write(sendBuffer);
139
+ }
140
+ sendPacket(packetId, data) {
141
+ const { buffer: content, packet } = this.parsePacket(packetId, data);
142
+ const encodePacketId = new encoder_1.BinaryEncoder();
143
+ encodePacketId.writeVarInt(packet.id);
144
+ const sendData = Buffer.concat([encodePacketId.getBuffer(), content]);
145
+ let sendingPacket;
146
+ if (this.state.compressionThreshold !== 0) {
147
+ let data;
148
+ let uncompressedLength;
149
+ if (this.state.compressionThreshold > 0 && sendData.length > this.state.compressionThreshold) {
150
+ uncompressedLength = sendData.length;
151
+ data = (0, node_zlib_1.deflateSync)(sendData);
152
+ }
153
+ else {
154
+ uncompressedLength = 0;
155
+ data = sendData;
156
+ }
157
+ const dataLengthEncoder = new encoder_1.BinaryEncoder();
158
+ dataLengthEncoder.writeVarInt(uncompressedLength);
159
+ const dataLengthBuf = dataLengthEncoder.getBuffer();
160
+ const packetLengthEncoder = new encoder_1.BinaryEncoder();
161
+ packetLengthEncoder.writeVarInt(dataLengthBuf.length + data.length);
162
+ sendingPacket = Buffer.concat([packetLengthEncoder.getBuffer(), dataLengthBuf, data]);
163
+ }
164
+ else {
165
+ const packetLengthEncoder = new encoder_1.BinaryEncoder();
166
+ packetLengthEncoder.writeVarInt(sendData.length);
167
+ sendingPacket = Buffer.concat([packetLengthEncoder.getBuffer(), sendData]);
168
+ }
169
+ this.write(sendingPacket);
170
+ }
171
+ }
172
+ exports.TCPClient = TCPClient;
173
+ //# sourceMappingURL=tcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcp.js","sourceRoot":"","sources":["../../src/client/tcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export * from "./base/bitset";
2
+ export * from "./base/error";
3
+ export * from "./base/event";
4
+ export * from "./base/math";
5
+ export * from "./base/typing";
6
+ export * from "./client/auth";
7
+ export * from "./client/client";
8
+ export * from "./client/tcp";
9
+ export * from "./packet/decoder";
10
+ export * from "./packet/encoder";
11
+ export * from "./packet/dispatcher";
12
+ export * from "./physics/aabb";
13
+ export * from "./physics/direction";
14
+ export * from "./physics/player";
15
+ export * from "./version/codec";
16
+ export * from "./version/registry";
17
+ export * from "./world/block";
18
+ export * from "./world/entity";
19
+ export * from "./world/state";
20
+ export * from "./world/tick";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -14,24 +14,24 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./base/aabb"), exports);
18
17
  __exportStar(require("./base/bitset"), exports);
19
- __exportStar(require("./base/block"), exports);
20
- __exportStar(require("./base/block"), exports);
21
- __exportStar(require("./base/direction"), exports);
22
- __exportStar(require("./base/entity"), exports);
23
18
  __exportStar(require("./base/error"), exports);
24
19
  __exportStar(require("./base/event"), exports);
25
20
  __exportStar(require("./base/math"), exports);
26
- __exportStar(require("./base/player"), exports);
27
- __exportStar(require("./base/registry"), exports);
28
- __exportStar(require("./base/tick"), exports);
29
21
  __exportStar(require("./base/typing"), exports);
30
22
  __exportStar(require("./client/auth"), exports);
31
23
  __exportStar(require("./client/client"), exports);
32
- __exportStar(require("./client/static"), exports);
33
24
  __exportStar(require("./client/tcp"), exports);
34
- __exportStar(require("./translator/decoder"), exports);
35
- __exportStar(require("./translator/encoder"), exports);
36
- __exportStar(require("./translator/static"), exports);
25
+ __exportStar(require("./packet/decoder"), exports);
26
+ __exportStar(require("./packet/encoder"), exports);
27
+ __exportStar(require("./packet/dispatcher"), exports);
28
+ __exportStar(require("./physics/aabb"), exports);
29
+ __exportStar(require("./physics/direction"), exports);
30
+ __exportStar(require("./physics/player"), exports);
31
+ __exportStar(require("./version/codec"), exports);
32
+ __exportStar(require("./version/registry"), exports);
33
+ __exportStar(require("./world/block"), exports);
34
+ __exportStar(require("./world/entity"), exports);
35
+ __exportStar(require("./world/state"), exports);
36
+ __exportStar(require("./world/tick"), exports);
37
37
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,+CAA6B;AAC7B,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,iDAA+B;AAC/B,sDAAoC;AACpC,mDAAiC;AACjC,kDAAgC;AAChC,qDAAmC;AACnC,gDAA8B;AAC9B,iDAA+B;AAC/B,gDAA8B;AAC9B,+CAA6B"}
@@ -0,0 +1,293 @@
1
+ import { Vec3 } from "../physics/direction";
2
+ export declare function getTextFromTextComponent(component: any): string;
3
+ export declare class BinaryDecoder {
4
+ buffer: Buffer;
5
+ offset: number;
6
+ constructor(buffer: Buffer, needDecompress?: boolean);
7
+ /**
8
+ * Read shortcut
9
+ *
10
+ * Read `size` bytes, use readFunc, then add `size` to internal offset
11
+ */
12
+ read<T>(size: number, readFunc: (buffer: Buffer) => ((offset?: number) => T)): T;
13
+ /**
14
+ * Read 1 byte
15
+ * @returns signed 1-byte integer
16
+ */
17
+ readByte(): number;
18
+ /**
19
+ * Read 1 byte
20
+ * @returns unsigned 1-byte integer
21
+ */
22
+ readUByte(): number;
23
+ /**
24
+ * Read 2 bytes
25
+ * @returns signed 2-byte integer
26
+ */
27
+ readShort(): number;
28
+ /**
29
+ * Read 2 bytes
30
+ * @returns unsigned 2-byte integer
31
+ */
32
+ readUShort(): number;
33
+ /**
34
+ * Read 4 bytes
35
+ * @returns signed 4-byte integer
36
+ */
37
+ readInt(): number;
38
+ /**
39
+ * Read 8 bytes
40
+ * @returns signed 8-byte integer
41
+ */
42
+ readLong(): bigint;
43
+ /**
44
+ * Read 4 bytes
45
+ * @returns signed 4-bytes decimal
46
+ */
47
+ readFloat(): number;
48
+ /**
49
+ * Read 8 bytes
50
+ * @returns signed 8-byte decimal
51
+ */
52
+ readDouble(): number;
53
+ /**
54
+ * Read 1 byte
55
+ * @returns a boolean
56
+ */
57
+ readBoolean(): boolean;
58
+ /**
59
+ * Read n bytes of integer
60
+ *
61
+ * A VarInt packet would look like this:
62
+ *
63
+ * `[7 bits of data][1 bit indicate if the VarInt ended here]`
64
+ *
65
+ * @returns signed n-bit integer
66
+ */
67
+ readVarInt(): number;
68
+ /**
69
+ * Read n bytes of integer
70
+ *
71
+ * Similar to VarInt, A VarLong packet would look like this:
72
+ *
73
+ * `[7 bits of data][1 bit indicate if the VarLong ended here]`
74
+ *
75
+ * @returns signed n-bit integer
76
+ */
77
+ readVarLong(): bigint;
78
+ /**
79
+ * Read a string
80
+ *
81
+ * A string packet would look like this:
82
+ *
83
+ * `[VarInt as length, if not provided][N bits of data]`
84
+ *
85
+ * @returns a string
86
+ */
87
+ readString(length?: number): string;
88
+ /**
89
+ * Read a 16-byte UUID
90
+ */
91
+ readUUID(): string;
92
+ /**
93
+ * Read a Position
94
+ *
95
+ * A position packet is a 64-bit value, split into three signed integer parts:
96
+ * ```
97
+ * x: 26 MSBs
98
+ * z: 26 middle bits
99
+ * y: 12 LSBs
100
+ * ```
101
+ *
102
+ * @returns a Position
103
+ */
104
+ readPosition(): {
105
+ x: number;
106
+ y: number;
107
+ z: number;
108
+ };
109
+ /**
110
+ * Read an array with known length
111
+ *
112
+ * @returns an array
113
+ */
114
+ readArray<T>(length: number, readFunc: (decoder: BinaryDecoder, ind: number) => T): T[];
115
+ /**
116
+ * Read a length-prefixed array
117
+ *
118
+ * An array packet would look like this:
119
+ * `[VarInt as length][N bytes of data]`
120
+ *
121
+ * @returns a length-prefixed array
122
+ */
123
+ readPrefixedArray<T>(readFunc: (decoder: BinaryDecoder, ind: number) => T): T[];
124
+ /**
125
+ * Read an array with known length and return Buffer
126
+ *
127
+ * @param size size of the item, in byte
128
+ * @returns an array
129
+ */
130
+ readRawArray(length: number, size: number): Buffer<ArrayBufferLike>;
131
+ /**
132
+ * Read a length-prefixed array and return the raw buffer
133
+ *
134
+ * An array packet would look like this:
135
+ * `[VarInt as length][N bytes of data]`
136
+ *
137
+ * @param size size of the item, in byte
138
+ * @returns a length-prefixed array
139
+ */
140
+ readRawPrefixedArray(size: number): Buffer<ArrayBufferLike>;
141
+ /**
142
+ * Read a Teleport Flag packet
143
+ *
144
+ * A Teleport Flag packet, which is bit mask represented as an int, would look like this:
145
+ * | Hex Mask | Field |
146
+ * |----------|------------------------|
147
+ * | 0x0001 | Is X relative |
148
+ * | 0x0002 | Is Y relative |
149
+ * | 0x0004 | Is Z relative |
150
+ * | 0x0008 | Is Yaw relative |
151
+ * | 0x0010 | Is Pitch relative |
152
+ * | 0x0020 | Is Velocity X relative |
153
+ * | 0x0040 | Is Velocity Y relative |
154
+ * | 0x0080 | Is Velocity Z relative |
155
+ * | 0x0100 | Rotate velocity |
156
+ */
157
+ readTeleportFlag(): {
158
+ x: boolean;
159
+ y: boolean;
160
+ z: boolean;
161
+ yaw: boolean;
162
+ pitch: boolean;
163
+ velX: boolean;
164
+ velY: boolean;
165
+ velZ: boolean;
166
+ rotateVelocity: boolean;
167
+ };
168
+ /**
169
+ * Read a Prefixed Optional field
170
+ *
171
+ * A Prefixed Optional would look like this:
172
+ * `[Boolean to indicate whenether the following field is presented][N bytes of data if the boolean before is true, or else empty]`
173
+ *
174
+ * @returns
175
+ */
176
+ readPrefixedOptional<T>(readFunc: (decoder: BinaryDecoder) => T): T | null;
177
+ /**
178
+ * Read a NBT
179
+ */
180
+ readNBT(): any;
181
+ private unpack;
182
+ /**
183
+ * Read LpVec3
184
+ *
185
+ * Read this article for more information: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3
186
+ */
187
+ readLpVec3(): Vec3;
188
+ /**
189
+ * Resolve a fixed point to a double
190
+ *
191
+ * A fixed point is a certain number of bits represent the signed integer part (number to the left of the decimal point)
192
+ * and the rest represent the fractional part (to the right).
193
+ *
194
+ * @param x number to resole
195
+ * @param n n fraction bits
196
+ */
197
+ readFixedPoint(x: number, n: number): number;
198
+ /**
199
+ * Read an angle.
200
+ *
201
+ * An angle is a rotation angle in steps of 1/256 of a full turn
202
+ */
203
+ readAngle(): number;
204
+ /**
205
+ * Represents a data record of type X, either inline, or by reference to a registry implied by context
206
+ */
207
+ readIdOrX(readX: (decoder: BinaryDecoder) => any): any;
208
+ /**
209
+ * Read Chat Type Decoration
210
+ *
211
+ * The chat type decorations look like:
212
+ * | Name | Type | Description |
213
+ * |-----------------|-------------------------------|----------------------------------|
214
+ * | Translation Key | String | |
215
+ * | Parameters | Prefixed Array of VarInt Enum | 0: sender, 1: target, 2: content |
216
+ * | Style | NBT | |
217
+ */
218
+ readChatTypeDecoration(): {
219
+ translationKey: string;
220
+ parameters: number[];
221
+ style: any;
222
+ };
223
+ /**
224
+ * Read Chat Type
225
+ */
226
+ readChatType(): {
227
+ chat: {
228
+ translationKey: string;
229
+ parameters: number[];
230
+ style: any;
231
+ };
232
+ narration: {
233
+ translationKey: string;
234
+ parameters: number[];
235
+ style: any;
236
+ };
237
+ };
238
+ }
239
+ export declare class NBTDecoder extends BinaryDecoder {
240
+ /**
241
+ * Read a Compound string
242
+ *
243
+ * A string packet would look like this:
244
+ *
245
+ * `[2 bytes as length][N bits of data]`
246
+ *
247
+ * @returns a string
248
+ */
249
+ readCompoundString(): string;
250
+ /**
251
+ * Read a list / array of tag
252
+ *
253
+ * A list / array packet should look like this:
254
+ * [1 byte of type, if not provided][4 bytes of length][N bits of data]
255
+ *
256
+ * @returns
257
+ */
258
+ readCompoundList(type?: number): any[];
259
+ /**
260
+ * Read compound value base on provided tag
261
+ */
262
+ readCompoundValue(tag: number): any;
263
+ /**
264
+ * Read n bits
265
+ *
266
+ * A Compound entry would look like this:
267
+ *
268
+ * [1 byte of Type][2 byte of field name length][N bits of field length][N bits of data]
269
+ *
270
+ * @returns signed n-bit integer
271
+ */
272
+ readCompound(): Record<string, any>;
273
+ /**
274
+ * Read an NBT
275
+ *
276
+ * Note that Network NBT slice some root data so I have to specified it through `isNetwork` param
277
+ *
278
+ * @param isNetwork
279
+ * @returns
280
+ */
281
+ decode(isNetwork?: boolean): any;
282
+ }
283
+ export declare class SNBTDecoder {
284
+ private readonly source;
285
+ private offset;
286
+ constructor(source: string);
287
+ private skipWhiteSpace;
288
+ private convertValue;
289
+ private seek;
290
+ private obj;
291
+ decode(): Record<string, any>;
292
+ }
293
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/packet/decoder.ts"],"names":[],"mappings":"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"}