UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

87 lines (86 loc) 9.38 kB
import { NetworkUtil } from "../NetworkUtil.es.js"; import Identifiers from "../Identifiers.es.js"; import DataPacket from "./DataPacket.es.js"; //#region src/network/packet/PlayerListPacket.ts var PlayerListEntry = class { 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__ */ function(PlayerListAction) { PlayerListAction[PlayerListAction["TYPE_ADD"] = 0] = "TYPE_ADD"; PlayerListAction[PlayerListAction["TYPE_REMOVE"] = 1] = "TYPE_REMOVE"; return PlayerListAction; }({}); var PlayerListPacket = class 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) entry.networkSerialize(this); } if (this.type === 0) for (let i = 0; i < this.entries.length; i++) this.writeBoolean(true); } }; //#endregion export { PlayerListAction, PlayerListEntry, PlayerListPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyTGlzdFBhY2tldC5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9wYWNrZXQvUGxheWVyTGlzdFBhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBCaW5hcnlTdHJlYW0gZnJvbSAnQGpzcHJpc21hcmluZS9qc2JpbmFyeXV0aWxzJztcbmltcG9ydCB7IE5ldHdvcmtVdGlsIH0gZnJvbSAnLi4vLi4vbmV0d29yay9OZXR3b3JrVXRpbCc7XG5pbXBvcnQgdHlwZSBVVUlEIGZyb20gJy4uLy4uL3V0aWxzL1VVSUQnO1xuaW1wb3J0IHR5cGUgU2tpbiBmcm9tICcuLi8uLi91dGlscy9za2luL1NraW4nO1xuaW1wb3J0IElkZW50aWZpZXJzIGZyb20gJy4uL0lkZW50aWZpZXJzJztcbmltcG9ydCBEYXRhUGFja2V0IGZyb20gJy4vRGF0YVBhY2tldCc7XG5cbmludGVyZmFjZSBQbGF5ZXJMaXN0RGF0YSB7XG4gICAgdXVpZDogVVVJRDtcbiAgICBydW50aW1lSWQ/OiBiaWdpbnQgfCBudWxsO1xuICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIHh1aWQ/OiBzdHJpbmc7XG4gICAgcGxhdGZvcm1DaGF0SWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGJ1aWxkUGxhdGZvcm0/OiBudW1iZXIgfCBudWxsO1xuICAgIHNraW4/OiBTa2luIHwgbnVsbDtcbiAgICBpc1RlYWNoZXI/OiBib29sZWFuO1xuICAgIGlzSG9zdD86IGJvb2xlYW47XG4gICAgaXNTdWJDbGllbnQ/OiBib29sZWFuOyAvLyBUT0RPXG59XG5cbmV4cG9ydCBjbGFzcyBQbGF5ZXJMaXN0RW50cnkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXVpZDogVVVJRDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJ1bnRpbWVJZDogYmlnaW50IHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSB4dWlkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUNoYXRJZDogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkUGxhdGZvcm06IG51bWJlciB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBza2luOiBTa2luIHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlYWNoZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHtcbiAgICAgICAgdXVpZCxcbiAgICAgICAgcnVudGltZUlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICB4dWlkID0gJycsXG4gICAgICAgIHBsYXRmb3JtQ2hhdElkLFxuICAgICAgICBidWlsZFBsYXRmb3JtLFxuICAgICAgICBza2luLFxuICAgICAgICBpc1RlYWNoZXIgPSB0cnVlLFxuICAgICAgICBpc0hvc3QgPSB0cnVlXG4gICAgfTogUGxheWVyTGlzdERhdGEpIHtcbiAgICAgICAgdGhpcy51dWlkID0gdXVpZDtcbiAgICAgICAgdGhpcy5ydW50aW1lSWQgPSBydW50aW1lSWQgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZSA/PyBudWxsO1xuICAgICAgICB0aGlzLnh1aWQgPSB4dWlkO1xuICAgICAgICB0aGlzLnBsYXRmb3JtQ2hhdElkID0gcGxhdGZvcm1DaGF0SWQgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5idWlsZFBsYXRmb3JtID0gYnVpbGRQbGF0Zm9ybSA/PyBudWxsO1xuICAgICAgICB0aGlzLnNraW4gPSBza2luID8/IG51bGw7XG4gICAgICAgIHRoaXMudGVhY2hlciA9IGlzVGVhY2hlcjtcbiAgICAgICAgdGhpcy5ob3N0ID0gaXNIb3N0O1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXR3b3JrU2VyaWFsaXplKHN0cmVhbTogQmluYXJ5U3RyZWFtKTogdm9pZCB7XG4gICAgICAgIHN0cmVhbS53cml0ZVZhckxvbmcodGhpcy5nZXRSdW50aW1lSWQoKSEpO1xuICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyhzdHJlYW0sIHRoaXMuZ2V0TmFtZSgpISk7XG4gICAgICAgIE5ldHdvcmtVdGlsLndyaXRlU3RyaW5nKHN0cmVhbSwgdGhpcy5nZXRYVUlEKCkhKTtcbiAgICAgICAgTmV0d29ya1V0aWwud3JpdGVTdHJpbmcoc3RyZWFtLCB0aGlzLmdldFBsYXRmb3JtQ2hhdElkKCkhKTtcbiAgICAgICAgc3RyZWFtLndyaXRlSW50TEUodGhpcy5nZXRCdWlsZFBsYXRmb3JtKCkhKTtcbiAgICAgICAgdGhpcy5nZXRTa2luKCkhLm5ldHdvcmtTZXJpYWxpemUoc3RyZWFtKTtcbiAgICAgICAgc3RyZWFtLndyaXRlQm9vbGVhbih0aGlzLmlzVGVhY2hlcigpKTtcbiAgICAgICAgc3RyZWFtLndyaXRlQm9vbGVhbih0aGlzLmlzSG9zdCgpKTtcbiAgICAgICAgc3RyZWFtLndyaXRlQm9vbGVhbihmYWxzZSk7IC8vIGlzIHN1YiBjbGllbnRcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VVVJRCgpOiBVVUlEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXVpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UnVudGltZUlkKCk6IGJpZ2ludCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5ydW50aW1lSWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFhVSUQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueHVpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGxhdGZvcm1DaGF0SWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtQ2hhdElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCdWlsZFBsYXRmb3JtKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFBsYXRmb3JtO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTa2luKCk6IFNraW4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2tpbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUZWFjaGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50ZWFjaGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0hvc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3Q7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBQbGF5ZXJMaXN0QWN0aW9uIHtcbiAgICBUWVBFX0FERCxcbiAgICBUWVBFX1JFTU9WRVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbGF5ZXJMaXN0UGFja2V0IGV4dGVuZHMgRGF0YVBhY2tldCB7XG4gICAgcHVibGljIHN0YXRpYyBOZXRJRCA9IElkZW50aWZpZXJzLlBsYXllckxpc3RQYWNrZXQ7XG5cbiAgICBwdWJsaWMgZW50cmllczogUGxheWVyTGlzdEVudHJ5W10gPSBbXTtcbiAgICBwdWJsaWMgdHlwZSE6IG51bWJlcjtcblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLnR5cGUpO1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRWYXJJbnQodGhpcy5lbnRyaWVzLmxlbmd0aCk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5lbnRyaWVzKSB7XG4gICAgICAgICAgICBlbnRyeS5nZXRVVUlEKCkubmV0d29ya1NlcmlhbGl6ZSh0aGlzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gUGxheWVyTGlzdEFjdGlvbi5UWVBFX0FERCkge1xuICAgICAgICAgICAgICAgIGVudHJ5Lm5ldHdvcmtTZXJpYWxpemUodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBQbGF5ZXJMaXN0QWN0aW9uLlRZUEVfQUREKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVCb29sZWFuKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBb0JBLElBQWEsa0JBQWIsTUFBNkI7Q0FDekI7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBRUEsWUFBbUIsRUFDZixNQUNBLFdBQ0EsTUFDQSxPQUFPLElBQ1AsZ0JBQ0EsZUFDQSxNQUNBLFlBQVksTUFDWixTQUFTLFFBQ007RUFDZixLQUFLLE9BQU87RUFDWixLQUFLLFlBQVksYUFBYTtFQUM5QixLQUFLLE9BQU8sUUFBUTtFQUNwQixLQUFLLE9BQU87RUFDWixLQUFLLGlCQUFpQixrQkFBa0I7RUFDeEMsS0FBSyxnQkFBZ0IsaUJBQWlCO0VBQ3RDLEtBQUssT0FBTyxRQUFRO0VBQ3BCLEtBQUssVUFBVTtFQUNmLEtBQUssT0FBTztDQUNoQjtDQUVBLGlCQUF3QixRQUE0QjtFQUNoRCxPQUFPLGFBQWEsS0FBSyxhQUFhLENBQUU7RUFDeEMsWUFBWSxZQUFZLFFBQVEsS0FBSyxRQUFRLENBQUU7RUFDL0MsWUFBWSxZQUFZLFFBQVEsS0FBSyxRQUFRLENBQUU7RUFDL0MsWUFBWSxZQUFZLFFBQVEsS0FBSyxrQkFBa0IsQ0FBRTtFQUN6RCxPQUFPLFdBQVcsS0FBSyxpQkFBaUIsQ0FBRTtFQUMxQyxLQUFLLFFBQVEsRUFBRyxpQkFBaUIsTUFBTTtFQUN2QyxPQUFPLGFBQWEsS0FBSyxVQUFVLENBQUM7RUFDcEMsT0FBTyxhQUFhLEtBQUssT0FBTyxDQUFDO0VBQ2pDLE9BQU8sYUFBYSxLQUFLO0NBQzdCO0NBRUEsVUFBdUI7RUFDbkIsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsZUFBcUM7RUFDakMsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsVUFBZ0M7RUFDNUIsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsVUFBeUI7RUFDckIsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsb0JBQTBDO0VBQ3RDLE9BQU8sS0FBSztDQUNoQjtDQUVBLG1CQUF5QztFQUNyQyxPQUFPLEtBQUs7Q0FDaEI7Q0FFQSxVQUE4QjtFQUMxQixPQUFPLEtBQUs7Q0FDaEI7Q0FFQSxZQUE0QjtFQUN4QixPQUFPLEtBQUs7Q0FDaEI7Q0FFQSxTQUF5QjtFQUNyQixPQUFPLEtBQUs7Q0FDaEI7QUFDSjtBQUVBLElBQVksbUJBQUwseUJBQUEsa0JBQUE7Q0FDSCxpQkFBQSxpQkFBQSxjQUFBLEtBQUE7Q0FDQSxpQkFBQSxpQkFBQSxpQkFBQSxLQUFBOztBQUNKLEVBQUEsQ0FBQSxDQUFBO0FBRUEsSUFBcUIsbUJBQXJCLGNBQThDLFdBQVc7Q0FDckQsT0FBYyxRQUFRLFlBQVk7Q0FFbEMsVUFBb0MsQ0FBQztDQUNyQztDQUVBLGdCQUE2QjtFQUN6QixLQUFLLFVBQVUsS0FBSyxJQUFJO0VBQ3hCLEtBQUssb0JBQW9CLEtBQUssUUFBUSxNQUFNO0VBQzVDLEtBQUssTUFBTSxTQUFTLEtBQUssU0FBUztHQUM5QixNQUFNLFFBQVEsRUFBRSxpQkFBaUIsSUFBSTtHQUVyQyxJQUFJLEtBQUssU0FBQSxHQUNMLE1BQU0saUJBQWlCLElBQUk7RUFFbkM7RUFFQSxJQUFJLEtBQUssU0FBQSxHQUNMLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsUUFBUSxLQUNyQyxLQUFLLGFBQWEsSUFBSTtDQUdsQztBQUNKIn0=