diff options
Diffstat (limited to 'src/main')
4 files changed, 59 insertions, 1 deletions
diff --git a/src/main/java/world/anhgelus/lifesteal/LifeStealer.java b/src/main/java/world/anhgelus/lifesteal/LifeStealer.java index 9052515..5036b4e 100644 --- a/src/main/java/world/anhgelus/lifesteal/LifeStealer.java +++ b/src/main/java/world/anhgelus/lifesteal/LifeStealer.java @@ -11,6 +11,7 @@ import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; import net.minecraft.server.BannedPlayerEntry; import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; @@ -53,7 +54,7 @@ public class LifeStealer { final var nbt = new NbtCompound(); nbt.putString(PLAYER_KEY, player.getUuid().toString()); final var is = new ItemStack(Items.NETHER_STAR); - is.set(DataComponentTypes.CUSTOM_NAME, player.getName()); + is.set(DataComponentTypes.CUSTOM_NAME, Text.empty().append(Text.of("Heart of ")).append(player.getName())); is.set(DataComponentTypes.CUSTOM_DATA, NbtComponent.of(nbt)); return is; } diff --git a/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java b/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java new file mode 100644 index 0000000..69763e0 --- /dev/null +++ b/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java @@ -0,0 +1,42 @@ +package world.anhgelus.lifesteal.datagen; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.data.recipe.RecipeExporter; +import net.minecraft.data.recipe.RecipeGenerator; +import net.minecraft.item.Items; +import net.minecraft.recipe.book.RecipeCategory; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +public class CraftProvider extends FabricRecipeProvider { + public CraftProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected RecipeGenerator getRecipeGenerator(RegistryWrapper.WrapperLookup registryLookup, RecipeExporter exporter) { + return new RecipeGenerator(registryLookup, exporter) { + @Override + public void generate() { + final var base = createShaped(RecipeCategory.COMBAT, Items.NETHER_STAR) + .pattern("sns") + .pattern("nrn") + .pattern("sns") + .input('s', Items.NAUTILUS_SHELL) + .input('n', Items.NETHERITE_INGOT) + .criterion(hasItem(Items.NETHERITE_INGOT), conditionsFromItem(Items.NETHERITE_INGOT)); + base.input('r', Items.OMINOUS_TRIAL_KEY).offerTo(exporter); + base.input('r', Items.DRAGON_HEAD).offerTo(exporter); + base.input('r', Items.WITHER_SKELETON_SKULL).offerTo(exporter); + } + }; + } + + + @Override + public String getName() { + return "LifeStealRecipesProvider"; + } +} diff --git a/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java b/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java new file mode 100644 index 0000000..3c82011 --- /dev/null +++ b/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java @@ -0,0 +1,12 @@ +package world.anhgelus.lifesteal.datagen; + +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +public class DataGenerator implements DataGeneratorEntrypoint { + @Override + public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { + final var pack = fabricDataGenerator.createPack(); + pack.addProvider(CraftProvider::new); + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 805e28b..74ba1e7 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -12,6 +12,9 @@ "entrypoints": { "main": [ "world.anhgelus.lifesteal.LifeSteal" + ], + "fabric-datagen": [ + "world.anhgelus.lifesteal.datagen.DataGenerator" ] }, "mixins": [ |
