@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
87 lines (86 loc) • 9.38 kB
JavaScript
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=