MineCodes v0.3.0 开发日志:一个文科生的 Electron 探索之旅
MineCodes 是一个为 Minecraft 玩家准备的辅助工具 —— 查指令、找物品 ID、存笔记,一站式搞定。
前言
先简单交代一下背景:我是文科生,代码不算我的专业领域。
《MineCodes》从最初由 AI 裸生成的草率的界面、只能翻指令列表的简陋版本,到今天能够查物品 ID、记指令笔记、支持深色模式等等功能的趋近完善工具,经历了不少推倒重来的时刻——比如界面从0开始重新设计、放弃 Python 改用 Electron 内核。
温馨提醒:如果你在用的是旧版本,建议直接下载最新版安装包,因为在正式版发布之前的每一个版本都可能完全不一样。
最近更新
指令笔记:随手记下容易忘的指令、数值
查到一个复杂的指令导致需要频繁切窗口,看模板?使用填充指令时记不住坐标?…
这次更新了一个 指令笔记 功能。主界面右侧为笔记输入区,你可以在查阅指令的同时,顺手把自己的理解或者简化写法记录下来:

笔记保存在本地的 JSON 文件,你也可以手动编辑。
物品 ID 查询:使用 /give 不用再切网页
/give 指令记起来非常简单,/给予 谁 什么 多少个,但麻烦在这个什么,你只能输入物品的ID,没办法用中文。我自己用的时候要么用翻译软件猜,要么直接上网搜,效率特低。
现在,我在《MineCodes》里增加了一个物品ID查询的功能。

搜索框输入中文名或英文名都能匹配,点击直接复制 ID,顺手就能拿去写指令。目前覆盖了 Java 版的主流物品,后续会持续补充。
深色模式:晚上很实用
大多数人都只有晚上有时间玩游戏,浅色的界面很刺眼。新版本做了深色模式适配,目前只支持手动切换,后续会尝试支持跟随系统主题:

开发日志:三个核心功能的实现思路
功能 1:指令库 + 收藏系统
这个功能其实是最早做的,也是整个工具的基础。
最初的设计就是简单列一个表格,后来觉得这种展示方式太“文档化”了,不够直观。所以改成了卡片式布局,每个指令单独展示,点展开可以看到详细的用法说明和示例。
收藏功能的实现其实很简单 —— 就是一个本地存储的 ID 数组,收藏的指令会单独列在“收藏夹”视图里。但难的是如何让用户一眼就知道哪个指令被收藏了,以及在收藏夹列表怎么方便地取消收藏。前后改了三次交互逻辑,现在的方案是:每个卡片右上角有一个爱心图标,点击即收藏/取消,虽然状态还没能实现实时同步。

功能 2:物品 ID 查询 —— 数据源怎么来的?
物品 ID 数据是一个大工程。Minecraft 从 1.12 到 1.20 版本之间,命名空间和数据格式都变了好几轮。为了确保数据的准确性,我主要用了三个来源:
- Minecraft Wiki 上公开的物品列表作为基准;
- 官方 JSON 数据文件中扒取的注册名;
- 找 AI 对照着一个个验证。
最终录入的条目覆盖了原版生存模式中会用到的绝大多数物品,接近 800 条。当然了,不排除有遗漏,如果遇到找不到的物品 ID,欢迎在 GitHub 提 Issue 反馈,你也可以通过本篇文章底部的评论区或发送邮件反馈。
功能 3:笔记模块 —— 最简单的实现往往最可靠
笔记模块的开发是这轮更新里最顺畅的一个环节。不是因为简单,而是因为一开始就很清楚要做一个什么样的东西:
- 不需要云端同步(太复杂,而且用户未必需要);
- 不需要多笔记本分类(那是另外一个层面的需求)。
也许以后会加导出/导入功能,但短期内不打算过度复杂化。
为什么用 Electron?
- 跨平台:Minecraft 玩家什么系统的都有,Electron 生成一套代码覆盖 Windows、macOS(ARM64 / x64)、Linux 三端,省事。
- 本地优先:笔记数据、收藏记录都存本地,不依赖服务器,用户不用担心隐私问题。
- 熟悉的前端技术栈:虽然我是文科生,但 HTML / CSS / JS 相对好上手,Electron 的学习曲线比从头学 C# 或 Swift 要友好得多。
当然,Electron 的缺点也很明显 —— 包体积大(光是 chromium 内核就占几十 MB)、内存占用高。但对于一个偶尔打开查一查指令的工具来说,这些缺点在可接受范围内。
技术踩坑记录
坑 1:物品 ID 搜索的性能优化
物品列表有接近 800 条数据,输入框添加搜索事件监听之后,每次键盘敲击都触发一次全量过滤,低配机器上明显能感觉到卡顿。
优化方案很简单 —— 防抖 + 虚拟滚动:
- 防抖:用户停止输入 150ms 后再执行过滤,减少重复计算;
- 虚拟滚动:只渲染当前可视区域的 15-20 条结果,其他先不渲染,大幅降低 DOM 操作开销。
改完之后搜索体验顺滑了很多。
写在最后
这个项目对我个人来说,最大的意义可能不在于做出多厉害的工具,而是我能够做我自己想做的事,并且把他做得超乎我自己的预期。
这个过程很麻烦。但每次看着屏幕上跑起一个自己写的新功能,这种成就感真的非常上头。
MineCodes 会持续更新。接下来几个版本的计划包括:
- 指令自动补全和参数提示;
- 支持更多 Minecraft 版本的数据切换;
- 笔记模块增加导出为 Markdown / PDF 功能。
目前 MineCodes 已在 GitHub 开源:
https://github.com/Zionyas-Van/MineCodes
特别感谢:YasVnite
如果你在使用中遇到问题,欢迎通过邮箱联系我:2223857511@qq.com,或者直接在 GitHub Issues 区提出来,我会尽量回复。
如果你觉得这篇文章对你有帮助,不妨点个赞。
当然,如果你愿意请我喝杯咖啡 —— 那我更要认真写下一篇了。
本文为 MineCodes 第 1 篇开发日志,后续将持续记录项目迭代中的思考与踩坑经验。