MaLiLib (MaLiLib)
MaLiLib是一个客户端模组的库模组,包含了大部分由masa的客户端模组共享的代码,并且为依赖的模组之间添加了一些互操作支持。
MaLiLib是一个客户端模组的库模组,包含了大部分依赖模组之间共享的代码。
例如,它包含了所有配置选项和序列化功能,一个强大的按键绑定系统,大多数屏幕/GUI代码以及一些其他杂项实用类和方法,适用于构建在MaLiLib周围的模组。
(该名称简称为 `masa的Litemod库`,因为我毫无想象力...
该模组最初是为1.12.x LiteLoader版本的masa的客户端模组创建的。)
依赖MaLiLib的模组
MaLiLib是所有[masa](
* [物品滚轮](
* [Litematica](
* [MiniHUD](
* [TellMe](
* [Tweakeroo](
还有其他一些由其他作者构建在MaLiLib周围的客户端模组。 模组项目/说明通常会指出需要哪些模组作为依赖项。
模组版本
确保从版本页面下载适用于您的Minecraft版本和模组加载器的正确模组版本!!
注意: 该模组有Fabric和Forge版本!查看标记的模组加载器或文件名以获取适用于您的模组加载器的正确版本的模组!
文件名始终指示模组加载器(例如Fabric vs Forge)和Minecraft版本。
文件名格式为:
`malilib-<模组加载器>-
例如:
`malilib-fabric-1.19.2-0.13.0.jar`
每个模组版本所需的malilib版本可能在每个依赖模组的更改日志中指示。但基本上,您希望获取给定时间最新发布版本的所有模组的版本,以避免版本不匹配。
如果出于某种原因您想要使用某些旧的模组版本而不是给定MC版本的最新可用版本,则这可能会变得更加棘手。特别是对于MaLiLib 0.9.x和0.10.x版本时代的MC 1.12.2和1.14.x以及1.15.x(以及可能仍然是1.16.x?),版本兼容性有点不稳定。另外,基于代码重写的发布,从MaLiLib 0.50.0开始,一直持续到最终的1.0.0发布,在版本之间改变了很多东西,因此关键是获取来自同一发布日期的所有模组。
MaLiLib 1.21.5-0.24.1
- add: `#malilib:ore_blocks` tag
MaLiLib 1.21.4-0.23.3
- add: `#malilib:ore_blocks` tag; and verify `#malilib:needs_silk_touch` is accurate, according to 1.21.5's standards.
- Various other bug fixes & language updates since 0.23.2 (See Github Changelogs for details)
MaLiLib 1.21.3-0.22.6
- add: `#malilib:ore_blocks` tag; and verify `#malilib:needs_silk_touch` is accurate, according to 1.21.5's standards.
- Various other bug fixes & language updates since 0.22.5 (See Github Changelogs for details)
MaLiLib 1.21.1-0.21.8
- add: `#malilib:ore_blocks` tag; and verify `#malilib:needs_silk_touch` is accurate, according to 1.21.5's standards.
- Various other bug fixes & language updates since 0.21.7 (See Github Changelogs for details)
MaLiLib 1.21.5-0.24.0
- See Sakura's Github / JavaDocs for Changelogs; a lot has changed, particularly with Rendering Topics.
MaLiLib-1.12.2-0.60.2
- BaseTripleNumberEditWidget: Add a `setUpdateImmediateFromTextInput()` method
**Original build time:** 2025-04-02 18:26:06 +0300
MaLiLib 1.21.4-0.23.2
- add: inventoryOverlayScreen function for displaying Villager Trades List below a Villager; which can also have a BG color, based on the Villager profession; if configured to do so.
- Cleanup Config Switcher code a bit (Hopefully it will be higher up and less "Behind" other objects)
- various build system updates
- various code cleanups related to NbtUtils/Vec3d/Vec3i/Color4f and staged a few Deprecated tags
- various fixes for getNbtInventory workflows with Villagers, etc
- add: Dolphin Treasure Pos, Fox Variant, & Salmon Variant Nbt Helpers
- add: Time/Duration Formatter system; which allows this system to be a Configurable Option.
- add: new versions of the NbtUtils.readNbtFile and writeCompressed; Deprecate the "File" object types of all File Reading / Writing for Config files
- fix: the creating / reading of non-US character sets for config file names; such as for World Names using Chinese.
- add: Block Tags Data Gen & block tag 'Groups' matching functions.
- various minor DataDump, FileUtils, and FileNameUtils function fixes
- fix: GuiColorEditorHSV Outlines
- fix: memory leaks in RenderUtils.java by @Toon
MaLiLib 1.21.3-0.22.5
- add: inventoryOverlayScreen function for displaying Villager Trades List below a Villager; which can also have a BG color, based on the Villager profession; if configured to do so.
- Cleanup Config Switcher code a bit (Hopefully it will be higher up and less "Behind" other objects)
- various build system updates
- various code cleanups related to NbtUtils/Vec3d/Vec3i/Color4f and staged a few Deprecated tags
- various fixes for getNbtInventory workflows with Villagers, etc
- add: Dolphin Treasure Pos, Fox Variant, & Salmon Variant Nbt Helpers
- add: Time/Duration Formatter system; which allows this system to be a Configurable Option.
- add: new versions of the NbtUtils.readNbtFile and writeCompressed; Deprecate the "File" object types of all File Reading / Writing for Config files
- fix: the creating / reading of non-US character sets for config file names; such as for World Names using Chinese.
- add: Block Tags Data Gen & block tag 'Groups' matching functions.
- various minor DataDump, FileUtils, and FileNameUtils function fixes
- fix: GuiColorEditorHSV Outlines
- fix: memory leaks in RenderUtils.java by @Toon
**_NOTE: This will be the last feature build for 1.21.3, as I will referr it as being LTS_**
MaLiLib 0.21.1-0.21.7
- add: inventoryOverlayScreen function for displaying Villager Trades List below a Villager; which can also have a BG color, based on the Villager profession; if configured to do so.
- Cleanup Config Switcher code a bit (Hopefully it will be higher up and less "Behind" other objects)
- various build system updates
- various code cleanups related to NbtUtils/Vec3d/Vec3i/Color4f and staged a few Deprecated tags
- various fixes for getNbtInventory workflows with Villagers, etc
- add: Dolphin Treasure Pos, Fox Variant, & Salmon Variant Nbt Helpers
- add: Time/Duration Formatter system; which allows this system to be a Configurable Option.
- add: new versions of the NbtUtils.readNbtFile and writeCompressed; Deprecate the "File" object types of all File Reading / Writing for Config files
- fix: the creating / reading of non-US character sets for config file names; such as for World Names using Chinese.
- add: Block Tags Data Gen & block tag 'Groups' matching functions.
- various minor DataDump, FileUtils, and FileNameUtils function fixes
- fix: GuiColorEditorHSV Outlines
- fix: memory leaks in RenderUtils.java by @Toon
**_NOTE: This will be the last feature build for 1.21, as I will referr it as being LTS_**
MaLiLib 1.21.4-0.23.1
- fix: Missing InventoryPreview tooltips allow you use the `IRender.onRenderTooltip()` system; such as viewing Shulker Boxes while using the `shulkerPreview` while inside of the `InventoryOverlayScreen`.
- feat: Adds three new callbacks to the `IRender` tooltip rendering system for a more seamless way to inject Text into the Vanilla Tooltips for Items. One is for 'Below the Item Name' (First), another for after the 'additional item tooltips' (Middle), and finally the 'after all of the extra lines, but before the item durability / item ID' (Last). The new Bundle Item Count in MiniHUD would be the `Middle` callback position.
- New `InventoryOverlayScreen` system partially cloned from MiniHUD into MaLiLib.
- New Interface: `IInventoryOverlayHandler` - This acts as the `Screen Handler` interface for the `InventoryOverlayScreen`; which also adds a `Refresher` interface under `InventoryOverlay.Refresher`; and the related `IDataSyncer` interface. These all work in tandem to create a more seamless Inventory Preview experience that can be used by all downstream mods; in theory. The `IDataSyncer` interface has enough default interfaces to be a simple Data Broker for the Single Player's Server World; and can then be added upon; and then simply 'plugged in' to the Screen Handler; basically.
MaLiLib 1.21.3-0.22.4
- fix: Missing InventoryPreview tooltips allow you use the `IRender.onRenderTooltip()` system; such as viewing Shulker Boxes while using the `shulkerPreview` while inside of the `InventoryOverlayScreen`.
- feat: Adds three new callbacks to the `IRender` tooltip rendering system for a more seamless way to inject Text into the Vanilla Tooltips for Items. One is for 'Below the Item Name' (First), another for after the 'additional item tooltips' (Middle), and finally the 'after all of the extra lines, but before the item durability / item ID' (Last). The new Bundle Item Count in MiniHUD would be the `Middle` callback position.
- New `InventoryOverlayScreen` system partially cloned from MiniHUD into MaLiLib.
- New Interface: `IInventoryOverlayHandler` - This acts as the `Screen Handler` interface for the `InventoryOverlayScreen`; which also adds a `Refresher` interface under `InventoryOverlay.Refresher`; and the related `IDataSyncer` interface. These all work in tandem to create a more seamless Inventory Preview experience that can be used by all downstream mods; in theory. The `IDataSyncer` interface has enough default interfaces to be a simple Data Broker for the Single Player's Server World; and can then be added upon; and then simply 'plugged in' to the Screen Handler; basically.
MaLiLib 1.21.1-0.21.6
- fix: Missing InventoryPreview tooltips allow you use the `IRender.onRenderTooltip()` system; such as viewing Shulker Boxes while using the `shulkerPreview` while inside of the `InventoryOverlayScreen`.
- feat: Adds three new callbacks to the `IRender` tooltip rendering system for a more seamless way to inject Text into the Vanilla Tooltips for Items. One is for 'Below the Item Name' (First), another for after the 'additional item tooltips' (Middle), and finally the 'after all of the extra lines, but before the item durability / item ID' (Last). The new Bundle Item Count in MiniHUD would be the `Middle` callback position.
- New `InventoryOverlayScreen` system partially cloned from MiniHUD into MaLiLib.
- New Interface: `IInventoryOverlayHandler` - This acts as the `Screen Handler` interface for the `InventoryOverlayScreen`; which also adds a `Refresher` interface under `InventoryOverlay.Refresher`; and the related `IDataSyncer` interface. These all work in tandem to create a more seamless Inventory Preview experience that can be used by all downstream mods; in theory. The `IDataSyncer` interface has enough default interfaces to be a simple Data Broker for the Single Player's Server World; and can then be added upon; and then simply 'plugged in' to the Screen Handler; basically.
MaLiLib 1.21.4-0.23.0
- fix: add support for other Generic Entity Types, such as Armor Stands using Inventory Overlay
- fix Visibility of renderInventoryBackgroundSlots
- add printTranslationKeys Debug from Post ReWrite
- Add additional translations from Humans; such as Ukranian, and Korean.
- Refactored various util functions with their Post-ReWrite variants.
- Added Config Menu Registry from Post-Re-Write. Your Mods should Register with MaLiLib for each of your GuiConfigBase screens (And MaLiLib will attempt to register non-compliant mods automatically)
- fix: NbtWrap (getType) for NbtUtils.getEntityPosFromTag()
- fix: Item Tooltips using InventoryOverlay from MiniHUD to show full Enchantments, etc. The Tooltips should look exactly like Vanilla tool tips.
- feat: add support for variable Bundle Previews from 6-9 slots wide. Anything More or less causes Texture glitches.
MaLiLib 1.21.3-0.22.3
- fix: add support for other Generic Entity Types, such as Armor Stands using Inventory Overlay
- fix Visibility of renderInventoryBackgroundSlots
- add printTranslationKeys Debug from Post ReWrite
- Add additional translations from Humans; such as Ukranian, and Korean.
- Refactored various util functions with their Post-ReWrite variants.
- Added Config Menu Registry from Post-Re-Write. Your Mods should Register with MaLiLib for each of your GuiConfigBase screens (And MaLiLib will attempt to register non-compliant mods automatically)
- fix: NbtWrap (getType) for NbtUtils.getEntityPosFromTag()
- fix: Item Tooltips using InventoryOverlay from MiniHUD to show full Enchantments, etc. The Tooltips should look exactly like Vanilla tool tips.
- feat: add support for variable Bundle Previews from 6-9 slots wide. Anything More or less causes Texture glitches.
MaLiLib 1.21.1-0.21.5
- fix: add support for other Generic Entity Types, such as Armor Stands using Inventory Overlay
- fix Visibility of renderInventoryBackgroundSlots
- add printTranslationKeys Debug from Post ReWrite
- Add additional translations from Humans; such as Ukranian, and Korean.
- Refactored various util functions with their Post-ReWrite variants.
- Added Config Menu Registry from Post-Re-Write. Your Mods should Register with MaLiLib for each of your GuiConfigBase screens (And MaLiLib will attempt to register non-compliant mods automatically)
- fix: NbtWrap (getType) for NbtUtils.getEntityPosFromTag()
- fix: Item Tooltips using InventoryOverlay from MiniHUD to show full Enchantments, etc. The Tooltips should look exactly like Vanilla tool tips.
- feat: add support for variable Bundle Previews from 6-9 slots wide. Anything More or less causes Texture glitches.
MaLiLib 1.21.3-0.22.2
- fix: the invalid 'mixin' error upon launch from 0.22.1 (Unpublished)
- Removed Crowdin files
This is due to the unpopularity of Machine Translations. If you want a language supported, translate it and post under [Sakura's MaLiLib Issues](https://github.com/sakura-ryoko/malilib/issues) -- With that said, if you wish to become more of a permanent language translator for these mods, I can invite you to my crowdin account. Until then, any Machine translations that I could find / recall from recent memory have been removed; which will also revert some existing lang files, such as various additions under Chinese to English until I can gain that support more consistantly. Note that as various configs get added to the mod, this will also mean that languages without a proper human maintainer **WILL NOT BE FULLY TRANSLATED**. I have tried and spent my own money on these Crowdin projects in order to be more open for more of the top 30 languages to be represented, only for this to be the result due to the poor quality of Machine Translations. I assume that you understand that it's better to have NO translation instead of a poor translation.
MaLiLib 1.21.1-0.21.4
MaLiLib 1.21.1-0.21.3
This is due to the unpopularity of Machine Translations. If you want a language supported, translate it and post under [Sakura's MaLiLib Issues](https://github.com/sakura-ryoko/malilib/issues) -- With that said, if you wish to become more of a permanent language translator for these mods, I can invite you to my crowdin account. Until then, any Machine translations that I could find / recall from recent memory have been removed; which will also revert some existing lang files, such as various additions under Chinese to English until I can gain that support more consistantly. Note that as various configs get added to the mod, this will also mean that languages without a proper human maintainer **WILL NOT BE FULLY TRANSLATED**. I have tried and spent my own money on these Crowdin projects in order to be more open for more of the top 30 languages to be represented, only for this to be the result due to the poor quality of Machine Translations. I assume that you understand that it's better to have NO translation instead of a poor translation.
MaLiLib 1.21.3-0.22.0
- Most new features have been added to 1.21 already.
- Many changes under the hood for various rendering tasks, especially Shaders and Gui Texture rendering. Note that many GUI / RenderUtils now should be used with DrawContent.
- Near rewrite of how the `IRender` interface works by building MaLiLib's own `RenderPass` system. Adds 'Advanced' versions of the 'onRenderWorld' hooks with values such as `Frustum`, `Fog` and `Profiler`. Adds `onRenderWorldPreWeather` where `onRenderWorldLastAdvanced` / `onRenderWorldLast` are ran just before the `DebugPost` rendering, and are executed long after the classic RenderWeather hooks. This is mainly due to World Rendering / Tranclucency issues, particularly in `Fabulous!` graphics mode, and Vanilla changes. Pick which Interface works best for your situation, as my 1.21.2+ ports use both across the mods.
MaLiLib-1.21.1-0.21.2
- fix ItemsFromNbt for EnderChests
- Add LLAMA, WOLF, PLAYER and ENDER_CHEST InventoryOverlay Types.
- Add ConfigFloat type from 1.21.2+
- Add new `apply()` Config handling from 1.21.2+ for i18n translation.
- Adds various Crowdin-based language translations, with many not yet activate. Please report translation errors on my GitHub, and offer fixes.
- 1.21/.1 versions are now considered LTS.
MaLiLib-1.21.1-0.21.1
- Overhaul of InventoryOverlay code to include items such as Crafter Locked Slots.
- Helper functions added for nearly every type of NBT data related to Block Entities, and Entities. They are used for directly reading various Nbt Tags into Inventory objects using the new InventoryOverlay Context system, or various Info Lines, such as `infoLookingAtEntityVariant`.
- Adds support for the Bundle Preview from MiniHUD and Tweakeroo.
MaLiLib-1.21.1-0.21.0
**Original build time:** 2024-08-20 20:34:00 +0300
MaLiLib-1.21-0.20.2
- Fix config saving/loading issue on servers connected via BungeeCord
**Original build time:** 2024-07-27 05:13:58 +0300
MaLiLib-1.21-0.20.1
- Windows Defender is once again (falsely) flagging the 0.20.0 release as a trojan. No idea why, but as a test the other lang files were removed in this build to see if it doesn't like the russian translation for example.
**If `0.20.0` works for you and doesn't get deleted by defender, then don't update to this version.**
**Original build time:** 2024-07-24 16:47:19 +0300
MaLiLib-1.21-0.20.0
- Add better language translations infrastructure (should be backwards compatible)
- Update `zh_cn` language by s-yh-china
- Add `es_es` language from typo_mc
- Fix translations needing to contain a `\\n` for line breaks
**Original build time:** 2024-07-23 10:35:46 +0300
MaLiLib-1.12.2-0.60.1
**Original build time:** 2024-07-14 14:18:08 +0300
MaLiLib-1.20.6-0.19.0
- Various changes due to vanilla code changes. See the git commit history or diff against 1.20.4 if you want more details: https://github.com/sakura-ryoko/malilib/commits/pre-rewrite/fabric/1.20.6-DEV/
Note: This update is entirely the work of Sakura-Ryoko. I don't currently have any plans to update my mods anymore from the old "pre-rewrite" code for any MC versions after 1.20.4. And there is currently no ETA for if/when the "new code" might be ready, if ever.
**Original build time:** 2024-06-13 22:32:44 +0300
MaLiLib-1.20.4-0.18.4-alpha.1
- Note: This change will crash at least Litematica versions older than 0.17.3
Note: There is no need to update to this version (or 0.18.3) unless you use for example the Lunar launcher, where any malilib-based screen that has a text field will crash due to a method name conflict with Mojmap names in versions before 0.18.3.
**Original build time:** 2024-06-04 23:39:36 +0300
# TL;DR; Don't update to this version unless you use the Lunar launcher. Or if you have also updated Litematica to 0.17.3 or later (if you use it).
MaLiLib-1.20.4-0.18.3
- `GuiTextFieldGeneric`: Deprecate a few of the custom cursor position setter methods
- At least `setCursorPositionEnd()` conflicts with a Mojmap name, leading to a recursive call induced crash when running in a Mojmap names environment
- This change alone doesn't fix the issue entirely, but just prevents the crash, but then also possibly breaks the text field behavior with mods that still use these methods.
- If these methods are called, they won't do their task anymore, but instead they will just print a warning message for the user to update the dependent mods to a version that doesn't use these methods anymore.
- Notably you need to use Litematica 0.17.3+ if you use malilib 0.18.2+
- (0.18.2 was not released for the end users, but it did go to the maven, so I bumped the version again to 0.18.3 instead of overwriting 0.18.2 with the final release version)
### 0.18.3:
- Set an explicit MC version upper limit to 1.20.4, as this version won't work in 1.20.5 snapshots or later anymore
**Original build time:** 2024-06-02 23:25:46 +0300
MaLiLib-1.20.4-0.18.1
- This is required for MiniHUD `0.30.2+` and Tweakeroo `0.19.2+`
**Original build time:** 2024-02-10 20:08:48 UTC+2
MaLiLib-1.12.2-0.60.0-alpha.2
- This uses the Fabric mod loader, and the mappings from the Ornithe project
The rest of the change log since the `malilib-liteloader-1.12.2-0.54.0.litemod` build is to follow... and it will be long :pain:
**Original build time:** 2023-12-26 17:03:01 UTC+2
0.18.0
**Original build time:** 2023-12-09 20:42:17 UTC+2
0.18.0-beta.1
**Original build time:** 2023-10-31 22:10:01 UTC+2
0.17.0
- Change the network stuff to be more or less the way it was before the 1.20.2 update
**Original build time:** 2023-10-08 21:52:29 UTC+3
0.16.3
**Original build time:** 2023-10-03 19:47:34 UTC+3
0.16.2
- Fixes `ConfigColorList` falsely prompting resets for values that haven't changed
- Fix `keybindDebugging` message printing before the pressed keys being updated
- Add modifiers to the keybind debug messages
- Pass the action value to the mouse and keyboard handling methods
**Original build time:** 2023-08-26 13:53:59 UTC+3
0.16.1
- Add a workaround for the GUI text render leaks that returned in 1.20 again...
**Original build time:** 2023-07-03 22:24:09 UTC+3
0.16.0
- Update to MC 1.20 (by Hendrix-Shen)
- Fix some item and inventory util methods from the 1.20 update
- Update the color list config edit screen and widget to 1.20 render stuff
- Fix the text field focus on left click not working (1.20 stuff)
- Update to MC 1.20.1 (just version bumps)
**Original build time:** 2023-06-17 01:51:29 UTC+3
0.15.4
- Also add some missing annotations and remove an unused list
- Fix warning spam in console/log from unsupported key presses
- `GuiColorEditorHSV`: Remove the unused shader program (see GH #82)
- Partially fix some long-standing screen render bugs
- The hover text rendering is still buggy with pop-up screens,
but it's too much time and effort to hack fix that in the old code, as it's already properly handled in the new code base...
- Add a fallback multiplayer world name (non-Mixin hack fix for GH #107)
- Screens: Fix hover text rendering: It doesn't render on background screens now
**Original build time:** 2023-05-03 17:26:23 UTC+3
0.15.3
**Original build time:** 2023-04-12 20:28:46 UTC+3
0.15.2
- Update to MC 1.19.4 (by Tom Albrecht)
**Original build time:** 2023-03-18 20:19:28 UTC+2
0.14.1-pre.1
- Add `zh_cn` localization (by plusls)
- Improve the IME fix (by plusls)
- Some mods run some slow code in the constructor, and it would cause the time check to fail
**Original build time:** 2023-01-30 21:07:49 UTC+2
0.14.0
- Update to MC 1.19.3
**Original build time:**2022-12-08 22:20:49 UTC+2
0.54.0
- `HotkeyManagerImpl`: Replace the CME hack fix with a better fix
- Add a `sendChatMessage` Action, make `runCommand` Action prefix the arg with `/`
- Add input cancellation by hotkeys to the `Input Cancellation Debug` feature
**Original build time:** 2022-08-12 22:32:01 UTC+3
0.13.0
**Original build time:** 2022-08-07 16:39:26 UTC+3
0.53.0
- `StringListRendererWidget`: Rename one method. A few minor clean-ups elsewhere.
- Add `hashCode()` and `equals()` to a few "data" classes
- Info Overlays: Move width related setting serialization to the base widget
- `DropDownListWidget`: Fix the search string not being case-insensitive
- Info Overlay: Minor clean-up
- `DataListWidget`: Minor optimization to entry filtering
- `DataListEntrySelectionHandler`: Add a `setSelectedEntries()` method, rename old
- Add an option to print the stack trace when certain errors are logged/printed
- `BackupUtils`: Don't indicate failure if the source file doesn't exist yet
**Original build time:** 2022-08-02 20:19:03 UTC+3
0.13.0
**Original build time:** 2022-07-28 22:50:38 UTC+3
0.13.0
**Original build time:** 2022-07-11 21:41:00 UTC+3
0.52.1
- Fix two bugs in `FileUtils` caused by the recent refactoring
- `writeDataToFile()` was simply broken and failed to resolve any files
- One of the `createFile()` method variants had a copy paste typo and created a directory instead...
**Original build time:** 2022-06-23 21:15:50 UTC+3
0.52.0
- Add a `BooleanEditWidget` and a `SimpleBooleanStorageWithDefault` class
- `NbtUtils`: Add wrapper methods for the common things
- This helps in hiding some the mapping differences between mod loaders and mapping versions from the dependent mods/other classes
- More wrapping of stuff
- Even more wrapping of stuff
- Wrap the keyboard key definitions
- `BaseScreen`: Add a method to update all the widget states
- `BaseTripleNumberEditWidget`: Add a `setPosNoUpdate()` method
- Add a bunch of wrapper util methods for NBT, ItemStack and Entity stuff
- Add entity wrapping util methods. Move some wrapper methods/classes.
- `StringUtils.getWorldOrServerName()`: Bring in line with recent MC versions
- Remove the current screen parameter from the tab screen factory
- Remove the parent screen parameter from all(?) screen constructors
- Instead just use the setter method. This avoids the vanilla class being in a bunch of extra places, which saves a lot of diffs between mappings.
- Move an NBT util method from Litematica
- Rename the `InventoryView` methods
- Re-organize the Mixins
- Some `InventoryUtils` clean-up and wrapping and new util methods
- Remove the `Minecraft` parameter from the `ClientWorldChangeHandler` methods
- Make some of the event handlers prioritizable
- Namely `ClientTickHandler`, `ClientWorldChangeHandler` and `InitializationHandler`
- Remove the `Minecraft` parameter from the rendering hooks
- Move the `StyledTextUtils` class
- Add wrapper methods for the profiler calls (hmmm... :concern:)
- Move around some wrapping util classes and methods
- Add a `StringUtils.getModVersionString()` util method
- Add the missing `commentArguments` parameter to the config constructors
- Split the mouse event handler to separate click, scroll and move handlers
- Change all `File` class usages to `Path` API usages
- Change the JSON serialization/file writing to not overwrite symlinks
- Fix some potential NPEs in `Path` stuff and in selection listeners
**Original build time:** 2022-06-12 18:25:35 UTC+3
0.51.1
- `TextRenderer`: Add back the weird small u/v offset
- For some reason unicode font rendering is broken (looks bad) otherwise
- `TextRenderer`: Remove a couple of weird offsets
**Original build time:** 2022-05-07 13:07:12 UTC+3
0.51.0
- Maintain config handler registration order to have malilib read its cfg first
- Fix config files failing to get renamed to their final name (on Windows)
- Add an in-game error message for failing to read a config override packet
- `FileSelectorScreen`: Fix bad widget positioning, add missing error messages
- `DropDownListWidget`: Fix the search bar and the search tip text positioning
- They were able to go off-screen on the top, if the dropdown was near the top of the screen
- Add a value change listener to the cfg widget bg option to re-init the screen
- Use compact JSON format for macro actions and custom hotkeys exports
- Fix the value list and the edit button not updating properly
- The value list did not refresh properly when adding the first entry using the plus button in the header widget
- The `BaseValueListEditButton`'s display string did not refresh properly when clicking on the reset button
- `KeyBindConfigButton`: Allow clicking outside to un-focus
- The previous behavior didn't allow for example clicking on the empty config widget space on the right side to un-focus the button, as the button itself didn't allow clicking to un-focus, only the screen would handle that case
- Add the mod config screen switch dropdown to all the relevant config screens
- Add several simple common utility Actions
- `JsonUtils`: Log a warning in the console if `writeJsonToFile()` fails
- Add some new `NbtUtils` methods and a new utility method to `IntBoundingBox`
**Original build time:** 2022-04-12 19:29:08 UTC+3
0.50.1
- `BaseFileBrowserWidget`: Add a property for whether to show hidden files
- Fix an NPE during mod init by making malilib's init handler run first
- Add fallback support for loading `HotkeyedBoolean`s from primitive booleans
- Configs: Set the "old version" backup directory to the same current backup dir
**Original build time:** 2022-04-11 17:58:58 UTC+3
0.50.0
This is the first "post-rewrite" mod version, with almost 2 years worth of refactoring/rewriting, re-organizing, cleaning up code, rewriting everything to be more flexible, easier to use (for mods) with less need for boilerplate code and also adding various new systems and features.
This specific first build has some bugs that prevent it from actually being used, so check version `0.50.1` (or the later versions) instead.
Full change log to be added later, maybe, if it's even useful at all...
Basically everything changed...
And `git rev-list --count 22a29cf9..a823d2afa` says ~625 commits since the previous build `0.10.0-dev.31`.
**Original build time:** 2022-04-11 12:21:06 UTC+3
0.12.1
- `ConfigBooleanHotkeyed`: Add backwards compatibility with the old save format
- It's kinda late at this point for many people, but it can still help the users who haven't yet updated to `0.11.5` or later
**Original build time:** 2022-03-13 19:14:03 UTC+2
0.12.1-nopotionhudshift.1
**Original build time:** 2022-05-14 23:36:40 UTC+3
0.12.0
**Original build time:** 2022-03-03 23:56:08 UTC+2
0.11.8
- Color configs: Use a Color Indicator widget, which opens the color editor GUI
- `IntBoundigBox`: Fix `containsPos(long)` simply being broken
**Original build time:** 2022-03-03 23:14:27 UTC+2
0.11.7
**Original build time:** 2022-02-13 19:06:47 UTC+2
0.11.6
- Fix the `onRenderTooltipLast()` hook not getting called in the Creative search tab
**Original build time:** 2022-01-25 10:19:29 UTC+2
0.11.5
- Note: This fix does change the config data format for that config, so after this change all of those configs will revert to their default boolean value
- Only write the Advanced Keybind Settings to the config if they are different from the current default settings for a given config
- Fix the Shulker Box Preview rendering under REI
- 2nd attempt, now seems to work...
**Original build time:** 2022-01-23 03:33:31 UTC+2
0.11.4
- It served almost no purpose, and just has a higher risk of config corruption, maybe
**Original build time:** 2022-01-21 13:05:52 UTC+2
0.11.3
- Seems to fix a lighting leak for the Tweakeroo Hotbar Swap Overlay at least
- `LayerRange`: Fix `Set Here` not doing anything in the `Layer Range` mode
- A couple of additions to `LayerRange` and `IntBoundingBox`
- `PositionUtils`: Fix a derp bug in `setValue()` and `modifyValue()` for `BlockPos`
- Add a couple of new methods to `LayerRange` and `IntBoundingBox`
**Original build time:** 2022-01-14 15:49:17 UTC+2
0.11.1
**Original build time:** 2022-01-10 19:09:03 UTC+2
0.11.0
- This is just to alleviate the boolean + hotkey config mess in MiniHUD and Tweakeroo until the proper malilib rewrite from 1.12.2 is ready to be ported forward
- Change the GUI config wrapper stuff a bit, also support `ConfigHotkeyedBoolean`
- Use `Util.NIL_UUID` for action bar messages
- Maybe this gets rid of the lag spike on first toggle message after game start?
- Possibly fix the Shulker Box Preview rendering under REI etc.
- Update to MC 1.18.1 (just a version bump and one mapping change)
**Original build time:** 2022-01-10 05:41:32 UTC+2
0.11.0-pre.1
- Some list widget search changes, also search from the localized names of configs, see GH #66
- Allow localizing config names and comments
- Fix equipment overlay background rendering not applying the shader & matrix
- Some network packet handler improvements and small fixes
- Use the config display names for getting the name column width
- Fix Smoker and Blast Furnace not working in the inventory overlays
- Allow searching for modified configs by using the 'modified' keyword
- Fix getting the translated config name for the filter not using the newly added localization support
- Add a `MessageOutputType` class
- This is currently used by Litematica and Tweakeroo to redirect or disable some warning messages
**Original build time:** 2022-01-03 21:15:29 UTC+2
0.10.0-dev.26
- Fix some warnings in IDEA
**Original build time:** 2021-12-01 17:49:49 UTC+2
0.10.0-dev.26
- `WidgetListStringSelection`: Support searching/filtering (by Arnevdl29)
- Optimize assets (by K0RR)
- Lossless compression by `oxipng`
- Fix accidentally using Litematica's translation keys for a couple of buttons
- Fix a crash if resizing the window while on the string list edit screen
- Build script clean-up, update mappings, set a MC version dependency
- `JsonUtils`: Always read the file using the UTF-8 charset. Also small clean-up.
**Original build time:** 2021-10-22 12:41:27 UTC+3
0.10.0-dev.21+arne.8
**Original build time:** 2021-09-17 19:16:51 UTC+3
0.10.0-dev.25
**NOTE: The correct version is not available in the list of versions as of uploading this... so it's temporarily set to 1.17.1**
**Original build time:** 2021-09-09 20:42:53 UTC+3
0.10.0-dev.25
- Lossless compression by `oxipng`
- Update Yarn mappings
- Make the Shulker Box/inventory preview clamp to the screen area
- `JsonUtils`: Use a temporary file to write to, then rename it to the target file
- Color Editor: Add an alpha slider, fix the other values affecting the alpha
- Note: The main color selector rendering is still broken in 1.17+
- Add a debug message for input cancellation
- Remove the old weird hack of not cancelling modifier key inputs
- `WidgetDirectoryEntry`: Fix a render order issue with the background vs. contents
**Original build time:** 2021-09-06 23:12:36 UTC+3
0.10.0-dev.24
- `LayerRange`: Remove the hard-coded world bounds (and some other clean-up)
**Original build time:** 2021-07-13 10:20:13 UTC+3
0.10.0-dev.23
- Auto-organize all imports
- Fix text rendering scaling, if the background is disabled
**Original build time:** 2021-07-07 00:48:36 UTC+3
0.10.0-dev.21+arne.8
- This fixes the Easy Place mode hold option in Litematica, if the vanilla use key is bound to a keyboard key instead of a mouse key
**Original build time:** 2021-06-24 19:06:50 UTC+3
0.10.0-dev.22+beta.1
- Remove deprecated old Mod Menu directives from `fabric.mod.json` (by ColdIce1605)
- Add a mod icon (by DragonEggBedrockBreaking)
- Backport to MC 1.17 snapshot 21w14a
**Original build time:** 2021-06-24 02:54:46 UTC+3
0.10.0-dev.31
- Some `RenderObject*` changes for MiniHUD
- Fix a render state leak in the method that renders a model in a GUI
- Remove commented out testing code
## Last "pre-rewrite" version
**This is the last 1.12.2 LiteLoader version of the mod from the "pre-rewrite" code base. All later 1.12.2 builds (starting with version number `0.50.0`) are based on a largely refactored and rewritten and cleaned up code base, and they are totally and utterly incompatible with the "pre-rewrite" mod versions.**
**You can't mix any of the "pre-rewrite" and "post-rewrite"/"new code" mod versions!**
**Original build time:** 2021-06-14 02:13:10 UTC+3
0.10.0-dev.22+beta.1
**Original build time:** 2021-06-08 21:16:02 UTC+3
0.10.0-dev.21+beta.1
- See: https://github.com/ZacSharp/malilib-forge
- **Note:** This version has a bug that any hotkey changes you make will not take effect before you either log out of the world and back in, or use a portal to travel between dimensions (the configs get loaded and applied on joining any dimension)
**Original build time:** 2021-06-06 14:21:44 UTC+3
0.10.0-dev.22+beta.2
**Original build time:** 2021-06-03 14:45:09 UTC+3
0.10.0-dev.22+beta.1
**Original build time:** 2021-06-03 03:57:51 UTC+3
0.10.0-dev.22+beta.1
- Fix the block targeting overlay rendering
- Update Mod Menu to the new package and maven
- Update to MC 1.17 snapshot 21w18a
**Original build time:** 2021-06-02 00:55:48 UTC+3
0.10.0-dev.21+arne.7
**Original build time:** 2021-05-27 20:02:27 UTC+3
0.10.0-dev.21+arne.6
**Original build time:** 2021-05-03 01:16:40 UTC+3
0.10.0-dev.21+beta.1
- Clean up some imports
- Update to MC 1.17 snapshot 21w13a
**Original build time:** 2021-04-04 14:02:54 UTC+3
0.10.0-dev.23.nomixin
- You'll probably need to use this version if you have other mods that have the Mixin library already
- This is a workaround hack since I don't know what is the correct way to deal with the Mixin library in 1.12.2 under Forge... :pain:
**Original build time:** 2021-03-30 21:48:13 UTC+3
0.10.0-dev.21+beta.1
- One Yarn mapping change
- `LayerRange`: Change the world min and max y-coordinates (hard coded to `-64..383` for now)
**Original build time:** 2021-03-07 00:16:08 UTC+2
0.10.0-dev.21+arne.5
**Original build time:** 2021-02-17 01:05:05 UTC+2
0.10.0-dev.21+arne.4
**Original build time:** 2021-02-14 15:19:53 UTC+2
0.10.0-dev.21+beta.1
**Original build time:** 2021-02-04 18:41:29 UTC+2
0.10.0-dev.21+arne.3
**Original build time:** 2021-01-27 03:38:27 UTC+2
0.10.0-dev.21+beta.1
**Original build time:** 2020-12-18 02:59:04 UTC+2
0.10.0-dev.21+beta.1
**Original build time:** 2020-12-06 13:40:57 UTC+2
0.10.0-dev.21+beta.1
**Original build time:** 2020-11-26 02:31:12 UTC+2
0.10.0-dev.21+arne.2
- Fix the `getDimensionId()` util method (1.16 stuff again)
**Original build time:** 2020-11-14 19:16:30 UTC+2
0.10.0-dev.21+beta.2
- Update Yarn mappings
**Original build time:** 2020-11-10 16:36:16 UTC+2
0.10.0-dev.21+arne.1
**Original build time:** 2020-11-06 00:00:04 UTC+2
0.10.0-dev.21+arne.1
**Original build time:** 2020-11-03 18:37:26 UTC+3
0.10.0-dev.30
The main issue is that there are no matching builds of my other mods that work with this version. At least I'm pretty sure there is no MiniHUD version that would work with this version, I don't remember about Litematica and Tweakeroo. Item Scroller most likely would work.
I don't remember what commit it was made from, but if it's from the latest commit on the build date, then it has the following changes on top of the previous "normal" `0.10.0-dev.29` version:
- Add some new util methods to `RenderUtils`, `BlockUtils`, `MathUtils`, `PositionUtils`
- Some `RenderObject*` changes for MiniHUD
- Fix a render state leak in the method that renders a model in a GUI
- Remove commented out testing code
But on the other hand the file size is slightly smaller than `dev.29`, so this is probably not the case?
## This version is ONLY USEFUL for use with the special Litematica build that has the first somewhat operational but WIP cross-MC-version schematic conversion support: `litematica-1.12.2-0.0.0-dev.schematic_conversion_wip1_2020_06_02.litemod`.
Don't try to use this version with any other mods/versions!
**Original build time:** 2020-09-17 01:56:24 UTC+3
0.10.0-dev.21+arne.1
**Original build time:** 2020-09-12 22:10:07 UTC+3
0.10.0-dev.21+arne.2
**Original build time:** 2020-08-13 16:52:17 UTC+3
0.10.0-dev.21+arne.1
**Original build time:** 2020-08-12 03:08:04 UTC+3
0.10.0-dev.21+arne.2
**Original build time:** 2020-07-29 00:30:18 UTC+3
0.10.0-dev.21+arne.1
- Add a `ConfigString` change needed by the Watson mod port by Arnevdl29
- Fix text rendering in `drawTextPlate()`
- Fix configs not calling the value change callback when reset
- Add a Russian localization by `kyrtion`
**Original build time:** 2020-06-30 02:22:01 UTC+3
0.10.0-dev.21+beta.2
**Original build time:** 2020-06-25 01:55:53 UTC+3
0.10.0-dev.21+beta.1
- Change the render world last injection to fix rendering issues on Fabulous
**Original build time:** 2020-06-24 21:38:22 UTC+3
0.10.0-dev.21+arne.3
**Original build time:** 2020-06-18 16:04:45 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-06-10 22:06:43 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-06-08 22:33:26 UTC+3
0.10.0-dev.29
- Fix a big brain bug in `ConfigString#setValueFromString()` >\_>
- Fix/improve the block state properties fetcher to use the proper value names
- Add a `BlockUtils.getBlockStateTagFromString()` util method
- Add a `NBTUtils.getOrCreateCompound()` util method
**Original build time:** 2020-06-02 00:23:57 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-05-29 22:23:56 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-05-22 00:54:45 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-05-15 21:57:32 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-05-06 23:59:22 UTC+3
0.10.0-dev.21+beta.1
**Original build time:** 2020-04-30 00:29:54 UTC+3
0.10.0-dev.21+arne.2
**Original build time:** 2020-04-27 23:49:55 UTC+3
0.10.0-dev.28
- Add a `HitPosition` class and a `PlacementUtils` class
- `LayerRange`: Add a player-following option and GUI controls
- Also fixed (or more like properly implemented) the player-following functionality for the `Layer Range` mode, without it collapsing the range
- Keybind Settings: Add modification indicators and default values
- The Keybind Settings widget and the edit GUI now show modification indicators for the options that are at non-default values, and the default value is shown in the hover tooltip.
- The Keybind Settings widget icon now shows the status of all the options.
- The keybind button hover text now also includes the default hotkey value for any keybinds that are at non-default values
- Directory Navigation Widget: Allow shift clicking the directories to open them
- Add a `ConfigDirectory` config type, and a directory browser for it
- `WidgetFileBrowserBase` needed some small changes to accommodate this
- Add a helper util method to get a config GUI tab by name from a list
- `WidgetFileBrowserBase`: Allow creating new directories with `Ctrl + Shift + N`
- `WidgetDirectoryNavigation`: Allow overriding the name for the base directory
**Original build time:** 2020-04-27 01:35:43 UTC+3
0.10.0-dev.21+beta.1
- This snapshot introduced the `MatrixStack` that needs to be passed to most rendering methods now...
**Original build time:** 2020-04-26 02:33:00 UTC+3
0.10.0-dev.21+arne.1
- Move the `RenderWorldLast` hook injection point, again...
- Add proper profiler sections for the custom rendering hooks
- Add the camera position argument to some render util methods
- Add some `Direction` arrays to `PositionUtils`
- Add a `ConfigString` change needed by the Watson mod port by Arnevdl29
- Fix text rendering in `drawTextPlate()`
- Fix configs not calling the value change callback when reset
**Original build time:** 2020-04-24 01:37:32 UTC+3
0.10.0-dev.20+beta.1
**Original build time:** 2020-04-16 00:05:54 UTC+3
0.10.0-dev.20+arne.1
- Add proper profiler sections for the custom rendering hooks
**Original build time:** 2020-04-14 02:57:47 UTC+3
0.10.0-dev.20+beta.1
**Original build time:** 2020-04-12 21:52:19 UTC+3
0.10.0-dev.20+beta.1
- This replaces the older port that was done on top of the 1.13.2 Rift branch
**Original build time:** 2020-04-12 19:17:22 UTC+3
0.10.0-dev.20+beta.1
**Original build time:** 2020-04-08 20:21:28 UTC+3
0.10.0-dev.20+beta.1
**Original build time:** 2020-04-03 00:16:09 UTC+3
0.10.0-dev.27
- Fix issues with color codes when splitting text to multiple lines
- Add an accessor Mixin for the long array in `NBTTagLongArray`
- Add NBT stringifier helper classes
- These are meant for example for printing item NBT data when hovered
**Original build time:** 2020-04-01 23:56:12 UTC+3
0.10.0-dev.20+beta.1
**Original build time:** 2020-03-26 03:36:39 UTC+2
0.10.0-dev.20+arne.6
- Add a `ConfigString` change needed by the Watson mod port by Arnevdl29
**Original build time:** 2020-03-26 02:40:21 UTC+2
0.10.0-dev.26
- `PositionUtils`: Add a `getClosestSideDirection()` util method
- Text Field: Add missing key combos, plus some selection improvements
- Add step size functionality to `SliderCallbackDouble`
**Original build time:** 2020-03-22 00:50:14 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2020-03-19 20:13:06 UTC+2
0.10.0-dev.25
- Now the messages also work for keybinds without a callback defined
- Some `InventoryUtils` changes and additions for Litematica
- Add the `preRestockHand()` util method from Tweakeroo
- Change `IConfigNotifiable` and `IValueChangeCallback` and `IConfigOptionList[Entry]`
- `IConfigNotifiable` and `IValueChangeCallback` now provide the new and old values, instead of a reference the the config option
- `IConfigOptionListEntry` is now generic
- `ConfigTypeWrapper` lost the option list support, which wasn't used anywhere (at least in my mods) anyway. The entire `ConfigTypeWrapper` is stupid and messy and is going away entirely soon, after the custom config type support exist
- Fix `LayerRange#intersectsBox()` not checking the min vs. max coordinates
- Move the `RenderObject*` classes from MiniHUD, with some improvements
- Add a `toString()` method to `IntBoundingBox`
- Add a `PositionUtils.adjustPositionToSideOfEntity()` util method
- Add a `RayTraceUtils` class (moved from Litematica and refactored a bit)
**Original build time:** 2020-03-17 04:14:56 UTC+2
0.10.0-dev.19+arne.1
- Add the modifiers to some of the key input methods, improve the debug output
**Original build time:** 2020-03-14 22:14:05 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2020-03-12 00:18:19 UTC+2
0.10.0-dev.24
- `IntBoundingBox`: Override `equals()` and `hashCode()`
- Add a `DyeColorCode` enum
- Add a few methods to `MathUtils`
- `DataDump`: Also account the header/footer lengths
- Add some `NBTUtils` methods
- `WidgetDirectoryEntry`: Cache the icon in the constructor
- Add a few util methods to `BlockUtils`, `InfoUtils`, `NBTUtils`
- Various GUI changes and improvements and some class moves
- Added a `GuiIconBase` class, moved the malilib icon definitions there
- Added a `getIconForEntry()` method to the `IFileBrowserIconProvider` interface and made all the methods default methods
- Added a `getIconProvider()` method to the `WidgetFileBrowserBase` class
- Added/moved the file browser icons from Litematica to malilib
- Moved a few GUI util classes
- Add a `getEntryIconWidth()` method to the `IFileBrowserIconProvider` interface
- Add `FileRenamer` and `FileDeleter` classes
- `StringUtils`: Add a `stripExtensionIfMatches()` method
- Add icon support to the dropdown widget
- Use the getter methods for the list widget position on creation
- Add a `NBTUtils.removeBlockPosFromTag()` method
- Add a `MathUtils.roundUp()` method for longs
- `NBTUtils`: Add and modify/rename some methods
- Fix configs not calling the value change callback when reset
- Add a `Messages` class for common simple conditional strings
- Add a new blend util method
- `ButtonGeneric`: Some icon rendering alignment improvements
- Improve the hover text renderer positioning a bit
- `WidgetCheckBox`: Translate the hover strings
- Fix clearing the search bar with a right click didn't refresh the entries
- Some `WidgetListBase` and `WidgetFileBrowserBase` changes to allow custom sorting
- Add `toJson()` and `fromJson()` methods to `IntBoundingBox`
- Allow `Vec3i` argument in `JsonUtils.blockPosToJson()`
- Add a bit more margin to the dropdown widget
- `FileUtils`: Add a `getFileNameExtension()` util method
- Buttons: Allow outlines, right align improvements, width/rendering fixes
- Add a new render util method for batched rectangles/quads
- Add an accessor Mixin and util methods for inventory screens
- Improve the text plate render util method a bit
- Move the right align stuff and hover strings from `ButtonBase` to `WidgetBase`
- Add a new `WidgetRadioButton` widget
- Add a system for mods to indicate block placement position changes/overrides
- Add a convenience method `isHeld()` to the `IHotkey` interface
- `GuiTextFieldGeneric`: Add a `getHeight()` method
- `ButtonBase`: Add an option to disable the click sound
- Clean-up and small changes to widget hover text handling
- Add GUI debug options, plus some GUI refactoring and clean-up
- Make the file browser navigation widget actually navigatable
- To achieve this, the dropdown widget and the navigation widget and also a bunch of other GUI widget classes were refactored and improved and cleaned up
- `WidgetLabel` changes and clean-up and fixes for the previous commit's changes
- GUI z-level refactor. The GUI widgets are now stacked on z levels.
- Note: Some things are still broken, most notably the text fields on any popup GUIs currently render behind the popup GUI. This will be fixed when the text fields are added as malilib widgets in the coming commits.
- Some more Z-level handling improvements and clean-up
- Widget fixes and improvements and clean-up
- Add a `WidgetItemStack` for rendering item stacks
- Add `WidgetTextFieldBase` - a custom text field widget
- Most of the base functionality works, but it's currently missing the callback and the validator and the segmented/colorized rendering
- Change all the old text fields into the new text field widget
- Also some related changes and fixes to make (hopefully) everything work correctly
- Fix and clean up the popup GUIs/dialogs. Fix a `WidgetLabel` constructor.
- Refactor the `MessageRenderer`. Add text field error messages.
- The `MessageRenderer` is now used for the text field error messages
- Add integer and double text fields and use them where appropriate (there is no real difference, they just set the validator by default).
- Also fix an issue with setting the text field focus clearing the keyboard repeat status, depending on the order of the text fields
- Changed some of the widget methods a bit
- Prevent a crash from the translation method
- Add a util method for getting a color integer from a hue value
- Text Fields: Reverse the `Ctrl + (Alt +) arrow key` word skipping behavior
- Add new util methods to `Color4f`, `PositionUtils` and `RenderUtils`
- Refactor the GUIs to take advantage of the proper z-ordering for hovering
- Add a couple of `JsonUtils` methods
- `FileUtils.generateSimpleSafeFileName()`: Strip repeated and trailing underscores
**Original build time:** 2020-03-08 02:15:31 UTC+2
0.10.0-dev.24+pre.1
- `IntBoundingBox`: Override `equals()` and `hashCode()`
- Add a `DyeColorCode` enum
- Add a few methods to `MathUtils`
- `DataDump`: Also account the header/footer lengths
- Add some `NBTUtils` methods
- `WidgetDirectoryEntry`: Cache the icon in the constructor
- Add a few util methods to `BlockUtils`, `InfoUtils`, `NBTUtils`
- Various GUI changes and improvements and some class moves
- Added a `GuiIconBase` class, moved the malilib icon definitions there
- Added a `getIconForEntry()` method to the `IFileBrowserIconProvider` interface and made all the methods default methods
- Added a `getIconProvider()` method to the `WidgetFileBrowserBase` class
- Added/moved the file browser icons from Litematica to malilib
- Moved a few GUI util classes
- Add a `getEntryIconWidth()` method to the `IFileBrowserIconProvider` interface
- Add `FileRenamer` and `FileDeleter` classes
- `StringUtils`: Add a `stripExtensionIfMatches()` method
- Add icon support to the dropdown widget
- Use the getter methods for the list widget position on creation
- Add a `NBTUtils.removeBlockPosFromTag()` method
- Add a `MathUtils.roundUp()` method for longs
- `NBTUtils`: Add and modify/rename some methods
- Fix configs not calling the value change callback when reset
- Add a `Messages` class for common simple conditional strings
- Add a new blend util method
- `ButtonGeneric`: Some icon rendering alignment improvements
- Improve the hover text renderer positioning a bit
- `WidgetCheckBox`: Translate the hover strings
- Fix clearing the search bar with a right click didn't refresh the entries
- Some `WidgetListBase` and `WidgetFileBrowserBase` changes to allow custom sorting
- Add `toJson()` and `fromJson()` methods to `IntBoundingBox`
- Allow `Vec3i` argument in `JsonUtils.blockPosToJson()`
- Add a bit more margin to the dropdown widget
- `FileUtils`: Add a `getFileNameExtension()` util method
- Buttons: Allow outlines, right align improvements, width/rendering fixes
- Add a new render util method for batched rectangles/quads
- Add an accessor Mixin and util methods for inventory screens
- Improve the text plate render util method a bit
- Move the right align stuff and hover strings from `ButtonBase` to `WidgetBase`
- Add a new `WidgetRadioButton` widget
- Add a system for mods to indicate block placement position changes/overrides
- Add a convenience method `isHeld()` to the `IHotkey` interface
- `GuiTextFieldGeneric`: Add a `getHeight()` method
- `ButtonBase`: Add an option to disable the click sound
- Clean-up and small changes to widget hover text handling
- Add GUI debug options, plus some GUI refactoring and clean-up
- Make the file browser navigation widget actually navigatable
- To achieve this, the dropdown widget and the navigation widget and also a bunch of other GUI widget classes were refactored and improved and cleaned up
- `WidgetLabel` changes and clean-up and fixes for the previous commit's changes
- GUI z-level refactor. The GUI widgets are now stacked on z levels.
- Note: Some things are still broken, most notably the text fields on any popup GUIs currently render behind the popup GUI. This will be fixed when the text fields are added as malilib widgets in the coming commits.
- Some more Z-level handling improvements and clean-up
- Widget fixes and improvements and clean-up
- Add a `WidgetItemStack` for rendering item stacks
- Add `WidgetTextFieldBase` - a custom text field widget
- Most of the base functionality works, but it's currently missing the callback and the validator and the segmented/colorized rendering
- Change all the old text fields into the new text field widget
- Also some related changes and fixes to make (hopefully) everything work correctly
- Fix and clean up the popup GUIs/dialogs. Fix a `WidgetLabel` constructor.
- Refactor the `MessageRenderer`. Add text field error messages.
- The `MessageRenderer` is now used for the text field error messages
- Add integer and double text fields and use them where appropriate (there is no real difference, they just set the validator by default).
- Also fix an issue with setting the text field focus clearing the keyboard repeat status, depending on the order of the text fields
- Changed some of the widget methods a bit
- Prevent a crash from the translation method
- Add a util method for getting a color integer from a hue value
- Text Fields: Reverse the `Ctrl + (Alt +) arrow key` word skipping behavior
- Add new util methods to `Color4f`, `PositionUtils` and `RenderUtils`
- Refactor the GUIs to take advantage of the proper z-ordering for hovering
- Add a couple of `JsonUtils` methods
- `FileUtils.generateSimpleSafeFileName()`: Strip repeated and trailing underscores
**Original build time:** 2020-03-08 01:55:08 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2020-03-05 23:50:04 UTC+2
0.10.0-dev.20+beta.2
Merge the 1.15.2 branch, which brings the following changes:
- Change the `ItemStack` hover text color to match vanilla
- Move the `RenderWorldLast` hook injection point
- Fix the config resetting on dimension change
**Original build time:** 2020-02-29 03:49:13 UTC+2
0.10.0-dev.20+arne.2
- Add Mod Menu support
- Update the embedded Fabric resource loader version
- Update the mappings version
- Downgrade Gradle to 4.9, so it stops nuking the global cache
- `ClientPacketChannelHandler`: Support multiple handlers per channel
- Add a `ConfigString` change needed by the Watson mod port by Arnevdl29
- Fix the config resetting on dimension change
**Original build time:** 2020-02-06 23:13:03 UTC+2
0.10.0-dev.20+beta.2
**Original build time:** 2020-02-05 23:28:13 UTC+2
0.10.0-dev.20+beta.2
**Original build time:** 2020-02-01 01:33:02 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2020-01-21 20:11:54 UTC+2
0.10.0-dev.24+pre.1
- Create the config directory if it doesn't exist
- `ClientPacketChannelHandler`: Support multiple handlers per channel
- Hook up the client plugin channel handler
**Original build time:** 2019-12-31 01:18:53 UTC+2
0.10.0-dev.20+beta.2
- Slightly adjust the height offset in `RenderUtils.blockTargetingOverlayTranslations()`
**Original build time:** 2019-12-20 21:11:05 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2019-12-19 17:38:54 UTC+2
0.10.0-dev.23
This brings in the following changes since the previous Forge version `0.10.0-dev.21+pre2`:
- Move the `IConfigOptionListEntry` enums to their own package
- Add a `getModName()` method to the `IConfigHandler` interface
- Add `getModName()` and `setModName()` methods to the `IConfigBase` interface
- Add a util method to draw 9-sliced textures
- Add a `ToastRenderer` and a keybind display popup/toast
- Fix editing or resetting string list configs not calling `onValueChanged()`
- Fix the `WidgetToast` life time argument not being used
- Allow hotkeys without callbacks to cancel further processing when triggered
- Minor GUI fixes and clean-up
- Only show the keybind toast when an action triggered successfully (cancels further processing)
- Add a `setModName()` method to the `IKeybind` interface
- Add the `PacketPlitter` class from Carpet mod, needed for structure bounding boxes in recent Carpet mod versions
- `WidgetDropDown`: Fix the `setPosition()` method not moving the scroll bar
- Add an `EntityUtils` util class
- Don't tint the 1.13+ uncolored Shulker Box preview background
- `LayerRange`: Add a `copy()` method, plus some clean-up
- `LayerRange`: Fix the "closest limit to player" layer range movement being derpy
- `GuiBase#addLabel()`: Translate the passed label for the width calculation
- Add a new render util method, rename a couple of old methods
- `PositionUtils`: Add some new util methods
- Some small button refactoring/cleanup
- Add Int and Double value modifier button listeners
- Add a `WidgetColorIndicator`, and use that in the config GUIs
- Color Editor: Add an alpha slider, fix the other values affecting the alpha channel
- Small fix to Render Layer edit GUI positioning, plus change one button label
- Add a `ConfigOptionListEntryBase` class
- Modify the `KeyCallbackAdjustable` callback class to be a bit more flexible
- Move `WidgetScrollBar` to the widgets package
- Reset the color after drawing in some util methods
- Make the `JsonUtils.writejsonToFile()` method a bit more flexible
**Original build time:** 2019-12-17 19:47:03 UTC+2
0.10.0-dev.20+beta.3
**Original build time:** 2019-12-12 04:49:14 UTC+2
0.10.0-dev.20+beta.2
**Original build time:** 2019-12-12 01:22:49 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2019-12-11 01:05:01 UTC+2
0.10.0-dev.19+alpha.2
- Fix a mod init issue with dependent mods
- Fix the game overlay post render event firing on all event types
- Fix a GUI title rendering bug
- Fix the map rendering util method
- Change into using `TooltipEvent.Pre`, to get the mouse coordinates
**Original build time:** 2019-12-10 23:13:41 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2019-12-06 18:02:45 UTC+2
0.10.0-dev.20+beta.1
**Original build time:** 2019-12-05 00:06:21 UTC+2
0.10.0-dev.20+beta.3
**Original build time:** 2019-11-30 00:40:31 UTC+2
0.10.0-dev.20+beta.2
- Update to Loom 0.2.6, Yarn v2 stuff and Gradle 6.0.1
- Fix the Shulker Box or other inventory contents stack size rendering
- Change all `GlStateManager` calls to `RenderSystem` calls
**Original build time:** 2019-11-29 01:02:33 UTC+2
0.10.0-dev.20+alpha.1
**Original build time:** 2019-11-21 23:52:02 UTC+2
0.10.0-dev.20+alpha.1
**Original build time:** 2019-11-21 22:02:13 UTC+2
0.10.0-dev.23
- Add the `PacketPlitter` class from Carpet mod, needed for structure bounding boxes in recent Carpet mod versions
- `WidgetDropDown`: Fix the `setPosition()` method not moving the scroll bar
- Add an `EntityUtils` util class
- Don't tint the 1.13+ uncolored Shulker Box preview background
- `LayerRange`: Add a `copy()` method, plus some clean-up
- `LayerRange`: Fix the "closest limit to player" layer range movement being derpy
- `GuiBase#addLabel()`: Translate the passed label for the width calculation
- Add a new render util method, rename a couple of old methods
- `PositionUtils`: Add some new util methods
- Some small button refactoring/cleanup
- Add Int and Double value modifier button listeners
- Add a `WidgetColorIndicator`, and use that in the config GUIs
- Color Editor: Add an alpha slider, fix the other values affecting the alpha channel
- Small fix to Render Layer edit GUI positioning, plus change one button label
- Add a `ConfigOptionListEntryBase` class
- Modify the `KeyCallbackAdjustable` callback class to be a bit more flexible
- Move `WidgetScrollBar` to the widgets package
- Reset the color after drawing in some util methods
- Make the `JsonUtils.writejsonToFile()` method a bit more flexible
**Original build time:** 2019-11-02 22:32:41 UTC+2
0.10.0-dev.23
- Add the `PacketPlitter` class from Carpet mod, needed for structure bounding boxes in recent Carpet mod versions
- `WidgetDropDown`: Fix the `setPosition()` method not moving the scroll bar
- Add an `EntityUtils` util class
- Don't tint the 1.13+ uncolored Shulker Box preview background
- `LayerRange`: Add a `copy()` method, plus some clean-up
- `LayerRange`: Fix the "closest limit to player" layer range movement being derpy
- `GuiBase#addLabel()`: Translate the passed label for the width calculation
- Add a new render util method, rename a couple of old methods
- `PositionUtils`: Add some new util methods
- Some small button refactoring/cleanup
- Add Int and Double value modifier button listeners
- Add a `WidgetColorIndicator`, and use that in the config GUIs
- Color Editor: Add an alpha slider, fix the other values affecting the alpha channel
- Small fix to Render Layer edit GUI positioning, plus change one button label
- Add a `ConfigOptionListEntryBase` class
- Modify the `KeyCallbackAdjustable` callback class to be a bit more flexible
- Move `WidgetScrollBar` to the widgets package
- Reset the color after drawing in some util methods
- Make the `JsonUtils.writejsonToFile()` method a bit more flexible
**Original build time:** 2019-11-02 22:32:09 UTC+2
0.10.0-dev.20+alpha.1
- Fix GUI textures not rendering with blending enabled
**Original build time:** 2019-10-30 21:04:29 UTC+2
0.10.0-dev.19+alpha.1
- **Note:** Some things don't yet work correctly before the Mixin library updates with support for Forge 1.13+
- For example some things that would normally happen on world load or unload in the dependent mods may be broken
**Original build time:** 2019-10-23 01:11:19 UTC+3
0.10.0-dev.20+alpha.1
- Add a new argument to `RenderEventHandler#onRenderWorldLast()`, due to vanilla rendering changes
**Original build time:** 2019-10-11 22:54:42 UTC+3
0.10.0-dev.20+alpha.1
**Original build time:** 2019-10-02 22:49:59 UTC+3
0.10.0-dev.20+alpha.1
- The RenderUtils methods for rendering models in GUIs are non-functional atm, due to rendering system refactors in vanilla, that I didn't yet figure out how to update to.
**Original build time:** 2019-10-02 21:05:37 UTC+3
0.10.0-dev.20
**Original build time:** 2019-10-01 22:31:59 UTC+3
0.10.0-dev.22
- Add a `getModName()` method to the `IConfigHandler` interface
- Add `getModName()` and `setModName()` methods to the `IConfigBase` interface
- Add a util method to draw 9-sliced textures
- Add a `ToastRenderer` and a keybind display popup/toast
- Fix editing or resetting string list configs not calling `onValueChanged()`
- Fix the `WidgetToast` life time argument not being used
- Allow hotkeys without callbacks to cancel further processing when triggered
- Minor GUI fixes and clean-up
- Only show the keybind toast when an action triggered successfully (cancels further processing)
**Original build time:** 2019-09-17 18:14:32 UTC+3
0.10.0-dev.22
- Add a `getModName()` method to the `IConfigHandler` interface
- Add `getModName()` and `setModName()` methods to the `IConfigBase` interface
- Add a util method to draw 9-sliced textures
- Add a `ToastRenderer` and a keybind display popup/toast
- Fix editing or resetting string list configs not calling `onValueChanged()`
- Fix the `WidgetToast` life time argument not being used
- Allow hotkeys without callbacks to cancel further processing when triggered
- Minor GUI fixes and clean-up
- Only show the keybind toast when an action triggered successfully (cancels further processing)
**Original build time:** 2019-09-17 18:14:05 UTC+3
0.10.0-dev.20
**Original build time:** 2019-09-13 20:41:15 UTC+3
0.10.0-dev.20
- Add modmenu lib detection support
**Original build time:** 2019-09-07 23:23:05 UTC+3
0.10.0-dev.21
- Potentially make the message rendering a bit more thread safe
- Move a stack to string util method from Item Scroller
- Add a helper `getFloatValue()` default method to `IConfigDouble`
- Refactor the config saving/loading system. Move around a bunch of classes.
- Small refactor to hotkey registration things. Improve the `All Hotkeys` list.
- Add the 'All registered hotkeys' tab to the in-game config GUI as well
- Clean up the config dirty checking a bit. This also fixes it for color configs.
- Scroll Bar widget: Add up/down arrows, change into a widget
- Add an "in-game" message consumer
- Fix the `LayerRange` move having operation order issues
- `LayerRange`: Fix a rounding issue in the `setToPosition()` method
- Add a util method to check if a filename contains invalid characters
- Add an `InfoType` enum and a util method to print messages using that type
**Original build time:** 2019-07-22 21:53:53 UTC+3
0.10.0-dev.21
- Potentially make the message rendering a bit more thread safe
- Move a stack to string util method from Item Scroller
- Add a helper `getFloatValue()` default method to `IConfigDouble`
- Refactor the config saving/loading system. Move around a bunch of classes.
- Small refactor to hotkey registration things. Improve the `All Hotkeys` list.
- Add the 'All registered hotkeys' tab to the in-game config GUI as well
- Clean up the config dirty checking a bit. This also fixes it for color configs.
- Scroll Bar widget: Add up/down arrows, change into a widget
- Add an "in-game" message consumer
- Fix the `LayerRange` move having operation order issues
- `LayerRange`: Fix a rounding issue in the `setToPosition()` method
- Add a util method to check if a filename contains invalid characters
- Add an `InfoType` enum and a util method to print messages using that type
**Original build time:** 2019-07-22 21:52:49 UTC+3
0.10.0-dev.20
- Add a config to use a common `realms` name by default for any Realms server's per-world name
**Original build time:** 2019-07-20 18:54:26 UTC+3
0.10.0-dev.21.pre2
**Original build time:** 2019-07-20 02:00:38 UTC+3
0.10.0-dev.21.pre1
That means the following changes/commits on top of the `0.10.0-dev.19` LiteLoader versions:
- Exclude the Gimp image files from the built mod
- Potentially make the message rendering a bit more thread safe
- Move a stack to string util method from Item Scroller
- Add a helper `getFloatValue()` default method to `IConfigDouble`
- Refactor the config saving/loading system. Move around a bunch of classes.
- Small refactor to hotkey registration things. Improve the `All Hotkeys` list.
- Add the 'All registered hotkeys' tab to the in-game config GUI as well
- Clean up the config dirty checking a bit. This also fixes it for color configs.
- Scroll Bar widget: Add up/down arrows, change into a widget
- Add an "in-game" message consumer
- Fix the `LayerRange` move having operation order issues
- `LayerRange`: Fix a rounding issue in the `setToPosition()` method
- Add a util method to check if a filename contains invalid characters
- Add an `InfoType` enum and a util method to print messages using that type
**Original build time:** 2019-07-19 21:27:14 UTC+3
0.10.0-dev.19
**Original build time:** 2019-07-06 21:34:51 UTC+3
0.10.0-dev.20
**Original build time:** 2019-06-26 03:46:25 UTC+3
0.10.0-dev.20
- Embed the Fabric Resource Loader module of the Fabric API in the malilib jar
- Fabric API is thus no longer required for malilib (or my other client mods that depend on malilib)
- Add a plugin channel handler system and a `PacketSplitter` class (from QuickCarpet)
- Implement `hashCode()` and `equals()` in `IntBoundingBox`
Disable/comment out the server-side `PacketSplitter` receive code
- World load handler fixes
- Fixes data loading/saving not working on Realms
**Original build time:** 2019-06-24 22:09:34 UTC+3
0.10.0-dev.19
And additionally:
- Update some build script and metadata things
- Wrap a few vanilla GUI methods
- Add a util method to get an inventory from the world
- Fix the World Load handlers not getting called for disconnecting
- Fix using the wrong method in `NBTUtils.readEntityPositionFromTag()`
- Fix the GUI titles being derped
**Original build time:** 2019-06-13 13:31:05 UTC+3
0.10.0-dev.19
- Small improvements to `GuiBase#addWidget()`/`addLabel()` and `WidgetLabel`
**Original build time:** 2019-06-11 16:53:56 UTC+3
0.10.0-dev.19
**Original build time:** 2019-06-11 16:24:52 UTC+3
0.10.0-dev.19
**Original build time:** 2019-06-11 16:22:51 UTC+3
0.10.0-dev.18
- `RenderEventHandler`: Only expose the interface type
- Clean up/better encapsulate the keybind/input handler stuff
- Add a new util method for getting a per-server or world file name
- Improvements/clean-up and better encapsulation for the world change handler
- `ConfigManager`: Add a load method to the interface. Hide the internal methods.
- Move the internal classes to the main package
- Add the `InitializationHandler` from the 1.13+ version
- Fix/clean up how hotkey configs are saved
- Fix the hotkey + boolean config reading/writing util methods
- Add a `ConfigBooleanHotkeyed` config option class
- Adjust the `splitCamelCase()` util method to upper case the first letter
- Add an `ActiveMode` option list/enum
- Wrap more vanilla method calls, and some related GUI clean-up
- A little bit more wrapping and clean-up
- Even more GUI stuff wrapping...
- Adjust a couple of directory navigation widget rendering things
- Add an `IntBoundingBox`, switch to using that instead of the vanilla class
- Fix the mod version number not getting replaced/set
**Original build time:** 2019-06-10 01:41:17 UTC+3
0.10.0-dev.18
- `RenderEventHandler`: Only expose the interface type
- Clean up/better encapsulate the keybind/input handler stuff
- Add a new util method for getting a per-server or world file name
- Improvements/clean-up and better encapsulation for the world change handler
- `ConfigManager`: Add a load method to the interface. Hide the internal methods.
- Move the internal classes to the main package
- Add the `InitializationHandler` from the 1.13+ version
- Fix/clean up how hotkey configs are saved
- Fix the hotkey + boolean config reading/writing util methods
- Add a `ConfigBooleanHotkeyed` config option class
- Adjust the `splitCamelCase()` util method to upper case the first letter
- Add an `ActiveMode` option list/enum
- Wrap more vanilla method calls, and some related GUI clean-up
- A little bit more wrapping and clean-up
- Even more GUI stuff wrapping...
- Adjust a couple of directory navigation widget rendering things
- Add an `IntBoundingBox`, switch to using that instead of the vanilla class
- Fix the mod version number not getting replaced/set
**Original build time:** 2019-06-10 01:40:37 UTC+3
0.10.0-dev.18
- Adjust a couple of directory navigation widget rendering things
- Add an `IntBoundingBox`, switch to using that instead of the vanilla class
**Original build time:** 2019-06-09 19:49:22 UTC+3
0.10.0-dev.17
- So it should contain everything from the `liteloader_1.12.2` branch up to commit `9776e533`, plus the following commits:
## `liteloader_1.12.2` branch commits:
- A bunch of GUI clean-up and moving stuff around to help with the 1.13+ ports
- `RenderEventHandler`: Only expose the interface type
- Clean up/better encapsulate the keybind/input handler stuff
- Add a new util method for getting a per-server or world file name
- Improvements/clean-up and better encapsulation for the world change handler
- `ConfigManager`: Add a load method to the interface. Hide the internal methods.
- Move the internal classes to the main package
- Add the `InitializationHandler` from the 1.13+ version
- Fix/clean up how hotkey configs are saved
- Fix the hotkey + boolean config reading/writing util methods
- Add a `ConfigBooleanHotkeyed` config option class
- Adjust the `splitCamelCase()` util method to upper case the first letter
- Add an `ActiveMode` option list/enum
- Wrap more vanilla method calls, and some related GUI clean-up
- A little bit more wrapping and clean-up
## `rift_1.13.2` branch commits
- Add a workaround for GUI open hotkey key presses leaking into GUI elements
- Change how `KeyBinding` inputs are retrieved. Allows removing one Mixin.
- Fix some key input handling issues in the GUIs
- Fix crashes in block and item restrictions with invalid names
- Add a missing localization entry
**Original build time:** 2019-06-09 01:32:39 UTC+3
0.10.0-dev.16
- Don't consider longer keybinds as matches. Fix keybind search.
- Add hover texts to the directory navigation widget buttons
- Add a getter method for the current (filtered) contents of list GUIs
- Add a method for getting the config display name for the config GUIs
- Add a new hotkey util method `hotkeyMatchesKeybind()`
- Refactor some GUI/button stuff
- `ButtonBase` doesn't extend the vanilla `GuiButton` anymore, but instead it now extends `WidgetBase`
- The button listener interface isn't generic anymore
- The buttons are now mostly handled as widgets
- Fix the `LayerRange` update/dirty marking logic
**Original build time:** 2019-05-28 20:14:53 UTC+3
0.10.0-dev.16
- Don't consider longer keybinds as matches. Fix keybind search.
- Add hover texts to the directory navigation widget buttons
- Add a getter method for the current (filtered) contents of list GUIs
- Add a method for getting the config display name for the config GUIs
- Add a new hotkey util method `hotkeyMatchesKeybind()`
- Refactor some GUI/button stuff
- `ButtonBase` doesn't extend the vanilla `GuiButton` anymore, but instead it now extends `WidgetBase`
- The button listener interface isn't generic anymore
- The buttons are now mostly handled as widgets
- Fix the `LayerRange` update/dirty marking logic
**Original build time:** 2019-05-28 20:14:16 UTC+3
0.9.6
- Mostly just mappings changes, plus one method change in `WorldUtils.getBestWorld()`
**Original build time:** 2019-05-27 16:43:17 UTC+3
0.9.5
- Add a new `onKeyInput()` method which takes in all the arguments available in 1.13
- Add an in-game config GUI
- Move the internal config and reference classes to the main package
- Remove the unused `GuiScreen` Mixin
- Fix an outdated JavaDoc
- Update the build scripts
**Original build time:** 2019-05-19 00:26:02 UTC+3
0.10.0-dev.15
- Add a `KeyCallbackAdjustable` hotkey callback class
- Allow localizing config pretty names and comments. Localize the Advanced Keybind Settings
- Allow OR'ing search strings with a pipe character (`|`), some related refactoring
- Move some render util methods from MiniHUD
**Original build time:** 2019-05-04 04:37:24 UTC+3
0.10.0-dev.15
- Add a `KeyCallbackAdjustable` hotkey callback class
- Allow localizing config pretty names and comments. Localize the Advanced Keybind Settings
- Allow OR'ing search strings with a pipe character (`|`), some related refactoring
- Move some render util methods from MiniHUD
**Original build time:** 2019-05-04 04:36:54 UTC+3
0.10.0-dev.14
**Original build time:** 2019-04-30 06:15:08 UTC+3
0.10.0-dev.14
**Original build time:** 2019-04-30 06:14:08 UTC+3
0.10.0-dev.13
- Add a `renderStackTooltip()` util method
- Add a `GuiScrollBar` class and use that in the list GUIs instead of the one from LiteLoader
**Original build time:** 2019-04-26 01:09:49 UTC+3
0.10.0-dev.13
- Add a `renderStackTooltip()` util method
- Add a `GuiScrollBar` class and use that in the list GUIs instead of the one from LiteLoader
**Original build time:** 2019-04-26 01:11:13 UTC+3
0.9.5
- Remove left-over 1.12 code (which caused a bug of some keys getting stuck)
- Fix the inventory overlay shield slot background sprite
- Add a new `onKeyInput` method which takes in all the arguments available in 1.13
- Update to Minecraft 1.14 official release
- Add an in-game config GUI. Move the internal classes to the main package.
- Downgrade the Fabric API to a stable version
- Update/fix/improve the build script
- Move the internal reference class (`MaLiLibReference`) to the main package
- Add a util method to get the mod version string by a mod id
**Original build time:** 2019-04-24 23:27:51 UTC+3
0.9.3
- Port the Rift `1.13.2-0.9.3` version to the Fabric mod loader, for MC 1.14 snapshot 19w03c
**Original build time:** 2019-01-27 07:55:30 UTC+2
0.10.0-dev.12
- Don't require shift for Shulker Box preview, allowing mods to decide
**Original build time:** 2019-04-12 22:45:29 UTC+3
0.10.0-dev.11
- `LayerRange`: Make the `Set Here` button and hotkey obey the Hotkey checkmarks
- Add a new overlay render method, change args of `renderBlockTargetingOverlay()`
- Fix a divide by 0 crash in the slider widget/callback
- Add a getter for the scrollbar to the list widget
**Original build time:** 2019-03-31 04:47:35 UTC+3
0.10.0-dev.11
- `LayerRange`: Make the `Set Here` button and hotkey obey the Hotkey checkmarks
- Add a new overlay render method, change args of `renderBlockTargetingOverlay()`
- Fix a divide by 0 crash in the slider widget/callback
- Add a getter for the scrollbar to the list widget
**Original build time:** 2019-04-02 22:29:38 UTC+3
0.10.0-dev.10
- `GuiDialogBase`: Call `setPosition()` from `centerOnScreen()`
- Add a Color Editor GUI
- Add some new methods to `LayerRange`
**Original build time:** 2019-03-12 02:13:09 UTC+2
0.10.0-dev.10
- `GuiDialogBase`: Call `setPosition()` from `centerOnScreen()`
- Add a Color Editor GUI
- Add some new methods to `LayerRange`
**Original build time:** 2019-03-12 02:12:45 UTC+2
0.10.0-dev.9
- `LayerRange`: Add a method to get the display value of the current layer(s)
- `LayerRange`: Update the forgotten localizations
- Add util methods to render models in GUIs
- Add a null check for Shulker Box background tint color for 1.13+
**Original build time:** 2019-03-05 01:36:19 UTC+2
0.10.0-dev.9
- `LayerRange`: Add a method to get the display value of the current layer(s)
- `LayerRange`: Update the forgotten localizations
- Add util methods to render models in GUIs
- Add a null check for Shulker Box background tint color for 1.13+
**Original build time:** 2019-03-05 01:35:52 UTC+2
0.10.0-dev.8
- `GuiConfirmAction` and `GuiTextInput`: proxy messages and task completions to parent
- Improve hover text positioning so that it avoids going off screen
- Allow setting the z-level of the search bar widget/text field
**Original build time:** 2019-03-03 21:52:17 UTC+2
0.10.0-dev.8
- `GuiConfirmAction` and `GuiTextInput`: proxy messages and task completions to parent
- Improve hover text positioning so that it avoids going off screen
- Allow setting the z-level of the search bar widget/text field
**Original build time:** 2019-03-03 21:51:39 UTC+2
0.10.0-dev.7
- `GuiTextInput`: Allow `GuiScreen` parents instead of only `GuiBase`
- `GuiBase`: Allow removing widgets
- File Browser: Reset the scrollbar position when switching directories
- Add and rename some info message util methods
- `ButtonBase`: Allow requiring holding Shift for actual hover info
- Hotkey buttons: require shift for overlap info, show the overlap's keys
- Add Item and Block usage restriction helper classes
- Make `IValueChangeCallback` generic
- Add a setter for the selection listener in `WidgetListBase`
**Original build time:** 2019-03-03 01:56:45 UTC+2
0.10.0-dev.7
- Fix which keys will open the search bar
- Various GUI fixes and changes related to focused elements and text fields
- File Browsers: Don't try to strip "file name extension" from directories
- Fix/clean up some of the button click sound handling
- Implement slider configs for integer and double type config options
- Add a search bar to the config GUIs
- Allow scrolling over buttons to emulate left/right clicks
- Add/fix/adjust some render util methods
- Add util/wrapper methods for getting the config and Minecraft game directories
- Add a new message util method, and move another to a different util class
- Fix GUI message line width calculation not considering the spaces
- Don't reset the scrollbar position in file browsers on refresh
- Render the directory entry background color behind the icons too
- Add a Create Directory button to the directory navigation widget
- Add a client tick handler
- Add an in-game message renderer
- Add/change some GUI/in-game message methods
- Add a confirmation dialog/GUI
- Fix an infinite recursion due to a forgotten method signature change
- Add a tooltip last render hook
- Move Shulker Box and Map preview code from Tweakeroo
- Change `Esc` to clear the keybind only when it's the first key pressed
- Implement keybind conflict indication
- Add support for keybind searching in the config GUIs
- Add `Vec3d` methods to `JsonUtils`
- GUI clean-up: Remove the unused id argument from buttons, add an OnOff button
- Move the LayerRange stuff from Litematica, add a base edit GUI for it
- Add a `RenderLayerEditBase` GUI and some related additions/changes
- Add client world change hooks
- Add a util method to get the dimension ID
- Add double and float `JsonUtils` methods
- Add a drop down widget
- Add `BlockSnap` and `Quadrant` enums
- Add an optional prefix to option list button
- Add `JsonUtils` methods for longs
- `GuiTextInput`: Allow `GuiScreen` parents instead of only `GuiBase`
- `GuiBase`: Allow removing widgets
- File Browser: Reset the scrollbar position when switching directories
- Add and rename some info message util methods
- `ButtonBase`: Allow requiring holding Shift for actual hover info
- Hotkey buttons: require shift for overlap info, show the overlap's keys
- Add Item and Block usage restriction helper classes
- Make `IValueChangeCallback` generic
- Add a setter for the selection listener in `WidgetListBase`
**Original build time:** 2019-03-03 01:56:16 UTC+2
0.10.0-dev.6
- Add an optional prefix to option list button
**Original build time:** 2019-02-24 02:13:10 UTC+2
0.10.0-dev.5
- Fix which keys will open the search bar
- Various GUI fixes and changes related to focused elements and text fields
- File Browsers: Don't try to strip "file name extension" from directories
- Fix/clean up some of the button click sound handling
- Implement slider configs for integer and double type config options
- Add a search bar to the config GUIs
- Allow scrolling over buttons to emulate left/right clicks
- Add/fix/adjust some render util methods
- Add util/wrapper methods for getting the config and Minecraft game directories
- Add a new message util method, and move another to a different util class
- Fix GUI message line width calculation not considering the spaces
- Don't reset the scrollbar position in file browsers on refresh
- Render the directory entry background color behind the icons too
- Add a Create Directory button to the directory navigation widget
- Add a client tick handler
- Add an in-game message renderer
- Add/change some GUI/in-game message methods
- Add a confirmation dialog/GUI
- Fix an infinite recursion due to a forgotten method signature change
- Add a tooltip last render hook
- Move Shulker Box and Map preview code from Tweakeroo
- Change `Esc` to clear the keybind only when it's the first key pressed
- Implement keybind conflict indication
- Add support for keybind searching in the config GUIs
- Add `Vec3d` methods to `JsonUtils`
- GUI clean-up: Remove the unused id argument from buttons, add an OnOff button
- Move the LayerRange stuff from Litematica, add a base edit GUI for it
- Add a `RenderLayerEditBase` GUI and some related additions/changes
- Add client world change hooks
- Add a util method to get the dimension ID
- Add double and float `JsonUtils` methods
- Add a drop down widget
**Original build time:** 2019-02-22 22:36:59 UTC+2
0.10.0-dev.4
- `GuiListBase`: Support null list widgets
- A few misc GUI related changes/improvements for Litematica
- Some minor GUI fixes/adjustments, and moved a couple of bits to Litematica
- Fix a crash in `FileUtils.getJoinedTrailingPathElements()` with negative max size
- Add a search bar to the file browser, and some related refactoring
- Don't allow navigating up past the root directory
- Allow opening and closing the search bar by typing and escape
- Add a couple of GUI bits for Litematica. Fix a localization key typo.
- Fix all text fields now eating the esc key
- Some `WidgetListBase` etc. refactoring to better support search bars
- Add a method to `KeybindMulti` to get the `triggeredCount`
- Move the `HitPart` stuff from Tweakeroo
- Add a util method for rendering `StructureBoundingBox`s
- Add new util methods for getting world/server name, config dir, and reading NBT
**Original build time:** 2019-02-05 13:48:29 UTC+2
0.10.0-dev.4
- `GuiListBase`: Support null list widgets
- A few misc GUI related changes/improvements for Litematica
- Some minor GUI fixes/adjustments, and moved a couple of bits to Litematica
- Fix a crash in `FileUtils.getJoinedTrailingPathElements()` with negative max size
- Add a search bar to the file browser, and some related refactoring
- Don't allow navigating up past the root directory
- Allow opening and closing the search bar by typing and escape
- Add a couple of GUI bits for Litematica. Fix a localization key typo.
- Fix all text fields now eating the esc key
- Some `WidgetListBase` etc. refactoring to better support search bars
- Add a method to `KeybindMulti` to get the `triggeredCount`
- Move the `HitPart` stuff from Tweakeroo
- Add a util method for rendering `StructureBoundingBox`s
- Add new util methods for getting world/server name, config dir, and reading NBT
**Original build time:** 2019-02-05 13:27:26 UTC+2
0.10.0-dev.3
- Add support for multiple selections in GUI lists
- Add a String selection GUI
- Add a util method to get the first `PropertyDirection` from an `IBlockState`
- Remove the input handling cancellation hack, replace it with a smaller hack
- Add a `matches()` method to `IKeybind` to check against vanilla keybinds
- Change/fix key handling with list GUIs and text fields
- Change the `FileUtils.generateSafeFileName()` util method
- Add a new `KeybindSettings` value to allow empty keybinds
- Support localizations in GUI labels
- Fix/improve button hover text rendering/localization
**Original build time:** 2019-01-17 23:08:16 UTC+2
0.10.0-dev.3
- Add support for multiple selections in GUI lists
- Add a String selection GUI
- Add a util method to get the first `PropertyDirection` from an `IBlockState`
- Remove the input handling cancellation hack, replace it with a smaller hack
- Add a `matches()` method to `IKeybind` to check against vanilla keybinds
- Change/fix key handling with list GUIs and text fields
- Change the `FileUtils.generateSafeFileName()` util method
- Add a new `KeybindSettings` value to allow empty keybinds
- Support localizations in GUI labels
- Fix/improve button hover text rendering/localization
**Original build time:** 2019-01-17 23:07:09 UTC+2
0.10.0-dev.2
**Original build time:** 2018-12-28 16:10:42 UTC+2
0.10.0-dev.2
**Original build time:** 2018-12-26 07:14:29 UTC+2
0.10.0-dev.1
- Fix the list header sort arrow not rendering (in 1.13)
- Refactor some GUI list stuff, to fix list selections with headers being offset
**Original build time:** 2018-12-24 17:15:16 UTC+2
0.9.4
**Original build time:** 2018-12-27 03:41:49 UTC+2
0.9.3
- Various GUI and keybind changes to adapt to vanilla changes and LWJGL 3
**Original build time:** 2018-12-12 22:02:10 UTC+2
0.9.3
- Minor HUD rendering offset fixes
**Original build time:** 2018-12-12 15:16:14 UTC+2
0.9.3
- Minor HUD rendering offset fixes
**Original build time:** 2018-12-12 15:18:03 UTC+2
0.9.2
- Add the `DataDump` class from TellMe
- Small refactoring to the `renderText()` util method, split to other util methods
**Original build time:** 2018-12-12 02:10:02 UTC+2
0.9.2
- Add the `DataDump` class from TellMe
- Small refactoring to the `renderText()` util method, split to other util methods
**Original build time:** 2018-12-12 02:09:38 UTC+2
0.9.1
- Change some GUI render orders to fix some hover texts rendering behind stuff
**Original build time:** 2018-12-08 22:54:33 UTC+2
0.9.1
- Change some GUI render orders to fix some hover texts rendering behind stuff
**Original build time:** 2018-12-08 22:53:53 UTC+2
0.9.0
- Add a feedback-sensitive version of `GuiTextInput`
- Add String list configs, some config related changes and renamed one interface
- Fixes and improvements to the string list GUI, and remove the debug prints
- Add the proper preview string to the String list button
- Fix some cases of String list configs not getting applied on GUI close
**Original build time:** 2018-11-30 19:45:44 UTC+2
0.9.0
- Add a feedback-sensitive version of `GuiTextInput`
- Add String list configs, some config related changes and renamed one interface
- Fixes and improvements to the string list GUI, and remove the debug prints
- Add the proper preview string to the String list button
- Fix some cases of String list configs not getting applied on GUI close
**Original build time:** 2018-11-30 19:45:28 UTC+2
0.9.0-dev.4
- Fix the key re-check logic breaking things with simultaneous key releases
- Add a few render util methods from Litematica
- Add a new util method to `Color4f` to clone a color with different alpha
- Some render method fixes/clean-up
- Change the `drawOutline()` util method argument handling
- Further fix/improvement to keybind handling, related to the recent fix
**Original build time:** 2018-11-22 00:54:19 UTC+2
0.9.0-dev.4
- Add a new util method to `Color4f` to clone a color with different alpha
- Some render method fixes/clean-up
- Change the `drawOutline()` util method argument handling
- Further fix/improvement to keybind handling, related to the recent fix
**Original build time:** 2018-11-22 00:54:42 UTC+2
0.9.0-dev.3
- Fix the key re-check logic breaking things with simultaneous key releases
**Original build time:** 2018-11-11 20:16:27 UTC+2
0.9.0-dev.2
- Fix `ButtonGeneric` hover strings not getting split from `'\n'`
- Mark the file browser icon provider return value as `@Nullable`
- RenderUtils and inventory overlay util methods refactoring
- Tiny refactor to `KeybindMulti`. Add a util method to get the storage string.
- Add some new util methods (some moved from Tweakeroo)
**Original build time:** 2018-11-03 01:16:57 UTC+2
0.9.0-dev.2
**Original build time:** 2018-11-02 19:40:10 UTC+2
0.9.0-dev.1
- Fix `ButtonGeneric` hover strings not getting split from `'\n'`
- Mark the file browser icon provider return value as `@Nullable`
- RenderUtils and inventory overlay util methods refactoring
- Tiny refactor to `KeybindMulti`. Add a util method to get the storage string.
**Original build time:** 2018-10-30 16:38:56 UTC+2
0.8.5
- Close the JSON files after reading
- Don't allow crafting, armor or offhand slots in `findSlotWithItem()`
- Remove the `color()` call from the GUI background drawing
**Original build time:** 2018-10-15 22:21:58 UTC+3
0.8.5
- Close the JSON files after reading
- Don't allow crafting, armor or offhand slots in `findSlotWithItem()`
- Remove the `color()` call from the GUI background drawing
**Original build time:** 2018-10-15 22:21:31 UTC+3
0.8.4
**Original build time:** 2018-10-07 12:02:14 UTC+3
0.8.4
**Original build time:** 2018-10-07 12:01:55 UTC+3
0.8.3
- Don't use the title hierarchy in the text input dialog
- Fix button hover texts breaking Gui messages (and maybe other stuff too)
- Add/change a couple of inventory GUI and shulker box util methods
**Original build time:** 2018-10-06 22:05:19 UTC+3
0.8.3
- Don't use the title hierarchy in the text input dialog
- Fix button hover texts breaking Gui messages (and maybe other stuff too)
- Add/change a couple of inventory GUI and shulker box util methods
**Original build time:** 2018-10-06 22:04:04 UTC+3
0.8.2
**Original build time:** 2018-09-23 16:42:55 UTC+3
0.8.2
**Original build time:** 2018-09-23 16:42:33 UTC+3
0.8.1
- Improve the inventory overlay rendering
- Fix config defaults/reset stuff being broken in the `ConfigTypeWrapper`
- Apparently I changed the `ConfigTypeWrapper` to a completely broken version during the config refactoring... >_>
**Original build time:** 2018-09-19 00:49:35 UTC+3
0.8.1
- Improve the inventory overlay rendering
- Fix config defaults/reset stuff being broken in the `ConfigTypeWrapper`
- Apparently I changed the `ConfigTypeWrapper` to a completely broken version during the config refactoring... >_>
**Original build time:** 2018-09-19 00:49:16 UTC+3
0.8.0
- Add a `WidgetCheckBox` class
- Add a `WidgetLabel` class
- Use the `WidgetLabel` class instead of the vanilla `GuiLabel`
- Move all the "generic" widgets into the same list in the GUI
- Add advanced keybind settings and refactor lots of keybind and GUI things
- Tons of config GUI related changes and fixes to get it usable in the LiteLoader config menu
- Fix a couple of logic bugs with the new keybind detection code
- More config and GUI changes to get the `All Registered Hotkeys` screen working again
- Add the missing value change callbacks to the config options
- (Re-)implement mouse scrolling support in the Liteloader config GUIs
- Add "game overlay post" and "world last" rendering hooks
- Fix another logic bug with the keybind check
- Fix the keybind settings GUI not initializing properly
- Hook up the keybind handling to GUIs as well
- Add some more provided `KeybindSettings` combinations
- Move the text lines rendering method from MiniHUD/Litematica
- Add a `BOTH` value to the keybind `KeyAction` enum
- Add a blank entry between keybind categories in the `All Keybinds` GUI
- Add an `onMouseMoved()` method to the `IMouseInputHandler` interface
- Add a somewhat hacky way to prevent inputs from leaking
- The hack basically prevents keyboard inputs from leaking from GUI handling to non-GUI handling, if a mouse input gets cancelled in the GUI handling code and thus a keyboard event didn't get consumed in the GUI handling code.
- Fix keybinds getting stuck if the context changes before release
- Possibly fix a key input cancellation issue
- Somehow sometimes all the key inputs started getting cancelled, I would suspect that hack to be the cause as it was just added before it started happening occasionally
**Original build time:** 2018-09-14 22:12:04 UTC+3
0.8.0
- Add a `WidgetCheckBox` class
- Add a `WidgetLabel` class
- Use the `WidgetLabel` class instead of the vanilla `GuiLabel`
- Move all the "generic" widgets into the same list in the GUI
- Add advanced keybind settings and refactor lots of keybind and GUI things
- Tons of config GUI related changes and fixes to get it usable in the LiteLoader config menu
- Fix a couple of logic bugs with the new keybind detection code
- More config and GUI changes to get the `All Registered Hotkeys` screen working again
- Add the missing value change callbacks to the config options
- (Re-)implement mouse scrolling support in the Liteloader config GUIs
- Add "game overlay post" and "world last" rendering hooks
- Fix another logic bug with the keybind check
- Fix the keybind settings GUI not initializing properly
- Hook up the keybind handling to GUIs as well
- Add some more provided `KeybindSettings` combinations
- Move the text lines rendering method from MiniHUD/Litematica
- Add a `BOTH` value to the keybind `KeyAction` enum
- Add a blank entry between keybind categories in the `All Keybinds` GUI
- Add an `onMouseMoved()` method to the `IMouseInputHandler` interface
- Add a somewhat hacky way to prevent inputs from leaking
- The hack basically prevents keyboard inputs from leaking from GUI handling to non-GUI handling, if a mouse input gets cancelled in the GUI handling code and thus a keyboard event didn't get consumed in the GUI handling code.
- Fix keybinds getting stuck if the context changes before release
- Possibly fix a key input cancellation issue
- Somehow sometimes all the key inputs started getting cancelled, I would suspect that hack to be the cause as it was just added before it started happening occasionally
**Original build time:** 2018-09-14 22:11:25 UTC+3
0.8.0
- Add a `WidgetCheckBox` class
- Add a `WidgetLabel` class
- Use the `WidgetLabel` class instead of the vanilla `GuiLabel`
- Move all the "generic" widgets into the same list in the GUI
- Add advanced keybind settings and refactor lots of keybind and GUI things
- Tons of config GUI related changes and fixes to get it usable in the LiteLoader config menu
- Fix a couple of logic bugs with the new keybind detection code
- More config and GUI changes to get the `All Registered Hotkeys` screen working again
- Add the missing value change callbacks to the config options
- (Re-)implement mouse scrolling support in the Liteloader config GUIs
- Add "game overlay post" and "world last" rendering hooks
- Fix another logic bug with the keybind check
- Fix the keybind settings GUI not initializing properly
- Hook up the keybind handling to GUIs as well
- Add some more provided `KeybindSettings` combinations
- Move the text lines rendering method from MiniHUD/Litematica
- Add a `BOTH` value to the keybind `KeyAction` enum
- Add a blank entry between keybind categories in the `All Keybinds` GUI
- Add an `onMouseMoved()` method to the `IMouseInputHandler` interface
- Add a somewhat hacky way to prevent inputs from leaking
- The hack basically prevents keyboard inputs from leaking from GUI handling to non-GUI handling, if a mouse input gets cancelled in the GUI handling code and thus a keyboard event didn't get consumed in the GUI handling code.
- Fix keybinds getting stuck if the context changes before release
- Possibly fix a key input cancellation issue
- Somehow sometimes all the key inputs started getting cancelled, I would suspect that hack to be the cause as it was just added before it started happening occasionally
**Original build time:** 2018-09-14 22:11:00 UTC+3
0.8.0-alpha.1
- Fix `ConfigColor` not overriding the `isModified(String)` method
- Add a util method to swap items to the player's hand
- Add a util method to print a boolean toggle message
- Add a `ConfigGuiBase` class for showing configs in custom in-game GUIs
- Move a whole bunch of GUI code from Litematica
- Rewrite the `GuiConfigsBase` gui using a widget list. Some configs refactoring.
- More configs related changes and clean-up
- Remove a duplicate copy of the `ButtonWrapper` class
- Add a `ButtonIcon` class
- Add a small util method for getting the rendered string width
**Original build time:** 2018-09-02 11:53:52 UTC+3
0.7.0
- Those are now also needed for Litematica
**Original build time:** 2018-08-23 01:06:17 UTC+3
0.7.0
- Those are now also needed for Litematica
**Original build time:** 2018-08-23 01:05:53 UTC+3
0.6.1
**Original build time:** 2018-08-20 03:18:48 UTC+3
0.6.1
**Original build time:** 2018-08-20 03:18:27 UTC+3
0.6.0
**Original build time:** 2018-08-02 00:11:37 UTC+3
0.6.0
**Original build time:** 2018-08-02 00:11:01 UTC+3
0.5.1
**Original build time:** 2018-07-25 03:08:29 UTC+3
0.5.1
**Original build time:** 2018-07-25 03:07:40 UTC+3
0.5.0
**Original build time:** 2018-07-24 02:43:03 UTC+3
0.5.0
**Original build time:** 2018-07-21 19:41:14 UTC+3
0.4.1
- Add a debug option for keybind debugging (printing out all held keys)
- Localize the HUD Alignment options
- Add value change callbacks
**Original build time:** 2018-07-08 19:44:47 UTC+3
0.4.0
- This caused some fast scrolling events to slip through the cancel logic
- Implement a combined view of all registered hotkeys
**Original build time:** 2018-07-02 09:53:17 UTC+3
0.4.0
- This caused some fast scrolling events to slip through the cancel logic
- Implement a combined view of all registered hotkeys
**Original build time:** 2018-07-02 01:07:40 UTC+3
0.3.1
**Original build time:** 2018-06-23 14:07:03 UTC+3
0.3.1
**Original build time:** 2018-06-20 22:42:29 UTC+3
0.3.0
- A bunch of new config related stuff and some bugfixes
- Now used for MiniHUD
**Original build time:** 2018-06-15 20:59:52 UTC+3
0.2.0
- Add a hotkey reset button
- Add a reset button to the config GUI for all configs and hotkeys
- Add support for non-strict keybinds
**Original build time:** 2018-06-13 23:50:43 UTC+3
0.1.0
- Moved most config and keybind stuff from Tweakeroo (`0.7.0`) and Litematica to this mod
**Original build time:** 2018-06-11 00:39:11 UTC+3
收录