|
1 | 1 | # CraftPresence Changes
|
2 | 2 |
|
3 |
| -## v2.4.0 (06/13/2024) |
| 3 | +## v2.4.1 (??/??/2024) |
4 | 4 |
|
5 | 5 | _A Detailed Changelog from the last release is
|
6 |
| -available [here](https://gitlab.com/CDAGaming/CraftPresence/-/compare/release%2Fv2.3.9...release%2Fv2.4.0)_ |
| 6 | +available [here](https://gitlab.com/CDAGaming/CraftPresence/-/compare/release%2Fv2.4.0...release%2Fv2.4.1)_ |
7 | 7 |
|
8 | 8 | See the Mod Description or [README](https://gitlab.com/CDAGaming/CraftPresence) for more info regarding the mod.
|
9 | 9 |
|
10 | 10 | ### Changes
|
11 | 11 |
|
12 | 12 | * (Backend) Updated Build Dependencies (Please see the appropriate repositories for changes)
|
13 |
| - * Unimined (`1.2.3` -> `1.2.7`) |
14 |
| - * JVMDowngrader (`local` -> `0.7.1`) |
15 |
| - * ModPublisher (`2.1.1` -> `2.1.4`) |
16 |
| - * ModFusioner (`1.0.10` -> `1.0.12`) |
17 |
| - * Fabric Loader (`0.15.10` -> `0.15.11`) |
18 |
| - * Lenni Reflect (`1.3.2` -> `1.3.4`) |
19 |
| - * UniCore (`1.0.10` -> `1.1.9`) |
20 |
| - * DiscordIPC (`0.8.7` -> `0.9.1`) |
21 |
| - * Starscript (`0.3.0` -> `0.3.3`) |
22 |
| - * SpotBugs Annotations (`4.8.4` -> `4.8.5`) |
23 |
| - * ClassGraph (`4.8.172` -> `4.8.173`) |
24 |
| -* All versions of the mod are now built using Java 21, rather than being dependent on legacy Java |
25 |
| - * This allows us to have a consistent API as well as develop under the current modern standards |
26 |
| - * In versions where a downgrade is needed, this is performed using `JVMDowngrader` to ensure API compatibility |
27 |
| -* Adjusted the way `Dimension` and `Biome` module data is loaded in MC 1.16+ |
28 |
| - * These changes are designed to support auto-locating data related to data pack additions |
29 |
| - * These changes also resolve issues where repeated Registry Lookups could cause a crash in both modules |
30 |
| - * Additional performance improvements have also been implemented for all MC versions for these modules |
31 |
| -* Added a new script function, `getComponent`, to support the new `DataComponent` system introduced in MC 1.20.5+ |
32 |
| - * Usage: `getComponent(data=DataComponentHolder, path=String)` |
33 |
| - * On versions below MC 1.20.5, an error will appear instead |
34 |
| -* Removed the `hasAlphaNumeric`, `hasWhitespace`, and `replace` script functions due to being obsolete |
35 |
| - * The backend for these functions was barely functional and has been largely obsolete for a while |
36 |
| -* Added new `.identifier` placeholders for the `Biome` and `Dimension` modules |
37 |
| -* (Backend) The default formatting for a slider's display value is now `%.1f` instead of a raw append |
38 |
| -* Added a `Sync End Color` button to the `Color Editor` UI |
39 |
| - * Pressing this button, will set the `endData` to the current `startColor` data, effectively useful for quickly |
40 |
| - removing the `endColor` data from the final saving |
41 |
| -* Adjusted Mod Initialization in MC 1.7.10 and below to better detect (and avoid) running the mod on server-side |
42 |
| - * This uses a similar system implemented for MC 1.13+ in v2.2.4 |
43 |
| - * This change is only applied for Forge, Risugami ModLoader, or users on similar modloaders |
44 |
| -* Added a new `Advanced` Config Setting to toggle `ClassGraph` functionality |
45 |
| - * This option allows disabling several backend functions, improving memory usage at the cost of some module |
46 |
| - functionality |
47 |
| - * Disabling this feature will prevent module auto-lookup functionality in some cases, but is set by default to be |
48 |
| - disabled in response to several concerns over memory usage |
49 |
| -* (Backend) Adjusted Module Auto-Retrieval Processes for improved usability and error prevention |
50 |
| - * `Module#getAllData` has been split into `Module#getInternalData` and `Module#getConfigData` |
51 |
| - * `Module#scanForData` has been similarly split up, with separate threads now spawned for each part of the |
52 |
| - auto-lookup |
53 |
| - * `Module#canFetchData` has been split into `Module#canFetchInternals` and `Module#canFetchConfig` |
54 |
| - * `Module#hasScanned...` and `Module#queue...` functions have also been added for configuring when to scan for what |
55 |
| - data |
56 |
| - * To align better with MC 1.20.5 and above, the scan order has been inverted for modules, with `config` data being |
57 |
| - scanned first before `internal` data |
58 |
| -* (Backend) Added `printException` for Config Modules, now used in `setProperty` |
59 |
| - * These exceptions will only display while `Debug Mode` is enabled |
60 |
| -* Adjusted the way the `general.mods` placeholder is calculated (`Constants#getModCount`) |
61 |
| - * Now uses a `Supplier` from each implemented loader rather than Reflection |
62 |
| - Statements (`Constants#MOD_COUNT_SUPPLIER`) |
63 |
| - * Quilt now falls back to `getRawModCount` due to not having an independent build layer |
64 |
| - * Added support for Rift, Flint, and Risugami ModLoader mod counts |
65 |
| - * Fixes placeholder functionality for Forge 1.13+ |
66 |
| -* (Backend) Improved performance for various placeholder argument options as well as compiling data |
67 |
| - * These changes should conform better towards how Starscript was meant to be used |
68 |
| -* (Breaking) Overhauled the `Override` system for Placeholder Arguments |
69 |
| - * `overrides.` placeholders have been removed, with overrides now applied directly to the placeholder |
70 |
| - when `useAsMain` is false and such override data exists |
71 |
| - * Empty Parts of the `Presence Editor` are no longer ignored if `useAsMain` was false |
72 |
| - * For `useAsMain` mode, the `forcedData` iteration has been adjusted to now use the first non-null entry, rather |
73 |
| - than the last |
| 13 | + * Shadow (`com.github.johnrengelman.shadow@8.1.1` -> `io.github.goooler.shadow@8.1.7`) |
74 | 14 |
|
75 | 15 | ### Fixes
|
76 | 16 |
|
77 |
| -* (Backend) Modified `ExtendedScreen#getButtonY` to properly respond to `ScrollPane` padding and to better clarify the |
78 |
| - logic |
79 |
| - * For screens where this is used, this places UI elements in the proper position comparable to v1.x versions |
80 |
| - * Old Calculation: `(40 + (25 * (order - 1)))` |
81 |
| - * New Calculation `topPosition + (DEFAULT_ELEMENT_PADDING * (order + 1)) + (DEFAULT_ELEMENT_HEIGHT * order)` |
82 |
| -* (Backend) Fixed an issue where `ColorData#setEndColor` and `ColorData#setTexLocation` could be applied incorrectly |
83 |
| - * This fix was previously present in `ColorEditorGui#setCurrentData` but has been moved into `ColorData` to remove |
84 |
| - duplicated logic and to resolve some edge-cases |
85 |
| -* Fixed redundant formatting in `Color Editor` Slider UI elements |
86 |
| - * The RGBA sliders now use `Integer` formatting instead of `Float` |
87 |
| - * The `Tint Factor` slider now uses a percentage value instead of `Float` |
88 |
| -* Fixed edge-cases in the `Color Editor` where editing a null `endColor` after editing `startColor` would result in an |
89 |
| - incorrect result |
90 |
| - * This is caused from the `getEnd` call pulling the `startColor` if null, and only adjusting the value of one slider |
91 |
| - rather than all four |
92 |
| - * An additional case has been resolved where the `endColor` data wasn't being created, if the new `startColor` |
93 |
| - differs when it didn't before when using `setStartColor` |
94 |
| -* (Backend) Fixed memory leaks that could occur through repeated `Module#toString` calls |
95 |
| - * This occurs due to this function utilizing GSON, and since we used this in `Module#hashCode` and `Module#equals`, |
96 |
| - it was being called excessively |
97 |
| - * With this fix, `hashCode` and `equals` functions for all Config Categories should be much more performant, |
98 |
| - following `PresenceData` formatting with `Objects#hash` and `Objects#equals` usage |
99 |
| -* (Backend) Fixed memory leaks that could occur through repeated `FileUtils#findValidClass` calls |
100 |
| - * Caching has been added to this method, preventing repetitive calls to `Class#forName` |
101 |
| -* (Backend) Fixed a possible discrepancy between using `FileUtils#findValidClass` and `FileUtils#scanClasses` |
102 |
| - * This relates to the `useClassLoader` param in `findValidClass`, which now only defaults to true if below Java 16 |
103 |
| - * This behavior matches the behavior used in `ClassGraph` within `scanClasses |
104 |
| -* (Backend) Fixed memory leaks that could occur through `Lenni Reflect` reflection operations |
105 |
| - * This issue effects `StringUtils#getFields`, `StringUtils#getMethods`, and methods using these functions |
106 |
| - * Caching has been implemented to the `RStream#of`, `RStream#methods`, and `RStream#fields` functions to avoid |
107 |
| - repetitive allocation |
108 |
| -* (Backend) Fixed memory leaks caused from unnecessary `DiscordUtils#removeArguments` calls |
109 |
| - * This issue occurred in `DiscordUtils#syncPlaceholders` in how we were synchronizing `custom.` arguments |
110 |
| - * The old method has been replaced with a new more performant system |
111 |
| - for removals and iteration |
112 |
| - * Several methods have also been adjusted to avoid excessive calls to this function as well |
113 |
| -* Fixed the `Sync Config` button in the `Main Gui` not properly applying settings |
114 |
| - * This was caused by the `Config#applyFrom(Config)` function not being called |
115 |
| -* (Backend) Fixed an issue where the `Server` module was improperly checking for new `ServerList` entries in some cases |
116 |
| - * This also fixes an issue where adjusting `config` data could trigger an `internal` scan |
117 |
| -* (Backend) Fixed an issue where the `ReplayMod` module could be improperly cleared in some cases |
118 |
| -* (Backend) Fixed memory leaks that could occur through `MappingUtils` due to excessive `String#replace` operations |
119 |
| - * Both `MappingUtils` and the way the mappings file is generated have been improved to avoid this issue |
120 |
| -* (Backend) Fixed memory leaks that could occur through `FileUtils#getClassNamesMatchingSuperType` |
121 |
| - and `FileUtils#isSubclassOf` |
122 |
| - * Both functions have been rewritten to be significantly more performant compared to past releases |
123 |
| -* (Backend) Fixed memory leaks that could occur due to excessive Reflection Usage in Config Modules |
124 |
| - * This additionally improves the performance of `Config#handleVerification` |
125 |
| - * This fix primarily effects `Module#getProperty` and `Module#setProperty` usage to be static-defined rather than |
126 |
| - relying on reflection |
127 |
| -* Fixed an issue where `entitySettings#ridingData` was being incorrectly read |
128 |
| - * The `entity.riding.message` and `entity.riding.icon` placeholders should work properly again |
129 |
| -* Resolved an issue where parts of the mod may show up un-localized when using a different language |
130 |
| - * This was caused by a regression when `TranslationUtils#getLocalizedMessage` was introduced |
131 |
| -* Resolved a typo causing an issue in the `SimpleRPC` to `CraftPresence` config migration layer where |
132 |
| - the `%replaytimeleft%` placeholder, if present, was incorrectly converted to an invalid Starscript expression |
133 |
| - * This issue would cause a Starscript exception if the value was present in a `SimpleRPC` config |
134 |
| -* (Backend) Fixed an issue preventing `DiscordAssetUtils#setUrl` from triggering in `DiscordAssetUtils#loadAssets` |
135 |
| - * This fix also brings a performance improvement to `DiscordAssetUtils#getUrl(list, key)` |
136 |
| -* (Backend) Fixed a `DiscordIPC` Issue preventing Mod Functionality on Java 22 |
137 |
| - * This primarily effected Windows users or those using a non-standard filesystem |
138 |
| - * Users effected would receive a false `Unable to connect to Discord...` message |
139 |
| - * Several other error messages have also been improved alongside this fix |
| 17 | +* TBD |
140 | 18 |
|
141 | 19 | ___
|
142 | 20 |
|
|
0 commit comments