PikaMug / Quests

Easy-to-use, open-source plugin for the creation and execution of quests on Minecraft servers.
https://modrinth.com/plugin/quests.classic
MIT License
147 stars 108 forks source link

Error when starting certain quest types #2233

Closed Herieman2 closed 3 months ago

Herieman2 commented 3 months ago

What is your Quests version / build number (do not say "latest")?

We use Quests 5.0.5 and minecraft 1.21

Describe the problem and how to replicate it.

When we try to accept a quest with item delivery it throws an error in the console and does not seem to recognise the rest of the quest. The quest works normal until we get to the stage where we would normally deliver an item, this is where the quest stops functioning.

Any console errors to share?

[16:40:29 ERROR]: Could not pass event PlayerInteractEvent to Quests v5.0.5-b476
java.lang.IllegalArgumentException: amount must be greater than 0
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?]
        at org.bukkit.inventory.ItemStack.of(ItemStack.java:59) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:138) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:117) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.material.MaterialData.toItemStack(MaterialData.java:72) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at Quests-5.0.5.jar/me.pikamug.quests.listeners.BukkitBlockListener.onBlockUse(BukkitBlockListener.java:340) ~[Quests-5.0.5.jar:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor335.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-23-0409a68]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-23-0409a68]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-23-0409a68]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:594) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:536) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1871) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1408) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1415) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1260) ~[paper-1.21.jar:1.21-23-0409a68]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-23-0409a68]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

If applicable, can you provide an example quest from quests.yml?

'000003':
    name: The search for Nexus's bunny
    ask-message: Hello! Ive lost my bunny somewhere in spawn, could you help me find
      her? It shouldnt be hard to miss her
    finish-message: Thank you for finding her, now, if you dont mind, I'd like some
      privacy with her
    npc-giver-uuid: b8197b15-fa0a-46ff-8a78-f4a2a2540276
    gui-display:
      ==: org.bukkit.inventory.ItemStack
      v: 3953
      type: CARROT
    stages:
      ordered:
        '1':
          npc-uuids-to-talk-to:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          start-message: Hello! Thank you for finding me!
          complete-message: Again, thanks! But...its been a while, could you get me
            some carrots to eat?
        '2':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3953
            type: CARROT
            amount: 6
          npc-delivery-uuids:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          delivery-messages:
          - Thank you. Only §5<amount> §rmore to go!
          start-message: Well, off you go to get me my carrots
          complete-message: Thank you for the carrots!
PikaMug commented 3 months ago

@Herieman2 How did you determine that The search for Nexus's bunny is the relevant quest? Because it looks to me like one of your quests has an item with an amount less than 1.

Herieman2 commented 3 months ago

Yes, I have just walked through all quests again just to be sure but none of the other quests have a value below 1 from what I can tell (Unless I am missing something here) Github seems to have messed up the spacing, but all of the quests that are not default have been made in-game and none have been edited in the config so they do have the correct spacing

quests:
  default1:
    name: Iron Miner
    ask-message: <yellow>Mine <pink>2<yellow> blocks of <pink>Iron Ore<yellow>.
    finish-message: <yellow>Well done. Here is your reward.
    redo-delay: 1800
    requirements:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3953
        type: STONE_PICKAXE
      remove-items:
      - false
      fail-requirement-message: <red>You must have a <pink>Stone Pickaxe<red> first.
    stages:
      ordered:
        '1':
          break-block-names:
          - IRON_ORE
          break-block-amounts:
          - 2
          break-block-durability:
          - 0
    rewards:
      money: 1000
      quest-points: 1
  default2:
    name: Mob Hunter
    ask-message: <yellow>Kill an assortment of Mobs.
    finish-message: <yellow>Excellent. Here is a <pink>Diamond Sword<yellow>.
    stages:
      ordered:
        '1':
          death-event: DeathFail
          mobs-to-kill:
          - Pig
          mob-amounts:
          - 3
          finish-event: NiceFinish
        '2':
          death-event: DeathFail
          mobs-to-kill:
          - Zombie
          mob-amounts:
          - 2
          finish-event: NiceFinish
        '3':
          death-event: DeathFail
          mobs-to-kill:
          - Skeleton
          mob-amounts:
          - 1
    rewards:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3953
        type: DIAMOND_SWORD
      exp: 100
      quest-points: 1
  default3:
    name: Catch Fish
    ask-message: <yellow>Catch some fish!
    finish-message: <yellow>Good job. Here is some <green>experience<yellow>.
    stages:
      ordered:
        '1':
          start-event: GiveRod
          death-event: DeathFail
          fish-to-catch: 5
    rewards:
      exp: 250
  default4:
    name: Timed Quest
    ask-message: <yellow>Dig up <pink>10<yellow> blocks of <pink>Dirt<yellow> before
      time runs out!
    finish-message: <yellow>You did it in time! Have an <pink>Iron Shovel<yellow>
      and some <green>experience<yellow>.
    requirements:
      quest-points: 1
      fail-requirement-message: <red>Complete <pink>Iron Miner<red> or <pink>Mob Hunter<red>
        first.
    stages:
      ordered:
        '1':
          break-block-names:
          - DIRT
          break-block-amounts:
          - 10
          break-block-durability:
          - 0
          start-event: TimerStart
          disconnect-event: CancelTimer
    rewards:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3953
        type: GOLD_INGOT
      exp: 150
  '000001':
    name: Nexus is searching
    ask-message: Heey my bunny is lonely, can you go play with her?
    finish-message: Well done, I could hear her from all the way over here
    npc-giver-uuid: 6fd75041-86b0-418f-9d39-20587cc09140
    gui-display:
      ==: org.bukkit.inventory.ItemStack
      v: 3953
      type: BONE_MEAL
    stages:
      ordered:
        '1':
          npc-uuids-to-talk-to:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          complete-message: Oh yes
        '2':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3953
            type: BONE_MEAL
            amount: 1
          npc-delivery-uuids:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          delivery-messages:
          - Thank you. Only §5<amount> §rmore to go!
  '000002':
    name: TEst
    ask-message: Challenge objectives!
    finish-message: Well done!
    npc-giver-uuid: b6092dc5-cc07-4853-863c-6e5147554e01
    stages:
      ordered:
        '1':
          npc-uuids-to-talk-to:
          - fe0a2a9f-b964-4139-bf3f-b90fb61d3f23
        '2':
          npc-uuids-to-talk-to:
          - b6092dc5-cc07-4853-863c-6e5147554e01
  '000003':
    name: The search for Nexus's bunny
    ask-message: Hello! Ive lost my bunny somewhere in spawn, could you help me find
      her? It shouldnt be hard to miss her
    finish-message: Thank you for finding her, now, if you dont mind, I'd like some
      privacy with her
    npc-giver-uuid: b8197b15-fa0a-46ff-8a78-f4a2a2540276
    gui-display:
      ==: org.bukkit.inventory.ItemStack
      v: 3953
      type: CARROT
    stages:
      ordered:
        '1':
          npc-uuids-to-talk-to:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          start-message: Hello! Thank you for finding me!
          complete-message: Again, thanks! But...its been a while, could you get me
            some carrots to eat?
        '2':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3953
            type: CARROT
            amount: 6
          npc-delivery-uuids:
          - b9e1904a-9de9-432d-9d25-d1e731b61dd4
          delivery-messages:
          - Thank you. Only §5<amount> §rmore to go!
          start-message: Well, off you go to get me my carrots
          complete-message: Thank you for the carrots!
PikaMug commented 3 months ago

I've fixed the spacing for you. I do see several items that don't specify an amount, such as:

==: org.bukkit.inventory.ItemStack
      v: 3953
      type: BONE_MEAL

I would think that'd just default to 1, but try adding the information for those items and restart the server. Ex:

==: org.bukkit.inventory.ItemStack
      v: 3953
      type: BONE_MEAL
      amount: 1

Make sure to use spaces; not tabs!

Herieman2 commented 3 months ago

Thank you for fixing the spacing, I have now gone through all mentions of itemstack that was missing an amount and restarted the server, afterwards I attempted to run through the quest again and got the following error:

[22:07:02 ERROR]: Could not pass event NPCRightClickEvent to Quests v5.0.5-b476 java.lang.IllegalArgumentException: amount must be greater than 0 at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?] at org.bukkit.inventory.ItemStack.of(ItemStack.java:59) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:138) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:117) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.player.BukkitQuester.addEmptiesFor(BukkitQuester.java:3728) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.quests.BukkitQuest.setStage(BukkitQuest.java:354) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.quests.BukkitQuest.doNextStage(BukkitQuest.java:307) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.quests.BukkitQuest.nextStage(BukkitQuest.java:283) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.player.BukkitQuester.finishObjective(BukkitQuester.java:3580) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.player.BukkitQuester.interactWithNPC(BukkitQuester.java:2738) ~[Quests-5.0.5.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.listeners.BukkitCitizensListener.onNPCRightClick(BukkitCitizensListener.java:209) ~[Quests-5.0.5.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor330.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-23-0409a68] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-23-0409a68] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-23-0409a68] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at Citizens.jar/net.citizensnpcs.EventListen.onPlayerInteractEntity(EventListen.java:593) ~[Citizens.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor202.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-23-0409a68] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-23-0409a68] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-23-0409a68] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.network.ServerGamePacketListenerImpl$3.performInteraction(ServerGamePacketListenerImpl.java:2718) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.network.ServerGamePacketListenerImpl$3.onInteraction(ServerGamePacketListenerImpl.java:2766) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.network.protocol.game.ServerboundInteractPacket$InteractionAction.dispatch(ServerboundInteractPacket.java:138) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.network.protocol.game.ServerboundInteractPacket.dispatch(ServerboundInteractPacket.java:89) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleInteract(ServerGamePacketListenerImpl.java:2707) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:76) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:14) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1408) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1415) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1260) ~[paper-1.21.jar:1.21-23-0409a68] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-23-0409a68] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

