baltica 0.1.8 → 0.1.10

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 (36) hide show
  1. package/README.md +1 -0
  2. package/dist/bridge/bridge-player.d.ts +1 -1
  3. package/dist/bridge/bridge-player.js +3 -3
  4. package/dist/bridge/bridge.d.ts +1 -1
  5. package/dist/bridge/bridge.js +3 -3
  6. package/dist/bridge/types/bridge-player-events.d.ts +1 -1
  7. package/dist/client/client.d.ts +4 -4
  8. package/dist/client/client.js +17 -27
  9. package/dist/client/types/client-data.js +1 -1
  10. package/dist/client/types/client-events.d.ts +1 -1
  11. package/dist/client/types/payload.js +1 -1
  12. package/dist/client/worker/worker-client.d.ts +2 -3
  13. package/dist/client/worker/worker-client.js +3 -4
  14. package/dist/client/worker/worker.js +1 -14
  15. package/dist/index.d.ts +1 -2
  16. package/dist/index.js +1 -2
  17. package/dist/server/player.d.ts +5 -4
  18. package/dist/server/player.js +17 -16
  19. package/dist/server/server.d.ts +1 -1
  20. package/dist/server/server.js +4 -4
  21. package/dist/server/types/player-events.d.ts +1 -1
  22. package/dist/{libs → shared}/auth.d.ts +1 -1
  23. package/dist/{libs → shared}/auth.js +2 -2
  24. package/dist/{libs → shared}/index.d.ts +1 -0
  25. package/dist/{libs → shared}/index.js +1 -0
  26. package/package.json +2 -2
  27. /package/dist/{libs → shared}/emitter.d.ts +0 -0
  28. /package/dist/{libs → shared}/emitter.js +0 -0
  29. /package/dist/{libs → shared}/packet-compressor.d.ts +0 -0
  30. /package/dist/{libs → shared}/packet-compressor.js +0 -0
  31. /package/dist/{libs → shared}/packet-encryptor.d.ts +0 -0
  32. /package/dist/{libs → shared}/packet-encryptor.js +0 -0
  33. /package/dist/{types → shared/types}/global.d.ts +0 -0
  34. /package/dist/{types → shared/types}/global.js +0 -0
  35. /package/dist/{types → shared/types}/index.d.ts +0 -0
  36. /package/dist/{types → shared/types}/index.js +0 -0
package/README.md CHANGED
@@ -27,6 +27,7 @@ We've completely rewritten Baltica from the ground up! Here's what makes it awes
27
27
  ## 📋 Version Support
28
28
 
29
29
  `0.1.0` → Minecraft Bedrock `1.21.93`
30
+
30
31
  `0.1.8` → Minecraft Bedrock `1.21.100` & `1.21.101`
31
32
 
32
33
 
@@ -1,8 +1,8 @@
1
1
  import { Client } from "../client";
2
- import { Emitter } from "../libs";
3
2
  import type { Player } from "../server";
4
3
  import type { Bridge } from "./bridge";
5
4
  import type { BridgePlayerEvents } from "./types";
