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