RAVN (RPG属性、数值与节点)

RAVN (RPG属性、数值与节点)

RAVN(角色扮演属性、价值观和节点)是一个RPG模组API,用于定义和展示角色身份与成长。

早期插件

RPG-Attributes-Values-and-Nodes

RAVN(角色扮演属性、数值与节点)是一个 RPG 模组开发 API,用于定义、存储和暴露角色身份与成长数值。RAVN 将角色建模为一个由可组合节点构成的网络,这些节点代表属性、技能、经验、等级、血统、职业以及角色叙事身份(如姓名和背景)。

RAVN Core 0.1.1 – API 与数据规范

公开 API 表面

RavnApi

package com.ravnquest.ravncore.api;

public interface RavnApi {
    Registries registries();
    RavnEvents events();
    ApiVersion version();
}

通过提供器获取该 API:

RavnApi api = RavnApiProvider.get();

注册表

package com.ravnquest.ravncore.api;

public interface Registries {
    Registry<Ancestry> ancestries();
    Registry<Background> backgrounds();
    Registry<RavnClass> classes();
    Registry<Skill> skills();
    Registry<Attribute> attributes();
    Registry<ProgressionPath> progressionPaths();
}

每个注册表在运行时均为只读。


Registry

public interface Registry<T> {
    T get(String id);
    Collection<T> all();
}

成长 API

package com.ravnquest.ravncore.api;

public interface ProgressionApi {
    ProgressionService service();
}

通过以下方式访问:

ProgressionApi api = ProgressionApi.Holder.get();

事件

package com.ravnquest.ravncore.api.event;

public interface RavnEvents {
    Event<PlayerJoinEvent> playerJoin();
}

事件采用订阅机制并由服务端控制。


内置 JSON 数据(权威数据)

所有随模组一同提供的数据都存在于 JAR 内部的以下路径:

/defaults/

这些文件定义了规范模式。

包含的文件

文件 用途
ancestries.json 可选血统
ancestry_traits.json 血统特性定义
attributes.json 核心属性
background.json 背景
classes.json 职业
skills.json 技能
progression_paths.json 升级路径

JSON 契约规则

  • id 字段必须全局唯一
  • 交叉引用必须在加载时解析

扩展规则

不得覆盖默认数据。 可以使用相同模式添加新条目。

自定义数据必须与内置结构完全一致。