战利品表API

战利品表API

基于配置的战利品表API,包含等级、加权掷骰和保证掉落

图书馆

Loot Tables API

仅二进制库,用于战利品生成。


描述

⚠️ 这是一个早期阶段 API(v0.1.1)。API 可能会发生变化,且不保证向后兼容。

此库提供战利品表服务,支持以下功能:

  • 战利品 模式
  • 战利品 等级
  • 权重随机
  • 保证掉落
  • 可选元数据(名称、稀有度)
  • 直接插入到物品栏
  • 可配置的物品栏放置方式(随机 / 顺序)
  • 运行时配置重载(管理员命令)

它旨在作为其他服务器插件或模组的依赖项使用。


安装

1. 开发者(必需)

  1. LootGenerator 模组放入 Mods 文件夹。
  2. 在世界设置中启用该模组。

⚠️ 重要提示 LootGenerator 模组必须安装在 Mods 文件夹 并在世界中启用。 否则,战利品服务将不可用

2. 添加依赖

将依赖项添加到您的模组配置文件中。

manifest.json

"Dependencies": {
  "nofrfa.vectome.loot:LootGenerator": "*"
}

pom.xml

<dependency>
  <groupId>nofrfa.vectome.loot</groupId>
  <artifactId>LootGenerator</artifactId>
  <version>0.1.1</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/libs/LootGenerator-0.1.1.jar</systemPath>
</dependency>

📦 本地库 <您的模组>/libs/LootGenerator-0.1.1.jar

给开发者的注意事项 ⚙️

  • LootGenerator 模组必须安装在服务器上并在世界中启用。
  • systemPath 中指定的版本必须与实际 JAR 版本匹配。
  • 此库为仅二进制

使用方法

获取服务

战利品服务在启动时自动注册,可全局访问。

⚠️ 重要提示 建议使用 LootTableServices.getOrThrow() 而非 get() 以确保战利品服务可用。


随机生成战利品(不放入物品栏)

LootTableService lootService = LootTableServices.getOrThrow();

List<ItemStack> items = lootService.roll(
    "Default", // 模式
    "Basic",   // 等级
    3          // 随机次数
);

返回生成的 ItemStack 列表。


将战利品直接放入物品栏

LootInsertResult result = LootTableServices.getOrThrow().roll(
    "Default",
    "Rare",
    2,
    playerInventory
);

List<ItemStack> inserted = result.inserted();
List<ItemStack> remainder = result.remainder();
  • inserted — 成功放入物品栏的物品
  • remainder — 无法放入的物品

配置

配置文件在首次启动时自动创建,之后可以安全编辑。

配置结构

{
  "Modes": {
    "Default": {
      "Tiers": {
        "Basic": [
          {
            "Item": "Item_Id",
            "Name": "CustomName",
            "Guaranteed": true,
            "Rarity": 5,
            "Weight": 10,
            "Min": 1,
            "Max": 5
          }
        ]
      }
    }
  }
}

战利品条目字段

字段 类型 必需 默认值 描述
Item 字符串 物品标识符
Weight 整数 0 随机选择的权重
Guaranteed 布尔值 false 总是掉落一次;如果 Weight > 0,则也参与权重随机
Min 整数 1 最小数量
Max 整数 1 最大数量
Name 字符串 可选的自定义名称
Rarity 整数 可选的稀有度元数据

备注:

  • 保证条目在权重随机之前先掉落一次
  • Weight > 0 的条目参与权重随机,无论 Guaranteed 值如何
  • 如果一个战利品条目同时设置了 GuaranteedWeight,则可能多次掉落
  • Weight <= 0 的条目不参与权重随机
  • 所有数值在加载时会自动标准化

管理员命令

这些命令面向服务器管理员和开发者。 它们不添加任何游戏功能。

/lt reload — 在运行时重新加载战利品配置。 权限: loottables.reload


兼容性

  • API 和行为可能随未来的 Hytale 更新而变化
  • 不保证向后兼容

源代码

未发布。