20074丶浅爱
RT.我想把一个1.7的插件转换到1.8 其中用到了NMS
编译器没有报错 但是服务端运行报错

src和log都放在这里了 求dalao解答



这是其中一段
  1. [15:18:21] [Server thread/WARN]: java.lang.IllegalArgumentException: Can not set net.minecraft.server.v1_8_R3.EnumParticle field net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles.a to java.lang.String
  2. [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
  3. [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
  4. [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeObjectFieldAccessorImpl.set(Unknown Source)
  5. [15:18:21] [Server thread/WARN]:         at java.lang.reflect.Field.set(Unknown Source)
  6. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.setValue(NMSFunctions188.java:186)
  7. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.getParticle(NMSFunctions188.java:163)
  8. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.animateAtLocation(NMSFunctions188.java:123)
  9. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSEffectManager.createParticles(NMSEffectManager.java:22)
  10. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.minigames.SmokeMonster.straightLineMonsterUpDown(SmokeMonster.java:217)
  11. [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.minigames.SmokeMonster$1.run(SmokeMonster.java:68)
  12. [15:18:21] [Server thread/WARN]:         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
  13. [15:18:21] [Server thread/WARN]:         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
  14. [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:779)
  15. [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378)
  16. [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:710)
  17. [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:613)
  18. [15:18:21] [Server thread/WARN]:         at java.lang.Thread.run(Unknown Source)
复制代码




轻光233
用反射加载类即可,获取服务器的版本然后进行字符串处理不会反射的话就去补补吧xd

Himmelt
本帖最后由 Himmelt 于 2018-10-28 13:14 编辑

net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles.a

这个字段,在1.7和1.8的意义可能不同了,也可能是类型不同了,你需要根据意义,重新找到1.8中对应的字段,然后再分析一下类型有没有改变,到底是用字符串还是枚举。