【发布时间】:2017-08-22 05:03:20
【问题描述】:
我目前正在开发一个插件,让您可以假设另一个玩家的身份。它几乎完美地做到了这一点:您的 UUID 和用户名被更改为您在服务器端假设其身份的用户的用户名,并且就服务器和插件而言,您似乎就是那个玩家。您将拥有与他们相同的等级,相同的权限,一切。我无法得到的一件事是皮肤。我曾认为当 UUID 存在时,一个玩家的皮肤会为其他玩家更改,但事实并非如此。我正在使用反射来更改 GameProfile 和 EntityPlayer 中的 UUID(uniqueID 字段继承自 Entity),并且所有获取玩家 UUID 的方法都返回插件设置的 UUID。我翻遍了反编译的 NMS 和 Bukkit/Spigot 论坛,但所有这些似乎都表明皮肤应该随着 UUID 而改变。我正在向插件发送 PlayerQuitEvent 和 PlayerJoinEvent 以模拟真实玩家离开和假定玩家加入,并向所有玩家发送数据包以从选项卡和游戏中删除旧玩家,然后添加新玩家。如果可以避免,我宁愿不使用 ProtocolLib。任何帮助将不胜感激,谁能指出我正确的方向?
提前致谢!
【问题讨论】: