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
 */
public class ChatUtils {

    public static void component(Text component)
    {
        ChatHud chatHud = MinecraftClient.getInstance().inGameHud.getChatHud();
        LiteralText prefix = new LiteralText("\u00a7c[\u00a76Excel\u00a7c]\u00a7r ");
        chatHud.addMessage(prefix.append(component));
    }

    public static void message(String message)
    {
        component(new LiteralText(message));
    }
}

添加自定义command

先在cn.enaium.excel里新建一个包command

下载

将压缩包里面的内容全部放进去

然后再Excel.java里添加command

    public CommandManager commandManager;

    public void onEnable() {
        commandManager = new CommandManager();
        commandManager.loadCommands();
    }

注入Mixin

在mixin包里面新建一个ClientPlayerEntityMixin.java

内容

package cn.enaium.excel.mixin;

import cn.enaium.excel.Excel;
import net.minecraft.client.network.ClientPlayerEntity;
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/5 13:27
 */
@Mixin(ClientPlayerEntity.class)
public class ClientPlayerEntityMixin {

    @Inject(at = @At("HEAD"),
            method = "sendChatMessage(Ljava/lang/String;)V",
            cancellable = true)
    private void onSendChatMessage(String message, CallbackInfo info)
    {
        if (Excel.INSTANCE.commandManager.processCommand(message))
            info.cancel();
    }

}

添加到mixin.json里面

  "client": [
    "ExampleMixin",
    "MinecraftClientMixin",
    "ClientPlayerEntityMixin"
  ],

启动

输入-或者-help 输入返回的信息不会在控制台出现

完成

原文地址:https://www.cnblogs.com/Enaium/p/12344576.html

时间: 2024-10-31 07:10:38

Minecraft Fabric Client 教程 #3 添加自定义Command的相关文章

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

首发于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.

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

Minecraft Client 教程 #12 绘制ClickGUI

首发于Enaium的个人博客 一. 先复制进去FontUtils FontUtils package cn.enaium.coreium.utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.util.StringUtils; public class FontUtils { private static FontRender

Minecraft Client 教程 #1 配置开发环境

首发于Enaium的个人博客 需要 JAVA8+ 和 IDEA 一. 下载MCP 二. 解压到你想要的路径,文件名你想起什么名字就起什么名字 三. 打开文件夹运行decompile.bat,Linux 或者Mac OS 运行decompile.sh(这一步必有正版启动器,而且默认目录%APPDATA%.minecraft\versions 必须要有MC1.8.8版本,运行前还要运行过1.8.8MC.) 反编译完成 四. 导入IDEA Next Next Next Finish 填写你的导入的目录

Minecraft Client 教程 #11 绘制主菜单

首发于Enaium的个人博客 一. 搜索GuiMainMenu这个类 二. 删除drawScreen方法内所有 三. 删除无用方法(显示为灰色的方法) 四. 在drawScreen方法绘制 public void drawScreen(int mouseX, int mouseY, float partialTicks) { //获取屏幕长和高 ScaledResolution s = new ScaledResolution(mc); //绑定纹理(材质) mc.getTextureManag

Minecraft Fabric 教程 #1 开发环境配置

首发于Enaium的个人博客 需要 JAVA8+ 和 IDE 首先下载github 上的项目 fabric-example-mod 有以下方法: 用IDE 克隆 库 直接导入IDE 运行bat ./gradlew idea然后导入IDE 推荐使用IDEA 原文地址:https://www.cnblogs.com/Enaium/p/12341685.html

Minecraft Fabric 教程 #2 添加物品

首发于Enaium的个人博客 创建物品 public class ExampleMod implements ModInitializer { private static final Item END_HEART = new Item(new Item.Settings().group(ItemGroup.COMBAT).maxCount(32)); [...] } ItemGroup.COMBAT //分类为COMBAT maxCount(32) //一组最大堆叠数 一组最大只能叠32个物品

[TFS教程]TFS: Get Command

Get Command Visual Studio 2012 Gets (downloads) either the latest version or a specified version of one or more files or folders from Team Foundation Server to the workspace. Although the Get command provides a different user interface than Visual St

第十八章 Python批量管理主机(paramiko、fabric与pexpect)

本章节主要讲解运维工程师比较感兴趣的知识,那就是运维批量管理,在Python下有paramiko.fabric和pexpect这三个模块可帮助运维实现自动化部署.批量执行命令.文件传输等常规任务,接下来一起看看它们的使用方法吧! 18.1 paramiko paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 默认Python没有,需要手动安装:pip install paramiko 如安装失败,可以尝试yum安装:yum install p