全局战利品修饰器生成
继承 GlobalLootModifierProvider 并实现 #start,即可为模组生成全局战利品修饰器(GLM)。调用 #add,指定修饰器名称和待序列化的修饰器实例,即可生成各个 GLM。实现后,必须将提供者添加到 DataGenerator。
原创说明图,依据 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
));