@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
31 lines (28 loc) • 4.38 kB
JavaScript
import { InteractAction } from '../packet/InteractPacket.es.js';
import { Vector3 } from '@jsprismarine/math';
import Identifiers from '../Identifiers.es.js';
import ContainerOpenPacket from '../packet/ContainerOpenPacket.es.js';
class InteractHandler {
static NetID = Identifiers.InteractPacket;
async handle(packet, server, session) {
switch (packet.action) {
case InteractAction.LeaveVehicle:
case InteractAction.MouseOver:
break;
case InteractAction.OpenInventory: {
const player = session.getPlayer();
const pk = new ContainerOpenPacket();
pk.windowId = player.getInventory().getId();
pk.containerType = -1;
pk.containerPos = new Vector3(player.getX(), player.getY(), player.getZ());
pk.containerEntityId = player.getRuntimeId();
await session.getConnection().sendDataPacket(pk);
break;
}
default:
server.getLogger().verbose(`Unknown interact action id ${packet.action}`);
}
}
}
export { InteractHandler as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJhY3RIYW5kbGVyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9oYW5kbGVyL0ludGVyYWN0SGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBJbnRlcmFjdFBhY2tldCBmcm9tICcuLi9wYWNrZXQvSW50ZXJhY3RQYWNrZXQnO1xuaW1wb3J0IHsgSW50ZXJhY3RBY3Rpb24gfSBmcm9tICcuLi9wYWNrZXQvSW50ZXJhY3RQYWNrZXQnO1xuXG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAnQGpzcHJpc21hcmluZS9tYXRoJztcbmltcG9ydCB0eXBlIHsgUGxheWVyU2Vzc2lvbiB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgdHlwZSBTZXJ2ZXIgZnJvbSAnLi4vLi4vU2VydmVyJztcbmltcG9ydCBJZGVudGlmaWVycyBmcm9tICcuLi9JZGVudGlmaWVycyc7XG5pbXBvcnQgQ29udGFpbmVyT3BlblBhY2tldCBmcm9tICcuLi9wYWNrZXQvQ29udGFpbmVyT3BlblBhY2tldCc7XG5pbXBvcnQgdHlwZSBQYWNrZXRIYW5kbGVyIGZyb20gJy4vUGFja2V0SGFuZGxlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEludGVyYWN0SGFuZGxlciBpbXBsZW1lbnRzIFBhY2tldEhhbmRsZXI8SW50ZXJhY3RQYWNrZXQ+IHtcbiAgICBwdWJsaWMgc3RhdGljIE5ldElEID0gSWRlbnRpZmllcnMuSW50ZXJhY3RQYWNrZXQ7XG5cbiAgICBwdWJsaWMgYXN5bmMgaGFuZGxlKHBhY2tldDogSW50ZXJhY3RQYWNrZXQsIHNlcnZlcjogU2VydmVyLCBzZXNzaW9uOiBQbGF5ZXJTZXNzaW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHN3aXRjaCAocGFja2V0LmFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBJbnRlcmFjdEFjdGlvbi5MZWF2ZVZlaGljbGU6XG4gICAgICAgICAgICBjYXNlIEludGVyYWN0QWN0aW9uLk1vdXNlT3ZlcjpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSW50ZXJhY3RBY3Rpb24uT3BlbkludmVudG9yeToge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYXllciA9IHNlc3Npb24uZ2V0UGxheWVyKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGsgPSBuZXcgQ29udGFpbmVyT3BlblBhY2tldCgpO1xuICAgICAgICAgICAgICAgIHBrLndpbmRvd0lkID0gcGxheWVyLmdldEludmVudG9yeSgpLmdldElkKCk7XG4gICAgICAgICAgICAgICAgcGsuY29udGFpbmVyVHlwZSA9IC0xOyAvLyAtPiBpbnZlbnRvcnkgKFRPRE8pXG4gICAgICAgICAgICAgICAgcGsuY29udGFpbmVyUG9zID0gbmV3IFZlY3RvcjMocGxheWVyLmdldFgoKSwgcGxheWVyLmdldFkoKSwgcGxheWVyLmdldFooKSk7XG4gICAgICAgICAgICAgICAgcGsuY29udGFpbmVyRW50aXR5SWQgPSBwbGF5ZXIuZ2V0UnVudGltZUlkKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5nZXRDb25uZWN0aW9uKCkuc2VuZERhdGFQYWNrZXQocGspO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzZXJ2ZXIuZ2V0TG9nZ2VyKCkudmVyYm9zZShgVW5rbm93biBpbnRlcmFjdCBhY3Rpb24gaWQgJHtwYWNrZXQuYWN0aW9ufWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUEsTUFBcUIsZUFBeUQsQ0FBQTtBQUFBLEVBQzFFLE9BQWMsUUFBUSxXQUFZLENBQUEsY0FBQTtBQUFBLEVBRWxDLE1BQWEsTUFBQSxDQUFPLE1BQXdCLEVBQUEsTUFBQSxFQUFnQixPQUF1QyxFQUFBO0FBQy9GLElBQUEsUUFBUSxPQUFPLE1BQVE7QUFBQSxNQUNuQixLQUFLLGNBQWUsQ0FBQSxZQUFBO0FBQUEsTUFDcEIsS0FBSyxjQUFlLENBQUEsU0FBQTtBQUNoQixRQUFBO0FBQUEsTUFDSixLQUFLLGVBQWUsYUFBZSxFQUFBO0FBQy9CLFFBQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxTQUFVLEVBQUE7QUFDakMsUUFBTSxNQUFBLEVBQUEsR0FBSyxJQUFJLG1CQUFvQixFQUFBO0FBQ25DLFFBQUEsRUFBQSxDQUFHLFFBQVcsR0FBQSxNQUFBLENBQU8sWUFBYSxFQUFBLENBQUUsS0FBTSxFQUFBO0FBQzFDLFFBQUEsRUFBQSxDQUFHLGFBQWdCLEdBQUEsQ0FBQSxDQUFBO0FBQ25CLFFBQUcsRUFBQSxDQUFBLFlBQUEsR0FBZSxJQUFJLE9BQUEsQ0FBUSxNQUFPLENBQUEsSUFBQSxFQUFRLEVBQUEsTUFBQSxDQUFPLElBQUssRUFBQSxFQUFHLE1BQU8sQ0FBQSxJQUFBLEVBQU0sQ0FBQTtBQUN6RSxRQUFHLEVBQUEsQ0FBQSxpQkFBQSxHQUFvQixPQUFPLFlBQWEsRUFBQTtBQUMzQyxRQUFBLE1BQU0sT0FBUSxDQUFBLGFBQUEsRUFBZ0IsQ0FBQSxjQUFBLENBQWUsRUFBRSxDQUFBO0FBQy9DLFFBQUE7QUFBQTtBQUNKLE1BQ0E7QUFDSSxRQUFBLE1BQUEsQ0FBTyxXQUFZLENBQUEsT0FBQSxDQUFRLENBQThCLDJCQUFBLEVBQUEsTUFBQSxDQUFPLE1BQU0sQ0FBRSxDQUFBLENBQUE7QUFBQTtBQUNoRjtBQUVSOzs7OyJ9