5
+ import { Emitter } from "../shared";
6
6
  export declare class BridgePlayer extends Emitter<BridgePlayerEvents> {
7
7
  bridge: Bridge;
8
8
  player: Player;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BridgePlayer = void 0;
4
4
  const protocol_1 = require("@serenityjs/protocol");
5
5
  const client_1 = require("../client");
6
- const libs_1 = require("../libs");
7
- class BridgePlayer extends libs_1.Emitter {
6
+ const shared_1 = require("../shared");
7
+ class BridgePlayer extends shared_1.Emitter {
8
8
  constructor(player, bridge) {
9
9
  super();
10
10
  this.player = player;
@@ -32,7 +32,7 @@ class BridgePlayer extends libs_1.Emitter {
32
32
  this.player.on("DisconnectPacket", (packet) => this.bridge.disconnect(this));
33
33
  this.on("clientBound-DisconnectPacket", (signal) => this.bridge.disconnect(this));
34
34
  this.on("serverBound-DisconnectPacket", (signal) => this.bridge.disconnect(this));
35
- this.player.connection.on("disconnect", () => this.bridge.disconnect(this));
35
+ this.bridge.on("disconnect", () => this.bridge.disconnect(this));
36
36
  this.client.connect();
37
37
  }
38
38
  handlePacket(rawBuffer, clientBound) {
@@ -1,4 +1,4 @@
1
- import type { ForceArray } from "../libs/emitter";
1
+ import type { ForceArray } from "../shared/emitter";
2
2
  import { Server } from "../server";
3
3
  import { BridgePlayer } from "./bridge-player";
4
4
  import { type BridgeOptions } from "./types";
@@ -19,8 +19,8 @@ class Bridge extends server_1.Server {
19
19
  // @ts-ignore
20
20
  this.on("playerConnect", (player) => {
21
21
  const bridgePlayer = new bridge_player_1.BridgePlayer(player, this);
22
- console.log(`Player ${player.connection.remoteInfo.address} connected to bridge`);
23
- const key = `${player.connection.remoteInfo.address}:${player.connection.remoteInfo.port}`;
22
+ console.log(`Player ${player.connection.getAddress().address} connected to bridge`);
23
+ const key = `${player.connection.getAddress().address}:${player.connection.getAddress().port}`;
24
24
  this.clients.set(key, bridgePlayer);
25
25
  this.emit("connect", bridgePlayer);
26
26
  });
@@ -33,7 +33,7 @@ class Bridge extends server_1.Server {
33
33
  disconnect.reason = protocol_1.DisconnectReason.LegacyDisconnect;
34
34
  player.client.send(disconnect.serialize());
35
35
  this.emit("disconnect", player);
36
- const key = `${player.player.connection.remoteInfo.address}:${player.player.connection.remoteInfo.port}`;
36
+ const key = `${player.player.connection.getAddress().address}:${player.player.connection.getAddress().port}`;
37
37
  this.clients.delete(key);
38
38
  this.onDisconnect(player.player);
39
39
  }
@@ -1,5 +1,5 @@
1
1
  import type * as Protocol from "@serenityjs/protocol";
2
- import type { PacketNames } from "../../types";
2
+ import type { PacketNames } from "../../shared/types";
3
3
  export type BridgeEventSignal = {
4
4
  packet: InstanceType<(typeof Protocol)[PacketNames]>;
5
5
  cancelled: boolean;
@@ -1,6 +1,6 @@
1
- import { type Advertisement, Client as RaknetClient, Status } from "@sanctumterra/raknet";
1
+ import { Client as RaknetClient, ConnectionStatus } from "@sanctumterra/raknet";
2
2
  import { DataPacket, type StartGamePacket } from "@serenityjs/protocol";
3
- import { Emitter, PacketCompressor, PacketEncryptor, type Profile } from "../libs";
3
+ import { Emitter, PacketCompressor, PacketEncryptor, type Profile } from "../shared";
4
4
  import { ClientData, type ClientEvents, type ClientOptions } from "./types";
5
5
  import { WorkerClient } from "./worker";
6
6
  export declare class Client extends Emitter<ClientEvents> {
@@ -21,7 +21,7 @@ export declare class Client extends Emitter<ClientEvents> {
21
21
  /** Client Data for auth and login. */
22
22
  data: ClientData;
23
23
  /** Client status in this attempted connection */
24
- status: Status;
24
+ status: ConnectionStatus;
25
25
  /** Packet Compression (class for simplicfication) */
26
26
  packetCompressor: PacketCompressor;
27
27
  /** Packet Encryptor (class for simplification) */
@@ -36,7 +36,7 @@ export declare class Client extends Emitter<ClientEvents> {
36
36
  cancelPastLogin: boolean;
37
37
  constructor(options: Partial<ClientOptions>);
38
38
  /** Connect to the server and start sending/receiving packets. */
39
- connect(): Promise<[Advertisement | null, StartGamePacket]>;
39
+ connect(): Promise<[StartGamePacket]>;
40
40
  private handleEncapsulated;
41
41
  /**
42
42
  * Packets must be decompressed and decrypted already
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Client = void 0;
4
+ const node_crypto_1 = require("node:crypto");
4
5
  const raknet_1 = require("@sanctumterra/raknet");
5
6
  const protocol_1 = require("@serenityjs/protocol");
6
- const node_crypto_1 = require("node:crypto");
7
- const libs_1 = require("../libs");
8
- const types_1 = require("../types");
7
+ const shared_1 = require("../shared");
8
+ const types_1 = require("../shared/types");
9
9
  const types_2 = require("./types");
10
10
  const worker_1 = require("./worker");
11
- class Client extends libs_1.Emitter {
11
+ class Client extends shared_1.Emitter {
12
12
  constructor(options) {
13
13
  super();
14
14
  this.options = { ...types_2.defaultClientOptions, ...options };
@@ -20,7 +20,7 @@ class Client extends libs_1.Emitter {
20
20
  this._compressionEnabled = false;
21
21
  this._encryptionEnabled = false;
22
22
  /** Client status */
23
- this.status = raknet_1.Status.Disconnected;
23
+ this.status = raknet_1.ConnectionStatus.Disconnected;
24
24
  /** worker or not. */
25
25
  this.raknet = this.options.worker
26
26
  ? new worker_1.WorkerClient({
@@ -39,20 +39,13 @@ class Client extends libs_1.Emitter {
39
39
  this.once("session", () => {
40
40
  this.sessionReady = true;
41
41
  });
42
- this.options.offline ? (0, libs_1.createOfflineSession)(this) : (0, libs_1.authenticate)(this);
42
+ this.options.offline ? (0, shared_1.createOfflineSession)(this) : (0, shared_1.authenticate)(this);
43
43
  }
44
44
  /** Connect to the server and start sending/receiving packets. */
45
45
  async connect() {
46
- const advertisement = await this.raknet.connect().catch((error) => {
47
- raknet_1.Logger.error("Error connecting with Raknet.", error);
48
- /*
49
- An attempt to recover incase the error was not fatal.
50
- If it was fatal we will get a differetnt error anyway. So dont judge me!
51
- */
52
- return null;
53
- });
54
- this.status = raknet_1.Status.Connecting;
55
- this.packetCompressor = new libs_1.PacketCompressor(this);
46
+ await this.raknet.connect();
47
+ this.status = raknet_1.ConnectionStatus.Connecting;
48
+ this.packetCompressor = new shared_1.PacketCompressor(this);
56
49
  this.handleGamePackets();
57
50
  this.raknet.on("encapsulated", this.handleEncapsulated.bind(this));
58
51
  const request = new protocol_1.RequestNetworkSettingsPacket();
@@ -60,7 +53,7 @@ class Client extends libs_1.Emitter {
60
53
  this.send(request);
61
54
  return new Promise((resolve, rejevt) => {
62
55
  this.once("SetLocalPlayerAsInitializedPacket", (packet) => {
63
- resolve([advertisement, this.startGameData]);
56
+ resolve([this.startGameData]);
64
57
  });
65
58
  });
66
59
  }
@@ -179,13 +172,13 @@ class Client extends libs_1.Emitter {
179
172
  }
180
173
  });
181
174
  this.on("DisconnectPacket", (packet) => {
182
- this.status = raknet_1.Status.Disconnected;
175
+ this.status = raknet_1.ConnectionStatus.Disconnected;
183
176
  this.raknet.disconnect();
184
177
  console.log(packet.message);
185
178
  });
186
179
  }
187
180
  startEncryption(iv) {
188
- this.packetEncryptor = new libs_1.PacketEncryptor(this, iv);
181
+ this.packetEncryptor = new shared_1.PacketEncryptor(this, iv);
189
182
  this._encryptionEnabled = true;
190
183
  }
191
184
  async waitForSessionReady() {
@@ -193,27 +186,24 @@ class Client extends libs_1.Emitter {
193
186
  await new Promise((resolve) => setTimeout(resolve, 50));
194
187
  }
195
188
  }
196
- sendPacket(packet, priority = raknet_1.Priority.Normal) {
189
+ sendPacket(packet, priority = raknet_1.Priority.High) {
197
190
  try {
198
- if (this.status === raknet_1.Status.Disconnected)
191
+ if (this.status === raknet_1.ConnectionStatus.Disconnected)
199
192
  return;
200
193
  const serialized = packet instanceof protocol_1.DataPacket ? packet.serialize() : packet;
201
194
  const compressed = this.packetCompressor.compress(serialized, this.options.compressionMethod);
202
- const frame = new raknet_1.Frame();
203
- frame.orderChannel = 0;
204
- frame.payload = compressed;
205
- this.raknet.sendFrame(frame, priority);
195
+ this.raknet.frameAndSend(compressed, priority);
206
196
  }
207
197
  catch (error) {
208
198
  raknet_1.Logger.error(`Failed to send packet ${packet instanceof protocol_1.DataPacket ? packet.constructor.name : "Buffer"}`, error);
209
199
  }
210
200
  }
211
201
  send(packet) {
212
- this.sendPacket(packet, raknet_1.Priority.Immediate);
202
+ this.sendPacket(packet, raknet_1.Priority.High);
213
203
  }
214
204
  queue(packet) {
215
205
  raknet_1.Logger.debug(`Queueing packet ${packet instanceof protocol_1.DataPacket ? packet.constructor.name : "Buffer"}`);
216
- this.sendPacket(packet, raknet_1.Priority.Normal);
206
+ this.sendPacket(packet, raknet_1.Priority.High);
217
207
  }
218
208
  }
219
209
  exports.Client = Client;
@@ -40,7 +40,7 @@ const jose = __importStar(require("jose"));
40
40
  const node_crypto_1 = require("node:crypto");
41
41
  const uuid_1345_1 = require("uuid-1345");
42
42
  const __1 = require("../");
43
- const types_1 = require("../../types");
43
+ const types_1 = require("../../shared/types");
44
44
  const login_data_1 = require("./login-data");
45
45
  const PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAECRXueJeTDqNRRgJi/vlRufByu/2G0i2Ebt6YMar5QX/R0DIIyrJMcUpruK4QveTfJSTp3Shlq4Gk34cD/4GUWwkv0DVuzeuB+tXija7HBxii03NHDbPAD0AKnLr2wdAp";
46
46
  const algorithm = "ES384";
@@ -1,6 +1,6 @@
1
1
  import type { Advertisement } from "@sanctumterra/raknet";
2
2
  import type * as Protocol from "@serenityjs/protocol";
3
- import type { PacketNames } from "../../types";
3
+ import type { PacketNames } from "../../shared/types";
4
4
  type ClientEvents = {
5
5
  [K in PacketNames]: [packet: InstanceType<(typeof Protocol)[K]>];
6
6
  } & {
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createDefaultPayload = void 0;
37
37
  const protocol_1 = require("@serenityjs/protocol");
38
- const types_1 = require("../../types");
38
+ const types_1 = require("../../shared/types");
39
39
  const client_data_1 = require("./client-data");
40
40
  const skin = __importStar(require("./skin/Skin.json"));
41
41
  const createDefaultPayload = (client) => {
@@ -1,6 +1,5 @@
1
- import { type Advertisement, type ClientEvents, type ClientOptions, type Frame, Priority } from "@sanctumterra/raknet";
1
+ import { type ClientEvents, type ClientOptions, type Frame, Priority, EventEmitter as Emitter } from "@sanctumterra/raknet";
2
2
  import type { Worker } from "node:worker_threads";
3
- import { Emitter } from "../../libs/emitter";
4
3
  declare class WorkerClient extends Emitter<ClientEvents> {
5
4
  private _worker;
6
5
  private _options;
@@ -8,7 +7,7 @@ declare class WorkerClient extends Emitter<ClientEvents> {
8
7
  constructor(options: Partial<ClientOptions>);
9
8
  get worker(): Worker | undefined;
10
9
  private handleEvents;
11
- connect(): Promise<Advertisement | null>;
10
+ connect(): Promise<unknown>;
12
11
  dispose(): void;
13
12
  disconnect(): void;
14
13
  cleanup(): void;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkerClient = void 0;
4
4
  const raknet_1 = require("@sanctumterra/raknet");
5
- const emitter_1 = require("../../libs/emitter");
6
5
  const worker_1 = require("./worker");
7
- class WorkerClient extends emitter_1.Emitter {
6
+ class WorkerClient extends raknet_1.EventEmitter {
8
7
  constructor(options) {
9
8
  super();
10
9
  this._options = { ...raknet_1.defaultClientOptions, ...options };
@@ -89,12 +88,12 @@ class WorkerClient extends emitter_1.Emitter {
89
88
  this._worker?.postMessage({ type: "cleanup" });
90
89
  this._worker = undefined;
91
90
  }
92
- frameAndSend(payload, priority = raknet_1.Priority.Normal) {
91
+ frameAndSend(payload, priority = raknet_1.Priority.High) {
93
92
  if (!this._worker)
94
93
  return;
95
94
  this._worker.postMessage({ type: "frameAndSend", payload, priority });
96
95
  }
97
- sendFrame(frame, priority = raknet_1.Priority.Normal) {
96
+ sendFrame(frame, priority = raknet_1.Priority.High) {
98
97
  if (!this._worker)
99
98
  return;
100
99
  this._worker.postMessage({ type: "sendFrame", frame, priority });
@@ -13,30 +13,17 @@ function connect(options) {
13
13
  }
14
14
  }
15
15
  let client;
16
- function cleanup() {
17
- if (client) {
18
- try {
19
- client.removeAll();
20
- }
21
- catch (error) {
22
- raknet_1.Logger.error(`Cleanup error: ${error}`);
23
- }
24
- }
25
- }
26
16
  function main() {
27
17
  if (!node_worker_threads_1.parentPort) {
28
18
  raknet_1.Logger.error("Parent port is null");
29
19
  return;
30
20
  }
31
- process.on("exit", cleanup);
32
21
  process.on("SIGINT", () => {
33
- cleanup();
34
22
  process.exit(0);
35
23
  });
36
24
  node_worker_threads_1.parentPort.on("message", async (evt) => {
37
25
  try {
38
26
  if (evt.type === "connect") {
39
- cleanup();
40
27
  client = new raknet_1.Client(evt.options);
41
28
  client.on("error", (error) => {
42
29
  if (!node_worker_threads_1.parentPort)
@@ -88,7 +75,7 @@ function main() {
88
75
  frame.reliability = evt.frame.reliability;
89
76
  frame.reliableFrameIndex = evt.frame.reliableFrameIndex;
90
77
  frame.sequenceFrameIndex = evt.frame.sequenceFrameIndex;
91
- frame.splitCount = evt.frame.splitCount;
78
+ frame.splitSize = evt.frame.splitSize;
92
79
  frame.splitFrameIndex = evt.frame.splitFrameIndex;
93
80
  frame.splitId = evt.frame.splitId;
94
81
  client.sendFrame(frame, evt.priority);
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./client";
2
2
  export * from "./server";
3
3
  export * from "./bridge";
4
- export * from "./libs";
5
- export * from "./types";
4
+ export * from "./shared";
package/dist/index.js CHANGED
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./client"), exports);
18
18
  __exportStar(require("./server"), exports);
19
19
  __exportStar(require("./bridge"), exports);
20
- __exportStar(require("./libs"), exports);
21
- __exportStar(require("./types"), exports);
20
+ __exportStar(require("./shared"), exports);
@@ -1,9 +1,10 @@
1
- import { type Connection, Status } from "@sanctumterra/raknet";
1
+ import { type Connection, ConnectionStatus } from "@sanctumterra/raknet";
2
2
  import { DataPacket } from "@serenityjs/protocol";
3
- import { type ClientOptions, type LoginData, type Payload } from "../client";
4
- import { Emitter, PacketCompressor, PacketEncryptor } from "../libs";
3
+ import { type ClientOptions, type LoginData, type Payload } from "../client/types";
4
+ import { PacketCompressor, PacketEncryptor } from "../shared";
5
5
  import type { Server } from "./server";
6
6
  import type { PlayerEvents } from "./types";
7
+ import { Emitter } from "../shared";
7
8
  export declare class Player extends Emitter<PlayerEvents> {
8
9
  packetCompressor: PacketCompressor;
9
10
  packetEncryptor: PacketEncryptor;
@@ -11,7 +12,7 @@ export declare class Player extends Emitter<PlayerEvents> {
11
12
  _encryptionEnabled: boolean;
12
13
  iv: Buffer;
13
14
  secretKeyBytes: Buffer;
14
- status: Status;
15
+ status: ConnectionStatus;
15
16
  loginData: LoginData;
16
17
  sharedSecret: Buffer;
17
18
  server: Server;
@@ -38,18 +38,19 @@ const raknet_1 = require("@sanctumterra/raknet");
38
38
  const protocol_1 = require("@serenityjs/protocol");
39
39
  const jose = __importStar(require("jose"));
40
40
  const node_crypto_1 = require("node:crypto");
41
- const client_1 = require("../client");
42
- const libs_1 = require("../libs");
43
- const types_1 = require("../types");
41
+ const types_1 = require("../client/types");
42
+ const shared_1 = require("../shared");
43
+ const types_2 = require("../shared/types");
44
+ const shared_2 = require("../shared");
44
45
  const SALT = "🧂";
45
46
  const SALT_BUFFER = Buffer.from(SALT);
46
- class Player extends libs_1.Emitter {
47
+ class Player extends shared_2.Emitter {
47
48
  constructor(server, connection) {
48
49
  super();
49
- this.status = raknet_1.Status.Disconnected;
50
+ this.status = raknet_1.ConnectionStatus.Disconnected;
50
51
  this.connection = connection;
51
52
  this.server = server;
52
- this.options = client_1.defaultClientOptions;
53
+ this.options = types_1.defaultClientOptions;
53
54
  this._compressionEnabled = false;
54
55
  this._encryptionEnabled = false;
55
56
  this.options.compressionMethod = this.server.options.compressionMethod;
@@ -87,9 +88,9 @@ class Player extends libs_1.Emitter {
87
88
  this.processPacket(packet);
88
89
  }
89
90
  }
90
- sendPacket(packet, priority = raknet_1.Priority.Normal) {
91
+ sendPacket(packet, priority = raknet_1.Priority.High) {
91
92
  try {
92
- if (this.status === raknet_1.Status.Disconnected)
93
+ if (this.status === raknet_1.ConnectionStatus.Disconnected)
93
94
  return;
94
95
  const serialized = packet instanceof protocol_1.DataPacket ? packet.serialize() : packet;
95
96
  const compressed = this.packetCompressor.compress(serialized, this.options.compressionMethod);
@@ -103,25 +104,25 @@ class Player extends libs_1.Emitter {
103
104
  }
104
105
  }
105
106
  send(packet) {
106
- this.sendPacket(packet, raknet_1.Priority.Immediate);
107
+ this.sendPacket(packet, raknet_1.Priority.High);
107
108
  }
108
109
  queue(packet) {
109
110
  raknet_1.Logger.debug(`Queueing packet ${packet instanceof protocol_1.DataPacket ? packet.constructor.name : "Buffer"}`);
110
- this.sendPacket(packet, raknet_1.Priority.Normal);
111
+ this.sendPacket(packet, raknet_1.Priority.Medium);
111
112
  }
112
113
  startEncryption(iv) {
113
114
  if (!this.packetEncryptor) {
114
- this.packetEncryptor = new libs_1.PacketEncryptor(this, iv);
115
+ this.packetEncryptor = new shared_1.PacketEncryptor(this, iv);
115
116
  this._encryptionEnabled = true;
116
117
  }
117
118
  }
118
119
  prepare() {
119
- this.loginData = (0, client_1.prepareLoginData)();
120
- this.packetCompressor = new libs_1.PacketCompressor(this);
120
+ this.loginData = (0, types_1.prepareLoginData)();
121
+ this.packetCompressor = new shared_1.PacketCompressor(this);
121
122
  // this.packetEncryptor = new PacketEncryptor(this);
122
123
  this.connection.on("encapsulated", this.onEncapsulated.bind(this));
123
124
  this.on("RequestNetworkSettingsPacket", (packet) => {
124
- this.status = raknet_1.Status.Connecting;
125
+ this.status = raknet_1.ConnectionStatus.Connecting;
125
126
  const settings = new protocol_1.NetworkSettingsPacket();
126
127
  settings.compressionThreshold = this.server.options.compressionThreshold;
127
128
  settings.clientScalar = 0;
@@ -133,7 +134,7 @@ class Player extends libs_1.Emitter {
133
134
  });
134
135
  this.on("LoginPacket", async (packet) => {
135
136
  // TODO! Verify JWT.
136
- const { key, data, skin } = await (0, libs_1.decodeLoginJWT)(packet.tokens, types_1.CurrentVersionConst);
137
+ const { key, data, skin } = await (0, shared_2.decodeLoginJWT)(packet.tokens, types_2.CurrentVersionConst);
137
138
  if (data === null) {
138
139
  return;
139
140
  }
@@ -145,7 +146,7 @@ class Player extends libs_1.Emitter {
145
146
  format: "der",
146
147
  type: "spki",
147
148
  });
148
- this.sharedSecret = client_1.ClientData.createSharedSecret(this.loginData.ecdhKeyPair.privateKey, pubKeyDer);
149
+ this.sharedSecret = types_1.ClientData.createSharedSecret(this.loginData.ecdhKeyPair.privateKey, pubKeyDer);
149
150
  const secretHash = (0, node_crypto_1.createHash)("sha256")
150
151
  .update(SALT_BUFFER)
151
152
  .update(this.sharedSecret);
@@ -1,7 +1,7 @@
1
1
  import { type Connection, Server as RaknetServer } from "@sanctumterra/raknet";
2
- import { Emitter } from "../libs";
3
2
  import { Player } from "./player";
4
3
  import { type ServerEvents, type ServerOptions } from "./types";
4
+ import { Emitter } from "src/shared";
5
5
  export declare class Server extends Emitter<ServerEvents> {
6
6
  options: ServerOptions;
7
7
  raknet: RaknetServer;
@@ -3,16 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Server = void 0;
4
4
  const raknet_1 = require("@sanctumterra/raknet");
5
5
  const protocol_1 = require("@serenityjs/protocol");
6
- const libs_1 = require("../libs");
7
6
  const player_1 = require("./player");
8
7
  const types_1 = require("./types");
9
- class Server extends libs_1.Emitter {
8
+ const shared_1 = require("src/shared");
9
+ class Server extends shared_1.Emitter {
10
10
  constructor(options) {
11
11
  super();
12
12
  this.players = new Map();
13
13
  this.options = { ...types_1.defaultServerOptions, ...options };
14
14
  this.raknet = new raknet_1.Server({
15
- host: this.options.address,
15
+ address: this.options.address,
16
16
  port: this.options.port,
17
17
  motd: this.options.motd,
18
18
  tickRate: this.options.tickRate,
@@ -44,7 +44,7 @@ class Server extends libs_1.Emitter {
44
44
  const { address, port } = connection.getAddress();
45
45
  raknet_1.Logger.info(`Session received from: ${address}:${port}`);
46
46
  });
47
- this.raknet.start();
47
+ this.raknet.listen();
48
48
  }
49
49
  onDisconnect(player) {
50
50
  const key = this.getConKey(player.connection);
@@ -1,5 +1,5 @@
1
1
  import type * as Protocol from "@serenityjs/protocol";
2
- import type { PacketNames } from "../../types";
2
+ import type { PacketNames } from "../../shared/types";
3
3
  export type PlayerEvents = {
4
4
  [K in PacketNames]: [packet: InstanceType<(typeof Protocol)[K]>];
5
5
  } & {
@@ -1,6 +1,6 @@
1
1
  import type { LoginTokens } from "@serenityjs/protocol";
2
2
  import * as jose from "jose";
3
- import { type ProtocolList } from "../";
3
+ import { type ProtocolList } from "./types";
4
4
  import type { Client } from "../client/client";
5
5
  export interface Profile {
6
6
  name: string;
@@ -43,7 +43,7 @@ const jose = __importStar(require("jose"));
43
43
  const node_crypto_1 = require("node:crypto");
44
44
  const prismarine_auth_1 = require("prismarine-auth");
45
45
  const uuid_1345_1 = require("uuid-1345");
46
- const __1 = require("../");
46
+ const types_1 = require("./types");
47
47
  exports.UUID_NAMESPACE = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
48
48
  const PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAECRXueJeTDqNRRgJi/vlRufByu/2G0i2Ebt6YMar5QX/R0DIIyrJMcUpruK4QveTfJSTp3Shlq4Gk34cD/4GUWwkv0DVuzeuB+tXija7HBxii03NHDbPAD0AKnLr2wdAp";
49
49
  async function createOfflineSession(client) {
@@ -208,7 +208,7 @@ const decodeLoginJWT = async (tokens, version) => {
208
208
  const client = tokens.client;
209
209
  const payload = JSON.parse(identity);
210
210
  let ClientUserChain = [];
211
- if ((0, __1.versionHigherThan)(version, "1.21.80")) {
211
+ if ((0, types_1.versionHigherThan)(version, "1.21.80")) {
212
212
  if (!payload.Certificate) {
213
213
  raknet_1.Logger.error("No certificate found in identity, possible version mismatch!");
214
214
  return { key: null, data: null, skin: null };
@@ -1,4 +1,5 @@
1
1
  export * from "./auth";
2
+ export * from "./types";
2
3
  export * from "./emitter";
3
4
  export * from "./packet-compressor";
4
5
  export * from "./packet-encryptor";
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./auth"), exports);
18
+ __exportStar(require("./types"), exports);
18
19
  __exportStar(require("./emitter"), exports);
19
20
  __exportStar(require("./packet-compressor"), exports);
20
21
  __exportStar(require("./packet-encryptor"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "baltica",
3
3
  "description": "Library for Minecraft Bedrock Edition community developers.",
4
- "version": "0.1.8",
4
+ "version": "0.1.10",
5
5
  "minecraft": "1.21.100",
6
6
  "main": "dist/index.js",
7
7
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  }
22
22
  ],
23
23
  "dependencies": {
24
- "@sanctumterra/raknet": "^1.3.78",
24
+ "@sanctumterra/raknet": "^1.4.0",
25
25
  "@serenityjs/binarystream": "^3.0.10",
26
26
  "@serenityjs/protocol": "^0.8.7",
27
27
  "jose": "^5.10.0",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes