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
142 stars 105 forks source link

Block break quests doesn't work #2246

Closed StKillReal closed 5 days ago

StKillReal commented 1 week ago

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

image

Describe the problem and how to replicate it.

I have a quest in which I should break 36 blocks, but when I break it, it still shows 1/36 2024-07-05_20 25 35 2024-07-05_20 25 41

Any console errors to share?

No

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

custom11:
    name: Вечер в хату
    ask-message: Так, нужно найти того человека и узнать у него информацию, после
      чего выкопать уголь и выйти на свободу...
    finish-message: С тюрьмой покончено, осталось поговорить с незнакомцем
    stages:
      ordered:
        '1':
          locations-to-reach:
          - world -5911.0 4.0 -611.0
          reach-location-radii:
          - 20
          reach-location-names:
          - Карьер
          complete-message: Вот он, нужно с ним поговорить на счет того незнакомца
        '2':
          npc-uuids-to-talk-to:
          - 53faa063-6046-4c06-971d-98ae7dcc5256
          complete-message: Привет, какими судьбами тут? Оу, тебя прислал наш общий
            знакомый.. Ладно, слушай, весь товар я успел спрятать. Скажи ему, чтобы
            искал в том ангаре, где мы передвали нашу 8 партию алмазов несколько лет
            назад. Притащи мне 4 угольных блока и я договорюсь за тебя.
        '3':
          break-block-names:
          - COAL_ORE
          break-block-amounts:
          - 36
          break-block-durability:
          - 0
          start-message: Так, еду и кирку я видел на выходе из казарм.
          complete-message: Фух, с этим все
        '4':
          items-to-craft:
          - ==: org.bukkit.inventory.ItemStack
            v: 3953
            type: COAL_BLOCK
            amount: 4
          complete-message: Теперь нужно отнести их тому заключенному маяком.
        '5':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3953
            type: COAL_BLOCK
            amount: 4
          npc-delivery-uuids:
          - 53faa063-6046-4c06-971d-98ae7dcc5256
          delivery-messages:
          - Я не смогу помочь, если ты не доставишь мне 4 блока угля!
          complete-message: Отлично, я договорюсь за тебя. Иди к выходу, там тебя
            выпустят без лишних вопросов.
        '6':
          locations-to-reach:
          - world -5893.0 65.0 -826.0
          reach-location-radii:
          - 8
          reach-location-names:
          - Центральный вход в тюрьму
Fanolcie commented 1 week ago

Same problem

PikaMug commented 1 week ago

@StKillReal @Fanolcie Can I get your /version output, please? I wasn't able to replicate this; the quest starts at 0/36 and increments to 1/36, 2/36, and so on using build 484.

StKillReal commented 1 week ago

@PikaMug image

Fanolcie commented 1 week ago

image

Quests 5.0.5

Fanolcie commented 1 week ago

Got tons of errors.

- [Sun 13:47:48 ERROR Minecraft] Could not pass event BlockPlaceEvent to Quests v5.0.5-b480 java.lang.IllegalArgumentException: GRAY_WALL_BANNER isn't an item at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) at org.bukkit.inventory.ItemStack.of(ItemStack.java:58) at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:138) at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:117) at Quests-5.0.5.jar//me.pikamug.quests.listeners.BukkitBlockListener.onBlockPlace(BukkitBlockListener.java:224) at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor356.execute(Unknown Source) at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:449) at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:487) at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:604) at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1871) at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) at net.minecraft.server.TickTask.run(TickTask.java:18) at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151)

- [Sun 14:11:37 ERROR Minecraft] Could not pass event BlockPlaceEvent to Quests v5.0.5-b480 java.lang.IllegalArgumentException: SPRUCE_WALL_SIGN isn't an item at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) at org.bukkit.inventory.ItemStack.of(ItemStack.java:58) at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:138) at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:117) at Quests-5.0.5.jar//me.pikamug.quests.listeners.BukkitBlockListener.onBlockPlace(BukkitBlockListener.java:224) at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor356.execute(Unknown Source) at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:449) at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:487) at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:604) at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1871) at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:44) at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:11) at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) at net.minecraft.server.TickTask.run(TickTask.java:18) at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151)

PikaMug commented 1 week ago

@StKillReal @Fanolcie Thanks for that information. It looks like there's going to be more work involved for these new Paper(+forks) builds. What I've done is attempt a workaround for break objectives. I'd appreciate your feedback after trying it: https://ci.codemc.io/job/PikaMug/job/Quests/485/

Note that other block/item objectives are not yet fixed. I'll get to those after I hear back from you.

Fanolcie commented 1 week ago

It seems to be working now. I will test and report any errors. I appreciate for your work!

PikaMug commented 5 days ago

I've applied the fix to all block and item objectives (including NPC delivery). This build has not been tested! Should you encounter any problems, please open a new issue. https://ci.codemc.io/job/PikaMug/job/Quests/486/