UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

92 lines (89 loc) 7.63 kB
import { Vector3 } from '@jsprismarine/math'; import '../../network/packet/ActorFallPacket.es.js'; import '../../network/packet/AddActorPacket.es.js'; import AddItemActorPacket from '../../network/packet/AddItemActorPacket.es.js'; import '../../network/packet/AddPlayerPacket.es.js'; import '../../network/packet/AnimatePacket.es.js'; import '../../network/packet/AvailableActorIdentifiersPacket.es.js'; import '../../network/packet/AvailableCommandsPacket.es.js'; import '@jsprismarine/jsbinaryutils'; import 'zlib'; import '../../network/CompressionProvider.es.js'; import '../../network/packet/NetworkSettingsPacket.es.js'; import '../../network/packet/BiomeDefinitionListPacket.es.js'; import '../../network/packet/ChangeDimensionPacket.es.js'; import '../../network/packet/ChunkRadiusUpdatedPacket.es.js'; import '../../network/packet/CommandRequestPacket.es.js'; import '../../network/packet/ContainerClosePacket.es.js'; import '../../network/packet/ContainerOpenPacket.es.js'; import '../../network/packet/CreativeContentPacket.es.js'; import '../../network/packet/DisconnectPacket.es.js'; import '../../network/packet/EmoteListPacket.es.js'; import '../../network/packet/InteractPacket.es.js'; import '../../network/packet/InventoryContentPacket.es.js'; import '../../network/packet/InventoryTransactionPacket.es.js'; import '../../network/packet/ItemComponentPacket.es.js'; import '../../network/packet/ItemStackRequestPacket.es.js'; import '../../network/packet/ItemStackResponsePacket.es.js'; import '../../network/packet/LevelChunkPacket.es.js'; import '../../network/packet/LevelSoundEventPacket.es.js'; import '../../network/packet/LoginPacket.es.js'; import '../../network/packet/MobEquipmentPacket.es.js'; import '../../network/packet/MoveActorAbsolutePacket.es.js'; import '../../network/packet/MovePlayerPacket.es.js'; import '../../network/packet/NetworkChunkPublisherUpdatePacket.es.js'; import '../../network/packet/OnScreenTextureAnimationPacket.es.js'; import '../../network/packet/PacketViolationWarningPacket.es.js'; import '../../network/packet/PlaySoundPacket.es.js'; import '../../network/packet/PlayStatusPacket.es.js'; import '../../network/packet/PlayerActionPacket.es.js'; import '../../network/packet/PlayerListPacket.es.js'; import '../../network/packet/PlayerSkinPacket.es.js'; import '../../network/packet/RemoveActorPacket.es.js'; import '../../network/packet/RequestChunkRadiusPacket.es.js'; import '../../network/packet/RequestNetworkSettingsPacket.es.js'; import '../../network/packet/ResourcePackResponsePacket.es.js'; import '../../network/packet/ResourcePackStackPacket.es.js'; import '../../network/packet/ResourcePacksInfoPacket.es.js'; import '../../network/packet/ServerSettingsRequestPacket.es.js'; import '../../network/packet/SetActorDataPacket.es.js'; import '../../network/packet/SetDefaultGametypePacket.es.js'; import '../../network/packet/SetHealthPacket.es.js'; import '../../network/packet/SetLocalPlayerAsInitializedPacket.es.js'; import '../../network/packet/SetPlayerGametypePacket.es.js'; import '../../network/packet/SetTimePacket.es.js'; import '../../network/packet/ShowProfilePacket.es.js'; import '../../network/packet/StartGamePacket.es.js'; import '../../network/packet/TextPacket.es.js'; import '../../network/packet/TickSyncPacket.es.js'; import '../../network/packet/TransferPacket.es.js'; import '../../network/packet/UpdateAdventureSettingsPacket.es.js'; import '../../network/packet/UpdateAttributesPacket.es.js'; import '../../network/packet/UpdateBlockPacket.es.js'; import '../../network/packet/WorldEventPacket.es.js'; import { Entity } from '../Entity.es.js'; class Item extends Entity { static MOB_ID = "minecraft:item"; item; constructor({ item, ...options }) { super(options); this.item = item; } async sendSpawn(player) { if (!this.item) return; const players = player ? [player] : this.getWorld().getEntities().filter((entity) => entity.isPlayer()); const pk = new AddItemActorPacket(); pk.runtimeEntityId = this.getRuntimeId(); pk.position = new Vector3(this.getX(), this.getY(), this.getZ()); pk.item = this.item.getItem(); await Promise.all(players.map(async (p) => p.getNetworkSession().getConnection().sendDataPacket(pk))); } async update(tick) { await super.update(tick); } } export { Item }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbS5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9vdGhlci9JdGVtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICdAanNwcmlzbWFyaW5lL21hdGgnO1xuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgdHlwZSBDb250YWluZXJFbnRyeSBmcm9tICcuLi8uLi9pbnZlbnRvcnkvQ29udGFpbmVyRW50cnknO1xuaW1wb3J0IHsgQWRkSXRlbUFjdG9yUGFja2V0IH0gZnJvbSAnLi4vLi4vbmV0d29yay9QYWNrZXRzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uL0VudGl0eSc7XG5cbmV4cG9ydCBjbGFzcyBJdGVtIGV4dGVuZHMgRW50aXR5IHtcbiAgICBwdWJsaWMgc3RhdGljIE1PQl9JRCA9ICdtaW5lY3JhZnQ6aXRlbSc7XG4gICAgcHJpdmF0ZSBpdGVtPzogQ29udGFpbmVyRW50cnk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgICAgICBpdGVtLFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfTogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBFbnRpdHk+WzBdICYge1xuICAgICAgICBpdGVtPzogQ29udGFpbmVyRW50cnk7XG4gICAgfSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZW5kU3Bhd24ocGxheWVyPzogUGxheWVyKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcGxheWVyczogUGxheWVyW10gPSBwbGF5ZXJcbiAgICAgICAgICAgID8gW3BsYXllcl1cbiAgICAgICAgICAgIDogKHRoaXMuZ2V0V29ybGQoKVxuICAgICAgICAgICAgICAgICAgLmdldEVudGl0aWVzKClcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVudGl0eSkgPT4gZW50aXR5LmlzUGxheWVyKCkpIGFzIFBsYXllcltdKTtcblxuICAgICAgICBjb25zdCBwayA9IG5ldyBBZGRJdGVtQWN0b3JQYWNrZXQoKTtcbiAgICAgICAgcGsucnVudGltZUVudGl0eUlkID0gdGhpcy5nZXRSdW50aW1lSWQoKTtcbiAgICAgICAgcGsucG9zaXRpb24gPSBuZXcgVmVjdG9yMyh0aGlzLmdldFgoKSwgdGhpcy5nZXRZKCksIHRoaXMuZ2V0WigpKTtcbiAgICAgICAgcGsuaXRlbSA9IHRoaXMuaXRlbS5nZXRJdGVtKCk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocGxheWVycy5tYXAoYXN5bmMgKHApID0+IHAuZ2V0TmV0d29ya1Nlc3Npb24oKS5nZXRDb25uZWN0aW9uKCkuc2VuZERhdGFQYWNrZXQocGspKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZSh0aWNrOiBudW1iZXIpIHtcbiAgICAgICAgYXdhaXQgc3VwZXIudXBkYXRlKHRpY2spO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sYUFBYSxNQUFPLENBQUE7QUFBQSxFQUM3QixPQUFjLE1BQVMsR0FBQSxnQkFBQTtBQUFBLEVBQ2YsSUFBQTtBQUFBLEVBRUQsV0FBWSxDQUFBO0FBQUEsSUFDZixJQUFBO0FBQUEsSUFDQSxHQUFHO0FBQUEsR0FHSixFQUFBO0FBQ0MsSUFBQSxLQUFBLENBQU0sT0FBTyxDQUFBO0FBRWIsSUFBQSxJQUFBLENBQUssSUFBTyxHQUFBLElBQUE7QUFBQTtBQUNoQixFQUVBLE1BQWEsVUFBVSxNQUFpQixFQUFBO0FBQ3BDLElBQUksSUFBQSxDQUFDLEtBQUssSUFBTSxFQUFBO0FBRWhCLElBQUEsTUFBTSxPQUFvQixHQUFBLE1BQUEsR0FDcEIsQ0FBQyxNQUFNLElBQ04sSUFBSyxDQUFBLFFBQUEsRUFDRCxDQUFBLFdBQUEsR0FDQSxNQUFPLENBQUEsQ0FBQyxNQUFXLEtBQUEsTUFBQSxDQUFPLFVBQVUsQ0FBQTtBQUUvQyxJQUFNLE1BQUEsRUFBQSxHQUFLLElBQUksa0JBQW1CLEVBQUE7QUFDbEMsSUFBRyxFQUFBLENBQUEsZUFBQSxHQUFrQixLQUFLLFlBQWEsRUFBQTtBQUN2QyxJQUFHLEVBQUEsQ0FBQSxRQUFBLEdBQVcsSUFBSSxPQUFBLENBQVEsSUFBSyxDQUFBLElBQUEsRUFBUSxFQUFBLElBQUEsQ0FBSyxJQUFLLEVBQUEsRUFBRyxJQUFLLENBQUEsSUFBQSxFQUFNLENBQUE7QUFDL0QsSUFBRyxFQUFBLENBQUEsSUFBQSxHQUFPLElBQUssQ0FBQSxJQUFBLENBQUssT0FBUSxFQUFBO0FBRTVCLElBQUEsTUFBTSxPQUFRLENBQUEsR0FBQSxDQUFJLE9BQVEsQ0FBQSxHQUFBLENBQUksT0FBTyxDQUFNLEtBQUEsQ0FBQSxDQUFFLGlCQUFrQixFQUFBLENBQUUsYUFBYyxFQUFBLENBQUUsY0FBZSxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFBQTtBQUN4RyxFQUVBLE1BQWEsT0FBTyxJQUFjLEVBQUE7QUFDOUIsSUFBTSxNQUFBLEtBQUEsQ0FBTSxPQUFPLElBQUksQ0FBQTtBQUFBO0FBRS9COzs7OyJ9