Towdium / JustEnoughCharacters

Universal tweaks to let mods search in Chinese Pinyin
MIT License
75 stars 23 forks source link

JustEnoughCharacters

作用

使用这个模组,你可以在市面上绝大部分模组中使用拼音搜索。这包括了各类模组的手册,物流模组的容器,还有各种稀奇古怪的场景。简体和繁体都可以使用。你可以使用原文,全拼,声母的各种组合进行搜索,你可以使用声调或者忽略声调,任何你能想到的组合都可以使用。模组默认使用全拼拼法,也可以通过修改配置切换到注音或者双拼。当然,双拼场景下字形辅助码是不能用的,但是你可以像其他拼法一样使用声调来过滤。任何不支持的模组搜索都欢迎到 issue 区提给我。

尽管有一些个人实现的代码库已经在当前版本支持 config GUI 了,Forge 在当前版本仍然没有官方支持,因此本模组目前也不开放图形化配置。你可以修改配置文件或者使用 /jech 命令来配置。

一个意外的好处是,和 JEI 一同使用时,JEI 的内存占用可能会缩减 100M 左右。

原理

由于核心匹配逻辑已经分离到 PinIn 这个项目了,本模组当前版本的工作原理极为简单。我们只需要将各模组文本匹配相关的代码找到,然后替换成兼容拼音的实现即可。我们将相关的调用位置填写在 generate.py 里,然后基于 Forge 现版本的 coremod 机制,使用脚本直接生成所需的 coremod,编译时打入模组包中即可。当然,有一些模组需要特别的兼容处理,这一部分内容你可以在 这里 找到。

至于 Fabric,我实在没有时间研究如何进行开发了,但是基于 PinIn 的基础上进行开发的话,根据经验来看仍然会是一个小于 1k 行的小项目,这方面欢迎其他人接坑。本项目和 PinIn 的核心匹配逻辑,在肉眼可见的将来我还是会保持维护的,这方面不必担心。

开发

尽管直到目前该项目的贡献者屈指可数,给该项目贡献代码仍然是十分简单的。如果你发现有某个模组不支持拼音搜索,你只需要执行 /jech profile 命令获得一份全量搜索报告,排查该模组相关的调用栈(需要亿点点技巧),然后提交上来即可。当然,如果能力有限,直接把模组名甩给我也是欢迎的。

致谢