Links
Tags
Creators
Details
All versions
1.0.2+mc1.21.1
Release
Command Block UI Overhaul 1.0.2+mc1.21.13 weeks ago 39
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client-side
Changes
Fixed Issues
- After
setValuetruncation, layout still used the original long text - A single insert/delete triggered the responder multiple times, and the cursor briefly jumped to the end of the full text in between
- Reducing the maximum length did not rebuild lines or the cursor
- Word deletion used UTF-16 length but converted to code point offsets
- Unicode text truncation could split surrogate pairs
- Mouse positioning ignored the top padding and lacked drag selection
- Multiple usage/error messages used the same Y coordinate
- The completion list had no screen boundary handling, and scrolling to the last item was offset
- Old asynchronous completion requests could refresh new input, and callbacks were not thread-confined
- After suggestions were closed, late requests could still reopen them
- Enter-to-save did not check whether Done was available; resizing directly enabled controls
- Subsequent command block packets reinitialized the edited content
- Toggling the output switch directly modified the client-side block object
- The multi-line container used LinkedList but frequently accessed by index
New Features
- Undo/redo: 100 bounded snapshots restoring text, cursor, and selection; new edits clear the redo branch.
- Mouse multi-line drag selection and edge scrolling.
- Window resizing preserves editing state and undo history.
已修复的问题
- setValue 截断后仍用原始长文本排版
- 一次插入/删除多次触发 responder,且中间光标先跳到全文末尾
- 缩短最大长度未重建行与光标
- 按 UTF-16 长度删除单词却转成 code point 偏移
- Unicode 文本截断可能拆开代理对
- 鼠标定位忽略顶部内边距,缺少拖选
- 多条 usage/error 提示使用同一个 Y 坐标
- 补全列表无屏幕边界处理,滚动到末项有偏差
- 旧异步补全请求可刷新新输入,回调线程不受限
- 关闭建议后迟到的请求仍可重新弹出
- Enter 保存不检查 Done 是否可用;缩放直接启用控件
- 后续命令方块数据包重复初始化编辑内容
- 切换输出开关直接修改客户端方块对象
- 多行容器使用 LinkedList 却频繁按索引访问
新功能
- 撤销/重做:100 次有界快照,恢复文本、光标和选区;新修改清空 redo 分支。
- 鼠标多行拖选和边缘滚动。
- 窗口缩放保留编辑状态和撤销历史。
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:mcqC6yeB:W59wWm2r"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mcqC6yeB:W59wWm2r"
}

