@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.
Files changed (118) hide show
  1. package/assets/minecraft/26.2/packets.json +4741 -0
  2. package/dist/base/error.d.ts +29 -0
  3. package/dist/base/error.d.ts.map +1 -1
  4. package/dist/base/error.js +54 -1
  5. package/dist/base/error.js.map +1 -1
  6. package/dist/base/typing.d.ts +7 -1
  7. package/dist/base/typing.d.ts.map +1 -1
  8. package/dist/client/client.d.ts +25 -14
  9. package/dist/client/client.d.ts.map +1 -1
  10. package/dist/client/client.js +73 -35
  11. package/dist/client/client.js.map +1 -1
  12. package/dist/client/tcp.d.ts +16 -201
  13. package/dist/client/tcp.d.ts.map +1 -1
  14. package/dist/client/tcp.js +41 -706
  15. package/dist/client/tcp.js.map +1 -1
  16. package/dist/index.d.ts +12 -12
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +12 -12
  19. package/dist/index.js.map +1 -1
  20. package/dist/{translator → packet}/decoder.d.ts +1 -1
  21. package/dist/packet/decoder.d.ts.map +1 -0
  22. package/dist/{translator → packet}/decoder.js +3 -3
  23. package/dist/packet/decoder.js.map +1 -0
  24. package/dist/packet/dispatcher.d.ts +46 -0
  25. package/dist/packet/dispatcher.d.ts.map +1 -0
  26. package/dist/packet/dispatcher.js +626 -0
  27. package/dist/packet/dispatcher.js.map +1 -0
  28. package/dist/{translator → packet}/encoder.d.ts +4 -3
  29. package/dist/packet/encoder.d.ts.map +1 -0
  30. package/dist/{translator → packet}/encoder.js +18 -7
  31. package/dist/packet/encoder.js.map +1 -0
  32. package/dist/packet/static.d.ts.map +1 -0
  33. package/dist/packet/static.js.map +1 -0
  34. package/dist/{base → physics}/aabb.d.ts +2 -2
  35. package/dist/physics/aabb.d.ts.map +1 -0
  36. package/dist/{base → physics}/aabb.js +5 -5
  37. package/dist/physics/aabb.js.map +1 -0
  38. package/dist/physics/direction.d.ts.map +1 -0
  39. package/dist/physics/direction.js.map +1 -0
  40. package/dist/{base → physics}/player.d.ts +8 -5
  41. package/dist/physics/player.d.ts.map +1 -0
  42. package/dist/{base → physics}/player.js +40 -25
  43. package/dist/physics/player.js.map +1 -0
  44. package/dist/version/codec.d.ts +18 -0
  45. package/dist/version/codec.d.ts.map +1 -0
  46. package/dist/version/codec.js +214 -0
  47. package/dist/version/codec.js.map +1 -0
  48. package/dist/version/registry.d.ts +236 -0
  49. package/dist/version/registry.d.ts.map +1 -0
  50. package/dist/version/registry.js +289 -0
  51. package/dist/version/registry.js.map +1 -0
  52. package/dist/{base → world}/block.d.ts +5 -5
  53. package/dist/world/block.d.ts.map +1 -0
  54. package/dist/{base → world}/block.js +13 -13
  55. package/dist/world/block.js.map +1 -0
  56. package/dist/{base → world}/entity.d.ts +4 -4
  57. package/dist/world/entity.d.ts.map +1 -0
  58. package/dist/{base → world}/entity.js +6 -6
  59. package/dist/world/entity.js.map +1 -0
  60. package/dist/world/state.d.ts +151 -0
  61. package/dist/world/state.d.ts.map +1 -0
  62. package/dist/world/state.js +108 -0
  63. package/dist/world/state.js.map +1 -0
  64. package/dist/world/tick.d.ts.map +1 -0
  65. package/dist/world/tick.js.map +1 -0
  66. package/package.json +7 -2
  67. package/src/base/error.ts +36 -0
  68. package/src/base/typing.ts +9 -1
  69. package/src/client/client.ts +99 -42
  70. package/src/client/tcp.ts +49 -954
  71. package/src/index.ts +12 -12
  72. package/src/{translator → packet}/decoder.ts +3 -3
  73. package/src/packet/dispatcher.ts +785 -0
  74. package/src/{translator → packet}/encoder.ts +20 -9
  75. package/src/{base → physics}/aabb.ts +5 -5
  76. package/src/{base → physics}/player.ts +41 -25
  77. package/src/version/codec.ts +227 -0
  78. package/src/version/registry.ts +333 -0
  79. package/src/{base → world}/block.ts +12 -11
  80. package/src/{base → world}/entity.ts +5 -5
  81. package/src/world/state.ts +232 -0
  82. package/test/adapter/index.ts +14 -0
  83. package/test/client/index.ts +1 -1
  84. package/test/json/index.ts +3 -0
  85. package/dist/base/aabb.d.ts.map +0 -1
  86. package/dist/base/aabb.js.map +0 -1
  87. package/dist/base/block.d.ts.map +0 -1
  88. package/dist/base/block.js.map +0 -1
  89. package/dist/base/direction.d.ts.map +0 -1
  90. package/dist/base/direction.js.map +0 -1
  91. package/dist/base/entity.d.ts.map +0 -1
  92. package/dist/base/entity.js.map +0 -1
  93. package/dist/base/player.d.ts.map +0 -1
  94. package/dist/base/player.js.map +0 -1
  95. package/dist/base/registry.d.ts +0 -50
  96. package/dist/base/registry.d.ts.map +0 -1
  97. package/dist/base/registry.js +0 -89
  98. package/dist/base/registry.js.map +0 -1
  99. package/dist/base/tick.d.ts.map +0 -1
  100. package/dist/base/tick.js.map +0 -1
  101. package/dist/translator/decoder.d.ts.map +0 -1
  102. package/dist/translator/decoder.js.map +0 -1
  103. package/dist/translator/encoder.d.ts.map +0 -1
  104. package/dist/translator/encoder.js.map +0 -1
  105. package/dist/translator/static.d.ts.map +0 -1
  106. package/dist/translator/static.js.map +0 -1
  107. package/src/base/registry.ts +0 -87
  108. /package/assets/minecraft/{blocks.json → 26.2/blocks.json} +0 -0
  109. /package/assets/minecraft/{entities.json → 26.2/entities.json} +0 -0
  110. /package/dist/{translator → packet}/static.d.ts +0 -0
  111. /package/dist/{translator → packet}/static.js +0 -0
  112. /package/dist/{base → physics}/direction.d.ts +0 -0
  113. /package/dist/{base → physics}/direction.js +0 -0
  114. /package/dist/{base → world}/tick.d.ts +0 -0
  115. /package/dist/{base → world}/tick.js +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
