@vaitosoi/minejs 0.2.2 → 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/error.d.ts +29 -0
- package/dist/base/error.d.ts.map +1 -1
- package/dist/base/error.js +54 -1
- package/dist/base/error.js.map +1 -1
- package/dist/base/typing.d.ts +7 -1
- package/dist/base/typing.d.ts.map +1 -1
- package/dist/client/client.d.ts +25 -14
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +73 -35
- package/dist/client/client.js.map +1 -1
- package/dist/client/tcp.d.ts +16 -201
- package/dist/client/tcp.d.ts.map +1 -1
- package/dist/client/tcp.js +41 -706
- package/dist/client/tcp.js.map +1 -1
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/{translator → packet}/decoder.d.ts +1 -1
- package/dist/packet/decoder.d.ts.map +1 -0
- package/dist/{translator → packet}/decoder.js +3 -3
- 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/{translator → packet}/encoder.d.ts +4 -3
- package/dist/packet/encoder.d.ts.map +1 -0
- package/dist/{translator → packet}/encoder.js +18 -7
- package/dist/packet/encoder.js.map +1 -0
- package/dist/packet/static.d.ts.map +1 -0
- package/dist/packet/static.js.map +1 -0
- package/dist/{base → physics}/aabb.d.ts +2 -2
- package/dist/physics/aabb.d.ts.map +1 -0
- package/dist/{base → physics}/aabb.js +5 -5
- package/dist/physics/aabb.js.map +1 -0
- package/dist/physics/direction.d.ts.map +1 -0
- package/dist/physics/direction.js.map +1 -0
- package/dist/{base → physics}/player.d.ts +8 -5
- package/dist/physics/player.d.ts.map +1 -0
- package/dist/{base → physics}/player.js +40 -25
- 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/{base → world}/block.d.ts +5 -5
- package/dist/world/block.d.ts.map +1 -0
- package/dist/{base → world}/block.js +13 -13
- package/dist/world/block.js.map +1 -0
- package/dist/{base → world}/entity.d.ts +4 -4
- package/dist/world/entity.d.ts.map +1 -0
- package/dist/{base → world}/entity.js +6 -6
- 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.map +1 -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/dist/base/aabb.d.ts.map +0 -1
- package/dist/base/aabb.js.map +0 -1
- package/dist/base/block.d.ts.map +0 -1
- package/dist/base/block.js.map +0 -1
- package/dist/base/direction.d.ts.map +0 -1
- package/dist/base/direction.js.map +0 -1
- package/dist/base/entity.d.ts.map +0 -1
- package/dist/base/entity.js.map +0 -1
- package/dist/base/player.d.ts.map +0 -1
- package/dist/base/player.js.map +0 -1
- package/dist/base/registry.d.ts +0 -50
- package/dist/base/registry.d.ts.map +0 -1
- package/dist/base/registry.js +0 -89
- package/dist/base/registry.js.map +0 -1
- package/dist/base/tick.d.ts.map +0 -1
- package/dist/base/tick.js.map +0 -1
- package/dist/translator/decoder.d.ts.map +0 -1
- package/dist/translator/decoder.js.map +0 -1
- package/dist/translator/encoder.d.ts.map +0 -1
- package/dist/translator/encoder.js.map +0 -1
- package/dist/translator/static.d.ts.map +0 -1
- package/dist/translator/static.js.map +0 -1
- 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/dist/{translator → packet}/static.d.ts +0 -0
- /package/dist/{translator → packet}/static.js +0 -0
- /package/dist/{base → physics}/direction.d.ts +0 -0
- /package/dist/{base → physics}/direction.js +0 -0
- /package/dist/{base → world}/tick.d.ts +0 -0
- /package/dist/{base → world}/tick.js +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
package/dist/base/error.d.ts
CHANGED
|
@@ -73,4 +73,33 @@ export declare class RegistryItemNotFound extends Error {
|
|
|
73
73
|
export declare class ClientNotReady extends Error {
|
|
74
74
|
constructor();
|
|
75
75
|
}
|
|
76
|
+
/** @hidden */
|
|
77
|
+
export declare class VersionNotSupport extends Error {
|
|
78
|
+
version: string;
|
|
79
|
+
constructor(version: string);
|
|
80
|
+
}
|
|
81
|
+
/** @hidden */
|
|
82
|
+
export declare class CantReadFile extends Error {
|
|
83
|
+
path: string;
|
|
84
|
+
constructor(path: string);
|
|
85
|
+
}
|
|
86
|
+
/** @hidden */
|
|
87
|
+
export declare class InvalidPacketStructure extends Error {
|
|
88
|
+
path: string;
|
|
89
|
+
zodIssue?: any[] | undefined;
|
|
90
|
+
constructor(path: string, zodIssue?: any[] | undefined);
|
|
91
|
+
}
|
|
92
|
+
/** @hidden */
|
|
93
|
+
export declare class MissingPacketField extends Error {
|
|
94
|
+
packetId: number;
|
|
95
|
+
field: string;
|
|
96
|
+
need: string;
|
|
97
|
+
constructor(packetId: number, field: string, need: string);
|
|
98
|
+
}
|
|
99
|
+
/** @hidden */
|
|
100
|
+
export declare class MissingField extends Error {
|
|
101
|
+
field: string;
|
|
102
|
+
where: string;
|
|
103
|
+
constructor(field: string, where: string);
|
|
104
|
+
}
|
|
76
105
|
//# sourceMappingURL=error.d.ts.map
|
package/dist/base/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,qBAAa,eAAgB,SAAQ,KAAK;IAE3B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,MAAM,CAAC,EAAE,MAAM;IAH1B,YACW,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA,EAMzB;CACJ;AAED,cAAc;AACd,qBAAa,YAAa,SAAQ,KAAK;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM;IAA1C,YAAmB,MAAM,EAAE,MAAM,GAAG,MAAM,EAEzC;CACJ;AAED,cAAc;AACd,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,YAAa,SAAQ,KAAK;IAChB,IAAI,EAAE,MAAM;IAAS,GAAG,EAAE,MAAM;IAAnD,YAAmB,IAAI,EAAE,MAAM,EAAS,GAAG,EAAE,MAAM,EAElD;CACJ;AAED,cAAc;AACd,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,oBAAqB,SAAQ,KAAK;IAC3C,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,SAAU,SAAQ,KAAK;IACb,KAAK,EAAE,MAAM;IAAhC,YAAmB,KAAK,EAAE,MAAM,EAE/B;CACJ;AAED,cAAc;AACd,qBAAa,SAAU,SAAQ,KAAK;IACb,IAAI,EAAE,MAAM;IAA/B,YAAmB,IAAI,EAAE,MAAM,EAE9B;CACJ;AAED,cAAc;AACd,qBAAa,eAAgB,SAAQ,KAAK;IACtC,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,YAAa,SAAQ,KAAK;IAChB,IAAI,EAAE,MAAM;IAAS,OAAO,EAAE,MAAM;IAAvD,YAAmB,IAAI,EAAE,MAAM,EAAS,OAAO,EAAE,MAAM,EAEtD;CACJ;AAED,cAAc;AACd,qBAAa,UAAW,SAAQ,KAAK;IACjC,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,cAEC;CACJ;AAED,cAAc;AACd,qBAAa,oBAAqB,SAAQ,KAAK;IACxB,IAAI,EAAE,MAAM;IAA/B,YAAmB,IAAI,EAAE,MAAM,EAE9B;CACJ;AAED,cAAc;AACd,qBAAa,cAAe,SAAQ,KAAK;IACrC,cAEC;CACJ"}
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|
package/dist/base/error.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClientNotReady = exports.RegistryItemNotFound = exports.MissingAuthOption = exports.AuthTokenExpired = exports.AuthDenied = exports.ProfileError = exports.ProfileNotFound = exports.XboxError = exports.AuthError = exports.CantGetMsAccessToken = exports.CantGetMsAuthToken = exports.SockerIsNotWritable = exports.InvalidValue = exports.StringSizeExceedLimit = exports.NumberTooBig = exports.UnexpectedValue = void 0;
|
|
3
|
+
exports.MissingField = exports.MissingPacketField = exports.InvalidPacketStructure = exports.CantReadFile = exports.VersionNotSupport = exports.ClientNotReady = exports.RegistryItemNotFound = exports.MissingAuthOption = exports.AuthTokenExpired = exports.AuthDenied = exports.ProfileError = exports.ProfileNotFound = exports.XboxError = exports.AuthError = exports.CantGetMsAccessToken = exports.CantGetMsAuthToken = exports.SockerIsNotWritable = exports.InvalidValue = exports.StringSizeExceedLimit = exports.NumberTooBig = exports.UnexpectedValue = void 0;
|
|
4
4
|
/** @hidden */
|
|
5
5
|
class UnexpectedValue extends Error {
|
|
6
6
|
type;
|
|
@@ -138,4 +138,57 @@ class ClientNotReady extends Error {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
exports.ClientNotReady = ClientNotReady;
|
|
141
|
+
/** @hidden */
|
|
142
|
+
class VersionNotSupport extends Error {
|
|
143
|
+
version;
|
|
144
|
+
constructor(version) {
|
|
145
|
+
super(`version ${version} is not supported`);
|
|
146
|
+
this.version = version;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.VersionNotSupport = VersionNotSupport;
|
|
150
|
+
/** @hidden */
|
|
151
|
+
class CantReadFile extends Error {
|
|
152
|
+
path;
|
|
153
|
+
constructor(path) {
|
|
154
|
+
super(`can't read file at "${path}"`);
|
|
155
|
+
this.path = path;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.CantReadFile = CantReadFile;
|
|
159
|
+
/** @hidden */
|
|
160
|
+
class InvalidPacketStructure extends Error {
|
|
161
|
+
path;
|
|
162
|
+
zodIssue;
|
|
163
|
+
constructor(path, zodIssue) {
|
|
164
|
+
super(`packet structure in file "${path}" is invalid` + (zodIssue?.length ? ", zod issue: " + JSON.stringify(zodIssue, null, 4) : ""));
|
|
165
|
+
this.path = path;
|
|
166
|
+
this.zodIssue = zodIssue;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.InvalidPacketStructure = InvalidPacketStructure;
|
|
170
|
+
/** @hidden */
|
|
171
|
+
class MissingPacketField extends Error {
|
|
172
|
+
packetId;
|
|
173
|
+
field;
|
|
174
|
+
need;
|
|
175
|
+
constructor(packetId, field, need) {
|
|
176
|
+
super(`${packetId}: ${field} need ${need}, but not found`);
|
|
177
|
+
this.packetId = packetId;
|
|
178
|
+
this.field = field;
|
|
179
|
+
this.need = need;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.MissingPacketField = MissingPacketField;
|
|
183
|
+
/** @hidden */
|
|
184
|
+
class MissingField extends Error {
|
|
185
|
+
field;
|
|
186
|
+
where;
|
|
187
|
+
constructor(field, where) {
|
|
188
|
+
super(`missing ${field} in ${where}`);
|
|
189
|
+
this.field = field;
|
|
190
|
+
this.where = where;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.MissingField = MissingField;
|
|
141
194
|
//# sourceMappingURL=error.js.map
|
package/dist/base/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,qBAA6B,SAAQ,KAAK;IAE3B,IAAI;IACJ,GAAG;IACH,MAAM;IAHjB,YACW,IAAY,EACZ,GAAW,EACX,MAAe;oBAFf,IAAI;mBACJ,GAAG;sBACH,MAAM;QAEb,IAAI,MAAM;YACN,KAAK,CAAC,uBAAuB,IAAI,YAAY,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC;;YAEnE,KAAK,CAAC,uBAAuB,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ;;AAED,cAAc;AACd,kBAA0B,SAAQ,KAAK;IAChB,MAAM;IAAzB,YAAmB,MAAuB;QACtC,KAAK,CAAC,oEAAoE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;sBADjF,MAAM;IAEzB,CAAC;CACJ;;AAED,cAAc;AACd,2BAAmC,SAAQ,KAAK;IAC5C;QACI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrD,CAAC;CACJ;;AAED,cAAc;AACd,kBAA0B,SAAQ,KAAK;IAChB,IAAI;IAAiB,GAAG;IAA3C,YAAmB,IAAY,EAAS,GAAW;QAC/C,KAAK,CAAC,yBAAyB,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;oBADhC,IAAI;mBAAiB,GAAG;IAE3C,CAAC;CACJ;;AAED,cAAc;AACd,yBAAiC,SAAQ,KAAK;IAC1C;QACI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC/D,CAAC;CACJ;;AAED,cAAc;AACd,wBAAgC,SAAQ,KAAK;IACzC;QACI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IACrF,CAAC;CACJ;;AAED,cAAc;AACd,0BAAkC,SAAQ,KAAK;IAC3C;QACI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC9C,CAAC;CACJ;;AAED,cAAc;AACd,eAAuB,SAAQ,KAAK;IACb,KAAK;IAAxB,YAAmB,KAAa;QAC5B,KAAK,CAAC,oBAAoB,KAAK,4EAA4E,CAAC,CAAC;qBAD9F,KAAK;IAExB,CAAC;CACJ;;AAED,cAAc;AACd,eAAuB,SAAQ,KAAK;IACb,IAAI;IAAvB,YAAmB,IAAY;QAC3B,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;oBADnB,IAAI;IAEvB,CAAC;CACJ;;AAED,cAAc;AACd,qBAA6B,SAAQ,KAAK;IACtC;QACI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAC3F,CAAC;CACJ;;AAED,cAAc;AACd,kBAA0B,SAAQ,KAAK;IAChB,IAAI;IAAiB,OAAO;IAA/C,YAAmB,IAAY,EAAS,OAAe;QACnD,KAAK,CAAC,kBAAkB,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;oBAD7B,IAAI;uBAAiB,OAAO;IAE/C,CAAC;CACJ;;AAED,cAAc;AACd,gBAAwB,SAAQ,KAAK;IACjC;QACI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAClD,CAAC;CACJ;;AAED,cAAc;AACd,sBAA8B,SAAQ,KAAK;IACvC;QACI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACvD,CAAC;CACJ;;AAED,cAAc;AACd,uBAA+B,SAAQ,KAAK;IACxC;QACI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAClF,CAAC;CACJ;;AAED,cAAc;AACd,0BAAkC,SAAQ,KAAK;IACxB,IAAI;IAAvB,YAAmB,IAAY;QAC3B,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;oBAD3B,IAAI;IAEvB,CAAC;CACJ;;AAED,cAAc;AACd,oBAA4B,SAAQ,KAAK;IACrC;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|
package/dist/base/typing.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
/** @hidden */
|
|
2
|
-
export type If<Condition extends boolean, True, False = null> = Condition extends true ? True : False;
|
|
2
|
+
export type If<Condition extends boolean, True, False = null> = Condition extends true ? True : Condition extends false ? False : True | False;
|
|
3
|
+
/**
|
|
4
|
+
* Representing a TextComponent
|
|
5
|
+
*
|
|
6
|
+
* @see https://minecraft.wiki/w/Text_component_format
|
|
7
|
+
*/
|
|
8
|
+
export type TextComponent = Record<string, any>;
|
|
3
9
|
//# sourceMappingURL=typing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../../src/base/typing.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,MAAM,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,SAAS,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../../src/base/typing.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,MAAM,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,SAAS,SAAS,IAAI,GAAG,IAAI,GAAG,SAAS,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAG/I;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
|
package/dist/client/client.d.ts
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import { BlockState } from "../
|
|
2
|
-
import { MoveDirection } from "../
|
|
3
|
-
import {
|
|
4
|
-
import { TypedEmmiter } from "../base/event";
|
|
5
|
-
import { BaseVec3 } from "../
|
|
1
|
+
import { BlockState } from "../world/block";
|
|
2
|
+
import { MoveDirection } from "../physics/player";
|
|
3
|
+
import { Message, TCPClientOption } from "./tcp";
|
|
4
|
+
import { TypedEmmiter as TypedEmitter } from "../base/event";
|
|
5
|
+
import { BaseVec3 } from "../physics/direction";
|
|
6
|
+
import { TextComponent } from "../base/typing";
|
|
7
|
+
import { Entity } from "../world/state";
|
|
8
|
+
export type ClientOption = Omit<TCPClientOption, "protocolVersion"> & {
|
|
9
|
+
version: string;
|
|
10
|
+
};
|
|
6
11
|
export interface ClientEvents {
|
|
7
|
-
|
|
12
|
+
connect: [];
|
|
13
|
+
destroy: [];
|
|
14
|
+
ready: [];
|
|
8
15
|
disconnect: [reason: string];
|
|
9
16
|
disconnectRaw: [textComponent: TextComponent];
|
|
10
17
|
playerPosition: [position: BaseVec3];
|
|
11
18
|
loadChunk: [chunkX: number, sectionY: number, chunkZ: number];
|
|
12
19
|
unloadChunk: [chunkX: number, chunkZ: number];
|
|
13
20
|
spawnEntity: [entity: Entity];
|
|
14
|
-
updateEntity: [
|
|
21
|
+
updateEntity: [entityId: number];
|
|
15
22
|
removeEntity: [entityId: number];
|
|
16
23
|
message: [message: Message];
|
|
17
24
|
systemMessage: [message: string];
|
|
@@ -19,23 +26,27 @@ export interface ClientEvents {
|
|
|
19
26
|
actionBar: [message: string];
|
|
20
27
|
actionBarRaw: [textComponent: TextComponent];
|
|
21
28
|
}
|
|
22
|
-
declare const Client_base: new () =>
|
|
29
|
+
declare const Client_base: new () => TypedEmitter<ClientEvents>;
|
|
23
30
|
/**
|
|
24
31
|
* High-level client.
|
|
25
32
|
*/
|
|
26
|
-
export declare class Client<
|
|
33
|
+
export declare class Client<IsReady extends boolean = boolean> extends Client_base {
|
|
34
|
+
private options;
|
|
35
|
+
private static loadRegistry;
|
|
27
36
|
private tickLoop;
|
|
28
|
-
private tcp;
|
|
29
37
|
private blocks;
|
|
30
38
|
private entities;
|
|
31
39
|
private player;
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
private
|
|
40
|
+
private uuid;
|
|
41
|
+
private tcp;
|
|
42
|
+
private state;
|
|
43
|
+
constructor(options: ClientOption);
|
|
44
|
+
private emitEvent;
|
|
45
|
+
private loadRegistries;
|
|
35
46
|
/**
|
|
36
47
|
* Create a connection to the server
|
|
37
48
|
*/
|
|
38
|
-
connect(): void
|
|
49
|
+
connect(): Promise<void>;
|
|
39
50
|
/**
|
|
40
51
|
* Destroy the connection
|
|
41
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAU,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAQ,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAgC,MAAM,EAAe,MAAM,gBAAgB,CAAC;AAMnF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzF,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IAEZ,KAAK,EAAE,EAAE,CAAC;IACV,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE9C,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAErC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAGjC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACjD,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;CAChD;qCAKyF,YAAY,CAAC,YAAY,CAAC;AAHpH;;GAEG;AACH,qBAAa,MAAM,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,WAAsD;IAarG,OAAO,CAAC,OAAO;IAZ3B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkB;IAE7C,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IAEpC,YAAoB,OAAO,EAAE,YAAY,EAgDxC;IAED,OAAO,CAAC,SAAS;YAIH,cAAc;IAU5B;;OAEG;IACU,OAAO,kBAuBnB;IACD;;OAEG;IACI,UAAU,SAEhB;IAGD;;OAEG;IACI,IAAI,CAAC,SAAS,EAAE,aAAa,QAEnC;IACD;;OAEG;IACI,OAAO,CAAC,SAAS,EAAE,aAAa,QAEtC;IACD;;OAEG;IACI,UAAU,SAEhB;IAGD;;OAEG;IACI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACvD,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;CAKpD"}
|
package/dist/client/client.js
CHANGED
|
@@ -2,64 +2,102 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Client = void 0;
|
|
4
4
|
const node_stream_1 = require("node:stream");
|
|
5
|
-
const block_1 = require("../
|
|
6
|
-
const entity_1 = require("../
|
|
7
|
-
const player_1 = require("../
|
|
8
|
-
const tick_1 = require("../
|
|
5
|
+
const block_1 = require("../world/block");
|
|
6
|
+
const entity_1 = require("../world/entity");
|
|
7
|
+
const player_1 = require("../physics/player");
|
|
8
|
+
const tick_1 = require("../world/tick");
|
|
9
9
|
const tcp_1 = require("./tcp");
|
|
10
|
-
const registry_1 = require("../
|
|
11
|
-
const direction_1 = require("../
|
|
10
|
+
const registry_1 = require("../version/registry");
|
|
11
|
+
const direction_1 = require("../physics/direction");
|
|
12
|
+
const state_1 = require("../world/state");
|
|
13
|
+
const dispatcher_1 = require("../packet/dispatcher");
|
|
14
|
+
const codec_1 = require("../version/codec");
|
|
15
|
+
const auth_1 = require("./auth");
|
|
16
|
+
const math_1 = require("../base/math");
|
|
12
17
|
/**
|
|
13
18
|
* High-level client.
|
|
14
19
|
*/
|
|
15
20
|
class Client extends node_stream_1.EventEmitter {
|
|
21
|
+
options;
|
|
22
|
+
static loadRegistry = false;
|
|
16
23
|
tickLoop;
|
|
17
|
-
tcp;
|
|
18
24
|
blocks;
|
|
19
25
|
entities;
|
|
20
26
|
player;
|
|
27
|
+
uuid = Buffer.alloc(0);
|
|
28
|
+
tcp;
|
|
29
|
+
state;
|
|
21
30
|
constructor(options) {
|
|
22
31
|
super();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
this.options = options;
|
|
33
|
+
// For managing shared data
|
|
34
|
+
this.state = new state_1.SharedState(options, () => this.uuid);
|
|
35
|
+
// For handling packet
|
|
36
|
+
const dispatcher = new dispatcher_1.Dispatcher(this.state, this.emit.bind(this));
|
|
37
|
+
// For reading packet
|
|
38
|
+
const versionCodec = new codec_1.VersionCodec(this.state);
|
|
39
|
+
// For throwing packet through internet
|
|
40
|
+
this.tcp = new tcp_1.TCPClient(this.state, {
|
|
41
|
+
...options,
|
|
42
|
+
protocolVersion: registry_1.ProtocolVersionMapping[options.version]
|
|
43
|
+
});
|
|
44
|
+
this.tcp.forwardPacket = versionCodec.handlePacket.bind(versionCodec);
|
|
45
|
+
this.tcp.parsePacket = versionCodec.encodePacket.bind(versionCodec);
|
|
46
|
+
this.tcp.sendInitPacket = () => {
|
|
47
|
+
dispatcher.sendHandshake();
|
|
48
|
+
dispatcher.sendLoginStart();
|
|
49
|
+
};
|
|
50
|
+
dispatcher.sendPacket = this.tcp.sendPacket.bind(this.tcp);
|
|
51
|
+
dispatcher.tcpDisconnect = this.tcp.disconnect.bind(this.tcp);
|
|
52
|
+
versionCodec.consumePacket = dispatcher.handlePacket.bind(dispatcher);
|
|
53
|
+
// For querying data
|
|
54
|
+
this.blocks = new block_1.BlockManager(this.state);
|
|
55
|
+
this.entities = new entity_1.EntitiesManager(this.state);
|
|
56
|
+
// For physics things
|
|
57
|
+
this.player = new player_1.Player(this.state, this.on, this.entities, this.blocks);
|
|
58
|
+
// For tick-tock tick-tock
|
|
59
|
+
this.tickLoop = new tick_1.TickLoop(() => {
|
|
60
|
+
this.state.drainMutation();
|
|
61
|
+
this.state.drainEvent()
|
|
62
|
+
.forEach(event => this.emitEvent(event));
|
|
63
|
+
this.state.drainPacket()
|
|
64
|
+
.forEach((packet) => this.tcp.sendPacket(packet.id, packet.data));
|
|
65
|
+
this.player.tick();
|
|
66
|
+
});
|
|
31
67
|
}
|
|
32
|
-
|
|
33
|
-
this.
|
|
68
|
+
emitEvent(event) {
|
|
69
|
+
this.emit(event.event, ...event.args);
|
|
34
70
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
this.forwardEvent("updateEntity");
|
|
43
|
-
this.forwardEvent("removeEntity");
|
|
44
|
-
this.forwardEvent("message");
|
|
45
|
-
this.forwardEvent("systemMessage");
|
|
46
|
-
this.forwardEvent("systemMessageRaw");
|
|
47
|
-
this.forwardEvent("actionBar");
|
|
48
|
-
this.forwardEvent("actionBarRaw");
|
|
71
|
+
async loadRegistries() {
|
|
72
|
+
if (Client.loadRegistry)
|
|
73
|
+
return;
|
|
74
|
+
Client.loadRegistry = true;
|
|
75
|
+
await registry_1.BlockRegistry.load(this.options.version);
|
|
76
|
+
await registry_1.EntityRegistry.load(this.options.version);
|
|
77
|
+
await registry_1.PacketRegistry.load(this.options.version);
|
|
49
78
|
}
|
|
50
79
|
// Start / stop
|
|
51
80
|
/**
|
|
52
81
|
* Create a connection to the server
|
|
53
82
|
*/
|
|
54
|
-
connect() {
|
|
83
|
+
async connect() {
|
|
84
|
+
await this.loadRegistries();
|
|
85
|
+
if (!this.uuid.length) {
|
|
86
|
+
if (this.options.auth) {
|
|
87
|
+
const authClient = new auth_1.AuthClient(this.options.auth);
|
|
88
|
+
const { uuid } = await authClient.auth();
|
|
89
|
+
this.uuid = Buffer.from(uuid);
|
|
90
|
+
}
|
|
91
|
+
else
|
|
92
|
+
this.uuid = (0, math_1.computeUUID)(this.options.playerName);
|
|
93
|
+
}
|
|
55
94
|
this.tcp.connect();
|
|
56
|
-
this.
|
|
57
|
-
this.emit("ready", this);
|
|
95
|
+
this.once("ready", () => {
|
|
58
96
|
this.player.pruneInitialVal();
|
|
59
97
|
this.player.setInitialVal();
|
|
60
98
|
this.tickLoop.start();
|
|
61
99
|
});
|
|
62
|
-
this.
|
|
100
|
+
this.once("disconnect", () => {
|
|
63
101
|
this.tickLoop.stop();
|
|
64
102
|
this.player.pruneInitialVal();
|
|
65
103
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client/tcp.d.ts
CHANGED
|
@@ -1,107 +1,10 @@
|
|
|
1
1
|
import { Socket, SocketConstructorOpts } from "node:net";
|
|
2
2
|
import { TypedEmmiter } from "../base/event";
|
|
3
|
-
import {
|
|
4
|
-
import { Angle, BaseVec3 } from "../base/direction";
|
|
3
|
+
import { BinaryDecoder } from "../packet/decoder";
|
|
5
4
|
import { AuthOption } from "./auth";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @see https://minecraft.wiki/w/Text_component_format
|
|
10
|
-
*/
|
|
11
|
-
export type TextComponent = Record<string, any>;
|
|
12
|
-
export interface Server {
|
|
13
|
-
knownPacks?: ServerKnownPack;
|
|
14
|
-
}
|
|
15
|
-
export interface ServerKnownPack {
|
|
16
|
-
namespace: string;
|
|
17
|
-
id: string;
|
|
18
|
-
version: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Represent world information
|
|
22
|
-
*/
|
|
23
|
-
export interface ServerWorld {
|
|
24
|
-
/** Is hardcore enabled */
|
|
25
|
-
hardcore: boolean;
|
|
26
|
-
/** All dimensions */
|
|
27
|
-
dimensions: string[];
|
|
28
|
-
/** Max players allowed */
|
|
29
|
-
maxPlayers: number;
|
|
30
|
-
/** View distances */
|
|
31
|
-
viewDistance: number;
|
|
32
|
-
/** Simulation distance */
|
|
33
|
-
simulationDistance: number;
|
|
34
|
-
/**
|
|
35
|
-
* The record key is a chunk section position packed as `Player Dimension:Chunk X:Chunk Z[Section Y]`
|
|
36
|
-
*
|
|
37
|
-
* For `Section Y`, a chunk is splitted into several cubic 16x16x16 sections, or in other word, a chunk is a bund of 16x16x16 sections stacked on each other.
|
|
38
|
-
*/
|
|
39
|
-
chunks: Record<string, ChunkColumn>;
|
|
40
|
-
/**
|
|
41
|
-
* The record key is entity ID
|
|
42
|
-
*/
|
|
43
|
-
entities: Record<number, Entity>;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Represent a chunk collumns, which may contains multiple chunks sections
|
|
47
|
-
*/
|
|
48
|
-
export interface ChunkColumn {
|
|
49
|
-
sections: Record<number, ChunkSection>;
|
|
50
|
-
blockEntities: Record<number, BlockEntity>;
|
|
51
|
-
}
|
|
52
|
-
export interface ChunkSection {
|
|
53
|
-
block: PaletteContainer;
|
|
54
|
-
biome: PaletteContainer;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Used for indirect mapping
|
|
58
|
-
*
|
|
59
|
-
* @see https://minecraft.wiki/w/Java_Edition_protocol/Chunk_format#Paletted_Container_structure
|
|
60
|
-
*/
|
|
61
|
-
export interface PaletteContainer {
|
|
62
|
-
bpe: number;
|
|
63
|
-
palette: number[];
|
|
64
|
-
data: BigInt64Array | null;
|
|
65
|
-
}
|
|
66
|
-
/** Represent a block entity */
|
|
67
|
-
export interface BlockEntity {
|
|
68
|
-
type: number;
|
|
69
|
-
data: Record<string, any>;
|
|
70
|
-
}
|
|
71
|
-
/** Represent an entity */
|
|
72
|
-
export interface Entity {
|
|
73
|
-
id: number;
|
|
74
|
-
type: number;
|
|
75
|
-
position: BaseVec3;
|
|
76
|
-
velocity: BaseVec3;
|
|
77
|
-
angle: Angle;
|
|
78
|
-
data: number;
|
|
79
|
-
}
|
|
80
|
-
export declare enum GameMode {
|
|
81
|
-
Survival = 0,
|
|
82
|
-
Creative = 1,
|
|
83
|
-
Adventure = 2,
|
|
84
|
-
Spectator = 3
|
|
85
|
-
}
|
|
86
|
-
export interface ClientPlayer {
|
|
87
|
-
/** Player UUID */
|
|
88
|
-
uuid: string;
|
|
89
|
-
/** Player username */
|
|
90
|
-
username: string;
|
|
91
|
-
/** Player entity ID */
|
|
92
|
-
entityId: number;
|
|
93
|
-
/** Current game mode */
|
|
94
|
-
gameMode: GameMode;
|
|
95
|
-
position: BaseVec3;
|
|
96
|
-
velocity: BaseVec3;
|
|
97
|
-
angle: Angle;
|
|
98
|
-
/** Current dimension */
|
|
99
|
-
dimension: string;
|
|
100
|
-
}
|
|
101
|
-
export interface ServerRegistryEntry {
|
|
102
|
-
id: string;
|
|
103
|
-
data: object;
|
|
104
|
-
}
|
|
5
|
+
import { SharedState } from "../world/state";
|
|
6
|
+
import { EncodeResult } from "../version/codec";
|
|
7
|
+
import { TextComponent } from "../base/typing";
|
|
105
8
|
export interface TCPClientOption {
|
|
106
9
|
/** Server host */
|
|
107
10
|
host: string;
|
|
@@ -133,71 +36,29 @@ export interface TCPClientOption {
|
|
|
133
36
|
}
|
|
134
37
|
export interface TCPClientEvents {
|
|
135
38
|
connect: [];
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
raw: [buf: Buffer];
|
|
139
|
-
/** Whenever client is ready to use */
|
|
140
|
-
ready: [readyClient: TCPClient<true>];
|
|
141
|
-
/**
|
|
142
|
-
* Sync player position.
|
|
143
|
-
*
|
|
144
|
-
* Noted that this fired when recived packet from server, not from the internal movement, meaning that calling `input` function would not fire this event.
|
|
145
|
-
*/
|
|
146
|
-
playerPosition: [position: BaseVec3];
|
|
147
|
-
/** Load chunk section */
|
|
148
|
-
loadChunk: [chunkX: number, sectionY: number, chunkZ: number];
|
|
149
|
-
/** Unload chunk column */
|
|
150
|
-
unloadChunk: [chunkX: number, chunkZ: number];
|
|
151
|
-
/** Spawn an entity */
|
|
152
|
-
spawnEntity: [entity: Entity];
|
|
153
|
-
/** Update spawned entity */
|
|
154
|
-
updateEntity: [entity: Entity];
|
|
155
|
-
/** Remove entity */
|
|
156
|
-
removeEntity: [entityId: number];
|
|
157
|
-
/** Message, usually sent from player */
|
|
158
|
-
message: [message: Message];
|
|
159
|
-
/** Parsed system message, usually sent from the console, plugins, etc... */
|
|
160
|
-
systemMessage: [message: string];
|
|
161
|
-
/** Raw system messgae */
|
|
162
|
-
systemMessageRaw: [textComponent: TextComponent];
|
|
163
|
-
/** Parsed action bar message, the message appeared above your hot bar */
|
|
164
|
-
actionBar: [message: string];
|
|
165
|
-
/** Raw action bar */
|
|
166
|
-
actionBarRaw: [textComponent: TextComponent];
|
|
39
|
+
raw: [buffer: Buffer];
|
|
40
|
+
destroy: [];
|
|
167
41
|
}
|
|
168
42
|
export interface Message {
|
|
169
43
|
sender: string;
|
|
170
|
-
target
|
|
44
|
+
target: string | undefined;
|
|
171
45
|
content: string;
|
|
172
46
|
raw: {
|
|
173
47
|
sender: TextComponent;
|
|
174
|
-
target
|
|
175
|
-
content
|
|
48
|
+
target: TextComponent | undefined;
|
|
49
|
+
content: TextComponent | undefined;
|
|
176
50
|
};
|
|
177
51
|
}
|
|
178
|
-
export declare enum ClientStatus {
|
|
179
|
-
Disconnected = 0,
|
|
180
|
-
Connecting = 1,
|
|
181
|
-
Logining = 2,
|
|
182
|
-
Ready = 3
|
|
183
|
-
}
|
|
184
|
-
export declare enum ClientState {
|
|
185
|
-
Disconnected = 0,
|
|
186
|
-
Handshake = 1,
|
|
187
|
-
Login = 2,
|
|
188
|
-
Configure = 3,
|
|
189
|
-
Play = 4
|
|
190
|
-
}
|
|
191
52
|
declare const TCPClient_base: new () => TypedEmmiter<TCPClientEvents>;
|
|
192
53
|
/**
|
|
193
54
|
* Low-level client. You SHOULD NOT use this client unless you know what are you doing
|
|
194
55
|
*
|
|
195
56
|
* @see https://minecraft.wiki/w/Java_Edition_protocol/Packets?oldid=3445844
|
|
196
57
|
*/
|
|
197
|
-
export declare class TCPClient
|
|
58
|
+
export declare class TCPClient extends TCPClient_base {
|
|
59
|
+
private state;
|
|
198
60
|
readonly option: TCPClientOption;
|
|
199
61
|
readonly socket: Socket;
|
|
200
|
-
server: Server | undefined;
|
|
201
62
|
/**
|
|
202
63
|
* | Value | Meaning |
|
|
203
64
|
* |-------|---------|
|
|
@@ -205,65 +66,19 @@ export declare class TCPClient<IsReady extends boolean = boolean> extends TCPCli
|
|
|
205
66
|
* | -1 | dont compress |
|
|
206
67
|
* | > 0 | compression threshold |
|
|
207
68
|
*/
|
|
208
|
-
private compressionThreshold;
|
|
209
69
|
private bufferPool;
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
private decipher;
|
|
215
|
-
world?: If<IsReady, ServerWorld>;
|
|
216
|
-
player?: If<IsReady, ClientPlayer>;
|
|
217
|
-
registry?: If<IsReady, Record<string, ServerRegistryEntry[]>>;
|
|
218
|
-
private playerUUID?;
|
|
219
|
-
constructor(option: TCPClientOption, socketOption?: SocketConstructorOpts);
|
|
220
|
-
private wipePlayData;
|
|
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;
|
|
221
74
|
/**
|
|
222
75
|
* Connect to server
|
|
223
76
|
*/
|
|
224
77
|
connect(): Promise<void>;
|
|
225
78
|
disconnect(): void;
|
|
226
|
-
isReady(): this is TCPClient<true>;
|
|
227
|
-
checkReady(): boolean;
|
|
228
79
|
private handlePacket;
|
|
229
|
-
private handleLoginDisconnect;
|
|
230
|
-
private handleEncryption;
|
|
231
|
-
private handleSetCompression;
|
|
232
|
-
private handleLoginSucess;
|
|
233
|
-
private handleKnownPack;
|
|
234
|
-
private handleRegistryData;
|
|
235
|
-
private handleConfiguarionPlayDisconnect;
|
|
236
|
-
private handlePlayLogin;
|
|
237
|
-
private handleSynchronizePlayerPosition;
|
|
238
|
-
private handleKeepAlive;
|
|
239
|
-
private handleChangeGameMode;
|
|
240
|
-
private handleChunkData;
|
|
241
|
-
private handleUnloadChunk;
|
|
242
|
-
private handleBlockEntityData;
|
|
243
|
-
private handleSpawnEntity;
|
|
244
|
-
private handleTeleportEntity;
|
|
245
|
-
private handleUpdateEntityPosition;
|
|
246
|
-
private handleUpdateEntityPositionRotation;
|
|
247
|
-
private handleSetEntityVelocity;
|
|
248
|
-
private handleRemoveEntity;
|
|
249
|
-
private handlePlayerChat;
|
|
250
|
-
private handleSystemMessage;
|
|
251
|
-
private handleSetActionBar;
|
|
252
|
-
private handleDisguisedChatMessage;
|
|
253
80
|
write(buf: Buffer): void;
|
|
254
|
-
sendPacket(packetId: number,
|
|
255
|
-
private sendHandshake;
|
|
256
|
-
private sendLoginStart;
|
|
257
|
-
private sendEncryptionResponse;
|
|
258
|
-
private sendLoginAck;
|
|
259
|
-
private sendKnownPack;
|
|
260
|
-
private sendConfigureAck;
|
|
261
|
-
private sendConfirmTeleportation;
|
|
262
|
-
private sendKeepAlive;
|
|
263
|
-
sendPlayerPosRot(pos: BaseVec3, rot: Angle, onGround: boolean, pushingWall: boolean): void;
|
|
264
|
-
sendPlayerPos(pos: BaseVec3, onGround: boolean, pushingWall: boolean): void;
|
|
265
|
-
sendPlayerRot(rot: Angle, onGround: boolean, pushingWall: boolean): void;
|
|
266
|
-
sendPlayerStatus(onGround: boolean, pushingWall: boolean): void;
|
|
81
|
+
sendPacket(packetId: number | string, data: Record<string, any>): void;
|
|
267
82
|
}
|
|
268
83
|
export {};
|
|
269
84
|
//# sourceMappingURL=tcp.d.ts.map
|