diff --git a/build.gradle b/build.gradle index a9400d6..58babaf 100644 --- a/build.gradle +++ b/build.gradle @@ -96,7 +96,7 @@ dependencies { // And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version. // For all intends and purposes: You can treat this dependency as if it is a normal library you would use. implementation "net.neoforged:neoforge:${neo_version}" - +// compileOnly("mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}") // Example optional mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" @@ -156,6 +156,16 @@ publishing { maven { url "file://${project.projectDir}/repo" } +// maven { +// // location of the maven that hosts JEI files since January 2023 +// name = "Jared's maven" +// url = "https://maven.blamejared.com/" +// } +// maven { +// // location of a maven mirror for JEI files, as a fallback +// name = "ModMaven" +// url = "https://modmaven.dev" +// } } } diff --git a/gradle.properties b/gradle.properties index 6dfc44b..fafaed7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,7 +21,9 @@ neo_version=21.0.157 neo_version_range=[21.0.0-beta,) # The loader version range can only use the major version of FML as bounds loader_version_range=[4,) - +#jei_setting +#jei_version=19.5.0.59 +#mc_version=1.21 ## Mod Properties # The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} @@ -32,7 +34,7 @@ mod_name=Leashed Player # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=0.0.3.9.9 +mod_version=0.0.3.9.9.1 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index 84e5b06..a5f7825 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,4 +1,4 @@ -// 1.21 2024-11-08T16:34:21.9849347 Recipes +// 1.21 2024-11-11T00:11:59.3315663 Recipes 13ebe9a580731296eb10c05d1844657d58e07cc1 data/leashedplayer/advancement/recipes/misc/amethyst_shears.json 1b45d1ad8dc73f1787c97777ad13d9771c9e0ad1 data/leashedplayer/advancement/recipes/misc/leash_rope_arrow.json 04bd2d8a0c7288776da2119eb9a9f9cf694be1b6 data/leashedplayer/recipe/amethyst_shears.json @@ -7,4 +7,5 @@ c0e05f359296d3e28573fa1b205ac44736376622 data/minecraft/advancement/recipes/misc 131fcbef603bfde7204d8e1ad15e4544696926bf data/minecraft/advancement/recipes/misc/spectral_leash_rope_arrow_with_leash_rope_arrow.json bb5909aa91d878c8f0ef9999881cfe89532509dd data/minecraft/recipe/spectral_leash_rope_arrow_with_glowstone_dust.json a1381da885fbedec01243c78afbb0a50ca803ee4 data/minecraft/recipe/spectral_leash_rope_arrow_with_leash_rope_arrow.json -0553b07b223b84a1e4b4ce089f92b56a4d76ee84 data/minecraft/recipe/tipped_leash_rope_arrow.json +789cca4f5f6e86d5b7515afc4129121cf79d4579 data/minecraft/recipe/tipped_leash_rope_arrow_a.json +afe9e74453638d25e9fed30fd2ddc23afcc4e397 data/minecraft/recipe/tipped_leash_rope_arrow_b.json diff --git a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 index d6217a1..15a9b31 100644 --- a/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 +++ b/src/generated/resources/.cache/e5c5eb35b4ba40351ecb7d9f04c3527f2f5779b0 @@ -1,4 +1,4 @@ -// 1.21 2024-11-08T21:47:39.4393293 Advancements +// 1.21 2024-11-10T23:56:54.4171709 Advancements 4d97adba079f1966090a52443bb439319f550680 data/leashedplayer/advancement/advancement_leash_arrow.json f16184b81ea35a0fbd8f2c49b085a96c32818c69 data/leashedplayer/advancement/dog_running_player.json bce12ed339b3b0fded263ba039f7a4e6fcfb84ca data/leashedplayer/advancement/follow_arrow.json @@ -8,4 +8,4 @@ a69a455855fb6dd8a8ac131a55099de5de45d7c4 data/leashedplayer/advancement/leash_ar 133f844ffafd37b9ba57cafa96350f035cac57f9 data/leashedplayer/advancement/leash_start.json 2d8bce7fd078f9cc6b73b77f2fbab30e6cc197f4 data/leashedplayer/advancement/leash_terminator.json 4b0bcf6b372f52e954edcef37a6b04435ec2b4e8 data/leashedplayer/advancement/no_leash.json -f1350976a55f2344f2f3b12f00ad8f465f400de5 data/leashedplayer/advancement/tipped_leash_arrow.json +72f40eb5816d1e8c296bdf4df6b599c15ba7e7e9 data/leashedplayer/advancement/tipped_leash_arrow.json diff --git a/src/generated/resources/data/leashedplayer/advancement/tipped_leash_arrow.json b/src/generated/resources/data/leashedplayer/advancement/tipped_leash_arrow.json index 60c6a36..9353cfd 100644 --- a/src/generated/resources/data/leashedplayer/advancement/tipped_leash_arrow.json +++ b/src/generated/resources/data/leashedplayer/advancement/tipped_leash_arrow.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "leashedplayer:amethyst_shears" + "items": "leashedplayer:tipped_leash_rope_arrow" } ] }, diff --git a/src/generated/resources/data/minecraft/recipe/tipped_leash_rope_arrow.json b/src/generated/resources/data/minecraft/recipe/tipped_leash_rope_arrow.json deleted file mode 100644 index 604bbaa..0000000 --- a/src/generated/resources/data/minecraft/recipe/tipped_leash_rope_arrow.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "minecraft:tipped_leash_rope_arrow_recipe", - "category": "misc" -} \ No newline at end of file diff --git a/src/main/java/com/r3944realms/leashedplayer/CommonEventHandler.java b/src/main/java/com/r3944realms/leashedplayer/CommonEventHandler.java index 0a42905..1518182 100644 --- a/src/main/java/com/r3944realms/leashedplayer/CommonEventHandler.java +++ b/src/main/java/com/r3944realms/leashedplayer/CommonEventHandler.java @@ -16,7 +16,7 @@ import com.r3944realms.leashedplayer.content.items.repcipe.TippedLeashRopeArrowR import com.r3944realms.leashedplayer.content.misc.LeadBreakItemBehavior; import com.r3944realms.leashedplayer.modInterface.PlayerLeashable; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.data.recipes.SpecialRecipeBuilder; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Leashable; @@ -95,7 +95,17 @@ public class CommonEventHandler { } @SubscribeEvent public static void onRegisterEvent(RegisterEvent event) { - ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_RECIPE = RecipeSerializer.register("tipped_leash_rope_arrow_recipe", new SimpleCraftingRecipeSerializer<>(TippedLeashRopeArrowRecipe::new)); + if (event.getRegistry() == BuiltInRegistries.RECIPE_SERIALIZER) { + ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_A_RECIPE = + RecipeSerializer.register( + "tipped_leash_rope_arrow_a_recipe", + new SimpleCraftingRecipeSerializer<>(TippedLeashRopeArrowRecipe.TippedLeashRopeArrowARecipe::new) + ); + ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_B_RECIPE = + RecipeSerializer.register("tipped_leash_rope_arrow_b_recipe", + new SimpleCraftingRecipeSerializer<>(TippedLeashRopeArrowRecipe.TippedLeashRopeArrowBRecipe::new) + ); + } } } diff --git a/src/main/java/com/r3944realms/leashedplayer/content/effects/type/StunnedEffect.java b/src/main/java/com/r3944realms/leashedplayer/content/effects/type/StunnedEffect.java new file mode 100644 index 0000000..e520616 --- /dev/null +++ b/src/main/java/com/r3944realms/leashedplayer/content/effects/type/StunnedEffect.java @@ -0,0 +1,12 @@ +package com.r3944realms.leashedplayer.content.effects.type; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.ai.attributes.Attributes; + + +public class StunnedEffect extends MobEffect { + public StunnedEffect(MobEffectCategory pCategory, int pColor) { + super(MobEffectCategory.HARMFUL, 0XFFFBC5); + } +} diff --git a/src/main/java/com/r3944realms/leashedplayer/content/entities/LeashRopeArrow.java b/src/main/java/com/r3944realms/leashedplayer/content/entities/LeashRopeArrow.java index d40f35a..1d8c6b0 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/entities/LeashRopeArrow.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/entities/LeashRopeArrow.java @@ -15,7 +15,6 @@ import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.BlockTags; import net.minecraft.world.effect.MobEffectInstance; @@ -27,7 +26,6 @@ import net.minecraft.world.entity.decoration.LeashFenceKnotEntity; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.AbstractArrow; -import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.alchemy.PotionContents; @@ -66,7 +64,7 @@ public class LeashRopeArrow extends AbstractArrow { } @Override - protected void defineSynchedData(SynchedEntityData.Builder pBuilder) { + protected void defineSynchedData(SynchedEntityData.@NotNull Builder pBuilder) { super.defineSynchedData(pBuilder); pBuilder.define(ID_EFFECT_COLOR, -1); } diff --git a/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/DefaultTalkArea.java b/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/DefaultTalkArea.java index 1634305..d23a604 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/DefaultTalkArea.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/DefaultTalkArea.java @@ -12,7 +12,7 @@ import static com.r3944realms.leashedplayer.content.gamerules.Gamerules.GAMERULE @EventBusSubscriber(modid = LeashedPlayer.MOD_ID, bus = EventBusSubscriber.Bus.MOD) public class DefaultTalkArea { - public static String CHAT_NONE_HEARD_YOU = "leashedplayer.chat.none_heard_you"; + public static final String CHAT_NONE_HEARD_YOU = "leashedplayer.chat.none_heard_you"; public static final int DEFAULT_VALUE = -1; public static final String ID = Util.getGameruleName(DefaultTalkArea.class); public static final String DESCRIPTION_KEY = Gamerules.getDescriptionKey(DefaultTalkArea.class); diff --git a/src/main/java/com/r3944realms/leashedplayer/content/items/ModItemRegister.java b/src/main/java/com/r3944realms/leashedplayer/content/items/ModItemRegister.java index 784701a..8bf62e8 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/items/ModItemRegister.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/items/ModItemRegister.java @@ -47,6 +47,7 @@ public class ModItemRegister { public static final Supplier NEOFORGE = ModItemRegister.register("neoforge", () -> new Item(DistProperties(ModJukeboxSongs.FOX_MUSIC))); + public static Item.Properties DistProperties(ResourceKey song) { return new Item.Properties().stacksTo(1).rarity(Rarity.RARE).jukeboxPlayable(song); } diff --git a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/ModRecipeSerializer.java b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/ModRecipeSerializer.java index ddc8d42..0629a3c 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/ModRecipeSerializer.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/ModRecipeSerializer.java @@ -4,5 +4,6 @@ import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; public abstract class ModRecipeSerializer> implements RecipeSerializer { - public static RecipeSerializer TIPPED_LEASH_ROPE_ARROW_RECIPE; + public static RecipeSerializer TIPPED_LEASH_ROPE_ARROW_A_RECIPE; + public static RecipeSerializer TIPPED_LEASH_ROPE_ARROW_B_RECIPE; } diff --git a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java index 91c1fe7..d3647fb 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java @@ -5,61 +5,115 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponents; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.*; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; -public class TippedLeashRopeArrowRecipe extends CustomRecipe { - public TippedLeashRopeArrowRecipe(CraftingBookCategory pCategory) { - super(pCategory); - } +public abstract class TippedLeashRopeArrowRecipe { + public static class TippedLeashRopeArrowARecipe extends CustomRecipe { + public TippedLeashRopeArrowARecipe(CraftingBookCategory pCategory) { + super(pCategory); + } - public boolean matches(CraftingInput pInput, @NotNull Level pLevel) { - if (pInput.width() == 3 && pInput.height() == 3) { - for (int i = 0; i < pInput.height(); i++) { - for (int j = 0; j < pInput.width(); j++) { - ItemStack itemstack = pInput.getItem(j, i); - if (itemstack.isEmpty()) { - return false; - } - - if (j == 1 && i == 1) { - if (!itemstack.is(Items.LINGERING_POTION)) { + public boolean matches(CraftingInput pInput, @NotNull Level pLevel) { + if (pInput.width() == 3 && pInput.height() == 3) { + for (int i = 0; i < pInput.height(); i++) { + for (int j = 0; j < pInput.width(); j++) { + ItemStack itemstack = pInput.getItem(j, i); + if (itemstack.isEmpty()) { return false; } - } else if (!itemstack.is(ModItemRegister.LEASH_ROPE_ARROW.get())) { - return false; + + if (j == 1 && i == 1) { + if (!itemstack.is(Items.LINGERING_POTION)) { + return false; + } + } else if (!itemstack.is(ModItemRegister.LEASH_ROPE_ARROW.get())) { + return false; + } + } + } + + return true; + } else { + return false; + } + } + + public @NotNull ItemStack assemble(CraftingInput pInput, HolderLookup.@NotNull Provider pRegistries) { + ItemStack itemstack = pInput.getItem(1, 1); + if (!itemstack.is(Items.LINGERING_POTION)) { + return ItemStack.EMPTY; + } else { + ItemStack itemstack1 = new ItemStack(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get(), 8); + itemstack1.set(DataComponents.POTION_CONTENTS, itemstack.get(DataComponents.POTION_CONTENTS)); + return itemstack1; + } + } + + /** + * Used to determine if this recipe can fit in a grid of the given width/height + */ + @Override + public boolean canCraftInDimensions(int pWidth, int pHeight) { + return pWidth >= 3 && pHeight >= 3; + } + + @Override + public @NotNull RecipeSerializer getSerializer() { + return ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_A_RECIPE; + } + } + public static class TippedLeashRopeArrowBRecipe extends CustomRecipe { + + public TippedLeashRopeArrowBRecipe(CraftingBookCategory pCategory) { + super(pCategory); + } + + @Override + public boolean matches(CraftingInput pInput, @NotNull Level pLevel) { + int tipped_arrow_count = 0, lead_count = 0; + for (int i = 0; i < pInput.width(); i++) { + for (int j = 0; j < pInput.height(); j++) { + if (pInput.getItem(i, j).is(Items.TIPPED_ARROW)) + tipped_arrow_count++; + else if(pInput.getItem(i, j).is(Items.LEAD)) + lead_count++; + } + } + return tipped_arrow_count == 1 && lead_count == 1; + } + + @Override + public @NotNull ItemStack assemble(@NotNull CraftingInput pInput, HolderLookup.@NotNull Provider pRegistries) { + ItemStack tipped_arrow = null; + NODE:for (int i = 0; i < pInput.width(); i++) { + for (int j = 0; j < pInput.height(); j++) { + if (pInput.getItem(i, j).is(Items.TIPPED_ARROW)) { + tipped_arrow = pInput.getItem(i, j); + break NODE; } } } - - return true; - } else { - return false; - } - } - - public @NotNull ItemStack assemble(CraftingInput pInput, HolderLookup.@NotNull Provider pRegistries) { - ItemStack itemstack = pInput.getItem(1, 1); - if (!itemstack.is(Items.LINGERING_POTION)) { + if(tipped_arrow != null) { + ItemStack itemstack1 = new ItemStack(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get(), 1); + itemstack1.set(DataComponents.POTION_CONTENTS, tipped_arrow.get(DataComponents.POTION_CONTENTS)); + return itemstack1; + } return ItemStack.EMPTY; - } else { - ItemStack itemstack1 = new ItemStack(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get(), 8); - itemstack1.set(DataComponents.POTION_CONTENTS, itemstack.get(DataComponents.POTION_CONTENTS)); - return itemstack1; } - } - /** - * Used to determine if this recipe can fit in a grid of the given width/height - */ - @Override - public boolean canCraftInDimensions(int pWidth, int pHeight) { - return pWidth >= 3 && pHeight >= 3; - } + @Override + public boolean canCraftInDimensions(int pWidth, int pHeight) { + return pWidth >= 2 && pHeight >= 2; + } - @Override - public @NotNull RecipeSerializer getSerializer() { - return ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_RECIPE; + @Override + public @NotNull RecipeSerializer getSerializer() { + return ModRecipeSerializer.TIPPED_LEASH_ROPE_ARROW_B_RECIPE; + } } } diff --git a/src/main/java/com/r3944realms/leashedplayer/content/items/type/LeadBreakerItem.java b/src/main/java/com/r3944realms/leashedplayer/content/items/type/LeadBreakerItem.java index 9fe472a..eb755cb 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/items/type/LeadBreakerItem.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/items/type/LeadBreakerItem.java @@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; public class LeadBreakerItem extends ShearsItem { - public static String HOVER_KEY = "leashedplayer.lead_breaker.item.desc"; + public static final String HOVER_KEY = "leashedplayer.lead_breaker.item.desc"; public LeadBreakerItem(Properties properties) { super(properties); } diff --git a/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java b/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java index 2cfd4b3..c5e6619 100644 --- a/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java +++ b/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java @@ -15,7 +15,6 @@ import com.r3944realms.leashedplayer.content.items.ModItemRegister; import com.r3944realms.leashedplayer.content.items.type.LeadBreakerItem; import com.r3944realms.leashedplayer.content.items.type.LeashRopeArrowItem; import com.r3944realms.leashedplayer.content.items.type.TippedLeashRopeArrow; -import com.r3944realms.leashedplayer.content.misc.LeadBreakItemBehavior; import com.r3944realms.leashedplayer.content.sounds.ModSoundRegister; import com.r3944realms.leashedplayer.datagen.provider.attributes.ModPaintingVariants; import com.r3944realms.leashedplayer.utils.Enum.LanguageEnum; diff --git a/src/main/java/com/r3944realms/leashedplayer/datagen/ModDataGeneratorHandler.java b/src/main/java/com/r3944realms/leashedplayer/datagen/ModDataGeneratorHandler.java index 0a6ae96..6615fc7 100644 --- a/src/main/java/com/r3944realms/leashedplayer/datagen/ModDataGeneratorHandler.java +++ b/src/main/java/com/r3944realms/leashedplayer/datagen/ModDataGeneratorHandler.java @@ -84,9 +84,7 @@ public class ModDataGeneratorHandler { private static void ModPaintVariantTagsProvider(GatherDataEvent event, CompletableFuture completableFuture, ExistingFileHelper helper) { event.getGenerator().addProvider( event.includeServer(), - (DataProvider.Factory) pOutput -> { - return new ModPaintingVariantTagsProvider(pOutput, completableFuture, LeashedPlayer.MOD_ID, helper); - } + (DataProvider.Factory) pOutput -> new ModPaintingVariantTagsProvider(pOutput, completableFuture, LeashedPlayer.MOD_ID, helper) ); } diff --git a/src/main/java/com/r3944realms/leashedplayer/datagen/generator/ModAdvancementGenerator.java b/src/main/java/com/r3944realms/leashedplayer/datagen/generator/ModAdvancementGenerator.java index 5c497d5..eed1e91 100644 --- a/src/main/java/com/r3944realms/leashedplayer/datagen/generator/ModAdvancementGenerator.java +++ b/src/main/java/com/r3944realms/leashedplayer/datagen/generator/ModAdvancementGenerator.java @@ -141,7 +141,7 @@ public class ModAdvancementGenerator implements AdvancementProvider.AdvancementG true, true, true - ).addCriterion("has_tipped_leash_arrow", InventoryChangeTrigger.TriggerInstance.hasItems(ModItemRegister.AMETHYST_SHEARS.get()) + ).addCriterion("has_tipped_leash_arrow", InventoryChangeTrigger.TriggerInstance.hasItems(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get()) ).parent(hasLeashRopeArrow).save(saver, ModAdvancementKey.TIPPED_LEASH_ARROW.getNameWithNameSpace()); AdvancementHolder no_leash = Advancement.Builder.advancement().display( diff --git a/src/main/java/com/r3944realms/leashedplayer/datagen/provider/ModRecipeProvider.java b/src/main/java/com/r3944realms/leashedplayer/datagen/provider/ModRecipeProvider.java index a6aa358..dac0f19 100644 --- a/src/main/java/com/r3944realms/leashedplayer/datagen/provider/ModRecipeProvider.java +++ b/src/main/java/com/r3944realms/leashedplayer/datagen/provider/ModRecipeProvider.java @@ -45,8 +45,8 @@ public class ModRecipeProvider extends RecipeProvider { .define('%', Items.STICK) .unlockedBy("has_amethyst_shard",has(Items.AMETHYST_SHARD)) .save(pRecipeOutput); - SpecialRecipeBuilder.special(TippedLeashRopeArrowRecipe::new).save(pRecipeOutput,"tipped_leash_rope_arrow"); - + SpecialRecipeBuilder.special(TippedLeashRopeArrowRecipe.TippedLeashRopeArrowARecipe::new).save(pRecipeOutput,"tipped_leash_rope_arrow_a"); + SpecialRecipeBuilder.special(TippedLeashRopeArrowRecipe.TippedLeashRopeArrowBRecipe::new).save(pRecipeOutput,"tipped_leash_rope_arrow_b"); }