RT.我想把一个1.7的插件转换到1.8 其中用到了NMS
编译器没有报错 但是服务端运行报错
src和log都放在这里了 求dalao解答
这是其中一段
复制代码
编译器没有报错 但是服务端运行报错
src和log都放在这里了 求dalao解答
这是其中一段
- [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
 
- [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
 
- [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
 
- [15:18:21] [Server thread/WARN]:         at sun.reflect.UnsafeObjectFieldAccessorImpl.set(Unknown Source)
 
- [15:18:21] [Server thread/WARN]:         at java.lang.reflect.Field.set(Unknown Source)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.setValue(NMSFunctions188.java:186)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.getParticle(NMSFunctions188.java:163)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSFunctions188.animateAtLocation(NMSFunctions188.java:123)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.nms.NMSEffectManager.createParticles(NMSEffectManager.java:22)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.minigames.SmokeMonster.straightLineMonsterUpDown(SmokeMonster.java:217)
 
- [15:18:21] [Server thread/WARN]:         at com.comze_instancelabs.minigamesparty.minigames.SmokeMonster$1.run(SmokeMonster.java:68)
 
- [15:18:21] [Server thread/WARN]:         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
 
- [15:18:21] [Server thread/WARN]:         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
 
- [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:779)
 
- [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378)
 
- [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:710)
 
- [15:18:21] [Server thread/WARN]:         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:613)
 
- [15:18:21] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
用反射加载类即可,获取服务器的版本然后进行字符串处理不会反射的话就去补补吧xd
 本帖最后由 Himmelt 于 2018-10-28 13:14 编辑 
net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles.a
这个字段,在1.7和1.8的意义可能不同了,也可能是类型不同了,你需要根据意义,重新找到1.8中对应的字段,然后再分析一下类型有没有改变,到底是用字符串还是枚举。
net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles.a
这个字段,在1.7和1.8的意义可能不同了,也可能是类型不同了,你需要根据意义,重新找到1.8中对应的字段,然后再分析一下类型有没有改变,到底是用字符串还是枚举。