PikaMug commented 3 months ago

@Herieman2 Thanks for that info. May have found a solution. Can I see the /version output from your server?

Herieman2 commented 3 months ago

@PikaMug I have ran the command and this came out:

[10:33:16 INFO]: Checking version, please wait... [10:33:16 INFO]: This server is running Paper version 1.21-27-master@76c2f16 (2024-06-22T18:19:36Z) (Implementing API version 1.21-R0.1-SNAPSHOT) You are running the latest version Previous version: 1.21-23-0409a68 (MC: 1.21)

Herieman2 commented 3 months ago

@PikaMug It appears we are now getting the error even when Quests are not involved, like when clicking on a trapdoor or placing a block, there seems to be no difference between people who have accepted quests or are actively doing quests or have never touched quests

Herieman2 commented 3 months ago

[15:16:48 ERROR]: Could not pass event PlayerInteractEvent to Quests v5.0.5-b476 java.lang.IllegalArgumentException: amount must be greater than 0 at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?] at org.bukkit.inventory.ItemStack.of(ItemStack.java:59) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:138) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:117) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.material.MaterialData.toItemStack(MaterialData.java:72) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.listeners.BukkitBlockListener.onBlockUse(BukkitBlockListener.java:340) ~[Quests-5.0.5.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor334.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-27-76c2f16] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-27-76c2f16] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-27-76c2f16] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:594) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:536) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1871) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1558) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1246) ~[paper-1.21.jar:1.21-27-76c2f16] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-27-76c2f16] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

PikaMug commented 3 months ago

@Herieman2 Please give this build a try: https://ci.codemc.io/job/PikaMug/job/Quests/477/

Let me know if that helps. If not, there's another potential solution we could try.

Rexmen1 commented 3 months ago

Im getting same error... even with this latest jar...

Rexmen1 commented 3 months ago

[17:20:10 ERROR]: Could not pass event BlockBreakEvent to Quests v5.0.5-b477 java.lang.IllegalArgumentException: amount must be greater than 0 at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?] at org.bukkit.inventory.ItemStack.of(ItemStack.java:59) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:138) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:117) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.material.MaterialData.toItemStack(MaterialData.java:72) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.listeners.BukkitBlockListener.onBlockBreak(BukkitBlockListener.java:61) ~[Quests-5.0.5.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1947.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-25-19105a9] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-25-19105a9] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-25-19105a9] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.level.ServerPlayerGameMode.destroyBlock(ServerPlayerGameMode.java:383) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.level.ServerPlayerGameMode.destroyAndAck(ServerPlayerGameMode.java:342) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.level.ServerPlayerGameMode.handleBlockBreakAction(ServerPlayerGameMode.java:306) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.network.ServerGamePacketListenerImpl.handlePlayerAction(ServerGamePacketListenerImpl.java:1785) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.handle(ServerboundPlayerActionPacket.java:51) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.network.protocol.game.ServerboundPlayerActionPacket.handle(ServerboundPlayerActionPacket.java:20) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1408) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1415) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1260) ~[paper-1.21.jar:1.21-25-19105a9] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-25-19105a9] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

Herieman2 commented 3 months ago

I tried it with the latest version and what happened is, this time the task to deliver the item did appear in the chat, but then when I clicked on the NPC with the correct item nothing happened, clicking on the NPC with the incorrect item does seem to register. After this I opened and closed a door a couple times and the server crashed with the following error:

[19:40:06 ERROR]: Could not pass event PlayerInteractEvent to Quests v5.0.5-b477 java.lang.IllegalArgumentException: amount must be greater than 0 at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?] at org.bukkit.inventory.ItemStack.of(ItemStack.java:59) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:138) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.inventory.ItemStack.(ItemStack.java:117) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.material.MaterialData.toItemStack(MaterialData.java:72) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at Quests-5.0.5.jar/me.pikamug.quests.listeners.BukkitBlockListener.onBlockUse(BukkitBlockListener.java:340) ~[Quests-5.0.5.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor339.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-28-812701d] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-28-812701d] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-28-812701d] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:594) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:536) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1871) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1408) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1415) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1260) ~[paper-1.21.jar:1.21-28-812701d] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-28-812701d] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

PikaMug commented 3 months ago

Turns out this is an issue specific to recent development builds of Paper. Spigot servers are not affected. I've already informed the development team, but it's possible the change responsible may be to stay.

For now, the following build should silence the exceptions. There may be side-effects. If you see any odd bugs (namely with objective counts) please report them in a new ticket. Thanks for your patience!

https://ci.codemc.io/job/PikaMug/job/Quests/478/