WARNING

这个项目正在开发阶段,所有功能暂时可能是不稳定或不受支持的。

InsaneMC 是一个通过 TypeScript 编写的 Minecraft 数据包构建工具,其主要由两个部分组成。

  • 其一是作为命令行工具提供的 Insane Minecraft Compiler 编译器,他可以将用 IMC Lang 语言编写的脚本文件转换为符合 Minecraft 数据包格式的 mcfunction 文件。相比于原版函数,他支持更多功能,比如:

    • 使用类似于其他语言的 ifwhile 等关键字来编写程序逻辑
    • 在同一个文件中声明多个函数
    • 定义编译期处理的 Macro 片段,可实现类似带参函数的功能
    • 用中缀表达式表示数值运算,而无需声明常量并手动转换为左结合运算
    • 更多功能可参见本站的 IMCL 文档 部分
  • 其二是作为 npm 库提供的 insane-mc 核心,其封装了一系列可通过 Minecraft 数据包实现的功能,比如自定义进度(Advancement)、合成(Recipe)等。同时,我们预封装了一些数据包特技以方便您在无需学会更多 Minecraft 数据包知识的情况下编写功能更强大的数据包。

    比如您可能希望添加一个产物带有 NBT 标签的自定义合成,而 Minecraft 数据包不允许你这么做。我们的解决方案是:将原来的合成产物改为一本知识之书(minecraft:knowledge_book),再通过进度系统检测玩家是否成功合成,再给玩家奖励相应的物品。

    再比如,您可能希望通过 Minecraft 的箱子 / 木桶 / 末影箱 / 箱子矿车实现一个自定义 GUI 系统,我们也提供了相应的接口。

    而这些特性如果在未来版本的 Minecraft 中得到支持,您也无需更改自己的代码,只需待我们适配后更新依赖到最新版本即可。

    进一步的,我们也实现了诸如上下文(Context),事件(Event)等特性方便您更好的组织数据包架构;当然这些功能也原生适配 IMC Lang。