[全民写端]#4添加Event和Module_Enaium的博客-程序员秘密

技术标签: minecraft  java  全民写端  

首发于Enaium的个人博客


一. 添加Event

  1. 下载Event解压到你想要的目录
  2. 修改Event

4-1

二. 钩子

  1. EntityPlayerSP类里面找到onUpdate方法 在第一行写 new EventUpdate().call();
  2. Minecraft类里找到runTick方法 找到Keyboard.next()循环 在if (k == 62 && this.entityRenderer != null)下面写 new EventKeyboard(k).call();
    [...]
    public void onUpdate()
    {
    

        new EventUpdate().call();
    [...]
[...]
if (k == 62 && this.entityRenderer != null)
{
    
    this.entityRenderer.switchUseShader();
}

    new EventKeyboard(k).call();

    if (this.currentScreen != null)
    [...]

三. 写Category枚举

package cn.enaium.coreium.module;

public enum Category {
    
    COMBAT,
    RENDER,
    MOVEMENT,
    PLAYER,
    OTHER
}

四. 写Module类

package cn.enaium.coreium.module;

import cn.enaium.coreium.Coreium;

public class Module {
    
    private boolean toggle;
    private String name;
    private int keyCode;
    private Category category;

    public Module(String name, int keyCode, Category category) {
    
        this.toggle = false;
        this.name = name;
        this.keyCode = keyCode;
        this.category = category;
    }

    public boolean isToggle() {
    
        return toggle;
    }

    public void setToggle(boolean toggle) {
    
        this.toggle = toggle;
    }

    public String getName() {
    
        return name;
    }

    public void setName(String name) {
    
        this.name = name;
    }

    public int getKeyCode() {
    
        return keyCode;
    }

    public void setKeyCode(int keyCode) {
    
        this.keyCode = keyCode;
    }

    public Category getCategory() {
    
        return category;
    }

    public void setCategory(Category category) {
    
        this.category = category;
    }

    public void toggle()
    {
    
        this.toggle = !this.toggle;
        if(this.toggle) onEnable(); else onDisable();
    }

    public void onEnable() {
    
        Coreium.INSTANCE.eventManager.register(this);
    }

    public void onDisable() {
    
        Coreium.INSTANCE.eventManager.unregister(this);
    }
}

五. 写ModuleManager类

package cn.enaium.coreium.module;

import cn.enaium.coreium.Coreium;
import cn.enaium.coreium.event.EventTarget;
import cn.enaium.coreium.event.events.EventKeyboard;

import java.util.ArrayList;

public class ModuleManager {
    
    private ArrayList<Module> modules;

    public ModuleManager() {
    
        this.modules = new ArrayList();
        Coreium.INSTANCE.eventManager.register(this);
    }

    public void loadMods() {
    

    }


    private void addModule(Module m) {
    
        modules.add(m);
    }

    @EventTarget
    public void onKey(EventKeyboard eventKeyBoard) {
    
        for (Module mod : modules) {
    
            if (mod.getKeyCode() == eventKeyBoard.getKey())
                mod.toggle();
        }
    }

    public ArrayList<Module> getModules() {
    
        return modules;
    }
}

六. 在Start添加

    public void start() {
    
        eventManager = new EventManager();
        moduleManager = new ModuleManager();
        Display.setTitle("Coreium");
        moduleManager.loadMods();
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Enaium/article/details/105030652

智能推荐

mac 安装tesseract、pytesseract, 实现图片里文字的识别_tesseract mac_数据挖掘者的博客-程序员秘密

一, tesseract-OCR的介绍1,tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2,用tesseract可以识别的图片中字体,主要有以下一些特点:使用一个标准字体可以使用复印或者拍照,但是必须字体要清晰,没有痕迹图片里没有歪歪斜斜的字体另外没有超出图片中的字体,也没有残缺的...

ckeditor5,vue使用_小码农路过的博客-程序员秘密

项目需求要字体颜色所以直接下载了npm install --save @ckeditor/ckeditor5-build-decoupled-document顺便删除不需要的功能&lt;template&gt; &lt;div&gt; &lt;ckeditor :editor="editor" @ready="onReady" v-model="content" :config="editorConfig" /&gt; &lt;/

20200922 001_经典算法面试题1——字符串匹配之KMP算法_面试kmp算法_强哥带你飞的博客-程序员秘密

20200922 001_经典算法面试题1——字符串匹配之KMP算法转载:https://blog.csdn.net/v_july_v/article/details/70418271. 字符串匹配问题:1)有一个字符串 str1= "BBC ABCDAB ABCDABCDABDE",和一个子串 str2="ABCDABD"2)现在要判断 str1 是否含有 str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-13)要求用最快的速度来完成匹配4)你的思路是什么?.

go语言xml文件的解析及生成代码示例_斜杠青年小️的博客-程序员秘密

Shanghai_VPN127.0.0.1Beijing_VPN127.0.0.2package main/*如果struct中有一个叫做XMLName,且类型为xml.Name字段,那么在解析的时候就会保存这个element的名字到该字段,如上面例子中的servers。如果某个struct字段的tag定义中含有XML结构中element的名

Java初级应用——编写西游记人物类,属性包括,身高,名字,武器。用一个测试类测试。_馆长先生的博客-程序员秘密

(1)编写西游记人物类(XiYouJiRenWu) 其中属性有:身高(height),名字(name),武器(weapon) 方法有:显示名字(printName),显示武器(printWeapon) (2)在主类的main方法中创建二个对象:zhuBaJie,sunWuKong。并分别为他 们的两个属性(name,weapon)赋值,最后分别调用printName, printWeapon方法 显示二个对象的属性值。初学Java,代码如下public class XiYouJiRenWu {

FPGA(一):用Verilog实现流水灯_10m50daf484c7g资料_简一cce的博客-程序员秘密

大三的冬季学期选了工程教育中级,上的内容是fpga相关的东西,目前课程已经上了一大半,进入到大作业项目阶段,上的知识点不是太多,主要还是普及教育为主,很多东西还是需要自己课下花时间认真地自学。写过几个认为还可以拿出来的例子,希望有时间可以一一分享出来供大家参考借鉴,如有错误还请多多指正。这次主要选择流水灯作为自己在FPGA方面的第一篇博客,很多人学习单片机、stm32抑或是FPGA都会有点灯相关...

随便推点

ZJNU 2021-07-14 个人排位赛3 部分题解_StelaYuri的博客-程序员秘密

完全不会数据结构就比较离谱A - RoadblockProblem Link题意FJ的农场由NNN个点MMM条边组成,边存在边权它每次都会沿着最短路径从点111走到点NNN现在FJ的牛想选择这张图中的任意一条边,使其边权翻倍问选择某条边翻倍后,FJ需要多走的距离的最大值是多少(最短路的最大增量)标签DijkstraSPFA思路先在原图中跑一遍SPFA,求出此时的最短路长度originalDistanceoriginalDistanceoriginalDistance并且回溯得到这条

setTimeout计时器_0到59 settimeout_雷滨滨的博客-程序员秘密

&lt;body&gt; &lt;h1&gt;setTimeout&lt;/h1&gt; &lt;span id="content"&gt;时间&lt;/span&gt; &lt;button onclick="start()"&gt;开始&lt;/button&gt; &lt;script&gt; var x = 00, y = 00, z = 00; function start () {..

双十一落幕,To B 企业低调进入增长时代_奥哲云枢 双11_RPA中国的博客-程序员秘密

1000万,TO B圈内一个惊人的数据。今年双十一期间,钉钉企业服务狂欢节为期一个月的进度条尚未过半,低代码平台氚云11天累积GMV率先突破1000万,刷新了钉钉开放平台历史上最快突破该数据的记录。这是中国企业服务领域的历史上,首个在双十一期间成交破千万的品牌。这一战绩也让氚云背后的母公司奥哲成为了低代码赛道上跑的最快的明星企业。11月下旬,钉钉总裁不穷一行前往奥哲杭州分公司表示祝贺,希望能携手氚云与国内众多企业走出一条具有中国特色的数字化之路。01中国企业服务市场的想象空间还很大上世纪90年代

Spring系列(四)、设计模式之代理模式_一宿君的博客-程序员秘密

4 代理模式代理模式是java中常用的设计模式,代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤信息、把消息转发给委托类、以及事后处理信息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与其委托类对象的关联(eg:Spring中Bean之间的依赖关系)。 代理类对象本身并不真正实现服务,而是通过调用委托类对象的相关方法来提供特定的服务。简单的说就是,我们在访问实际对象时,是通过代理类对象来访问的,代理模式就是在访问实际对象时引入一定程度的间接性,因为这种间接性,可以附加多种服务

2021 陇原战“疫”杯 eaaasyphp wp_Sapphire037的博客-程序员秘密

eaaasyphp&lt;?phpclass Check { public static $str1 = false; public static $str2 = false;}class Esle { public function __wakeup() { Check::$str1 = true; }}class Hint { public function __wakeup(){ $this-&gt

蓝牙模块HC-06的基本设置和他的AT指令集_hc06的at_听风不是云的博客-程序员秘密

蓝牙模块HC-06的基本设置和他的AT指令集今天早淘宝买了个HC-06蓝牙模块,结果买了个二手的,密码被修改过的,所以买回来首先得要学会进行基本设置,设置串口,波特率,密码。一、配置方法1.给蓝牙上电给HC-06上电之后,HC-06的指示灯会不停地闪烁,这个时候就标志着进入AT模式了2.有线串口连接可以使用USB转TTL类自动编程器把蓝牙和PC端链接3.蓝牙引脚连接RX-TXTX-RXVCC-VCCGND-GND4.打开串口调试助手(本人使用XCOM V2.3)找到有线串口线对应

推荐文章

热门文章

相关标签