Open mcmonkey4eva opened 5 years ago
This gets even harder in 1.14.
Fixed the NPE, can't get the thing to render though. Possible needs an owner at a reasonable location?
User log post https://paste.denizenscript.com/View/82267 today contained error log:
java.lang.IllegalArgumentException: unable to find valid entity superclass for class
class net.citizensnpcs.nms.v1_16_R3.entity.nonliving.FishingHookController$EntityFishingHookNPC
at net.citizensnpcs.nms.v1_16_R3.util.NMSImpl.registerEntityClass(NMSImpl.java:993)
at net.citizensnpcs.util.NMS.registerEntityClass(NMS.java:344)
at net.citizensnpcs.npc.AbstractEntityController.<init>(AbstractEntityController.java:16)
at net.citizensnpcs.nms.v1_16_R3.entity.MobEntityController.<init>(MobEntityController.java:26)
at net.citizensnpcs.nms.v1_16_R3.entity.nonliving.FishingHookController.<init>(FishingHookController.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at net.citizensnpcs.npc.EntityControllers.createForType(EntityControllers.java:20)
at net.citizensnpcs.npc.CitizensNPCRegistry.getByType(CitizensNPCRegistry.java:128)
at net.citizensnpcs.npc.CitizensNPCRegistry.createNPC(CitizensNPCRegistry.java:58)
at net.citizensnpcs.api.npc.SimpleNPCDataStore.loadInto(SimpleNPCDataStore.java:56)
at net.citizensnpcs.Citizens$CitizensLoadTask.run(Citizens.java:501)
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:100)
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468)
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:952)
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:177)
at java.lang.Thread.run(Thread.java:748)
which appears to be a new load-time error from fishing hook NPCs
Transferring and detailing user error from error log posted on Discord
Citizens version:
Citizens v2.0.24-SNAPSHOT (build 1617)
Spigot version: 1.13.2 - Paper build 524(Both latest at time of posting)
User error message report (snipped for length):
Source tracing:
This code is invalid:
https://github.com/CitizensDev/Citizens2/blob/8ed08f0b2e691d16c7f72a648b9c1f716b5da762/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/nonliving/FishingHookController.java#L33-L40
The
super(world, null);
calls to this NMS method:Note that it necessarily requires the
entityhuman
input to be non-null on the very last line (settingowner.hookedFish
, whereowner
is set asentityhuman
. Since the Citizens code always feedsnull
, it is always an error.The only other constructor available for EntityFishingHook is:
Which is private (making it rather difficult to use). The
a(...)
method is also private, making it unavailable to override.Possible solutions:
Methods throughout the inside of
EntityFishingHook
requireowner
be a validEntityHuman
, so having a placeholder human to send in is probably the best solution here.