Minecraft Fabric Client 教程 #2 修改文件和目录名添加run和stop

首发于Enaium的个人博客


修改 包名、json文件、添加run stop

首先先修改包名

ExampleMod.java改为ExcelInitializer.java

修改json文件modid.mixins.jsonfabric.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
  }
}

packagemixin的包名

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
namemod名字
description说明
authors作者
mixinsmixinjson的文件名
license如果有开源开源协议
mainModInitializer的文件名

然后在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

Minecraft Fabric Client 教程 #2 修改文件和目录名添加run和stop的相关文章

Minecraft Fabric Client 教程 #3 添加自定义Command

首发于Enaium的个人博客 package cn.enaium.excel.utils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; /** * @Author Enaium * @Date 2020/1/5 12:54

Minecraft Fabric Client 教程 #4 添加Modules

首发于Enaium的个人博客 在cn.enaium.excel下新建一个包module 在module包里新建Module.ModuleManager这2个类 然后再新建一个Category枚举 Module内容 package cn.enaium.excel.module; /** * @Author Enaium * @Date 2020/1/9 11:03 */ public class Module { private String name; private Category cate

Hyperledger Fabric 1.0 从零开始(四)——Fabric源码及镜像文件处理

2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3中go的安装配置,$GOPATH设置为/opt/gopath. 我们可以使用Git命令下载源码,也可以使用go get命令,偷懒一点,我们直接用go get命令获取最新的Fabric源码: go get github.com/hyperledger/fabric [注:使用离线环境或者内网环境的朋友

柳峰微信公众平台开发教程企业号修改篇(AES验证)

本文针对<微信公众平台应用开发:方法.技巧与案例> 一书中示例和代码不适用于微信企业号的情况进行修改. 修改原因: 企业在接收消息,以及发送被动响应消息时,消息体都以AES方式加密,以保证传输的安全 修改方法: 按照微信加密库进行加密验证,具体加密库下载地点请参考开发人员文档,这里不再叙述 注意事项: 异常java.security.InvalidKeyException:illegal Key Size 需要去Oracle官方网站下载JCE无限制权限策略文件,分JDK6 JDK7 JDK8,

修改文件后浏览器自动刷新解决方案

现有编程工具的自动刷新解决方案 其实有很多工具可以做到文件一改变,浏览器自动刷新,其实这样体验也是最好的,可是由于一些原因,这些工具并不能解决所有工作场景的需求. 由于这不是本文的主要内容,只列出一些可以实现自动刷新的工具,没有进行详细展开,大家可以自行去研究下. 在Sublime下有一个插件叫做LiveStyle可以实现修改CSS后自动刷新,但是每一个CSS文件都要手动配置,不够智能.需要安装Chrome插件:Emmet LiveStyle. JetBrains公司的IDEA.WebStorm

question --&gt; maven assembly plugin 修改文件默认权限

使用maven assembly plugin插件添加执行脚本时,发现默认权限为644,还需要手动添加执行权限.这很麻烦,于是查看文档 官方文档 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_fileSet fileMode String Similar to a UNIX permission, sets the file mode of the files included. THIS IS

使用粘贴位修改文件的权限

SUID:当一个程序有SUID位的时候,有X权限的用户运行该程序时候都将以程序所有着的身份运行,且SUID只对程序有效对脚本无效.如普通用户可以运行passwd命令将新密码写入/etc/shadow文件中 SGID:可以为二进制程序和目录设置SGID位.有X权限的用户运行该程序时候会获得该程序所在组的支持.对于目录来说,任何有权在该目录下新建文件的用户创建的文件的数组都是继承该目录的属组. SBIT:只对目录有效.当一个目录被设置了SBIT以后,只有文件所有这和root用户可以更改删除该文件,其

java修改文件内容

文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAccessFile这个类正好能解决我的问题,废话不多说,下面直接贴代码,分享给大家,有不对的地方欢迎指教,谢谢 /**     * 修改文件内容     * @param fileName     * @param oldstr     * @param newStr     * @return  

LINUX实现父子进程轮流修改文件的值

本例子是基于信号的同步机制实现父子进程轮流修改文件中的值. tatic volatile sig_atomic_t sigflag; static sigset_t newmask,oldmask,zeromask; static void sig_usr(int signo) { sigflag=1; } void TELL_WAIT(void) { if(signal(SIGUSR1,sig_usr)==SIG_ERR) perror("signal error"); if(sig