EverlastingUtils 是一个功能强大的服务器端实用工具与 API 库,专为 Fabric 模组工具链设计。它提供了一个健壮的框架,用于实现模组开发者经常需要的常见但复杂的功能,让他们能更专注于模组的独特内容。
> 致玩家: 如果您下载的模组需要 "EverlastingUtils",您只需将此库安装到您的 mods 文件夹中。您可以忽略以下所有技术信息。
>
> 旧版本: 如果您正在使用需要此库的旧版本模组,请下载 EverlastingUtils 版本 1.0.2。
>
>
> 从本部分开始的信息,面向希望在其项目中使用 EverlastingUtils 作为依赖项的模组开发者。
> </div>
EverlastingUtils 旨在通过提供现成可用的高质量系统来加速开发,包括:
ConfigManager)ConfigManager 是一个复杂的系统,旨在以最少的样板代码处理配置管理的所有方面。
主要功能:
config.jsonc 文件和任意数量的子目录中的"次要"配置文件,非常适合组织复杂数据,如宝可梦或战利品池。ConfigManager 会比较用户配置文件中的版本号与您模组的当前版本。如果不匹配,它会自动将用户现有的设置合并到新的、已更新的配置结构中,保留他们的更改。使用示例:
// 1. 定义您的配置结构
data class MyConfig(
override val version: String = "1.0.0",
override val configId: String = "mymod", // 用于配置文件夹名称
var debugMode: Boolean = false,
var welcomeMessage: String = "Welcome to my server!"
) : ConfigData
// 2. 在模组的入口点初始化管理器
val configManager = ConfigManager(
currentVersion = "1.0.0", // 您模组的当前版本
defaultConfig = MyConfig(),
configClass = MyConfig::class,
metadata = ConfigMetadata(
headerComments = listOf("MyMod 的主配置文件。"),
sectionComments = mapOf("debugMode" to "启用详细的控制台日志记录。")
)
)
// 3. 在任何地方访问您的配置
val isDebug = configManager.getCurrentConfig().debugMode
SchedulerManager)SchedulerManager 提供了一种安全高效的方式来调度延迟或重复任务,专为 Minecraft 服务器环境构建。
主要功能:
使用示例:
// 在您的服务器端初始化器中(例如,在 ServerLifecycleEvents.SERVER_STARTED 内部)
val server = ... // 获取 MinecraftServer 实例
// 调度一个任务,在主服务器线程上每 5 分钟运行一次
SchedulerManager.scheduleAtFixedRate(
id = "mymod-broadcast-task", // 此任务的唯一 ID
server = server,
initialDelay = 0,
period = 5,
unit = TimeUnit.MINUTES,
runAsync = false, // 重要:false 表示在主服务器线程上运行
task = {
// 因为 runAsync 是 false,所以此代码可以安全运行
server.playerManager.broadcast(Text.literal("已经过去 5 分钟了!"), false)
}
)
CommandManager)一个流畅的构建器,用于以更少的样板代码创建 Brigadier 命令。它会自动处理权限检查,支持原版 OP 等级和 Fabric Permissions API。
val commandManager = CommandManager(modId = "mymod")
commandManager.command("hello", permission = "mymod.hello") {
executes { context ->
context.source.sendFeedback({ Text.literal("Hello, world!") }, false)
1 // 成功
}
subcommand("admin") {
executes { context -> /* ... */ }
}
}
// 别忘了注册它!
commandManager.register()
CustomGui & AnvilGuiManager)通过基于回调的逻辑、动态更新以及对标题和描述的完整 MiniMessage 支持,快速为您的玩家创建交互式 GUI。
// 一个简单箱子 GUI 的示例
CustomGui.openGuiFormatted(
player = player,
title = "My Awesome GUI",
layout = listOf(
CustomGui.createFormattedButton(
ItemStack(Items.DIAMOND),
"Click Me!",
listOf("This is a button."),
player
)
),
onInteract = { context ->
if (context.slotIndex == 0) {
player.sendMessage(Text.literal("您点击了按钮!"))
CustomGui.closeGui(player)
}
},
onClose = { /* ... */ }
)
要在您的项目中使用 EverlastingUtils,请将其添加到您的依赖项中。
repositories {
// 添加托管 EverlastingUtils 的仓库
maven { url = "https://api.modrinth.com/maven" }
}
dependencies {
// 将库添加为依赖项
modImplementation("maven.modrinth:e-utils:1.1.2") // 替换为最新版本
}
确保在您的 fabric.mod.json 文件中声明依赖项。
"depends": {
"everlastingutils": ">=1.1.2" // 替换为您正在使用的版本
} 友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:1,305,524 | 历史访问人次:1,616,441
今日访问人数:19,156 | 今日访问人次:20,785
昨日访问人数:19,876 | 昨日访问人次:23,068
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6