IMBlocker
IMBlocker copied to clipboard
A mod for Minecraft helping control Input Methods
请求更新至1.20.5
如果在使用IMBlocker的过程中发现有文本框不能识别的情况,可以按以下方式解决: 1. 修改设置,将`enableScreenRecovering`改为`true` 2. 打开包含不能识别的文本框的GUI屏幕 3. 查看设置中`recoveredScreens`项目的内容 4. 如果有多条内容,从中选出看起来像 2. 中打开的屏幕的那一条 5. 将该部分内容(应该类似于`modid:com.xxx.xxx.XxxScreen`)添加到`screenWhitelist`项目中 6. 修改设置,将`enableScreenRecovering`改为`false` 7. 确认在打开 2. 中屏幕时是否会开启输入法 8. (可选)将`recoveredScreens`项目的内容清空,方便下次查看 只有3.0.2及以后的版本可以按以上方式操作,只要保存文件,不需要重启也能更新设置。如果在解决过程中遇到问题欢迎提问。 如果你通过以上方式发现不能识别的情况并成功解决,请将你找到的屏幕内容回复在这个issue下,我会将常见的条目加入到mod中。 回复格式: mod名称:植物魔法 modid:botania GUI屏幕:vazkii.botania.ExampleScreen 触发方法:快捷键,默认是k/右键点某个方块 屏幕内容描述:给方块命名,让方块头顶显示浮动文字
加载IMBlocker Mod后, 在部分模组文本输入框中,使用鼠标左中右键单击文本输入区域时会键入空白字符 Minecraft Fabric 1.20.1 IMBlocker-v4.0.3-alpha-mc1.20 使用[Notebook](https://modrinth.com/mod/notebook) 测试  模组列表 - ad_astra 1.15.2 - additionalstructures 4.2.0 - advancementinfo 1.20-fabric0.83.0-1.4 - almostunified 1.20.1-0.5.0 - amecs 1.3.9+mc.1.20-pre2 \-- amecsapi 1.4.0+mc1.20-pre1 -...
(注:Fabric1.19.4最新版本的模组中,类`TextFieldMixin`注入了不存在的方法`onClick`导致此类注入时抛出异常注入失败,因此该版本的模组在原版所有的TextFieldWidget组件都无法正常工作。经调查,当前版本中此处注入的方法名应该为`mouseClicked`) 实现原理建议:此模组的功能建议使用监听焦点组件的变化来实现,焦点是一个GUI系统中用于定向键盘输入的关键属性,在一个标准的GUI系统中,如果此系统被操作系统赋予了焦点,那么其中有且只有一个焦点组件,在没有全局键盘监听的情况下,键盘输入最终只会在这一个组件上产生效果。而文本框组件则是典型的`focusableWidget`,只有当其获得焦点时才能向其中输入文字,因此监听所有文本框组件的焦点变化可以准确地决定当前输入法的状态。下面以Fabric1.19.4来说明大概的实现方式: 首先Fabric本身并没有提供监听焦点变化的API,如果要监听文本框的焦点变化只能通过Mixin注入监听器到文本框类`setFocused`方法的**尾部**;不同Fabric模组的文本框组件类不同,要适配不同模组需要一一注入;Fabric中一个`Screen`隐藏时不会移除其中获得了焦点的组件的焦点,因此需要注入焦点移除的代码到`MinecraftClient.setScreen()`方法中。 我已在原版的文本框组件中应用了基于此原理的实现,效果很好,相关的实现部分如下: 类`IMCheckState`: ```java // check overall state private static void syncState() { IMManager.makeState(focusedInputWidget != null || ); } public static void focusGained(Object widget) { focusedInputWidget = widget;...
---- Minecraft Crash Report ---- // Everything's going to plan. No, really, that was supposed to happen. Time: 21-5-22 上午10:11 Description: Unexpected error java.lang.UnsatisfiedLinkError: Unable to load library 'imm32': Native...
https://github.com/reserveword/IMBlocker/blob/55f1866dab7a0dd27ad2b397dbd0887d95cdf176/common/src/main/java/io/github/reserveword/imblocker/common/IMManager.java#L15 想把这个mod打包进我的modpack [[1](https://modrinth.com/modpack/xtex-mp-pack)],但是发现在Linux下会直接爆炸
问题截图:  问题描述:在游戏内聊天框,JEI和其他任意地方输入中文时,均有较高概率出现图示的问题 复现概率:高 系统和游戏环境: Windows 10 企业版 LTSC 19044.4529 zulu22.30.13-ca-jdk22.0.1-win_x64 输入法:搜狗输入法13.5.0正式版 13.5.0.7715 系统词频:630211129 组词数据:20201208 辅助信息:20180614 编译时间:May 26 2023 18:44:15 游戏log [2024-07-15-3.log](https://github.com/user-attachments/files/16236832/2024-07-15-3.log)
右下角的“搜索EMI……”文本框只能输入英文,即使启用了输入法也是如此。 
Mod版本: `IMBlocker-v4.0.8+1.20` from Github Releases `emi-1.1.4+1.20.1+forge` `jei-1.20.1-forge-15.3.0.4` 该issue https://github.com/reserveword/IMBlocker/issues/27#issuecomment-1783073788 下方的问题 合成配方界面下正常, 玩家背包中EMI搜索框无法激活输入法