UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

103 lines (100 loc) 11.2 kB
import { NetworkUtil } from '../NetworkUtil.es.js'; import Identifiers from '../Identifiers.es.js'; import DataPacket from './DataPacket.es.js'; class PlayerListEntry { uuid; runtimeId; name; xuid; platformChatId; buildPlatform; skin; teacher; host; constructor({ uuid, runtimeId, name, xuid = "", platformChatId, buildPlatform, skin, isTeacher = true, isHost = true }) { this.uuid = uuid; this.runtimeId = runtimeId ?? null; this.name = name ?? null; this.xuid = xuid; this.platformChatId = platformChatId ?? null; this.buildPlatform = buildPlatform ?? null; this.skin = skin ?? null; this.teacher = isTeacher; this.host = isHost; } networkSerialize(stream) { stream.writeVarLong(this.getRuntimeId()); NetworkUtil.writeString(stream, this.getName()); NetworkUtil.writeString(stream, this.getXUID()); NetworkUtil.writeString(stream, this.getPlatformChatId()); stream.writeIntLE(this.getBuildPlatform()); this.getSkin().networkSerialize(stream); stream.writeBoolean(this.isTeacher()); stream.writeBoolean(this.isHost()); stream.writeBoolean(false); } getUUID() { return this.uuid; } getRuntimeId() { return this.runtimeId; } getName() { return this.name; } getXUID() { return this.xuid; } getPlatformChatId() { return this.platformChatId; } getBuildPlatform() { return this.buildPlatform; } getSkin() { return this.skin; } isTeacher() { return this.teacher; } isHost() { return this.host; } } var PlayerListAction = /* @__PURE__ */ ((PlayerListAction2) => { PlayerListAction2[PlayerListAction2["TYPE_ADD"] = 0] = "TYPE_ADD"; PlayerListAction2[PlayerListAction2["TYPE_REMOVE"] = 1] = "TYPE_REMOVE"; return PlayerListAction2; })(PlayerListAction || {}); class PlayerListPacket extends DataPacket { static NetID = Identifiers.PlayerListPacket; entries = []; type; encodePayload() { this.writeByte(this.type); this.writeUnsignedVarInt(this.entries.length); for (const entry of this.entries) { entry.getUUID().networkSerialize(this); if (this.type === 0 /* TYPE_ADD */) { entry.networkSerialize(this); } } if (this.type === 0 /* TYPE_ADD */) { for (let i = 0; i < this.entries.length; i++) { this.writeBoolean(true); } } } } export { PlayerListAction, PlayerListEntry, PlayerListPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyTGlzdFBhY2tldC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvcGFja2V0L1BsYXllckxpc3RQYWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgeyBOZXR3b3JrVXRpbCB9IGZyb20gJy4uLy4uL25ldHdvcmsvTmV0d29ya1V0aWwnO1xuaW1wb3J0IHR5cGUgVVVJRCBmcm9tICcuLi8uLi91dGlscy9VVUlEJztcbmltcG9ydCB0eXBlIFNraW4gZnJvbSAnLi4vLi4vdXRpbHMvc2tpbi9Ta2luJztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgRGF0YVBhY2tldCBmcm9tICcuL0RhdGFQYWNrZXQnO1xuXG5pbnRlcmZhY2UgUGxheWVyTGlzdERhdGEge1xuICAgIHV1aWQ6IFVVSUQ7XG4gICAgcnVudGltZUlkPzogYmlnaW50IHwgbnVsbDtcbiAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICB4dWlkPzogc3RyaW5nO1xuICAgIHBsYXRmb3JtQ2hhdElkPzogc3RyaW5nIHwgbnVsbDtcbiAgICBidWlsZFBsYXRmb3JtPzogbnVtYmVyIHwgbnVsbDtcbiAgICBza2luPzogU2tpbiB8IG51bGw7XG4gICAgaXNUZWFjaGVyPzogYm9vbGVhbjtcbiAgICBpc0hvc3Q/OiBib29sZWFuO1xuICAgIGlzU3ViQ2xpZW50PzogYm9vbGVhbjsgLy8gVE9ET1xufVxuXG5leHBvcnQgY2xhc3MgUGxheWVyTGlzdEVudHJ5IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHV1aWQ6IFVVSUQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBydW50aW1lSWQ6IGJpZ2ludCB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgeHVpZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1DaGF0SWQ6IHN0cmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWlsZFBsYXRmb3JtOiBudW1iZXIgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2tpbjogU2tpbiB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZWFjaGVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgICAgIHV1aWQsXG4gICAgICAgIHJ1bnRpbWVJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgeHVpZCA9ICcnLFxuICAgICAgICBwbGF0Zm9ybUNoYXRJZCxcbiAgICAgICAgYnVpbGRQbGF0Zm9ybSxcbiAgICAgICAgc2tpbixcbiAgICAgICAgaXNUZWFjaGVyID0gdHJ1ZSxcbiAgICAgICAgaXNIb3N0ID0gdHJ1ZVxuICAgIH06IFBsYXllckxpc3REYXRhKSB7XG4gICAgICAgIHRoaXMudXVpZCA9IHV1aWQ7XG4gICAgICAgIHRoaXMucnVudGltZUlkID0gcnVudGltZUlkID8/IG51bGw7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWUgPz8gbnVsbDtcbiAgICAgICAgdGhpcy54dWlkID0geHVpZDtcbiAgICAgICAgdGhpcy5wbGF0Zm9ybUNoYXRJZCA9IHBsYXRmb3JtQ2hhdElkID8/IG51bGw7XG4gICAgICAgIHRoaXMuYnVpbGRQbGF0Zm9ybSA9IGJ1aWxkUGxhdGZvcm0gPz8gbnVsbDtcbiAgICAgICAgdGhpcy5za2luID0gc2tpbiA/PyBudWxsO1xuICAgICAgICB0aGlzLnRlYWNoZXIgPSBpc1RlYWNoZXI7XG4gICAgICAgIHRoaXMuaG9zdCA9IGlzSG9zdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV0d29ya1NlcmlhbGl6ZShzdHJlYW06IEJpbmFyeVN0cmVhbSk6IHZvaWQge1xuICAgICAgICBzdHJlYW0ud3JpdGVWYXJMb25nKHRoaXMuZ2V0UnVudGltZUlkKCkhKTtcbiAgICAgICAgTmV0d29ya1V0aWwud3JpdGVTdHJpbmcoc3RyZWFtLCB0aGlzLmdldE5hbWUoKSEpO1xuICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyhzdHJlYW0sIHRoaXMuZ2V0WFVJRCgpISk7XG4gICAgICAgIE5ldHdvcmtVdGlsLndyaXRlU3RyaW5nKHN0cmVhbSwgdGhpcy5nZXRQbGF0Zm9ybUNoYXRJZCgpISk7XG4gICAgICAgIHN0cmVhbS53cml0ZUludExFKHRoaXMuZ2V0QnVpbGRQbGF0Zm9ybSgpISk7XG4gICAgICAgIHRoaXMuZ2V0U2tpbigpIS5uZXR3b3JrU2VyaWFsaXplKHN0cmVhbSk7XG4gICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4odGhpcy5pc1RlYWNoZXIoKSk7XG4gICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4odGhpcy5pc0hvc3QoKSk7XG4gICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4oZmFsc2UpOyAvLyBpcyBzdWIgY2xpZW50XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVVSUQoKTogVVVJRCB7XG4gICAgICAgIHJldHVybiB0aGlzLnV1aWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJ1bnRpbWVJZCgpOiBiaWdpbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnVudGltZUlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRYVUlEKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnh1aWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBsYXRmb3JtQ2hhdElkKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybUNoYXRJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnVpbGRQbGF0Zm9ybSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRQbGF0Zm9ybTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2tpbigpOiBTa2luIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNraW47XG4gICAgfVxuXG4gICAgcHVibGljIGlzVGVhY2hlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGVhY2hlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIb3N0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0O1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gUGxheWVyTGlzdEFjdGlvbiB7XG4gICAgVFlQRV9BREQsXG4gICAgVFlQRV9SRU1PVkVcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGxheWVyTGlzdFBhY2tldCBleHRlbmRzIERhdGFQYWNrZXQge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5QbGF5ZXJMaXN0UGFja2V0O1xuXG4gICAgcHVibGljIGVudHJpZXM6IFBsYXllckxpc3RFbnRyeVtdID0gW107XG4gICAgcHVibGljIHR5cGUhOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy50eXBlKTtcbiAgICAgICAgdGhpcy53cml0ZVVuc2lnbmVkVmFySW50KHRoaXMuZW50cmllcy5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZW50cmllcykge1xuICAgICAgICAgICAgZW50cnkuZ2V0VVVJRCgpLm5ldHdvcmtTZXJpYWxpemUodGhpcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFBsYXllckxpc3RBY3Rpb24uVFlQRV9BREQpIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5uZXR3b3JrU2VyaWFsaXplKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gUGxheWVyTGlzdEFjdGlvbi5UWVBFX0FERCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlQm9vbGVhbih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJQbGF5ZXJMaXN0QWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBb0JPLE1BQU0sZUFBZ0IsQ0FBQTtBQUFBLEVBQ1IsSUFBQTtBQUFBLEVBQ0EsU0FBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBQ0EsY0FBQTtBQUFBLEVBQ0EsYUFBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBQ0EsT0FBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBRVYsV0FBWSxDQUFBO0FBQUEsSUFDZixJQUFBO0FBQUEsSUFDQSxTQUFBO0FBQUEsSUFDQSxJQUFBO0FBQUEsSUFDQSxJQUFPLEdBQUEsRUFBQTtBQUFBLElBQ1AsY0FBQTtBQUFBLElBQ0EsYUFBQTtBQUFBLElBQ0EsSUFBQTtBQUFBLElBQ0EsU0FBWSxHQUFBLElBQUE7QUFBQSxJQUNaLE1BQVMsR0FBQTtBQUFBLEdBQ00sRUFBQTtBQUNmLElBQUEsSUFBQSxDQUFLLElBQU8sR0FBQSxJQUFBO0FBQ1osSUFBQSxJQUFBLENBQUssWUFBWSxTQUFhLElBQUEsSUFBQTtBQUM5QixJQUFBLElBQUEsQ0FBSyxPQUFPLElBQVEsSUFBQSxJQUFBO0FBQ3BCLElBQUEsSUFBQSxDQUFLLElBQU8sR0FBQSxJQUFBO0FBQ1osSUFBQSxJQUFBLENBQUssaUJBQWlCLGNBQWtCLElBQUEsSUFBQTtBQUN4QyxJQUFBLElBQUEsQ0FBSyxnQkFBZ0IsYUFBaUIsSUFBQSxJQUFBO0FBQ3RDLElBQUEsSUFBQSxDQUFLLE9BQU8sSUFBUSxJQUFBLElBQUE7QUFD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