frea
本帖最后由 frea 于 2020-4-2 22:06 编辑

如题,在新版本中,ProtocolLib的USE_BED数据包已经被弃用。
已知床的坐标,求怎样发包欺骗所有客户端认为XX正在睡觉,希望能回答的详细点。


言灵乀Poison
应该是Entity_Metadata包,实体姿势好像都在这里了
参考:
https://wiki.vg/Protocol#Entity_Metadata
https://wiki.vg/Entity_metadata#Entity_Metadata_Format

MiaoLio
  1. Player player;
  2.                                         int id = player.getEntityId();
  3.                                         Location bedHadLoc;
  4.                                         PacketContainer packet = pm.createPacket(PacketType.Play.Server.ENTITY_METADATA);
  5.                                         packet.getIntegers().write(0, id);
  6.                                         ArrayList<WrappedWatchableObject> watchs = new ArrayList<>();
  7.                                         watchs.add(new WrappedWatchableObject(new WrappedDataWatcher.WrappedDataWatcherObject(6, WrappedDataWatcher.Registry.get(EntityPose.class)), EntityPose.SLEEPING));
  8.                                         watchs.add(new WrappedWatchableObject(new WrappedDataWatcher.WrappedDataWatcherObject(13, WrappedDataWatcher.Registry.get(BlockPosition.class, true)),  Optional.of(new BlockPosition(bedHadLoc.getBlockX(), bedHadLoc.getBlockY(), bedHadLoc.getBlockZ()))));
  9.                                         packet.getWatchableCollectionModifier().write(0, watchs);
复制代码
//参考