Releases: ZockerAxel/CrazyAdvancementsAPI
Update 2.0.1 - Update to Minecraft 1.18
This version updates CrazyAdvancementsAPI to Minecraft 1.18
API Changes:
Added AdvancementProgress#getCriteriaProgress() which returns an int
Added AdvancementProgress#getRemainingCriteria() which returns an Iterable
AdvancementProgress#getAwardedCriteria() now returns an Iterable instead of a Set
Added AdvancementProgress#isDone() which is equivalent to Advancement#isGranted() but on the AdvancementProgress level
Update 2.0 - Full API Rewrite
It's a big one! In this update the API was rewritten to fix some long-standing issues that could now finally be resolved with a much cleaner codebase.
As this is a full rewrite, a real changelog is not easily created, which simply means that not all changes will be listed here.
Old Save Files will no longer work with this version.
For a full guide on how to use this new version, see https://docs.crazyadvancements.endercentral.eu
General Changes:
- Added New Command: /setprogress including Tab Completion
- Removed the File Advancement Manager which loaded Advancements from JSON files
API Changes:
- Renamed Main Class from CrazyAdvancements to CrazyAdvancementsAPI
- Added New Class ToastNotification for easier creation of Toasts
- Added New Class AdvancementsPacket which allows you to send Advancements Packets yourself
- Changed how Criteria works, Advancements now expect an instance of the Criteria class instead of a Number which also allows for more complex Advancements
- Changed how Progress is stored for an Advancement
- Changed where Save Files are located
- Changed Save File Format
- Removed SaveMethod
- Removed Several Events related to Criteria
- Removed Several Save and Load Methods from AdvancementManager
Update 1.14.3 - Bug Fix for Advancement Completion Messages
Bug Fixes:
- Fixed a bug that lead to Advancement Completion Messages' hover event having incorrect content
- Reverted Default Text Color of Advancements from green to white (pre-1.14.2 behavior)
Update 1.14.2 - Update to Minecraft 1.17
This version updates CrazyAdvancementsAPI to Minecraft 1.17
The NMS Reobfuscation by Spigot lead to a few issues that have now been fixed.
As i wanted to release this version as soon as possible, some features are untested in this update which could lead to a few issues in this version, so be sure to report any inconsistencies compared to the old behavior if you encounter any.
Update 1.14.1a
This version is identical to 1.14.1 apart from a (hopefully) fixed pom.xml file
Update 1.14.1
Bug Fixes:
- Fixed a bug that caused progress not being saved for offline players when they have not been online before
Update 1.14 - Improvements to Packet Size and Save File Size
API Changes:
- Added AdvancementManager#setHiddenBoolean(boolean hiddenBoolean) and AdvancementManager#getHiddenBoolean(): When set to true, hidden advancements that have not been granted yet will have a line drawn to them when they are in visible range despite not being visible. Can be used to create empty advancement tabs where there are no advancements visible when the tab's only advancement is a hidden root advancement. Defaults to false
- Added AdvancementManager#setCriterionPrefix(String criterionPrefix) and AdvacementManager#getCriterionPrefix(): Prefix infront of criterion names, Setting it to an empty string reduces save file size and packet size. Should be set before adding advancements or loading progress. Defaults to "criterion.". CHANGING THIS SETTING WILL RESET EVERYBODYS PROGRESS IN THE CURRENT MANAGER IF YOU DO THIS FOR THE FIRST TIME.
- Added AdvancementManager#setCriterionNamespace(String criterionNamespace), AdvancementManager#setCriterionKey(String criterionKey) and respective getters: The combination of these strings is used as a Namespaced Key that is used in packets sent to the client. Setting it to an empty string reduces packet size. Only works when criteria for advancements have not been generated yet (Use this method before adding advancements). Default to "minecraft" and "impossible"
- Added Advancement#setSaveMethod(SaveMethod saveMethod) and Advancement#getSaveMethod(): When you don't work with expert features, using the NUMBER Save Method will significantly shrink your save file sizes (only if your advancement requires 2 or more criteria). You can always switch from the DEFAULT to the NUMBER Save Method and your data will be converted automatically. If you want to switch the other way round, you have to load data while it is set to NUMBER and save data while it is set to DEFAULT to prevent save file corruption. Defaults to DEFAULT
Bug Fixes:
- Fixed a bug that caused progress to never unload when unloading progress
- Fixed a bug that caused progress not being saved for offline players when they have not been online since their progress was loaded
- Fixed a bug that caused progress not being saved when players have never been added to the manager in the first place
- Minor bug fixes