本帖最后由 frea 于 2020-4-2 22:06 编辑
如题,在新版本中,ProtocolLib的USE_BED数据包已经被弃用。
已知床的坐标,求怎样发包欺骗所有客户端认为XX正在睡觉,希望能回答的详细点。
如题,在新版本中,ProtocolLib的USE_BED数据包已经被弃用。
已知床的坐标,求怎样发包欺骗所有客户端认为XX正在睡觉,希望能回答的详细点。
应该是Entity_Metadata包,实体姿势好像都在这里了
参考:
https://wiki.vg/Protocol#Entity_Metadata
https://wiki.vg/Entity_metadata#Entity_Metadata_Format
参考:
https://wiki.vg/Protocol#Entity_Metadata
https://wiki.vg/Entity_metadata#Entity_Metadata_Format
- Player player;
- int id = player.getEntityId();
- Location bedHadLoc;
- PacketContainer packet = pm.createPacket(PacketType.Play.Server.ENTITY_METADATA);
- packet.getIntegers().write(0, id);
- ArrayList<WrappedWatchableObject> watchs = new ArrayList<>();
- watchs.add(new WrappedWatchableObject(new WrappedDataWatcher.WrappedDataWatcherObject(6, WrappedDataWatcher.Registry.get(EntityPose.class)), EntityPose.SLEEPING));
- watchs.add(new WrappedWatchableObject(new WrappedDataWatcher.WrappedDataWatcherObject(13, WrappedDataWatcher.Registry.get(BlockPosition.class, true)), Optional.of(new BlockPosition(bedHadLoc.getBlockX(), bedHadLoc.getBlockY(), bedHadLoc.getBlockZ()))));
- packet.getWatchableCollectionModifier().write(0, watchs);