Culley-Studios / ProQuests-Documentation

The most customizable and immersive quest plugin.
1 stars 2 forks source link

TOKEN_ENCHANT_BREAK_QUEST not counting the blocks broken by the explosion event #286

Closed AtomixCM closed 5 years ago

AtomixCM commented 5 years ago

Spigot Account Provide a direct clickable link to your user profile.

Example: https://www.spigotmc.org/members/1

Spigot account - {https://www.spigotmc.org/members/cm_lectric.232281/}

Plugin Version Provide the ProQuests version you are running (support is only provided for the latest version).

Example: 2.0.7.1

Plugin version - {2.1.1.9}

Spigot Version Provide the Spigot version you are using (as stated in startup). If you are using a fork such as PaperSpigot this should also be noted here.

Example: git-Spigot-93e20b3-f8500c0 (MC: 1.12.2)

Spigot Version - {1.8.8}

Log File Provide a clickable url to a plain text website (https://pastebin.com, https://hastebin.com) with your ENTIRE LOG FILE this includes from startup to now. Partial log files or specific errors you deem "relevant" will not be accepted.

Example: https://hastebin.com/iyugokawux.cpp

Link to log file - {https://pastebin.com/qvhdQSC7}

Addition Information Provide as much additional information explaining the issue. This can include but is not limited to an explanation of the "error", the steps to produce/reproduce the "error" in question, and if in reference to an external plugin hook the version of the hooked plugin.

Example: After reloading the plugin a quest created using the in-game creator does not load properly and is throwing errors in console. Upon investigating the produced quest file it appears it is being saved improperly with invalid formatting. All changes to the quest have been made using the in-game creator

Steps to reproduce:

  1. Use the plain text quest file referenced below and put them in your quests folder
  2. Attempt to reload the plugin using /proquests reload
  3. Notice that numerous errors are thrown and they don't load properly

Additional information - {When a player starts a token_enchant_break_quest and begins breaking blocks with a token-enchanted pickaxe, the quest is not being completed, even though the block counter on the pickaxe is reading more than the token_enchant_break_quest total.

I think that the quest is only counting the actual blocks that the player is breaking, rather than counting the blocks that are being exploded from the tokenenchant break event. }

Additional Media Provide any configuration files, links to images, or videos which better explain the "error" you are encountering. All provided media must be accessible online, download links will not be accepted

Example: This link provided contains the configuration for the quest causing the error https://hastebin.com/iyugokawux.cpp

Additional media - {insert here}

Please keep issues relevant to the "error" in question and try to refrain from opening more than (1) issue per day

JCulley commented 5 years ago

After checking you appear to be correct. This is one of the struggles of implementing an add-on without having the ability to test it.

AtomixCM commented 5 years ago

Thank for looking into it. What was the problem?

AtomixCM commented 5 years ago

When will #285 and #286 be rolled out onto spigot?

JCulley commented 5 years ago

https://www.spigotmc.org/resources/proquests-1-7-1-14-40-off-flash-weekend-sale-give-players-objectives.18249/update?update=280321

AtomixCM commented 5 years ago

I've updated to the latest version of ProQuests.

I broke 1000 blocks with a pick that has an Explosive enchant on it (as the quest was to break 1000 blocks).

The quest did not complete. I opened the menu to refresh it and everything. I don't think that the blocks are being counted correctly, as you mentioned testing this would be difficult without the resource.

AtomixCM commented 5 years ago

To expand on this:

I broke one block with a pick that has the Excavation enchant on it. 3 quests completed. The first being 1000 blocks, the second being 10000 blocks, and the third being 100000 blocks.

The pickaxe block counter reads 742. I know that I only broke 742 blocks because I measured the size of the removed portion of blocks.

It is evident that the block counting portion of proquests needs a slight adjustment.

JCulley commented 5 years ago

I don't believe there's much more to be adjusted, the total is retrieved as the size of the list returned by the event added to the players current progress.

I've provided a snippet from the TokenEnchant break quest which as you can see clearly illustrates this.

code-snippet

AtomixCM commented 5 years ago

What I don't understand is that you are responding to this bug much like you did the the chunk removal bug in saying that there is nothing you can do or adjust, even though we both know that it came down to incorrect code.

Are you refusing to accept that your code in this instance could be incorrect? I'm clearly reporting to you that the feature doesn't work, and you are replying by saying that it should because you wrote the code. It doesn't make sense to me. When you provide support, isn't the goal to alleviate the issues that your user base is experiencing?

Don't get me wrong, I have reported bugs that didn't turn out to be bugs in the past, but this one is a no brainer. The pickaxe counts 742 blocks, yet quest completion is triggered for a quest that requires 10k blocks broken, and another for 100k blocks broken.

JCulley commented 5 years ago

What I don't understand is that you are responding to this bug much like you did the the chunk removal bug in saying that there is nothing you can do or adjust, even though we both know that it came down to incorrect code.

Are you refusing to accept that your code in this instance could be incorrect? I'm clearly reporting to you that the feature doesn't work, and you are replying by saying that it should because you wrote the code. It doesn't make sense to me. When you provide support, isn't the goal to alleviate the issues that your user base is experiencing?

Don't get me wrong, I have reported bugs that didn't turn out to be bugs in the past, but this one is a no brainer. The pickaxe counts 742 blocks, yet quest completion is triggered for a quest that requires 10k blocks broken, and another for 100k blocks broken.

First I want to state the previous instance with the block removal was not a "bug" but was rather code which had remaining from ways back which was used for debugging.

Regardless I'm not saying that there's no chance its incorrect however I'm stating and have provided the snippet explaining that the progress is being set by adding the total number of blocks returned from the event as can be seen. The rest is based on a generic NumericQuest object which if was incorrect every single NumericQuest would be reported and functioning incorrectly.

I would once again need far more information to investigate as you're saying that "The pickaxe counts 742 blocks" and how am I supposed to take this as being reported correctly either? I don't have the quest configurations and have no other insight than your word, which doesn't go very far for debugging purposes.

If you can provide more information which would be of any use then feel free to open a new issue, however if it'll continue to be the same level of information to claim there is an issue then I will not be able to investigate.

AtomixCM commented 5 years ago

I'll provide you more information here.

Block Begginer Quest .yml File: https://pastebin.com/ukwwEv1H Quest Requirements: Break 1000 Blocks

Block Novice Quest .yml File: https://pastebin.com/LC9FgenF Quest Requirements: Break 10000 Blocks

Block Expert Quest .yml File: https://pastebin.com/R1CRpHDa Quest Requirements: Break 1M Blocks

Video of Quests being completed with less than required blocks broken: https://dl.dropboxusercontent.com/s/z3m6hn5bpa2bfqw/2019-06-02_13-05-05.mp4

As you can see, the pickaxe reads 847 blocks broken.

JCulley commented 5 years ago

Can you provide information relative to ProQuests rather than some “Pickaxe” as I have already requested. Do me a favour and add progress actions for the quest with both the formatted total and progress placeholders providing the value, and then go ahead and add those to the end actions as well so I have some sort information relative to ProQuests. It would be very helpful to actually know what the totals are inside the quest.

JCulley commented 5 years ago

Also please provide your entire log file (up until this occurring) which I still have yet to receive. This is why I asked you open a new issue.

AtomixCM commented 5 years ago

Here is the log. I will do what you said now.

https://pastebin.com/GgFfab09

AtomixCM commented 5 years ago

image Here is what I get with quest progress after I break one block (which explodes other blocks as well).

JCulley commented 5 years ago

So the log you provided still is not what I asked for. Please provide your log file up until the error occurring, it’s kind of impossible for you to have replicated it without a single player joining the server in the log you have provided.

Do you have a screenshot of a before and after, as I said it would be useful to know the totals including that of which when you have started the quest before breaking any blocks.

AtomixCM commented 5 years ago

I will restart the server, log in, delete my player quest data, log out, log in, break a block, request progress, break another block, then send you the log.

I need about an hour.

On Mon, Jun 3, 2019 at 4:21 PM Jacob Culley notifications@github.com wrote:

So the log you provided still is not what I asked for. Please provide your log file up until the error occurring, it’s kind of impossible for you to have replicated it without a single player joining the server in the log you have provided.

Do you have a screenshot of a before and after, as I said it would be useful to know the totals including that of which when you have started the quest before breaking any blocks.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/JCulley/ProQuests-Documentation/issues/286?email_source=notifications&email_token=AG7VTVAH4EN32DPFKIESPVLPYV4LPA5CNFSM4HQG67OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW2SODI#issuecomment-498411277, or mute the thread https://github.com/notifications/unsubscribe-auth/AG7VTVAQUGLSGSSHD67ERJ3PYV4LPANCNFSM4HQG67OA .

AtomixCM commented 5 years ago

https://pastebin.com/JQi1seQm

Let me get you the screenshots

AtomixCM commented 5 years ago

image Before breaking blocks^ image After breaking one block^ image After breaking another block^ image After breaking another block^

AtomixCM commented 5 years ago

Are these pictures and the log I sent you of any help towards the investigation? I am willing to do anything to help sort this out.

JCulley commented 5 years ago

This TEBlockExplodeEvent makes no sense whatsoever to say the least. From what I can gather its being calling for every single block in the explosion while also providing every single block in the explosion in a list for each instance the event is called. I don't understand why they wouldn't do one of the following:

a) Call a separate event for every single block while also providing the original block broken b) Call a single event with a list of blocks while also providing the original block broken

I will make the change to now simply ignore the block list provided I suppose and listen for multiple events as that's how it seems to be setup. I would suggest you mention this to the TokenEnchant "team" as it doesn't make much sense from a development point of view, especially when their developer API page is returning a 404 and they refuse to provide other developers a working copy to test with (just my two cents).

I appreciate the photos with the progress as I was able to identify 148225 is a perfectly square number with the square root being 385 (the actual number of blocks broken) and the second photo further confirmed this as it is also perfectly square (451826 - 148225 = 303601) with the square root being 551.

So because the event is called for every single block and the quest is adding the list size as the progress this is ultimately resulting in (number of times event called * total blocks broken) being used for each break.

AtomixCM commented 5 years ago

Do you have an ETA on this fix implementation?

AtomixCM commented 5 years ago

We're coming up on 3 weeks, just wondering when you think this bug fix will be implemented.

JCulley commented 5 years ago

It’s only been 11 days since the root cause has been discovered. Regardless I cannot provide any ETA as I have a rather hectic and busy schedule.

JCulley commented 5 years ago

https://www.spigotmc.org/resources/proquests-1-7-1-14-give-players-objectives.18249/update?update=284338

AtomixCM commented 5 years ago

I've tested out a token_enchant_break_quest to see if the fix has been successfully implemented, only to find that proquests is not counting blocks broken by the TE-BlockBreak event. It is only counting the singular blocks I break with the pickaxe itself. Here is a screenshot showing such behavior:

image image

JCulley commented 5 years ago

https://www.spigotmc.org/resources/proquests-1-7-1-14-give-players-objectives.18249/update?update=284555

AtomixCM commented 5 years ago

This appears to have fixed the issue! Thank you for the time you put into the fix.