Jump to content

auriny

Members
  • Posts

    53
  • Joined

  • Last visited

Everything posted by auriny

  1. if you mean this, yes, but from the very beginning, when I made this line, it seemed to me that I did something wrong and what should be in "type"? i didnt understood when i read this https://mcforge.readthedocs.io/en/1.16.x/items/globallootmodifiers
  2. How to fix it? error: blaze_rinkril.json: { "conditions": [ { "condition": "forge:loot_table_id", "loot_table_id": "minecraft:entities/blaze" } ], "addition": "cosrpg:rinkril" } global_loot_modifiers.json: { "replace": false, "entries": [ "cosrpg:blaze_rinkril" ] } how im trying to register serializer: package com.auriny.cosrpg.events; import com.auriny.cosrpg.CoSRPG; import com.auriny.cosrpg.events.loot.RinkrilAdditionModifier; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.loot.GlobalLootModifierSerializer; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import javax.annotation.Nonnull; public class ModEventBusEvents { @SubscribeEvent public static void registerModifierSerializers(@Nonnull final RegistryEvent.Register<GlobalLootModifierSerializer<?>> event) { event.getRegistry().registerAll( new RinkrilAdditionModifier.Serializer().setRegistryName (new ResourceLocation(CoSRPG.MOD_ID, "blaze_rinkril")) ); } } RinkrilAdditionModifier: package com.auriny.cosrpg.events.loot; import com.google.gson.JsonObject; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.loot.LootContext; import net.minecraft.loot.conditions.ILootCondition; import net.minecraft.util.JSONUtils; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.loot.GlobalLootModifierSerializer; import net.minecraftforge.common.loot.LootModifier; import net.minecraftforge.registries.ForgeRegistries; import javax.annotation.Nonnull; import java.util.List; import java.util.Objects; public class RinkrilAdditionModifier extends LootModifier { private Item addition; public RinkrilAdditionModifier(ILootCondition[] conditionsIn, Item addition) { super(conditionsIn); this.addition = addition; } protected RinkrilAdditionModifier(ILootCondition[] conditionsIn) { super(conditionsIn); } @Nonnull @Override protected List<ItemStack> doApply(List<ItemStack> generatedLoot, LootContext context) { // generatedLoot is the loot that would be dropped, if we wouldn't add or replace // anything! generatedLoot.add(new ItemStack(addition)); return generatedLoot; } public static class Serializer extends GlobalLootModifierSerializer<RinkrilAdditionModifier> { @Override public RinkrilAdditionModifier read(ResourceLocation name, JsonObject object, ILootCondition[] conditionsIn) { Item addition = ForgeRegistries.ITEMS.getValue( new ResourceLocation(JSONUtils.getAsString(object, "addition"))); return new RinkrilAdditionModifier(conditionsIn, addition); } @Override public JsonObject write(RinkrilAdditionModifier instance) { JsonObject json = makeConditions(instance.conditions); json.addProperty("addition", Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(instance.addition)).toString()); return json; } } } paths: https://prnt.sc/4CdRkN5hf6Xt it seems to me that I did everything correctly, but since it does not work, there is some kind of error. any help is welcome.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.