Hello everyone!
It's been over a year since the last update - but during that time, development has continued behined the scenes, bringing numerous improvements, refinements, and new features to Quests. This release is compatible with Minecraft 1.8 through 1.21.10, and is expected to work with 1.21.11 as well, without the need for further updates.
Important changes
- Updated the default BlockTracker implementation to dev.krakenied.blocktracker.bukkit.BukkitBlockTrackerPlugin.
- Changed the default "track quest" keybind from Middle Click to Q for modern Minecraft compatibility.
- Implemented usage of the Damage Source API on 1.20+ (allowing for more proper damage/kill detection).
Task types
- Added support for Happy Ghasts in the walking task type and improved its general behavior.
- Added support for cake block in consume task type.
- Added support for specifying biomes (not only worlds) in most task types.
- Added support for task constraints to the NPC delivery task types.
- Improved farming task type support for KELP and KELP_PLANT.
- Expanded capabilities of the dealdamage and task type.
- Expanded customization options for the trading task type.
- inventory task type now checks the inventory immediately on start.
- Added new task types:
Quests
GUI improvements
- Expanded placeholder support across more GUI elements and menus.
- Added customizable GUI titles for quest categories.
- Added the ability to override the last GUI line.
Actual bug fixes
- The page-change sound no longer plays when no previous/next page exists.
- Improved attribute hiding behavior (HIDE_ATTRIBUTES) on some game versions.
- Improved handling of item removal across versions via VersionSpecificHandlers.
- Fixed Sound#valueOf issues caused by inconsistencies across versions.
- Fixed a ConcurrentModificationException caused by external async placeholder parsing.
- Fixed no BukkitTask::isCancelled method error on Minecraft 1.8.
- Fixed interact, milking and bucket task types on older game versions.
- Fixed progress display for playtime and PlaceholderAPI evaluate task types.
- Fixed a progress-faking exploit in the smelting task type.
- Fixed MiniMessage errors on Purpur 1.17.1.
Debug tooling
- Added a warning when CoreProtect API is disabled in its config.
- Added a new command to inspect player progress: /q a debug player <name>.
- Fixed the /q a debug report command on ≤ 1.14.x.
Code quality
- Rewrote NormalQuestController for readability, performance, and enhanced placeholder possibilities.
- Refreshed large portions of code in the common subproject.
- Improved documentation for VersionSpecificHandlers.
- Expanded documentation on HikariCP options.
- Cleaned up a lot of code in general.
Documentation
- Updated documentation to include missing or incomplete task type sections.
For further details on what has changed, see the commit log below.
Commit log since v3.15.2
13285d2 - Fix build <@Xiao-MoMi>
2ac9628 - Fix milking task type checking only main hand Fix interact and bucket empty task types throwing exceptions on 1.8 (unfortunately we can't get bucket NBT on versions lower than 1.19.2) <@Krakenied>
b63dd4e - Add ingredient checks to trading task type <@Krakenied>
2e2e478 - Fix ingredients matching <@Krakenied>
af76922 - Add option to specify the trader mob <@Krakenied>
c1a0153 - Add missing null check <@Krakenied>
721bce0 - Move the null check to a logically more proper place <@Krakenied>
e30ec59 - Allow quest items usage in menus <@Krakenied>
23d497d - Update docs Gemfile <@Krakenied>
de92f01 - Add wdm <@Krakenied>
3a74f78 - Add info about compatible downloads <@Krakenied>
03d6e1d - Add mode option to trading task type <@Krakenied>
ee55a1c - Update ruby in docs workflow to 3.3 <@Krakenied>
335dbf8 - Add bartering task type Compatible with Spigot 1.16.5+ <@Krakenied>
b204931 - Start uploading JARs downgraded to 11 Check only the youngest commit for CI skip <@Krakenied>
20addce - Remove thrower from the map if it's null <@Krakenied>
97e32fe - Use correct method to get the item thrower <@Krakenied>
534831b - Add bartering docs <@Krakenied>
5b8ad15 - Check remove-items-when-complete only if partial completion is not allowed <@Krakenied>
cab29c3 - Update BentoBox level task type to work with latest plugin version <@Krakenied>
3d75d13 - Update Gradle Wrapper to 8.10.1 <@Krakenied>
102ed9a - Add jitpack.yml for proper jitpack support <@Krakenied>
1e9618d - Add placeholder support to vaultreward option <@Krakenied>
6e53537 - Fix build & update jvmdowngrader <@Krakenied>
80a695c - Add BedWars1058 dedicated task types <@josemarcellio>
b069121 - Cleanup & bump dependencies to fix compilation <@Krakenied>
092ef47 - Remove some finals to keep task types code style <@Krakenied>
de11df0 - Add Nexo quest item support Closes
https://github.com/LMBishop/Quests/issues/783 <@Krakenied>
d4b394b - Counts towards completed option <@Krakenied>
4b34f05 - Storage rework <@Krakenied>
02680da - For now still use the current approach to QPlayerPreferences construction <@Krakenied>
b60efbc - Make the counts towards completed option actually usable That entire placeholder mess needs to be rewritten though <@Krakenied>
5dc3e72 - Add hidden option to quest options <@Krakenied>
54c15c3 - Fix database migrator Use next() instead of first() on TYPE_FORWARD_ONLY set <@Krakenied>
e0fc0b1 - Batched statements cannot end with a semicolon <@Krakenied>
f8fde9d - Fix smelting task type exploit Closes
https://github.com/LMBishop/Quests/issues/754 <@Krakenied>
f78fc41 - Fix plugin initialization on Purpur 1.17.1 Closes
https://github.com/LMBishop/Quests/issues/756 <@Krakenied>
2470983 - Update project plugins and dependencies <@Krakenied>
fcea8e4 - Clamp damage in deal damage task type Closes
https://github.com/LMBishop/Quests/issues/753 <@Krakenied>
38a3b29 - Update Gradle Wrapper to 8.12 <@Krakenied>
df7ec1c - Fix Sounds enum on older versions Finally closes
https://github.com/LMBishop/Quests/issues/756 <@Krakenied>
ce81722 - Fail silently if the specified sound doesn't exist Closes
https://github.com/LMBishop/Quests/issues/761 <@Krakenied>
6dd53a3 - Update CustomFishing dependency Add isPrimaryThread method for
https://github.com/LMBishop/Quests/issues/760 debugging <@Krakenied>
3965b73 - Better quest progress filter implementation To be used in QuestsPlaceholders rewrite <@Krakenied>
31c7e2d - Deduplicate some QPF methods code Refactor progress filters a bit <@Krakenied>
0f0ddd1 - Fix farming task type for kelp <@Krakenied>
e71ddd4 - Update download wiki page <@Krakenied>
c6c5306 - Fix item in bucketing tasks docs <@Krakenied>
9eb99b8 - Update docs gemfile <@Krakenied>
5baec50 - Update Gradle Wrapper to 8.12.1 Update jvmdg to 1.2.2 <@Krakenied>
32466f3 - Add a switch for
https://github.com/LMBishop/Quests/issues/760 debugging Closes
https://github.com/LMBishop/Quests/issues/763 <@Krakenied>
cdecd05 - Fix HIDE_ATTRIBUTES on Spigot Closes
https://github.com/LMBishop/Quests/issues/766 <@Krakenied>
8f5308b - Add blockfertilizing task type <@Krakenied>
46f04a5 - Fix BukkitTask#isCancelled() missing on 1.8 <@Krakenied>
0b6b068 - Full QuestController placeholder support <@Krakenied>
a82b6d3 - Small optimization to placeholders replacement <@Krakenied>
c4feac0 - Fix apply PAPI method <@Krakenied>
d1b62b8 - Add placeholders support to more menu elements Closes
https://github.com/LMBishop/Quests/issues/688 <@Krakenied>
2c25146 - Do not refresh after prev/next page click when there is no prev/next page <@Krakenied>
a1df955 - Fix walking task type travelling with high speeds Closes
https://github.com/LMBishop/Quests/issues/775 <@Krakenied>
be76eef - Cleanup unused imports <@Krakenied>
e0b437c - Update plugin docs <@Krakenied>
9cce6b1 - Upgrade foojay resolver plugin <@Krakenied>
fc4a701 - Update Gradle Wrapper to 8.14 <@Krakenied>
7f94f2b - Update the docs Gemfile thing <@Krakenied>
258d425 - Add count mode to trading task type <@Krakenied>
a4857f7 - API cleanup & ensure compatibility <@Krakenied>
c30dfee - Change tracking by default to the drop key <@Krakenied>
80b2f18 - Update HikariCP to 6.3.0 <@Krakenied>
8476745 - Remove unused import from build file <@Krakenied>
3910907 - Update downloads docs page <@Krakenied>
8bc477d - Add task constraint set to delivery task type <@Krakenied>
339f6cf - Fix removing items from inventory on 1.10.2 and lower Closes
https://github.com/LMBishop/Quests/issues/780 <@Krakenied>
e1bccd0 - Fix boat walking task type mode on 1.11.1 and lower Closes
https://github.com/LMBishop/Quests/issues/758 <@Krakenied>
8a6a73b - Reduce quest progress map collisions <@Krakenied>
6570a36 - Replace legacy gradle/wrapper-validation-action with recommended alternative <@Krakenied>
2d5fee3 - Bump paper-api dep to 1.21.5 to ensure compatibility with the latest version <@Krakenied>
a35fd96 - Add option to set per category quest menu title Closes
https://github.com/LMBishop/Quests/issues/622 <@Krakenied>
3efb11c - [ci skip] Update some URLs in dev docs <@Krakenied>
50c639f - PlaceholderAPI hook cleanup <@Krakenied>
5655db6 - Do not add Minecraft version to debug report if method does not exist Fix for < 1.15 <@Krakenied>
1ed7e41 - Update inventory task type also directly on start <@Krakenied>
afecac1 - Implement FancyNpcs support <@Krakenied>
d984ff7 - Correct docs for other NPC task types <@Krakenied>
0248fb9 - Remove Integer validators from FancyNpcs tasks FancyNpcs use String for id <@Krakenied>
9819d7f - Update Gradle Wrapper to 8.14.3 <@Krakenied>
a2b316c - Include API JARs to fix build (repo is down) <@Krakenied>
381e6cb - Add some missing conditions Closes
https://github.com/LMBishop/Quests/issues/800 <@Krakenied>
c861b51 - Add ghast mode to walking task type <@Krakenied>
10ab4bd - Bump Paper API to 1.21.8 to ensure compatibility with latest version <@Krakenied>
d0b290e - [ci skip] Update walking docs <@Krakenied>
6d8f2c2 - Fix the happy ghast mode Refactor imports <@Krakenied>
b1a82a5 - Add CustomFishing item def <@Krakenied>
2307438 - Add missing null check <@Krakenied>
a161489 - Do not call getQuestProgress() from PAPI expansion Closes
https://github.com/LMBishop/Quests/issues/760 <@Krakenied>
009f4c8 - Check for CoreProtect block lookup nullability as it seems to be null when the user disables CoreProtect API
https://github.com/LMBishop/Quests/issues/801 <@Krakenied>
6ae1014 - Add goal placeholder Closes
https://github.com/LMBishop/Quests/issues/788 <@Krakenied>
6f25b13 - Fix PAPI goal placeholder <@Krakenied>
475bc16 - Add EvenMoreFish fishing and hunting types and dedicated item def impl <@Krakenied>
697846f - Bump bungeecord-chat dependency <@Krakenied>
baaa5dd - Handle projectile damage in deal damage task type properly <@Krakenied>
5a26883 - Add item option to dealdamage Closes
https://github.com/LMBishop/Quests/issues/735 <@Krakenied>
95e64a7 - Use single constant for task placeholder pattern <@Krakenied>
76f2b74 - Refactor paginated quest menu code a bit <@Krakenied>
9270f24 - Fix task progress and completion placeholders <@Krakenied>
598d839 - Use DamageSource API <@Krakenied>
80e4381 - Add cake support to consume task type Closes
https://github.com/LMBishop/Quests/issues/261 <@Krakenied>
f2f172e - Fix menu NPE when categories are disabled <@Krakenied>
2f0d662 - Do not create unnecessary Location object in distancefrom task type <@Krakenied>
6980e1e - Add {days} support to time format Refactor FormatUtils, use JSpecify annotations <@Krakenied>
8eb0c85 - Reorder MythicMobs version checks Add missing fixed quest item cache clears on ready Mark EvenMoreFish task types as untested <@Krakenied>
b36f66b - Add BlockTracker as softdepend <@Krakenied>
0ea5357 - Use modern BlockTracker class name by default as the original one hasn't been updated since 1.16 <@Krakenied>
ec41254 - Relocate dependencies properly <@Krakenied>
3a2ee98 - Add biomes constraint <@Krakenied>
65e602b - Implement MythicMobs dealdamage task type Closes
https://github.com/LMBishop/Quests/issues/768 <@Krakenied>
af28b66 - Do not overwrite user defined static elements with spacers in last menu row <@Krakenied>
4fd8d33 - Update foojay resolver and jvmdowngrader <@Krakenied>
98037db - Get the biome only once per method call <@Krakenied>
f7e3dca - Add new debugging command <@Krakenied>
36d8090 - Fix progress display in newly introduced subcommand <@Krakenied>
9949e50 - Use a bit more intuitive naming <@Krakenied>
1cc709b - Improve player debug output when no quests found <@Krakenied>
d3536cb - Add internal goal placeholder Closes
https://github.com/LMBishop/Quests/issues/658 <@Krakenied>
53762d9 - Add option to dispatch player commands Closes
https://github.com/LMBishop/Quests/issues/470 <@Krakenied>
6bc6b05 - Update wiki downloads page Make it more user-friendly <@Krakenied>
a88bb74 - Fix debug report after last changes <@Krakenied>
894dbe7 - Replace PlayerDeathEvent getPlayer with PlayerDeathEvent#getEntity Required for proper 1.8 support <@Krakenied>
a9ffefb - Update Gradle Wrapper to 9.2.1 <@Krakenied>
7924422 - Update Gradle plugins <@Krakenied>
451d68e - Replace 'if' expression with safe cast expression <@Krakenied>
d75b33a - Bump project dependencies ensuring 1.21.11-pre3 compatibility <@Krakenied>
9fb083a - Prepare for release 3.16 <@Krakenied>
591d288 - Fix HikariCP logging provider detection after update <@Krakenied>
430c34a - Prepare for release 3.16.1 <@Krakenied>
More information