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,一经查实,立即删除!

相关文章

深度学习-使用 Bash 脚本

在深度学习领域,Bash 脚本通常用于管理和自动化训练模型、数据预处理、后处理以及环境设置等任务。虽然 Bash 脚本本身并不直接参与深度学习的计算,但它在简化工作流程和提高效率方面扮演着重要角色。以下是一些使用 Bash 脚本的理由: 自动化…

Vue41-vc实例与vm实例

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

【PythonCode】力扣Leetcode26~30题Python版

【PythonCode】力扣Leetcode26~30题Python版 前言 力扣Leetcode是一个集学习、刷题、竞赛等功能于一体的编程学习平台,很多计算机相关专业的学生、编程自学者、IT从业者在上面学习和刷题。 在Leetcode上刷题,可以选择各种主流的编程语言,如C…

XML 编辑器:功能、选择与使用技巧

XML 编辑器:功能、选择与使用技巧 简介 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。由于其灵活性和广泛的应用,XML编辑器成为开发者、数据管理者和内容创作者的重要工具。本文将探讨XML编辑器的功能、选择标准以及…

python,django好的get和post请求

获得get请求 df request.GET.get("dades")获得post请求 文件settings.py关闭csrf MIDDLEWARE [ ‘django.middleware.security.SecurityMiddleware’, ‘django.contrib.sessions.middleware.SessionMiddleware’, ‘django.middleware.common.CommonMiddleware’…

简单的Scikit-Learn入门示例

以下是一个简单的Scikit-Learn入门示例,该示例使用鸢尾花(Iris)数据集来演示分类问题的基本步骤。这个数据集包含了150个样本,每个样本有四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及…

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 端口映射到容器的 …

Pandoc工具笔记总结

1. 安装 参考: https://zhuanlan.zhihu.com/p/612355849 http://t.csdnimg.cn/WABXA 2. 必备工具说明 pandoc:用来转换格式,务必下载3.1版本,https://pandoc.org/installing.html pandoc-crossref:一个用于 Pand…

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

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

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

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

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

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

HTML基础标签解析:H1-H6、DIV与P的正确使用方法

在网页设计与开发中,HTML(HyperText Markup Language,超文本标记语言)是最为基础也是最为重要的组成部分之一。它定义了网页的内容结构和意义,使得浏览器能够正确地解析并展示网页给用户。本文将重点介绍HTML中的标题标…

WDF驱动开发-同步技术

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

vscode python环境配置

在Visual Studio Code(VSCode)中配置Python环境是一个相对直接的过程。以下是配置VSCode Python环境的详细步骤: 1. 安装Python 下载Python安装包:访问Python官方网站(https://www.python.org/downloads/&#xff09…

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

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

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

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