UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

28 lines (25 loc) 3.45 kB
import { Attribute } from '../../entity/Attribute.es.js'; import DataPacket from './DataPacket.es.js'; import Identifiers from '../Identifiers.es.js'; class UpdateAttributesPacket extends DataPacket { static NetID = Identifiers.UpdateAttributesPacket; runtimeEntityId; attributes = []; tick; encodePayload() { this.writeUnsignedVarLong(this.runtimeEntityId); this.writeUnsignedVarInt(this.attributes.length); for (const attribute of this.attributes) { attribute.networkSerialize(this); } this.writeUnsignedVarLong(this.tick); } decodePayload() { this.runtimeEntityId = this.readUnsignedVarLong(); const length = this.readUnsignedVarInt(); this.attributes = Array.from({ length }, () => Attribute.networkDeserialize(this)); this.tick = this.readUnsignedVarLong(); } } export { UpdateAttributesPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlQXR0cmlidXRlc1BhY2tldC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvcGFja2V0L1VwZGF0ZUF0dHJpYnV0ZXNQYWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vZW50aXR5L0F0dHJpYnV0ZSc7XG5pbXBvcnQgRGF0YVBhY2tldCBmcm9tICcuL0RhdGFQYWNrZXQnO1xuaW1wb3J0IElkZW50aWZpZXJzIGZyb20gJy4uL0lkZW50aWZpZXJzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXBkYXRlQXR0cmlidXRlc1BhY2tldCBleHRlbmRzIERhdGFQYWNrZXQge1xuICAgIHB1YmxpYyBzdGF0aWMgTmV0SUQgPSBJZGVudGlmaWVycy5VcGRhdGVBdHRyaWJ1dGVzUGFja2V0O1xuXG4gICAgcHVibGljIHJ1bnRpbWVFbnRpdHlJZCE6IGJpZ2ludDtcbiAgICBwdWJsaWMgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcblxuICAgIHB1YmxpYyB0aWNrITogYmlnaW50O1xuXG4gICAgcHVibGljIGVuY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFZhckxvbmcodGhpcy5ydW50aW1lRW50aXR5SWQpO1xuXG4gICAgICAgIC8vIEVuY29kZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFZhckludCh0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoKTtcbiAgICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGUubmV0d29ya1NlcmlhbGl6ZSh0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFZhckxvbmcodGhpcy50aWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydW50aW1lRW50aXR5SWQgPSB0aGlzLnJlYWRVbnNpZ25lZFZhckxvbmcoKTtcblxuICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLnJlYWRVbnNpZ25lZFZhckludCgpO1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sICgpID0+IEF0dHJpYnV0ZS5uZXR3b3JrRGVzZXJpYWxpemUodGhpcykpO1xuXG4gICAgICAgIHRoaXMudGljayA9IHRoaXMucmVhZFVuc2lnbmVkVmFyTG9uZygpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBSUEsTUFBcUIsK0JBQStCLFVBQVcsQ0FBQTtBQUFBLEVBQzNELE9BQWMsUUFBUSxXQUFZLENBQUEsc0JBQUE7QUFBQSxFQUUzQixlQUFBO0FBQUEsRUFDQSxhQUEwQixFQUFDO0FBQUEsRUFFM0IsSUFBQTtBQUFBLEVBRUEsYUFBc0IsR0FBQTtBQUN6QixJQUFLLElBQUEsQ0FBQSxvQkFBQSxDQUFxQixLQUFLLGVBQWUsQ0FBQTtBQUc5QyxJQUFLLElBQUEsQ0FBQSxtQkFBQSxDQUFvQixJQUFLLENBQUEsVUFBQSxDQUFXLE1BQU0sQ0FBQTtBQUMvQyxJQUFXLEtBQUEsTUFBQSxTQUFBLElBQWEsS0FBSyxVQUFZLEVBQUE7QUFDckMsTUFBQSxTQUFBLENBQVUsaUJBQWlCLElBQUksQ0FBQTtBQUFBO0FBR25DLElBQUssSUFBQSxDQUFBLG9CQUFBLENBQXFCLEtBQUssSUFBSSxDQUFBO0FBQUE7QUFDdkMsRUFFTyxhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLGVBQUEsR0FBa0IsS0FBSyxtQkFBb0IsRUFBQTtBQUVoRCxJQUFNLE1BQUEsTUFBQSxHQUFTLEtBQUssa0JBQW1CLEVBQUE7QUFDdkMsSUFBSyxJQUFBLENBQUEsVUFBQSxHQUFhLEtBQU0sQ0FBQSxJQUFBLENBQUssRUFBRSxNQUFBLElBQVUsTUFBTSxTQUFBLENBQVUsa0JBQW1CLENBQUEsSUFBSSxDQUFDLENBQUE7QUFFakYsSUFBSyxJQUFBLENBQUEsSUFBQSxHQUFPLEtBQUssbUJBQW9CLEVBQUE7QUFBQTtBQUU3Qzs7OzsifQ==