Minecraft模组开发(fabric)之准备工作

Minecraft模组开发(fabric)之准备工作

最近心血来潮想开发个Minecraft的模组,一边学习一边开发,顺带着将一些步骤、学习心得整理下来。之所以选择fabric,是因为自己的光影包使用的是iris-fabric,所以就想着写fabric的模组兼容性应该会好一些。听说大部分大型模组都是通过forge开发的?没考证过,不过感觉关系不大,同样的逻辑不同的实现方式罢了。
想要开发Minecraft的模组,有Java基础是必须的。虽然听说市面上有些工具可以可视化、拖拽式地开发模组,但是功能较为有限,想要随心所欲地进行开发,编程基础是必不可少的……就算不会Java,也得会点儿别的语言吧。

Java环境

根据Minecraft官方的说法,目前的最新版(1.20.X)要求Java17,而实际上,Java已经更新到21了。出于“喜新厌旧”的心理,我就直接用Java21了。
实际上,如果只是开发模组,是可以不用在操作系统里安装Java环境,或者说配置全局的环境变量的。在编译工程的时候,以IDEA为例,可以为这个工程设置Java版本,如果本地没有相应的jdk,还可以通过IDEA直接下载使用。不过需要记得,有两个地方需要设置Java环境——一个是Project Structure里需要设置JDK,然后就是gradle的setting里需要设置。详情后面会讲到的。

初始化工程

fabric提供了一个初始化模板的网站,网址是:

https://fabricmc.net/develop/template/

进入这个网页之后,需要重点关注的有两部分:

  1. 设置mod工程的相关名称,比如mod的名称以及package的名称等,同时选择这个mod对应哪些版本。
  2. 一些高级选项,比如是否使用Mojang的官方映射、是否支持Kotlin等。我个人的选择是不区分客户端、服务端,然后选择数据生成。详见下图(已经翻译成中文了)
    在这里插入图片描述
    配置好了之后点击这个页面最下方的「下载模板」按钮,就可以下载到一个干净的模板工程。紧接着通过IDEA(或者其他的编译器也可以,随意,用得顺手就好)打开这个工程。在Project Structure中配置Java的环境,如下图:
    在这里插入图片描述
    然后在Gradle中配置Gradle所使用的Java环境,如下图所示:
    在这里插入图片描述
    全部设置好之后,就可以build这个工程了。在实际操作中,因为网络环境的原因,下载一些依赖可能会失败,这时候就不得不多尝试几次,甚至更换网络环境。我有一次成功的时候,也有反反复复重复十几次才将所有依赖下载下来的时候,这就看命了。
    全部设置完之后,选择Minecraft Client然后运行,就可以看到打开了一个Minecraft的客户端,也就意味着准备工作圆满完成。
    在这里插入图片描述
    工程正常运行起来的样子:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue41-vc实例与vm实例

一、 vc实例与vm实例的区别 vc实例与vm实例,99%结构都是类似的,仅2点不同: el属性data的书写格式 1-1、 el属性 vc有的功能vm都有,但是vm能通过el决定为哪个容器服务,但是vc却不行! 1-2、data的书写格式

unity38——MemoryProfiler性能分析器,截帧分析当前性能占用率的具体文件

定义:性能分析器 (Unity Profiler) 是一种可以用来获取应用程序性能信息的工具。可以将性能分析器连接到网络中的设备或连接到已连接到计算机的设备,从而测试应用程序在目标发布平台上的运行情况。还可以在 Editor 中运行性能分析器,从而在开…

高精度减法的实现

这是C算法基础-基础算法专栏的第八篇文章,专栏详情请见此处。 引入 上次我们学习了高精度加法的实现,这次我们要学习高精度减法的实现。 高精度减法与高精度加法的定义、前置过程都是大致相同的,如果想了解具体内容,可以移步至我的…

显著提高iOS应用中Web页面的加载速度 - 提前下载页面的关键资源(如JavaScript、CSS和图像)

手动下载并缓存资源是一种有效的方式,可以确保在需要时资源已经在本地存储,这样可以显著提高加载速度。 缓存整个 web 页面的所有资源文件 具体实现步骤 下载和缓存资源:包括 HTML 文件、CSS、JavaScript 和图像。在应用启动时预加载资源。…

实现搜索功能中搜索内容高亮效果,本文通过fuzzysort库方案实现

目录 一:fuzzysort1.fuzzysort 介绍:2.需求所用方法介绍:gohighlight 3.效果实现 一:fuzzysort 1.fuzzysort 介绍: fuzzysort 是一个 JavaScript 库,用于对字符串数组进行模糊搜索和排序。它特别适用于自动补全&#…

Docker安装Nginx(各种错误版)