@@ -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
@@ -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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"}
@@ -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
@@ -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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"}
@@ -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"}
@@ -1,17 +1,24 @@
1
- import { BlockState } from "../base/block";
2
- import { MoveDirection } from "../base/player";
3
- import { Entity, Message, TCPClientOption, TextComponent } from "./tcp";
4
- import { TypedEmmiter } from "../base/event";
5
- import { BaseVec3 } from "../base/direction";
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
- ready: [readyClient: Client<true>];
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: [entity: Entity];
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 () => TypedEmmiter<ClientEvents>;
29
+ declare const Client_base: new () => TypedEmitter<ClientEvents>;
23
30
  /**
24
31
  * High-level client.
25
32
  */
26
- export declare class Client<IsTCPReady extends boolean = boolean> extends Client_base {
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
- constructor(options: TCPClientOption);
33
- private forwardEvent;
34
- private forwardEvents;
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,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAA8B,eAAe,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAQ,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,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,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,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;qCAK4F,YAAY,CAAC,YAAY,CAAC;AAHvH;;GAEG;AACH,qBAAa,MAAM,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,WAAsD;IACpH,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,OAAO,EAAE,eAAe,EAWnC;IAED,OAAO,CAAC,YAAY;IAGpB,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACI,OAAO,SAab;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"}
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"}
@@ -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("../base/block");
6
- const entity_1 = require("../base/entity");
7
- const player_1 = require("../base/player");
8
- const tick_1 = require("../base/tick");
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("../base/registry");
11
- const direction_1 = require("../base/direction");
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
- registry_1.BlockRegistry.load();
24
- registry_1.EntityRegistry.load();
25
- this.tcp = new tcp_1.TCPClient(options);
26
- this.blocks = new block_1.BlockManager(this.tcp);
27
- this.entities = new entity_1.EntitiesManager(this.tcp);
28
- this.player = new player_1.Player(this.entities, this.blocks, this.tcp);
29
- this.tickLoop = new tick_1.TickLoop(() => this.player.tick());
30
- this.forwardEvents();
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
- forwardEvent(eventName) {
33
- this.tcp.on(eventName, (...args) => this.emit(eventName, ...args));
68
+ emitEvent(event) {
69
+ this.emit(event.event, ...event.args);
34
70
  }
35
- forwardEvents() {
36
- this.forwardEvent("disconnect");
37
- this.forwardEvent("disconnectRaw");
38
- this.forwardEvent("loadChunk");
39
- this.forwardEvent("unloadChunk");
40
- this.forwardEvent("playerPosition");
41
- this.forwardEvent("spawnEntity");
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.tcp.once("ready", () => {
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.tcp.once("disconnect", () => {
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":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,0CAA0D;AAC1D,4CAAkD;AAClD,8CAA0D;AAC1D,wCAAyC;AACzC,+BAA4D;AAE5D,kDAA4G;AAC5G,oDAAsD;AAEtD,0CAAmF;AACnF,qDAAkD;AAClD,4CAAgD;AAChD,iCAAoC;AACpC,uCAA2C;AA6B3C;;GAEG;AACH,YAAuD,SAAS,0BAAqD;IAa7F,OAAO;IAZnB,MAAM,CAAC,YAAY,GAAY,KAAK,CAAC;IAErC,QAAQ,CAAW;IAEnB,MAAM,CAAe;IACrB,QAAQ,CAAkB;IAC1B,MAAM,CAAS;IACf,IAAI,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/B,GAAG,CAAY;IACf,KAAK,CAAuB;IAEpC,YAAoB,OAAqB;QACrC,KAAK,EAAE,CAAC;uBADQ,OAAO;QAGvB,2BAA2B;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,qBAAqB;QACrB,MAAM,YAAY,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,uCAAuC;QACvC,IAAI,CAAC,GAAG,GAAG,IAAI,eAAS,CACpB,IAAI,CAAC,KAAK,EACV;YACI,GAAG,OAAO;YACV,eAAe,EAAE,iCAAsB,CAAC,OAAO,CAAC,OAAO,CAAE;SAC5D,CACJ,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,EAAE;YAC3B,UAAU,CAAC,aAAa,EAAE,CAAC;YAC3B,UAAU,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC;QACF,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtE,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,qBAAqB;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CACpB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CACd,CAAC;QAEF,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAQ,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;iBAClB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;iBACnB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,SAAS,CAAC,KAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,MAAM,CAAC,YAAY;YAAE,OAAO;QAChC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,MAAM,wBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,eAAe;IAEf;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;;gBACG,IAAI,CAAC,IAAI,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;OAEG;IACI,UAAU;QACb,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS;IACT;;OAEG;IACI,IAAI,CAAC,SAAwB;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACD;;OAEG;IACI,OAAO,CAAC,SAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD;;OAEG;IACI,UAAU;QACb,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAQM,EAAE,CAAC,CAAoB,EAAE,CAAU,EAAE,CAAU;QAClD,MAAM,IAAI,GAAG,gBAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ"}
@@ -1,107 +1,10 @@
1
1
  import { Socket, SocketConstructorOpts } from "node:net";
2
2
  import { TypedEmmiter } from "../base/event";
3
- import { If } from "../base/typing";
4
- import { Angle, BaseVec3 } from "../base/direction";
3
+ import { BinaryDecoder } from "../packet/decoder";
5
4
  import { AuthOption } from "./auth";
6
- /**
7
- * Representing a TextComponent
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
- disconnect: [reason: string];
137
- disconnectRaw: [textComponent: TextComponent];
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?: string;
44
+ target: string | undefined;
171
45
  content: string;
172
46
  raw: {
173
47
  sender: TextComponent;
174
- target?: TextComponent;
175
- content?: TextComponent;
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<IsReady extends boolean = boolean> extends TCPClient_base {
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
- status: ClientStatus;
211
- private state;
212
- private sharedSecret;
213
- private cipher;
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, content: Buffer): void;
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