事件

NeoForge 的主要特性之一是事件系统。事件会在游戏中发生的各种事情时触发。例如,有玩家右键单击、玩家或其他实体跳跃、方块渲染、游戏加载等事件。模组开发者可以将事件处理程序订阅到这些事件中的每一个,然后在这些事件处理程序内部执行他们想要的行为。 事件在其各自的事件总线上触发。最重要的总线是 Ne


侧(Sides)

像许多其他程序一样,Minecraft 遵循客户端-服务器概念,其中客户端负责显示数据,而服务器负责更新数据。当我们使用这些术语时,我们对它们的含义有相当直观的理解……对吧? 事实证明,并非如此。许多混淆源于 Minecraft 根据上下文有两种不同的“侧”的概念:物理侧和逻辑侧。 物理侧与逻辑侧


注册表

注册是将模组的对象(例如物品、方块、实体等)提供给游戏的过程。注册事物很重要,因为没有注册,游戏将根本不知道这些对象,这将导致无法解释的行为和崩溃。 简而言之,注册表是围绕映射的包装器,该映射将注册名称(稍后介绍)映射到已注册的对象,通常称为注册条目。注册名称在同一注册表中必须是唯一的,但相同的注册


版本控制

这篇文章会讲清楚 Minecraft 和 NeoForge 是怎么进行版本控制的,也会给模组的版本控制提一些建议。 Minecraft Minecraft 使用语义化版本控制(semantic versioning),简称 "semver",其格式为 major.minor.patch。 major


模组文件

模组文件与决定以何种方式将你的模组打包进你的JAR包,Mods菜单中要显示什么信息,你的模组应该怎样加载进游戏有关。 gradle.properties gradle.properties文件里面有各种有关于你的模组的常见属性,例如模组id或者模组版本。在构建的时候,Gradle会读取这些文件中的值


开始使用NeoForge

本节包含了有关如何建立NeoForge工作空间以及如何运行并测试你的模组的信息 前提条件 熟悉编程语言Java,尤其是其中的面向对象,多态,泛型以及各种功能特性。 安装JDK21以及64位的JVM。 NeoForge官方推荐微软的OpenJDK,但是其他的JDK也一样可以运行。 ⚠️注意


什么是“依赖注入”(DI - Dependency Injection)

依赖注入的本质是一种设计模式,最终目的还是为了实现松耦合(并非完全不需要类之间的耦合关系,而是降低耦合) 传统的耦合问题 class Car { private Engine engine = new Engine(); // Car 类负责创建 Engine 实例 public


为Gradle设置代理

Gradle真的是个很麻烦的东西,这里给出一个方法让Gradle直接走代理,省的到处换国国内源 找到你项目中的gradle.properties,在这个文件中加入以下内容: 配置HTTP代理 systemProp.http.proxyHost=www.somehost.org systemProp.