@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
24 lines (21 loc) • 4.25 kB
JavaScript
import Identifiers from '../Identifiers.es.js';
import NetworkSettingsPacket, { CompressionThreshold, PacketCompressionAlgorithm } from '../packet/NetworkSettingsPacket.es.js';
class RequestNetworkSettingsHandler {
static NetID = Identifiers.RequestNetworkSettingsPacket;
async handle(packet, _server, connection) {
if (packet.protocolVersion !== Identifiers.Protocol) {
connection.disconnect(`Unsupported protocol version: ${packet.protocolVersion}`);
return;
}
const networkSettings = new NetworkSettingsPacket();
networkSettings.compressionThreshold = CompressionThreshold.COMPRESS_EVERYTHING;
networkSettings.compressionAlgorithm = PacketCompressionAlgorithm.ZLIB;
networkSettings.clientThrottlingEnabled = false;
networkSettings.clientThrottleThreshold = 0;
networkSettings.clientThrottleScalar = 0;
connection.hasCompression = true;
await connection.sendDataPacket(networkSettings, false);
}
}
export { RequestNetworkSettingsHandler as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdE5ldHdvcmtTZXR0aW5nc0hhbmRsZXIuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZXR3b3JrL2hhbmRsZXIvUmVxdWVzdE5ldHdvcmtTZXR0aW5nc0hhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IElkZW50aWZpZXJzIGZyb20gJy4uL0lkZW50aWZpZXJzJztcbmltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi8uLi9TZXJ2ZXInO1xuaW1wb3J0IHR5cGUgUmVxdWVzdE5ldHdvcmtTZXR0aW5nc1BhY2tldCBmcm9tICcuLi9wYWNrZXQvUmVxdWVzdE5ldHdvcmtTZXR0aW5nc1BhY2tldCc7XG5pbXBvcnQgdHlwZSBQcmVMb2dpblBhY2tldEhhbmRsZXIgZnJvbSAnLi9QcmVMb2dpblBhY2tldEhhbmRsZXInO1xuaW1wb3J0IHR5cGUgQ2xpZW50Q29ubmVjdGlvbiBmcm9tICcuLi9DbGllbnRDb25uZWN0aW9uJztcbmltcG9ydCBOZXR3b3JrU2V0dGluZ3NQYWNrZXQsIHtcbiAgICBQYWNrZXRDb21wcmVzc2lvbkFsZ29yaXRobSxcbiAgICBDb21wcmVzc2lvblRocmVzaG9sZFxufSBmcm9tICcuLi9wYWNrZXQvTmV0d29ya1NldHRpbmdzUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVxdWVzdE5ldHdvcmtTZXR0aW5nc0hhbmRsZXIgaW1wbGVtZW50cyBQcmVMb2dpblBhY2tldEhhbmRsZXI8UmVxdWVzdE5ldHdvcmtTZXR0aW5nc1BhY2tldD4ge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5SZXF1ZXN0TmV0d29ya1NldHRpbmdzUGFja2V0O1xuXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZShcbiAgICAgICAgcGFja2V0OiBSZXF1ZXN0TmV0d29ya1NldHRpbmdzUGFja2V0LFxuICAgICAgICBfc2VydmVyOiBTZXJ2ZXIsXG4gICAgICAgIGNvbm5lY3Rpb246IENsaWVudENvbm5lY3Rpb25cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHBhY2tldC5wcm90b2NvbFZlcnNpb24gIT09IElkZW50aWZpZXJzLlByb3RvY29sKSB7XG4gICAgICAgICAgICBjb25uZWN0aW9uLmRpc2Nvbm5lY3QoYFVuc3VwcG9ydGVkIHByb3RvY29sIHZlcnNpb246ICR7cGFja2V0LnByb3RvY29sVmVyc2lvbn1gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ldHdvcmtTZXR0aW5ncyA9IG5ldyBOZXR3b3JrU2V0dGluZ3NQYWNrZXQoKTtcbiAgICAgICAgbmV0d29ya1NldHRpbmdzLmNvbXByZXNzaW9uVGhyZXNob2xkID0gQ29tcHJlc3Npb25UaHJlc2hvbGQuQ09NUFJFU1NfRVZFUllUSElORztcbiAgICAgICAgbmV0d29ya1NldHRpbmdzLmNvbXByZXNzaW9uQWxnb3JpdGhtID0gUGFja2V0Q29tcHJlc3Npb25BbGdvcml0aG0uWkxJQjtcbiAgICAgICAgbmV0d29ya1NldHRpbmdzLmNsaWVudFRocm90dGxpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICAgIG5ldHdvcmtTZXR0aW5ncy5jbGllbnRUaHJvdHRsZVRocmVzaG9sZCA9IDA7XG4gICAgICAgIG5ldHdvcmtTZXR0aW5ncy5jbGllbnRUaHJvdHRsZVNjYWxhciA9IDA7XG5cbiAgICAgICAgY29ubmVjdGlvbi5oYXNDb21wcmVzc2lvbiA9IHRydWU7XG5cbiAgICAgICAgLy8gU2VuZCBhcyB1bmNvbXByZXNzZWQsIHRoaXMgd2lsbCBpbml0aWFsaXplIGNvbXByZXNzaW9uXG4gICAgICAgIGF3YWl0IGNvbm5lY3Rpb24uc2VuZERhdGFQYWNrZXQobmV0d29ya1NldHRpbmdzLCBmYWxzZSk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLE1BQXFCLDZCQUE2RixDQUFBO0FBQUEsRUFDOUcsT0FBYyxRQUFRLFdBQVksQ0FBQSw0QkFBQTtBQUFBLEVBRWxDLE1BQWEsTUFBQSxDQUNULE1BQ0EsRUFBQSxPQUFBLEVBQ0EsVUFDYSxFQUFBO0FBQ2IsSUFBSSxJQUFBLE1BQUEsQ0FBTyxlQUFvQixLQUFBLFdBQUEsQ0FBWSxRQUFVLEVBQUE7QUFDakQsTUFBQSxVQUFBLENBQVcsVUFBVyxDQUFBLENBQUEsOEJBQUEsRUFBaUMsTUFBTyxDQUFBLGVBQWUsQ0FBRSxDQUFBLENBQUE7QUFDL0UsTUFBQTtBQUFBO0FBR0osSUFBTSxNQUFBLGVBQUEsR0FBa0IsSUFBSSxxQkFBc0IsRUFBQTtBQUNsRCxJQUFBLGVBQUEsQ0FBZ0IsdUJBQXVCLG9CQUFxQixDQUFBLG1CQUFBO0FBQzVELElBQUEsZUFBQSxDQUFnQix1QkFBdUIsMEJBQTJCLENBQUEsSUFBQTtBQUNsRSxJQUFBLGVBQUEsQ0FBZ0IsdUJBQTBCLEdBQUEsS0FBQTtBQUMxQyxJQUFBLGVBQUEsQ0FBZ0IsdUJBQTBCLEdBQUEsQ0FBQTtBQUMxQyxJQUFBLGVBQUEsQ0FBZ0Isb0JBQXVCLEdBQUEsQ0FBQTtBQUV2QyxJQUFBLFVBQUEsQ0FBVyxjQUFpQixHQUFBLElBQUE7QUFHNUIsSUFBTSxNQUFBLFVBQUEsQ0FBVyxjQUFlLENBQUEsZUFBQSxFQUFpQixLQUFLLENBQUE7QUFBQTtBQUU5RDs7OzsifQ==