E-Utils

E-Utils

EverlastingUtils是一个用于Hytale模组开发和所有Hysocs模组的强大实用程序库。

图书馆

 

EverlastingUtils (Hytale)

注意:如果你看到此页面,是因为它作为另一个模组的依赖前置,只需安装它即可,无需阅读此文档。

 

EverlastingUtils 是一个面向 Hytale 服务端开发的强大实用工具库。它抽象了复杂的样板代码,让开发者能够专注于游戏玩法功能,而不是底层基础设施。

特性

高级配置管理

一个强大 JSONC 配置系统的直接移植。

  • JSONC 支持:完全支持配置文件中的注释(///* */)。
  • 热重载:自动检测文件更改,无需重启服务端即可在运行时重新加载配置。
  • 自动保存与备份:内置自动保存功能,并在迁移前自动生成备份。
  • 版本控制:自动处理配置版本更新。

线程与调度

一个用于在 Hytale 环境中安全管理任务的安全包装器。

  • 安全:通过明确定义异步与同步执行,防止常见的并发错误。
  • 清理:在插件关闭时自动追踪并取消任务。
  • 统一 API:通过简单的静态方法运行一次性或重复性任务。

颜色解析

连接传统工作流与 Hytale 组件系统之间的桥梁。

  • 传统支持:将经典的 &a&l&f 等代码解析为 Hytale 的 Message 对象。
  • 十六进制支持:自动将标准颜色代码映射到特定的十六进制值。

 

使用示例

1. 配置管理

通过实现 ConfigManager.ConfigData 创建你的配置类:

public class MyConfig implements ConfigManager.ConfigData {
    // 必需的方法
    @Override public String getVersion() { return "1.0.0"; }
    @Override public String getConfigId() { return "my_plugin"; }
// 你的设置
public boolean debugMode = false;
public String welcomeMessage = "Hello World";

}

在你的主类中初始化它:

// 设置元数据(头部注释等)
ConfigMetadata meta = ConfigMetadata.createDefault("my_plugin");

// 初始化管理器 ConfigManager<MyConfig> configManager = new ConfigManager<>( MyConfig.class, new MyConfig(), meta );

// 在任何地方访问值 boolean isDebug = configManager.getConfig().debugMode;

 

2. 任务调度

在你的插件启动时初始化调度器(以便挂接到主游戏线程):

@Override
public void onServerStarted() {
    // 挂接到 Hytale 的主线程执行器
    SchedulerManager.init(runnable -> 
        HytaleServer.getInstance().getScheduler().execute(runnable)
    );
}

轻松调度任务:

// 在 5 秒后于主线程上运行一个任务(同步)
SchedulerManager.schedule("my_task_id", 5, TimeUnit.SECONDS, false, () -> {
    player.sendMessage(Message.raw("延迟的消息!"));
});

// 立即运行一个通用异步任务 SchedulerManager.schedule("async_calc", 0, TimeUnit.SECONDS, true, () -> { // 此处进行大量计算... });

 

3. 颜色解析

使用传统代码轻松发送格式化消息:

String rawText = "&a成功! &7你已收到 &e100 金币&7。";
Message message = ColorParser.parse(rawText);

player.sendMessage(message);

 

为开发者安装

将库添加到你的 build.gradle.kts 文件中。

1. 将 jar 放置到 libs 文件夹中

C:\Users\Administrator\Desktop\Mods\EventAntiXray\libs\everlastingutils-1.0.0.jar

2. 添加依赖:由于 EverlastingUtils 是一个独立模组,请使用 compileOnly,这样它就不会被打包进你的 jar 中:

dependencies {
    compileOnly("com.hysocs:everlastingutils:1.0.0")
    // 或者,如果使用 libs/ 中的本地 jar
    // compileOnly(files("libs/everlastingutils-1.0.0.jar"))
}

注意:请确保 EverlastingUtils 的 jar 文件在运行时存在于你服务端的 mods 文件夹中。