全局战利品修饰器提供器

全局战利品修饰器生成

继承 GlobalLootModifierProvider 并实现 #start,即可为模组生成全局战利品修饰器(GLM)。调用 #add,指定修饰器名称和待序列化的修饰器实例,即可生成各个 GLM。实现后,必须将提供者添加到 DataGenerator。

GlobalLootModifierProvider 在 start 中以 add 接收修饰器名称和实例,再生成全局战利品修饰器数据;原文实例包含下雨条件。

原创说明图,依据 Forge 1.21.x 官方文档 绘制。

// 在模组事件总线上
@SubscribeEvent
public void gatherData(GatherDataEvent event) {
  event.getGenerator().addProvider(
    event.includeServer(), // 仅在生成服务端数据时运行
    output -> new MyGlobalLootModifierProvider(output, MOD_ID)
  );
}

// 在 GlobalLootModifierProvider#start 中
this.add("example_modifier", new ExampleModifier(
  new LootItemCondition[] {
    WeatherCheck.weather().setRaining(true).build() // 下雨时执行
  },
  "val1",
  10,
  Items.DIRT
));

原文:Global Loot Modifier Generation。