FancyMcPlugins / FancyNpcs

FancyNpcs is a simple, lightweight and fast npc plugin using packets
https://modrinth.com/plugin/fancynpcs
MIT License
98 stars 23 forks source link

sitting attributes for cat and parrot #109

Closed UsainSrht closed 1 month ago

OliverSchlueter commented 1 month ago

You can remove the cat sitting attribute, it is already added by another PR

UsainSrht commented 1 month ago

You can remove the cat sitting attribute, it is already added by another PR

current cat sitting does trigger the sit event asynchronously

java.lang.IllegalStateException: EntityToggleSitEvent may only be triggered synchronously.
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:42) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:627) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.event.Event.callEvent(Event.java:45) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at net.minecraft.world.entity.TamableAnimal.setInSittingPose(TamableAnimal.java:133) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at net.minecraft.world.entity.TamableAnimal.setInSittingPose(TamableAnimal.java:130) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.attributes.CatAttributes.setPose(CatAttributes.java:57) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.NpcAttribute.apply(NpcAttribute.java:37) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.NpcData.applyAllAttributes(NpcData.java:333) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.Npc_1_20_6.update(Npc_1_20_6.java:248) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.Npc_1_20_6.spawn(Npc_1_20_6.java:122) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.Npc.lambda$checkAndUpdateVisibility$1(Npc.java:114) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at org.bukkit.craftbukkit.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.6.jar:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
OakLoaf commented 1 month ago

current cat sitting does trigger the sit event asynchronously

It might be worth putting this as an issue

OliverSchlueter commented 1 month ago

You can remove the cat sitting attribute, it is already added by another PR

current cat sitting does trigger the sit event asynchronously

java.lang.IllegalStateException: EntityToggleSitEvent may only be triggered synchronously.
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:42) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:627) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.event.Event.callEvent(Event.java:45) ~[paper-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at net.minecraft.world.entity.TamableAnimal.setInSittingPose(TamableAnimal.java:133) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at net.minecraft.world.entity.TamableAnimal.setInSittingPose(TamableAnimal.java:130) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.attributes.CatAttributes.setPose(CatAttributes.java:57) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.NpcAttribute.apply(NpcAttribute.java:37) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.NpcData.applyAllAttributes(NpcData.java:333) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.Npc_1_20_6.update(Npc_1_20_6.java:248) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.v1_20_6.Npc_1_20_6.spawn(Npc_1_20_6.java:122) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at FancyNpcs-2.1.0-SNAPSHOT.jar/de.oliver.fancynpcs.api.Npc.lambda$checkAndUpdateVisibility$1(Npc.java:114) ~[FancyNpcs-2.1.0-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at org.bukkit.craftbukkit.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.6.jar:1.20.6-86-9bf4855]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.6.jar:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

I can't reproduce this? It works fine for me with 1.20.6

UsainSrht commented 1 month ago

I can't reproduce this? It works fine for me with 1.20.6

Works fine when set using commands but throws that when you go away and come back (load the npc)

OliverSchlueter commented 1 month ago

I can't reproduce this? It works fine for me with 1.20.6

Works fine when set using commands but throws that when you go away and come back (load the npc)

Ahh okay, I see. Need to set the data flag manually then

UsainSrht commented 1 month ago

Ahh okay, I see. Need to set the data flag manually then

cat.setInSittingPose(true, false); fixes it Oak's pr was calling setInSittingPose(boolean) which also calls the event

OliverSchlueter commented 1 month ago

Ahh okay, I see. Need to set the data flag manually then

cat.setInSittingPose(true, false); fixes it Oak's pr was calling setInSittingPose(boolean) which also calls the event

Okay, I fixed it, thank you!