
Matthiesen Core
一个适用于NeoForge和Fabric的库模组,使开发者能够通过共享的通用代码库创建模组。
Matthiesen Core
Matthiesen Core 是一个面向 NeoForge 和 Fabric 的库模组,旨在让开发者能够通过共享通用代码库来创建模组。它提供了一套可在多个模组间复用的核心功能和工具,从而简化开发与维护流程。借助它,您无需为每个平台分别维护实现,只需在通用代码中编写一次模组逻辑,平台相关的细节工作交由 Matthiesen Core 处理即可。
如果依赖 Matthiesen Core 的模组仅用于服务端,则无需在客户端安装 Matthiesen Core。但如果依赖 Matthiesen Core 的模组包含客户端组件,则客户端也必须安装 Matthiesen Core。
注意:对于普通用户来说,此库自身不会执行任何操作,仅为其他模组提供核心功能支持。如果您不是模组开发者,只需将该模组与依赖它的其他模组一同放入
mods/文件夹即可正常使用。
Matthiesen Core 是 Matthiesen Lib 和 Matthiesen Lib Api 的继任者。这两个独立的库现已合并为一个统一的库模组,为模组开发者提供了更精简、高效的体验。
功能特性
Matthiesen Core 提供了一套统一的 API,用于:
- 内容注册:以平台无关的方式注册方块、物品、实体及其他游戏内容。
- 事件处理:跨平台监听并处理游戏事件。
- 网络通信:在客户端和服务器之间发送和接收网络数据包。
- 配置管理:以一致的方式管理模组配置和设置。
- 工具函数:提供多种常见任务的工具函数,例如日志记录、资源管理等。
- 客户端侧功能:包括 HUD 管理、按键绑定处理和界面管理等客户端专属功能。
- 权限管理:提供一套权限系统,用于管理对特定功能或命令的访问权限。
必需依赖
- Fabric API(仅限 Fabric)
- Forge Config API Port(仅限 Fabric)
可选依赖
- Adventure Platform Mod
- Ember's Text API
- Impactor
- LuckPerms
- Minecraft SQLite JDBC
- Minecraft MySQL JDBC
- Fabric Permissions API(仅限 Fabric)
版本兼容性
| Minecraft 版本 | 模组版本 |
|---|---|
| 1.21.1 | 1.x.x |
开发者快速入门
Matthiesen Core 的开发版本和源码可从 Matthiesen Dev Maven 获取。
Gradle
步骤 1:将 Maven 仓库添加到您的 build.gradle.kts 文件中
repositories {
maven("https://maven.matthiesen.dev/releases") {
name = "devMatthiesenMaven-releases"
}
// 对于快照版本,请同时添加快照仓库
maven("https://maven.matthiesen.dev/snapshots") {
name = "devMatthiesenMaven-snapshots"
}
}
步骤 2:将版本属性添加到您的 gradle.properties 文件中
matthiesen_core_version=1.x.x
注意:请将
1.x.x替换为 Matthiesen Core 的最新版本。您可以在 Matthiesen Dev Maven 上找到最新版本,或参考下方表格中的最新版本信息。
| 发布类型 | 版本徽章 |
|---|---|
| 最新发布 |
步骤 3:将依赖添加到您的 build.gradle.kts 文件中
// 在 common/build.gradle.kts 中
dependencies {
modImplementation("dev.matthiesen:matthiesen-core-common:${property("matthiesen_core_version")}") {
isTransitive = false
}
}
// 在 fabric/build.gradle.kts 中
dependencies {
modImplementation("dev.matthiesen:matthiesen-core-fabric:${property("matthiesen_core_version")}") {
isTransitive = false
}
}
// 在 neoforge/build.gradle.kts 中
dependencies {
modImplementation("dev.matthiesen:matthiesen-core-neoforge:${property("matthiesen_core_version")}") {
isTransitive = false
}
}
步骤 4:加载器特定的依赖设置
对于 Fabric 和 NeoForge,您需要在模组元数据文件(例如 Fabric 的 fabric.mod.json 或 NeoForge 的 neoforge.mods.toml)中添加相应的加载器特定依赖。这可以确保您的模组加载到正确版本的 Matthiesen Core。
Fabric 示例(fabric.mod.json):
{
"depends": {
"matthiesen_core": ">=1.x.x"
}
}
NeoForge 示例(neoforge.mods.toml):
[[dependencies.yourmodid]]
modId = "matthiesen_core"
type = "required"
versionRange = "[1.x.x,)"
ordering = "AFTER"
side = "BOTH"
步骤 5:同步您的项目,并配置您的通用模组代码库以使用 Matthiesen Core 的 API 进行内容注册、事件处理、网络通信等功能。
AbstractCommonMod:在您的通用模组代码库中扩展 AbstractCommonMod 类,以利用 Matthiesen Core 的核心功能。此类为您的模组提供了基础支持,让您可以专注于实现模组的独特功能,而 Matthiesen Core 会处理平台相关的细节。
package com.example.mymod;
import dev.matthiesen.matthiesen_core.common.AbstractCommonMod;
import dev.matthiesen.libs.faststats.Token;
public final class ExampleModCommon extends AbstractCommonMod {
public static final String MOD_ID = "examplemod";
public static final String MOD_NAME = "Example Mod";
public static @Token final String METRICS_TOKEN = ""; // 由 FastStats.dev 提供(可选,可为 null 以禁用您模组的统计功能)
public static final ExampleModCommon INSTANCE = new ExampleModCommon();
private ExampleModCommon() {
super(MOD_ID, MOD_NAME);
}
@Override
public @Nullable @Token String getMetricsToken() {
return METRICS_TOKEN;
}
@Override
public void initialize() {
super.initialize();
createInfoLog("正在初始化 Example Mod 通用部分...");
}
}
AbstractCommonClientMod:在您的客户端模组代码库中扩展 AbstractCommonClientMod 类,以利用 Matthiesen Core 提供的客户端特定功能。此类为您的客户端模组提供了基础支持,让您可以专注于实现模组独特的客户端功能,而 Matthiesen Core 会处理平台相关的细节。
package com.example.mymod.client;
import dev.matthiesen.matthiesen_core.common.AbstractCommonClientMod;
import com.example.mymod.ExampleModCommon;
public final class ExampleModCommonClient extends AbstractCommonClientMod {
public static final ExampleModCommonClient INSTANCE = new ExampleModCommonClient();
private ExampleModCommonClient() {
super(ExampleModCommon.INSTANCE);
}
@Override
public void initialize() {
createInfoLog("正在初始化 Example Mod 通用客户端逻辑...");
}
}
延伸阅读
该模组的文档可在 mods.matthiesen.dev 查看
FastStats 统计
此模组使用 FastStats 收集匿名的使用统计数据。这有助于开发者了解该模组的使用情况并持续改进。您可以访问 FastStats: Information 了解更多关于收集了哪些数据以及如何使用这些数据的信息。
您还可以在 FastStats: Matthiesen Core 页面上查看此模组收集的数据。
要选择退出此数据收集,请在 <游戏目录>/config/matthiesen_core/metrics.properties 文件中将 enabled 属性设置为 false。
许可证
MIT - 请参阅 LICENSE。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。