Docker安装-CSDN博客 安装启动Docker之后 docker run -d -p 81:81 --name nginx nginx 这样没有指定版本 docker run:启动一个新的容器。-d:以分离模式运行容器(后台运行)。-p 81:81:将主机的 81 端口映射到容器的 …

【网络安全学习】使用Kali做渗透情报收集-01-<域名信息主机信息>

1.收集开源情报 开源情报(Open Source Intelligence,OSINT)是指从各种公开的渠道中寻找和获取有价值的信息 如:互联网、媒体、社交网络、公共数据库等开源情报具有以下特点: - 丰富性:开源情报涵盖了各种类型和领域的信息 - 可…

Linux---系统的初步学习【项目一:Linux操作系统的安装与配置】

项目一 Linux操作系统的安装与配置 1.1 项目知识准备 1.1.1 操作系统是什么? ​ 操作系统(Operating System,OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理硬件、决定程序运行的优先次序、管理文件系统等…

WPF中的隧道路由和冒泡路由事件

文章目录 简介:一、事件最基本的用法二、理解路由事件 简介: WPF中使用路由事件升级了传统应用开发中的事件,在WPF中使用路由事件能更好的处理事件相关的逻辑,我们从这篇开始整理事件的用法和什么是直接路由,什么是冒…

WDF驱动开发-同步技术

使用自动同步 基于框架的驱动程序中几乎所有的代码都驻留在事件回调函数中。 框架会自动同步驱动程序的大部分回调函数,如下所示: 框架始终将 常规设备对象、 功能设备对象 (FDO) 和 物理设备对象 (PDO) 事件回调函数同步,以便每个设备一次…

Java高阶数据结构-----并查集(详解)

目录 🧐一.并查集的基本概念&实例: 🤪二.并查集代码: 😂三:并查集的一些习题: A.省份数量 B.等式方程的可满足性 🧐一.并查集的基本概念&实例: 并查集概念&…

向量化在人工智能领域的深度实践:技术革新与效率提升

在人工智能(AI)的飞速发展中,向量化技术作为一种基础且关键的数据处理手段,正日益受到广泛关注。向量化是将文本、图像、声音等数据转换为数值向量的过程,这些向量能够表示原始数据的特征和语义信息,为深度…

13.ChatGPT 大模型训练核心技术

ChatGPT 大模型训练核心技术 从 GPT-3 到 ChatGPT 的大模型训练技术演进 基于RLHF训练大模型的三阶段 • Domain Specific Pre-Training: Fine-tune a pre-trained LLM on raw text with a Causal Language Modelling Objective.• Supervised fine-tuning: Fine-tune the do…

外网访问公司内网服务器?

【天联】组网天联可以解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息远程通信问题。在全国各主要节点部署加速服务器,实现在低带宽、跨运营商的网络环境下高速访问;这为公司内网服务器提供了一个可行的外网访问解决方案。 在现代办公环境中…

CANoe连接Option Scope使用方法

系列文章目录 文章目录 系列文章目录前言一、前提条件二、CANoe配置三、PicoScope接线四、CANoe捕捉报文五、眼图功能前言 本文档主要介绍如何使用CANoe Option .Scope捕获CAN总线上的物理波形,并利用眼图进行分析。 一、前提条件 使用CANoe Option .Scope,需要具备以下条件…

AI绘画入门教程(非常详细)从零基础入门到精通Midjourney提示词,咒语

Microorganisms infiltrating through brain-machine interfaces --v 6.0 Microorganisms infiltrating through brain-machine interfaces ,redpupil --v 6.0 Microorganisms infiltrating through brain-machine interfaces,billion girls dream --v 6.0 --niji 6 “动漫风”…

Qt信号槽的回调机制

问:Qt强大的地方在哪里? 答:跨平台、信号槽。。。 问:信号槽是什么? 答:回调函数 问:怎么个回调法子 答:。。。 成果 信号槽本身实现过程是有些复杂的,所以本人参考…

50【Aseprite 作图】模糊工具 笔刷

1 模糊工具 2 笔刷 然后 选中 后 Ctrl B,就变成笔刷了 可以按住shift ,像画一条线一样 或者用矩形、圆形工具、油漆桶工具 在上方可以选择笔刷的不同形式,如果是“图案与来源对齐”,就是来源不变,笔刷不会覆盖之前…

每日5题Day24 - LeetCode 116 - 120

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) /* // Definition for a Node. class Node {public int val;public Node left;…

LeetCode | 171.Excel表列序号

这道题涉及到字符串和进制转换,首先我们先创建一个A-Z到1-26的map映射,方便我们后续遍历字符串转换,然后对字符串从后往前遍历,依次加上对应权重,注意越往前的权重越大,要记得对应乘上26的对应方数 class …