跳到正文

Grimoire API

作者:Aizistral

General-purpose Mixin loader framework, which allows to properly implement mixins on 1.7.10/1.12.2 versions of Minecraft.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

In front of you lies a general-purpose Mixin loader framework, designed to serve as a way to develop and load mixins on both 1.7.10 and 1.12.2 versions of Minecraft. This is an independent continuation of Legacy Grimoire project. It also superseeds SpongeMixins for 1.7.10 as simpler and more robust solution.

 
Discord Badge 


For Normal Average Users:

If you’re an end user, you probably came here only because one of your mods requires Grimoire as a dependency. In that case just download latest Grimoire release for your Minecraft version, stick it in your mods folder, and you’re good to go!

 

For Developers:

If you’re a developer looking to employ the sacred mixin-loading techniques of almighty Grimoire in your projects… oh boy, have we got a lot in store for you. Witness, for below resides the list of the most notable features our framework currently provides:

  • Embedded Sponge Mixin, which allows you to avoid shading full Mixin implementation into your mod. I certainly hope you are aware that shading it is an inherently bad practice;
  • Version-independent core. Most of the Grimoire API is completely independent from Minecraft version you are using, and will work in perfectly the same way on both 1.7.10 and 1.12.2;
  • Grimmix system, which serves as a way for framework implementers to declare their presence, easily handle important events and programatically communicate with other implementers if such need exists;
  • Simple API that provides an option to build mixin configuration at runtime, instead of having to ship it as .json within modfile;
  • Mixin configurations are divided in two main categories – those that target Minecraft/Forge, and those that target other mods. They need to be loaded at different time, since at the time of coremod loading where Minecraft-targeting configurations are applied no mods are discovered and added to the classpath yet. Grimoire takes care of loading each configuration at proper time, all you need is to use appropriate lifecycle event for registering your configuration, or properly specify ConfigurationType if you build it at runtime;
  • Version-independent EventBus implementation, stripped of unnecessary ASM thingies Forge’s bus really needs for some reason, and much more friendly to being extended;
  • Integrated Omniconfig API, which serves as convenient version-independent a way to create config files, either via IOmniconfigBuilder or @AnnotationConfig;
  • Version-dependent EventHelper integration, which allows you to safely use EventUtils without rendering your mod utterly incompatible with singleplayer;
  • Proper development environment support.

 

Workspace Setup:

Here are the examples of how to setup Grimoire-dependent mod workspace:

You can find most details over there, and even more on our Wiki. But to praise what was achieved through our hard work, I will mention once more: Grimoire has proper development environment support! Starting a client via runClient task or IDE launch configuration will have Grimoire, all dependent grimmixes and that one grimmix you might be developing yourself properly loaded. Refmap generation also works perfectly fine, so no need to target production-time obfuscated names and sacrifice compatibility with development environment.

常见问题

Grimoire API 支持哪些 Minecraft 版本?

Grimoire API 支持 Minecraft Java 版 1.7.10–1.12.2,共 2 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Grimoire API 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Aizistral 的其他作品

查看全部 →