Skip to content
This repository has been archived by the owner on Jun 29, 2023. It is now read-only.

Clearing pathfinders throws exception on Airplane #553

Closed
datatags opened this issue Nov 25, 2021 · 0 comments · Fixed by #552
Closed

Clearing pathfinders throws exception on Airplane #553

datatags opened this issue Nov 25, 2021 · 0 comments · Fixed by #552

Comments

@datatags
Copy link
Collaborator

datatags commented Nov 25, 2021

(this issue was filled out based on messages from Derim on the UC Discord server)

What steps will reproduce the issue?

  1. Run UC on Airplane 1.16.5
  2. Use any cosmetic that uses EntityUtil#clearPathfinders, such as Explosive Sheep gadget
  3. See console error(s)

What was supposed to happen?

No console error; pathfinders are cleared correctly.

What happened?

Console error; pathfinders may not work as expected

What version of UltraCosmetics are you using?

2.5.11

What Spigot version are you using? Paste the output of /version below.

Airplane 1.16.5 (unknown build)

What plugins do you have installed? Paste the output of /plugins below.

unknown; not related to other plugins

Are any errors related to UltraCosmetics in your console or logs? If so, paste below.

[21:17:33 WARN]: java.lang.IllegalArgumentException: Can not set final gg.airplane.structs.LinkedHashSetArrayList field net.minecraft.server.v1_16_R3.PathfinderGoalSelector.d to java.util.LinkedHashSet
[21:17:33 WARN]:        at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
[21:17:33 WARN]:        at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
[21:17:33 WARN]:        at java.base/jdk.internal.reflect.UnsafeQualifiedObjectFieldAccessorImpl.set(UnsafeQualifiedObjectFieldAccessorImpl.java:83)
[21:17:33 WARN]:        at java.base/java.lang.reflect.Field.set(Field.java:793)
[21:17:33 WARN]:        at be.isach.ultracosmetics.v1_16_R3.PathfinderUtil.removePathFinders(PathfinderUtil.java:55)
[21:17:33 WARN]:        at be.isach.ultracosmetics.cosmetics.pets.Pet.onEquip(Pet.java:110)
[21:17:33 WARN]:        at be.isach.ultracosmetics.cosmetics.Cosmetic.equip(Cosmetic.java:63)
[21:17:33 WARN]:        at be.isach.ultracosmetics.cosmetics.type.CosmeticType.equip(CosmeticType.java:55)
[21:17:33 WARN]:        at be.isach.ultracosmetics.menu.menus.MenuPets.toggleOn(MenuPets.java:166)
[21:17:33 WARN]:        at be.isach.ultracosmetics.menu.menus.MenuPets.toggleOn(MenuPets.java:35)
[21:17:33 WARN]:        at be.isach.ultracosmetics.menu.CosmeticMenu.lambda$open$1(CosmeticMenu.java:183)
[21:17:33 WARN]:        at be.isach.ultracosmetics.menu.Menu.onClick(Menu.java:133)
[21:17:33 WARN]:        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor114.execute(Unknown Source)
[21:17:33 WARN]:        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69)
[21:17:33 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76)
[21:17:33 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[21:17:33 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2797)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1330)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1323)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1299)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1143)
[21:17:33 WARN]:        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:292)
[21:17:33 WARN]:        at java.base/java.lang.Thread.run(Thread.java:831)

Any additional information that you would like to provide that may be relevant to the issue?

Cause of the issue: Airplane changes the type of field d in PathfinderGoalSelector, but UC replaces this field with a new LinkedHashSet (the original field type).

Suggested fix: use clear() on existing collection instead of replacing it.

@datatags datatags mentioned this issue Nov 25, 2021
18 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant