@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.
- package/assets/minecraft/26.2/packets.json +4741 -0
- package/dist/base/bitset.d.ts +9 -0
- package/dist/base/bitset.d.ts.map +1 -0
- package/dist/base/bitset.js +46 -0
- package/dist/base/bitset.js.map +1 -0
- package/dist/base/error.d.ts +105 -0
- package/dist/base/error.d.ts.map +1 -0
- package/dist/base/error.js +194 -0
- package/dist/base/error.js.map +1 -0
- package/dist/base/event.d.ts +7 -0
- package/dist/base/event.d.ts.map +1 -0
- package/dist/base/event.js +3 -0
- package/dist/base/event.js.map +1 -0
- package/dist/base/math.d.ts +25 -0
- package/dist/base/math.d.ts.map +1 -0
- package/dist/base/math.js +69 -0
- package/dist/base/math.js.map +1 -0
- package/dist/base/typing.d.ts +9 -0
- package/dist/base/typing.d.ts.map +1 -0
- package/dist/base/typing.js +3 -0
- package/dist/base/typing.js.map +1 -0
- package/dist/client/auth.d.ts +39 -0
- package/dist/client/auth.d.ts.map +1 -0
- package/dist/client/auth.js +307 -0
- package/dist/client/auth.js.map +1 -0
- package/dist/client/client.d.ts +73 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +136 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/static.d.ts +28 -0
- package/dist/client/static.d.ts.map +1 -0
- package/dist/client/static.js +43 -0
- package/dist/client/static.js.map +1 -0
- package/dist/client/tcp.d.ts +84 -0
- package/dist/client/tcp.d.ts.map +1 -0
- package/dist/client/tcp.js +173 -0
- package/dist/client/tcp.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -0
- package/dist/packet/decoder.d.ts +293 -0
- package/dist/packet/decoder.d.ts.map +1 -0
- package/dist/packet/decoder.js +668 -0
- package/dist/packet/decoder.js.map +1 -0
- package/dist/packet/dispatcher.d.ts +46 -0
- package/dist/packet/dispatcher.d.ts.map +1 -0
- package/dist/packet/dispatcher.js +626 -0
- package/dist/packet/dispatcher.js.map +1 -0
- package/dist/packet/encoder.d.ts +163 -0
- package/dist/packet/encoder.d.ts.map +1 -0
- package/dist/packet/encoder.js +441 -0
- package/dist/packet/encoder.js.map +1 -0
- package/dist/packet/static.d.ts +33 -0
- package/dist/packet/static.d.ts.map +1 -0
- package/dist/packet/static.js +42 -0
- package/dist/packet/static.js.map +1 -0
- package/dist/physics/aabb.d.ts +197 -0
- package/dist/physics/aabb.d.ts.map +1 -0
- package/dist/physics/aabb.js +576 -0
- package/dist/physics/aabb.js.map +1 -0
- package/dist/physics/direction.d.ts +153 -0
- package/dist/physics/direction.d.ts.map +1 -0
- package/dist/physics/direction.js +288 -0
- package/dist/physics/direction.js.map +1 -0
- package/dist/physics/player.d.ts +110 -0
- package/dist/physics/player.d.ts.map +1 -0
- package/dist/physics/player.js +558 -0
- package/dist/physics/player.js.map +1 -0
- package/dist/version/codec.d.ts +18 -0
- package/dist/version/codec.d.ts.map +1 -0
- package/dist/version/codec.js +214 -0
- package/dist/version/codec.js.map +1 -0
- package/dist/version/registry.d.ts +236 -0
- package/dist/version/registry.d.ts.map +1 -0
- package/dist/version/registry.js +289 -0
- package/dist/version/registry.js.map +1 -0
- package/dist/world/block.d.ts +86 -0
- package/dist/world/block.d.ts.map +1 -0
- package/dist/world/block.js +232 -0
- package/dist/world/block.js.map +1 -0
- package/dist/world/entity.d.ts +43 -0
- package/dist/world/entity.d.ts.map +1 -0
- package/dist/world/entity.js +97 -0
- package/dist/world/entity.js.map +1 -0
- package/dist/world/state.d.ts +151 -0
- package/dist/world/state.d.ts.map +1 -0
- package/dist/world/state.js +108 -0
- package/dist/world/state.js.map +1 -0
- package/dist/world/tick.d.ts +19 -0
- package/dist/world/tick.d.ts.map +1 -0
- package/dist/world/tick.js +49 -0
- package/dist/world/tick.js.map +1 -0
- package/package.json +7 -2
- package/src/base/error.ts +36 -0
- package/src/base/typing.ts +9 -1
- package/src/client/client.ts +99 -42
- package/src/client/tcp.ts +49 -954
- package/src/index.ts +12 -12
- package/src/{translator → packet}/decoder.ts +3 -3
- package/src/packet/dispatcher.ts +785 -0
- package/src/{translator → packet}/encoder.ts +20 -9
- package/src/{base → physics}/aabb.ts +5 -5
- package/src/{base → physics}/player.ts +41 -25
- package/src/version/codec.ts +227 -0
- package/src/version/registry.ts +333 -0
- package/src/{base → world}/block.ts +12 -11
- package/src/{base → world}/entity.ts +5 -5
- package/src/world/state.ts +232 -0
- package/test/adapter/index.ts +14 -0
- package/test/client/index.ts +1 -1
- package/test/json/index.ts +3 -0
- package/src/base/registry.ts +0 -87
- /package/assets/minecraft/{blocks.json → 26.2/blocks.json} +0 -0
- /package/assets/minecraft/{entities.json → 26.2/entities.json} +0 -0
- /package/src/{translator → packet}/static.ts +0 -0
- /package/src/{base → physics}/direction.ts +0 -0
- /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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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("./
|
|
35
|
-
__exportStar(require("./
|
|
36
|
-
__exportStar(require("./
|
|
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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"}
|