Description
//media.forgecdn.net/attachments/description/1727222/description_6e6f982e-31a0-43b8-a058-28ed3a1e64a4.png" rel="noopener nofollow" target="_blank">https://media.forgecdn.net/attachments/description/1727222/description_6e6f982e-31a0-43b8-a058-28ed3a1e64a4.png" alt="[MGL]道可道Meaningful" width="640" height="104">
警告 / WARNING 早期开发阶段 / Early Development
本项目仍处于早期开发阶段。功能与配置项仍可能调整,配置格式与模组行为不保证向后兼容。升级前请备份存档与
config/meaningfulglyphs.json。This project is still in an early stage of development. Features and options may still change, and neither the config format nor the mod's behaviour is guaranteed to stay backward compatible. Back up your world and
config/meaningfulglyphs.jsonbefore updating.AI 辅助创作 / AI-Assisted
本项目在开发过程中使用了 AI 辅助(deepseek-flash)。且并不是所有代码、文档与设计均经过人工审查与测试。
This project was developed with assistance from AI (deepseek-flash). NOT all code, documentation, and design have been reviewed and tested by humans.
[MGL]道可道TOMC-Meaningful Glyphs
道可道 是一个增加氛围感的显示模组。原版附魔台的三行未选中条目是随机拼接的标准银河字母乱码,而且从不告诉你这次会附出什么;本模组让这些乱码变得有意义——显示本次即将出现的魔咒名,并且可以在任意位置用同一套符文字体重绘魔咒名称与等级数字。
Meaningful Glyphs is a display mod for improving the QoL. Vanilla fills the three unselected rows of the enchanting table with randomly assembled Standard Galactic gibberish and never tells you what the roll will give you; this mod turns those glyphs meaningful — into the names of the enchantments the roll is about to offer — and can redraw every enchantment name and level numeral, wherever it appears, with the same rune font.
特性 / Features
🔮 可读的附魔台条目 / Readable enchanting table rows
三个选项各自的那一整套魔咒列表,原版其实已经算好了,只是把其中一个同步出去、其余全部丢弃。本模组在丢弃之前把它接住:
- 权威路径 —— 服务端真正算出的列表被打包进 24 个数据槽同步到客户端,因此条目里显示的就是本次必然出现的结果。只要其他模组仍通过原版的
EnchantmentMenu#getEnchantmentList构造列表,这条路径同样覆盖它们。 - 回退路径 —— 服务端没有下发列表时(服务端未装本模组),客户端按同一随机序列自己重放,并与服务端唯一透露的那条线索对齐;一旦重放发散,就只显示那条权威线索。
- 条目按真实渲染像素宽度截断:找到第一个使文本超出的字符位置,从该位置倒退 4 个字符切断,并追加
etc。
For each of the three offers, vanilla already computes the complete list of enchantments and then throws away everything except the single clue it synchronises. The mod catches that list before it is discarded:
- Authoritative path — the list the server actually computed is packed into 24 data slots and sent to the client, so the rows show exactly what the roll will offer. This also covers other mods that reimplement enchanting, as long as they build their list through vanilla's
EnchantmentMenu#getEnchantmentList. - Fallback path — when no server-side list arrives (a server without the mod), the client replays vanilla's random sequence for the row and anchors the result to the one enchantment the server does reveal. If the replay diverges, only the authoritative clue is shown.
- Rows are truncated by real rendered pixel width: the first character that overflows is located, the row is cut four characters earlier, and
etcis appended.
🗝️ 按上下文生效的符文覆盖 / Context-aware rune override
魔咒名可以用 minecraft:alt(标准银河字母)重绘,位置由你逐个指定;英文名一律取自模组自建的索引,因此结果与你的游戏语言无关:
- 附魔台、ToolTip、Enchanting Infuser 的基础与高级界面、Enchantment Descriptions 的描述,各有独立开关。
- 一个危险的全局开关可强制替换任意位置出现的魔咒名。
- 上下文由 mixin 压入
ThreadLocal栈,因此只有模组确知自己在看什么的时候才会改写。
Enchantment names can be redrawn with minecraft:alt — the Standard Galactic alphabet — in exactly the places you choose, and always from the mod's own index of English names, so the result never depends on your game language:
- Enchanting table, tooltips, the basic and advanced screens of Enchanting Infuser, and the descriptions supplied by Enchantment Descriptions each have their own switch.
- One dangerous global switch forces every enchantment name, everywhere.
- Contexts are pushed onto a
ThreadLocalstack by mixins, so a name is only rewritten where the mod knows what it is looking at.
🔢 最高 255 级的罗马数字 / Roman numerals up to 255
-
1–10 级沿用原版罗马数字,也可以切回阿拉伯数字。
-
11–255 级原版根本没有翻译键,由本模组补齐真正的罗马数字。
-
只有数字部分可以选择套用 ALT 字体——阿拉伯数字永不套用,因为符文字体没有数字字形。
-
Levels 1–10 keep vanilla's Roman numerals, and can be switched back to Arabic.
-
Levels 11–255 have no vanilla translation key at all; the mod supplies real Roman numerals.
-
The numeral part alone can be drawn with the ALT font — Arabic digits never are, because the rune font has no digits.
设计思路 / Design philosophy
整个模组只由两条原则决定:
- 永不改写语言文件。 覆盖发生在渲染那一刻,做法是替换
TranslatableContents将要分解出的组件。因此它即开即停、跨资源重载依然有效,关掉开关也不会留下残影。 - 服务端是权威。 配置由服务端保存、由服务端决定谁能改,也只有服务端知道一次附魔的真实结果。只有在服务端沉默时,客户端才会自己预测。
Two rules shape everything in this mod:
- Never rewrite language files. Overriding happens at render time, by replacing the component that
TranslatableContentsdecomposes into. That makes it instantly reversible, keeps it working across resource reloads, and leaves no residue when a switch is turned off. - The server is the authority. The server stores the config, decides who may edit it, and is the only side that knows the true result of a roll. The client only predicts when the server stays silent.




