aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/world/anhgelus/lifesteal/LifeStealer.java3
-rw-r--r--src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java42
-rw-r--r--src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java12
-rw-r--r--src/main/resources/fabric.mod.json3
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": [