Compatibility
Minecraft: Java Edition
Platforms
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Changelog
Hi everyone,
This update is mainly technical. It enhances general plugin performance and version compatibility (from 1.8 to 1.21.1). As always, it also includes several quality of life improvements and many new features, such as: new task types, enhancements to existing ones, new dedicated plugin item types, a visible progress boss bars limit, direct Vault rewards support, and more! Additionally, it addresses several bugs.
New number formatting options utilizing Java's DecimalFormat and DecimalFormatSymbols have been added. These allow you to configure the desired number format displayed in Quests GUIs, placeholders, and beyond. This feature enhances consistency and readability of number displays across your server.
We’ve also introduced 10 new task types: bucketentity
, composting
, curing
, hatching
, itembreaking
, itemdamaging
, itemmending
, resurrecting
, trading
and customfishing_fishing
. The configuration details for these tasks can be found in the wiki.
In addition to these new tasks, there are several fixes and improvements to existing ones, including:
blockbreak
:- Added the
item
option (along withdata
andexact-match
). - CoreProtect and PlayerBlockTracker hooks will now prevent task progress from increasing if the check (in the task) is enabled and the required plugin fails to start, preventing potential exploitation.
- Added the
coreprotect-block-lookup-delay
option to config.yml to delay CoreProtect hook lookups, which can be used to mitigate the fast break and place bug caused by CoreProtect's asynchronicity delays.
- Added the
blockplace
:- Added the
allow-negative-progress
option, similar to the one inblockbreak
.
- Added the
bucketempty
,bucketfill
:- These task types now use an improved item matching system, allowing
item
,data
, andexact-match
options usage.
- These task types now use an improved item matching system, allowing
command
:- Added the
command-match-mode
option to specify how commands should be matched. Possible values:EQUALS
,STARTS_WITH
,ENDS_WITH
.
- Added the
consume
,crafting
:- The
item
option is now optional.
- The
farming
:- CoreProtect and PlayerBlockTracker options have been added (similar to
blockbreak
). - CoreProtect and PlayerBlockTracker hooks will now prevent task progress from increasing if the check (in the task) is enabled and the required plugin fails to start, preventing potential exploitation.
- Added the
coreprotect-block-lookup-delay
option to config.yml to delay CoreProtect hook lookups, which can be used to mitigate the fast break and place bug caused by CoreProtect's asynchronicity delays.
- CoreProtect and PlayerBlockTracker options have been added (similar to
interact
:- Added
action
option (supports lists). Supported values can be found in Spigot API docs. - Added
hand
option (supports lists). Supported values can be found in Spigot API docs. - Added
use-interacted-block-result
option (supports lists). Supported values can be found in Spigot API docs. The option ought to be used only in very specific setups. - Added
use-item-in-hand-result
option (supports lists). Supported values can be found in Spigot API docs. The option ought to be used only in very specific setups.
- Added
inventory
:- Progress boss bars and action bars will only be displayed when progress changes
milking
:- Added the
mob
option (supports lists), typically used for specifying mobs such asCOW
orGOAT
.
- Added the
mobkilling
:- Added
mobkilling-use-wildstacker-hook
option to config.yml to disable WildStacker hook. - Added the
name-match-mode
option to specify how mob names should be matched. Possible values:EQUALS
,STARTS_WITH
,ENDS_WITH
.
- Added
playtime
:- The
ignore-afk
option now respects the CMI AFK system.
- The
smithing
:- The
item
option is now optional. - The
mode
option is required only for 1.20+ versions.
- The
citizens_deliver
,citizens_interact
,servernpc_deliver
,servernpc_interact
,znpcsplus_deliver
,znpcsplus_interact
:- The
npc-id
option now supports lists.
- The
ecobosses_killing
,ecomobs_killing
:- Added the
id-match-mode
option to specify how mob IDs should be matched. Possible values:EQUALS
,STARTS_WITH
,ENDS_WITH
.
- Added the
mythicmobs_killing
:- Added the
name-match-mode
option to specify how mob names should be matched. Possible values:EQUALS
,STARTS_WITH
,ENDS_WITH
.
- Added the
Finally, some other miscellaneous improvements to highlight are:
- Added the
cancelstring
option (list) to quests, which can be used to specify messages sent to the player when a quest is cancelled. - Introduced the
expirystring
option (list) to quests, which can be used to specify messages sent to the player when a quest expires. - Since
cancelcommands
already existed, we've addedexpirycommands
for consistency. - Added the
vaultreward
option to simplify the creation of quest packs compatible with multiple economy plugins.
The update also provisionally reinstates support for older Java versions via a downgrader. Plugin JARs are now provided in different versions. For example, ! Quests-JDK21
or Quests-3.15.1-84eae15.jar
is the recommended JAR for Java 21+ (hence JDK21
and no downgraded
in the name). Other downloads contain Quests builds for older Java versions, automatically downgraded. Please note that the quality of the downgrader's output may vary, though it is generally stable. Avoid using these older versions unless absolutely necessary. Some of the older versions may require additional flags in the startup command (for example --add-opens=java.base/java.text=ALL-UNNAMED
just after java
in Java 17 builds).
For further details on what has changed, see the commit log below.
Commit log since v3.15
f7de2dc
- Update parent of pinataparty_hit-(task-type).md <Leonardo Bishop>
2c81c6c
- Fix action bar on CraftBukkit (it's not supported) <Krakenied>
d2b5759
- Fix CraftBukkit hex color adapter compatibility <Krakenied>
16794d9
- Fix ItemGetter on CraftBukkit 1.8 Improve setting item unbreakability <Krakenied>
52ded1a
- Add expiry commands option <Krakenied>
32aa65f
- Add CMI ignore-afk support Closes https://github.com/LMBishop/Quests/issues/566 <Krakenied>
33c409d
- Add namespaced enchantments support to 1.13+ and 1.14+ item getters <Krakenied>
f92fc76
- Add composting task type <Krakenied>
46501dd
- Make the item option in composting, consume, crafting and smithing optional <Krakenied>
03be381
- Fix config validators descriptions <Krakenied>
80e8af6
- Add spawn reason option to mob killing task type Closes https://github.com/LMBishop/Quests/issues/460 <Krakenied>
888d55b
- corrected grammar from enchanting-(task-type) <Léo>
5539b3b
- Add Goat support to milking task type Fixes https://github.com/LMBishop/Quests/issues/620 (ignore baby mobs) Closes https://github.com/LMBishop/Quests/issues/607 (goat support) <Krakenied>
92774fc
- Fix boss bar ClassNotFoundException on 1.8 Boss bars are supported only on 1.9+ <Krakenied>
7e2124c
- Move instanceof Goat check to version specific handler <Krakenied>
587172c
- Apparently getEntitySpawnReason method is supported only on Paper + forks <Krakenied>
91b094f
- Improve PAPI refresh-ticks option behavior <Krakenied>
68c2739
- Ignore ZNPCsPlus hologram serialization errors Closes https://github.com/LMBishop/Quests/issues/618 <Krakenied>
f62133d
- Ensure that the entire holo hasn't been skipped <Krakenied>
2896ac5
- Improve CoreProtect check behaviour even more Add CoreProtect block lookup delay option <Krakenied>
32004ae
- Update ServerNPC to latest version <Krakenied>
d2d5202
- Add item option to mining task type <Krakenied>
57b3b3d
- Send track advancement on building and mining subtract too <Krakenied>
80b9c51
- Add allow negative progress option to building task type <Krakenied>
4c8f277
- Fix building task type subtract for loop returning instead of continuing <Krakenied>
a5f5df1
- Added lacking information to smithing-(task-type).md <Léo>
d7d5e3e
- Try to get progress placeholders by task type too <Krakenied>
7cef6c6
- Validate progress-placeholders task references <Krakenied>
7c8618f
- Improve QItemStack placeholder processing <Krakenied>
7735295
- Improve regular expression Adjust invalid task reference finder to it <Krakenied>
2b35e25
- Update parameter in sendTrackAdvancement calls <Krakenied>
c7f18da
- This one is actually useless <Krakenied>
69ed205
- Handle null progress properly Fixes https://github.com/LMBishop/Quests/issues/619 <Krakenied>
10fc3ae
- Delay Legacy Material Support initialization Do not init it at all if not required <Krakenied>
e418106
- Remove unnecessary HashMap#containsKey call from hot path Related to https://github.com/LMBishop/Quests/issues/629 <Krakenied>
038cc4a
- [ci skip] Update Gradle to 8.6 <Krakenied>
d7405ee
- Clarity changes to smithing task type + docs Related to https://github.com/LMBishop/Quests/pull/627 <Krakenied>
e0b4ce7
- [ci skip] Fix PyroFishingPro fishing task type docs Related to https://github.com/LMBishop/Quests/issues/607 <Krakenied>
9ccf075
- [ci skip] Update building, mining, mob killing and milking task type docs <Krakenied>
17f88db
- Use optimized map implementation for quest progress file if available <Krakenied>
fe0eeea
- Update workflows actions Use actions/setup-java@v4 for caching <Krakenied>
1578f94
- Implement hatching task type <Krakenied>
5d60934
- Add CustomFishing compatibility <XiaoMoMi>
16d1ee5
- remove inner class and set priority <XiaoMoMi>
c1a2be9
- Merge task types into one - customfishing_fishing <Krakenied>
2520b64
- Add missing docs Closes https://github.com/LMBishop/Quests/issues/574 <Krakenied>
1b84913
- Fixes almost unreproducible rewards dupe on completion Closes https://github.com/LMBishop/Quests/issues/543 <Krakenied>
c554962
- Fix docs workflow Update actions/deploy-pages to v4 <Krakenied>
a01d4c9
- Fix build workflow node.js deprecation warning Update gradle/wrapper-validation-action to v2 <Krakenied>
f61b8e1
- Make the workflow build the project correctly <Krakenied>
275546e
- Add option to disable WildStacker hook <Krakenied>
6380d8e
- Update WalkingTaskType.java <IceWolf23>
0047bd0
- Small refactor <Krakenied>
aea6650
- Add string match mode option <Krakenied>
f422da2
- Make shop and item id options in ShopGUIPlus interaction task types optional <Krakenied>
7a4946e
- Add more walking task type modes Fix compile <Krakenied>
0166e27
- Bump gradlew to 8.7 Fix compile again <Krakenied>
3627b9a
- Update to Paper-API 1.20.5 Java 21 is now required <Krakenied>
5fdb275
- Make CompatUtils work properly with no-relocation Paper <Krakenied>
6cb4b58
- Implement new item task types <Krakenied>
9824687
- Use better map impl for quest progress files Resolves issues with async placeholders parsing <Krakenied>
f4853ee
- Add curing task type <Krakenied>
8cc9a4a
- Begin work on villager-type and villager-profession options <Krakenied>
ad82f71
- Add resurrecting task type <Krakenied>
cbdef13
- Begin bucket tasks rework <Krakenied>
2bebaf5
- Finished bucket task types rework <Krakenied>
d78629c
- Optimize it a bit <Krakenied>
e48e4a8
- Add missing getter to 1.20 version specific handler <Krakenied>
46d0e7b
- Do not log the entire boss bar exception Closes https://github.com/LMBishop/Quests/issues/659 Closes https://github.com/LMBishop/Quests/issues/637 <Krakenied>
96e1d3e
- Fix auto saving feature due to regression caused by https://github.com/LMBishop/Quests/commit/e5c0237bcb45c5d308e0a2b763f50ac97135c768 <Krakenied>
e46b65f
- Further debugging optimization Actually refactor a large amount of code lol <Krakenied>
cbdcd1e
- Fix codacy issue <Krakenied>
40394f8
- Add not supported to registration message <Krakenied>
5c62483
- Extract method getting registration message <Krakenied>
832e3e5
- Fix typo <Krakenied>
011fa31
- Remove another unnecessary HashMap#containsKey call from hot path Do not use Object2ObjectArrayMap as it doesn't seem to be enough performance-beneficial <Krakenied>
8338339
- Add removed constructor back <Krakenied>
7f44beb
- Add Oraxen support <Krakenied>
b67ffad
- Add cancelstring and expirystring options Closes https://github.com/LMBishop/Quests/issues/667 <Krakenied>
d7a0277
- Add docs for tasks introduced in #642 <Krakenied>
a82c96b
- Fix locked-display <Krakenied>
87244bd
- PyroFishingPro support improvements <Krakenied>
9ba3637
- Update Gradle Wrapper to 8.10 <Krakenied>
22d882e
- Do not send track advancement for inventory task if progress didn't change <Krakenied>
de2b720
- Rewrite Gradle files to use DSL which is actually supported by IDEs Change the downgrader to a modern supported one <Krakenied>
16aaa53
- Add number formats Closes https://github.com/LMBishop/Quests/issues/613 <Krakenied>
28ebbfc
- Do not reload base configurations twice <Krakenied>
b64b5a8
- Finally fix autosaves after regression caused by https://github.com/LMBishop/Quests/commit/e5c0237bcb45c5d308e0a2b763f50ac97135c768 <Krakenied>
bf93e24
- Improve server version getter <Krakenied>
2c27237
- Add {questcolored} to menu elements and other places <Krakenied>
ce6c0e1
- Allow minus sign usage in quest ids (https://github.com/LMBishop/Quests/issues/683) Add Apache Commons Lang NOTICE.txt to resources <Krakenied>
1e63d03
- Rewrite getEffectiveStartedQuests method <Krakenied>
3113ee8
- Get autostart from config only once <Krakenied>
04f320e
- Change condition order for performance reasons <Krakenied>
033ae8f
- Rewrite trackNextQuest so autostart Quests are tracked properly Closes https://github.com/LMBishop/Quests/issues/570 <Krakenied>
777be35
- Get rid of this deprecation warning <Krakenied>
9ac04c1
- Add compiler args to build script <Krakenied>
d54be31
- Rewrite trackQuestForPlayer method, so it notifies player about the same quest only once <Krakenied>
80c336d
- Track next quest after messaging player about completion <Krakenied>
60dc3d5
- Update ServerNPC API-only JAR <Krakenied>
47b68ec
- Add trading task type Closes https://github.com/LMBishop/Quests/issues/565 <Krakenied>
7618389
- Fix autostart for quests with individual option set <Krakenied>
195b631
- Optimize a bit walking task type <Krakenied>
b68f28a
- Add dedicated getter for enums <Krakenied>
63c874e
- Update some project dependencies <Krakenied>
816e0c7
- Clean up task type manager Mark some TaskType methods as final as they aren't really meant to be overridden <Krakenied>
0f1de95
- Remove Folia dependency as we don't really use it <Krakenied>
ef0a494
- Fix HIDE_ATTRIBUTES for 1.20.5+ Change invalidItemStack to screaming snake case <Krakenied>
68aaae8
- Add support for multiple NPC ids in deliver/interact task types <Krakenied>
6beb010
- Set walking mode accepted values from enum <Krakenied>
7248af6
- Add PBT & CoreProtect support to farming task type Do not increment farming and mining progress if CP or PBT was expected to be used but the hook is not set <Krakenied>
14cca41
- Update CustomFishing to latest version (requires update) <Krakenied>
5567117
- Update jvmdowngrader to 1.1.2 <Krakenied>
e2a644f
- Drop items that could not be stored Closes https://github.com/LMBishop/Quests/issues/680 <Krakenied>
121e526
- Add Quests.ShowUnsupportedCount property <Krakenied>
e16d386
- Vault reward integration <Krakenied>
cb2b64e
- Bump paper-api to 1.21.1 to ensure compatibility with the latest version <Krakenied>
33fb251
- Add some new boss bar options <Krakenied>
e70150b
- Add new options to interact task type <Krakenied>
4f254f5
- A little docs cleanup <Krakenied>
c2cd690
- Get rid of unnecessary streams <Krakenied>
15a080e
- Add info about supported open source PlayerBlockTracker implementations to the config <Krakenied>
658a6a2
- Fixed wrong description for replenishing task <Léo>
63c5cd0
- Do not return null for a negative cooldown placeholder Fixes https://github.com/LMBishop/Quests/issues/669 <Krakenied>
1f2f4ad
- Fix bad defining items references in the docs <Krakenied>
84eae15
- Prepare for release 3.15.1 Bump version number <Krakenied>
More information
- Documentation: https://quests.leonardobishop.com
- Report a bug: https://github.com/LMBishop/Quests/issues
- Contribute to Quests: https://github.com/LMBishop/Quests/pulls
Files
Metadata
Release channel
ReleaseVersion number
3.15.1Loaders
Game versions
1.8–1.21.1Downloads
51Publication date
August 28, 2024 at 4:27 PMPublisher
LMBishop
Owner