mod-tools
A mod provides various tools for modding. ----------------- Version 1.7.0 ## Highlight ## New 1. Deadlock detection watchdog: divergence heuristics for platform and virtual threads, JSON thread dumps, and a directed-graph cycle analysis that names the lock ring. Runs separately from the 5 ms CPU sampler so it cannot skew it. 2. Review element editor: edit Element fields live to see the effect, no recompile needed. 3. Layout check: LayoutIssues collects layout problems and LayoutReportWindow renders the report; cells also get a details window. 4. Tester completion rewritten: member completion, array and object destructuring bindings, arrow parameter types from generic arguments; covered by JUnit 5. 5. JS syntax highlighting for the Rhino editor, resolving members and generic types for accurate colouring. 6. Zero-allocation float formatting: Schubfach shortest round-trip conversion, DoubleConversion and FastFormat, replacing Double.toString in Vec2/Vec3/Rect/Color formatting. ## Hot swap 7. Hot swap runs on a self-contained Remold agent, attached before settings load; a -javaagent setup that lacks plugin-arc now degrades with one warning instead of failing. 8. UI hot swap: Table creator and Cell property chains are tracked, so a redefined builder rebuilds only the affected cells. 9. Lambda and anonymous class alignment: LambdaAligner, AnonClassAligner and content-hash fingerprints keep anonymous classes paired across redefinition. 10. Redefinition is gated on instance field-layout compatibility, and slot numbers held by pending aligned classes are not reused. 11. The hotswap_plus switch is split into init_fix and force_static_lambda. ## Performance 12. ValueLabel, FieldValueLabel and InlineLabel format without boxing; PairProv shares one buffer and compares content before rebuilding. 13. Flame graph: canvas clipping and culling, zero-allocation map lookups, spatial depth bucketing. 14. Fewer per-frame allocations in LimitTable, SearchedLabel and completion prefix matching. 15. Selection panel: dynamic region scanning is throttled to every 10 frames instead of running on a background executor; unit and bullet sets are cached between scans; tile and building icons are cached per block size. ## Fixes - Completion popup not showing, and candidates beyond the first page being unreachable. - Completion popup covering the line being typed on. - changedFx flash overflowing the scroll pane viewport. - Viewers: Mat and Affine2 support, opening brace alignment in pretty print, and label markup state preserved across appends. - Android: HiddenApi trimmed in favour of the bundled bypass. ## Dependencies - ASM 9.11 (security advisories), Remold 0.1.2. ----------------- WIKI: https://i-hope1.github.io/mod-toolsAuthors:
1.7.0
1.6.0
Highlight
- Support Mindustry 159.2
- feat(capture_exceptions): Hook exceptions and print (Desktop Only)
- Optimize flame graph performance.
- Fix some bugs:
- Improve the security check logic for application class loader settings in Tester.
- Add text boundary safety checks to TextAreaTab to prevent array out-of-bounds errors.
1.5.9
Highlight
- 新增Profiler
- 构建支持增量编译
- 优化界面布局和性能
- 禁用JDWP功能(根本无法使用Java启动)
- 修复一些bug
- 修复areaTable的
\t显示问题和drawMultiText的bug - 修复Tester代码补全快捷键冲突问题
- 改Trigger.postDraw为Trigger.draw适配Helium
- 修复ReferringMoveListener的只显示一会的问题
1.5.8
Highlight
- 继续完善HotSwap(Preview)
- 修复大量的bug
- 修复配置文件的格式化问题
- 修复ValueLabel的对齐不对,分隔符不对等大量问题
- 其他的一些优化
1.5.7
Highlight | 亮点更新
-
完善 HotSwap(Preview) Improved HotSwap (Preview)
- ClassDiff (field +/-, method +/-, method body change)
- ClassDiff(支持字段增删、方法增删、方法体变更)
-
适配 Mindustry v155 的 LWJGL Adapted for Mindustry v155 LWJGL
-
其他的一些优化 Other general optimizations
-
升级 ScreenSampler(加了 OpenGL 2 的判断)来修复 Bug Updated ScreenSampler (added OpenGL 2 detection/checks) to fix bugs
1.5.6
- 修改minGameVersion
- 桌面端支持HotSwap(Preview)
- 修复一些bug,如ValueLabel
- 支持WSA环境的键盘输入
- 其他的一些优化
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5.5...1.5.6
1.5.5
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5.4...1.5.5
Highlight
- Fixed a severe npe bug about data(settings) save.
- Added a setting: force_language.
1.5.4
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5.3...1.5.4
- FIxed a bug that Settings class doesn't load auto
- Fixed nullpointer when switch defautl team of
Selection
1.5.3
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5.2...1.5.3
- 🐛 修复了一些小bug
- 🐛 Fixed some minor bugs
- 更多自定义按键
- More customizable keybinds
1.5.2
What's Changed
- 修复了绑定按键时的崩溃 by @I-hope1 in https://github.com/I-hope1/mod-tools/pull/18 修复 be 没有 ItemImage 导致的 bug 更好的更新器
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5.1...1.5.2
1.5.1
主要更新
- 修复一点小bug
- 添加暂停act的功能
Highlight
- Fix some minor bugs
- Add the function of pausing
act(delta)Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.5...1.5.1
1.5
What's Changed
- feat(ui): 修复NoMarkupLabel&MyLabel类prefsize不对的问题 by @I-hope1 in https://github.com/I-hope1/mod-tools/pull/14
Highlight
- Fixed a lot of bugs
- Better
ReviewElement,Selection,Tester,ContentList - Optimize a lot
- New Content: KeyCodeSetter
- More tips for functions.
- Completely new ValueLabel (ShowInfoWindow)
- Better experience on mobile.
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.7...1.5
1.4.6.7
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.6...1.4.6.7
- Fixed some bug about
ValueLabel - Fixed the problem of not being able to get the offset of hidden class fields
- Removes some test code.
1.4.6.6
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.5...1.4.6.6
HighLight
- #12
- Colorful ValueLabel
1.4.6.5
- 🐛 Fixed a lot of bugs
- ✨ Supported ValueLabel to operate the sub item.
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.4...1.4.6.5
1.4.6.4
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.3...1.4.6.4🌟 Updater启用 ⌨️ Tester的历史切换:Ctrl+Shift+↑/↓ -> Ctrl+Shift+Alt+↑/↓ 🐛 修复Selection面对uiIcon为null时的报错 🐛 修复httpRedirect导致其他url无法访问的问题 🐛 修复Tester无法部分补全 & 支持'([{'多余报错 🐛 修复Frag在强制横屏下异位的bug 🐛 修复DrawablePicker有时没有alpha的bug(a没有除以255) & 颜色消失的bug ✨ 完成ISettings的switch ✨ Tester的JS更多功能 ✨ Better Updater & TopGroup 🚚 Icon文件移到sprites下 ♻️ 代码部分重构 & 优化代码
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.3...1.4.6.4
Some bug fixes
- 修复ShowInfo按钮导致jvm崩溃的bug
Feature
- More util for JS
1.4.6.2
Bug Fixes
- Fixed the bug ShowInfoWindow class button was covered by label
- UnitSpawn automatically cancels the redundant selections.
- Fixed the bug caused by async set block (Selection)
- Fixed a crash led by ISettings
- Fixed a great number of bugs about DrawablePicker
- Fixed the abnormal keyboard focus of
ReviewElement - Fixed a bug about
enterandexit - More bug
Features
- Tester you can use $.contentName to get Content
- Better ReviewElement to inspect element and cell
- More key-shots for plenty of functions
- Interp can be added by customization
- Added some tips
- Better LogDisplay
- DrawString draw escape string
- Ability to customize Styles
- Image Preview can view the AtlasRegion name and page
Adjustment & Optimization
- Adjust the info's key and value scale
- Better performance for Tester
- Review some code
错误修复
- 修复了 ShowInfoWindow 类按钮被标签覆盖的bug
- 修复了 UnitSpawn 不能自动取消多余的选择的bug
- 修复了 Selection 异步设置 block 引起的bug
- 修复了ISettings导致的崩溃
- 修复了DrawablePicker的大量错误
- 修复了
ReviewElement键盘焦点异常 - 修复了有关
enter和exit的错误 - 更多错误
功能
- 测试者可以使用
$.contentName来获取Content - 更好的 ReviewElement 来检查元素和单元格
- 更多功能的快捷键
- 可以通过自定义添加 Interp
- 添加了一些提示
- 更好的 LogDisplay
- DrawString 绘制转义字符串
- 能够自定义样式
- 图像预览可以查看 AtlasRegion 名称和页面
调整和优化
- 调整信息的键和值比例
- 为测试人员提供更好的性能
- 重构一些代码
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.6.1...1.4.6.2
1.4.6.1
- Fixed #9
- 修复发包异常的bug
- 修复Tester无法使用的bug
- ReviewElement的UI小改动
- 修复HiddenTopWindow隐藏top缺少动画的bug
- 审查元素对按f固定元素信息的显示
- 修复LerpFun不自动删除的bug(true -> false)
- 更新特效渲染区域减小
- 优化代码逻辑和性能
- 数据目录b0kkihope -> mod_tools
- 修复一些bug
- Ctrl+Alt+D 来debug边界
- 优化代码结构
- 更流畅的动画
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.5.5...1.4.6.1
1.4.5.5
- Resolve Scrolling issue #3
Full Changelog: https://github.com/I-hope1/mod-tools/compare/1.4.5.4...1.4.5.5