ReLib

ReLib

通用Minecraft Mod库,同时驱动着Rere的Mod

ReLib

专为 Fabric 模组设计的通用工具库,最初为 TheSmoothRere 的模组构建,但任何人都可以使用。

功能

  • 配置系统 — 使用 @Config 注解定义配置类
  • 自动发现 — 通过 Fabric 入口点自动发现配置,并在启动时注册
  • JSON 持久化 — 配置值通过 Gson 以格式化的 JSON 形式保存/加载
  • 类型化选项 — BooleanOption、StringOption、IntegerOption、DoubleOption、EnumOption<E>、ListStringOption
  • 范围限制 — IntegerOption 和 DoubleOption 强制最小/最大值范围
  • 列表支持 — ListStringOption 基于可变 ListString 包装器,支持 add、edit、remove、clear

使用方式

1. 创建配置类

import io.github.thesmoothrere.relib.config.ListString;
import io.github.thesmoothrere.relib.config.option.*;

@Config(name = "my_mod")
public class MyModConfig implements ConfigApi {

    private final BooleanOption enabled = new BooleanOption("enabled", true);
    private final IntegerOption volume = new IntegerOption("volume", 50, 0, 100);
    private final DoubleOption sensitivity = new DoubleOption("sensitivity", 0.5, 0.0, 1.0);
    private final StringOption greeting = new StringOption("greeting", "Hello!");
    private final EnumOption<MyEnum> mode = new EnumOption<>("mode", MyEnum.NORMAL);
    private final ListStringOption favoriteColors = new ListStringOption("favorite_colors", "red", "blue");

    public ConfigOption<Boolean> enabled() {
        return enabled;
    }

    public ConfigOption<Integer> volume() {
        return volume;
    }

    public ConfigOption<Double> sensitivity() {
        return sensitivity;
    }

    public ConfigOption<String> greeting() {
        return greeting;
    }

    public ConfigOption<MyEnum> mode() {
        return mode;
    }

    public ConfigOption<ListString> favoriteColors() {
        return favoriteColors;
    }
}

2. 在 fabric.mod.json 中注册入口点

{
  "entrypoints": {
    "relib": [
      "com.example.MyModConfig"
    ]
  }
}

3. 在任何地方访问配置

MyModConfig config = ConfigManager.get(MyModConfig.class);
boolean enabled = config.enabled().getValue();

ConfigManager.load(config);
ConfigManager.save(config);

选项类型

类 值类型 有范围限制
BooleanOption Boolean 否
StringOption String 否
IntegerOption Integer 是
DoubleOption Double 是
EnumOption<E> E extends Enum<E> 否
ListStringOption ListString 否

许可证

根据 GNU 宽松通用公共许可证 v2.1 授权。请参阅 LICENSE。