首发于Enaium的个人博客
修改 包名、json文件、添加run stop
首先先修改包名
将ExampleMod.java
改为ExcelInitializer.java
修改json文件modid.mixins.json
和fabric.mod.json
将modid.mixins.json
改为excel.mixins.json
excel.mixins.json
内容:
{
"required": true,
"package": "cn.enaium.excel.mixin",
"compatibilityLevel": "JAVA_8",
"mixins": [
],
"client": [
"ExampleMixin",
"MinecraftClientMixin"
],
"injectors": {
"defaultRequire": 1
}
}
package
mixin的包名
client
mixin的类名
compatibilityLevel
java版本
fabric.mod.json
内容:
{
"schemaVersion": 1,
"id": "excel",
"version": "1.0",
"name": "Excel",
"description": "!",
"authors": [
"Enaium!"
],
"contact": {
"homepage": "https://fabricmc.net/",
"sources": "https://github.com/FabricMC/fabric-example-mod"
},
"license": "CC0-1.0",
"icon": "assets/excel/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"cn.enaium.excel.ExcelInitializer"
]
},
"mixins": [
"excel.mixins.json"
],
"depends": {
"fabricloader": ">=0.7.2",
"fabric": "*",
"minecraft": "1.15.x"
},
"suggests": {
"flamingo": "*"
}
}
id
就是modid
name
mod名字
description
说明
authors
作者
mixins
mixinjson的文件名
license
如果有开源开源协议
main
ModInitializer的文件名
然后在cn.enaium.excel
新建一个枚举Excel.java
内容
package cn.enaium.excel;
/**
* @Author Enaium
* @Date 2020/1/4 20:23
*/
public enum Excel {
INSTANCE;
public final String NMAE = "Excel";
public final String VERSION = "1";
public final String MINECRAFT_VERSION = "1.15.1";
public void onEnable() {
}
public void onDisable() {
}
}
注入run和stop
再mixin这个包里面新建一个MinecraftClientMixin
类
内容
package cn.enaium.excel.mixin;
import cn.enaium.excel.Excel;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/**
* @Author Enaium
* @Date 2020/1/4 20:25
*/
@Mixin(MinecraftClient.class)
public class MinecraftClientMixin {
@Inject(at = @At("HEAD"), method = "run()V")
private void onEnable(CallbackInfo info) {
Excel.INSTANCE.onEnable();
}
@Inject(at = @At("HEAD"), method = "stop()V")
private void onDisable(CallbackInfo info) {
Excel.INSTANCE.onDisable();
}
}
然后再mixin json 里面添加这个mixin
{
"required": true,
"package": "cn.enaium.excel.mixin",
"compatibilityLevel": "JAVA_8",
"mixins": [
],
"client": [
"ExampleMixin",
"MinecraftClientMixin"
],
"injectors": {
"defaultRequire": 1
}
}
完成
原文地址:https://www.cnblogs.com/Enaium/p/12344569.html
时间: 2024-10-06 00:45:25