From 7fa8c3227fa864508f59536a37a783f730cba29b Mon Sep 17 00:00:00 2001 From: Kli Kli Date: Sat, 24 Jun 2023 16:13:37 +0200 Subject: [PATCH] fix: advancement trigger on familiar summon Closes #940 --- .../occultism/common/ritual/FamiliarRitual.java | 10 ++++++++++ .../occultism/common/ritual/SummonWildHuntRitual.java | 10 +++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/klikli_dev/occultism/common/ritual/FamiliarRitual.java b/src/main/java/com/github/klikli_dev/occultism/common/ritual/FamiliarRitual.java index 62dd94333..f5932b32f 100644 --- a/src/main/java/com/github/klikli_dev/occultism/common/ritual/FamiliarRitual.java +++ b/src/main/java/com/github/klikli_dev/occultism/common/ritual/FamiliarRitual.java @@ -25,11 +25,15 @@ import com.github.klikli_dev.occultism.common.blockentity.GoldenSacrificialBowlBlockEntity; import com.github.klikli_dev.occultism.common.entity.familiar.FamiliarEntity; import com.github.klikli_dev.occultism.crafting.recipe.RitualRecipe; +import com.github.klikli_dev.occultism.registry.OccultismAdvancements; +import com.github.klikli_dev.occultism.registry.OccultismSounds; import com.github.klikli_dev.occultism.util.ItemNBTUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobSpawnType; @@ -47,6 +51,12 @@ public FamiliarRitual(RitualRecipe recipe) { @Override public void finish(Level level, BlockPos goldenBowlPosition, GoldenSacrificialBowlBlockEntity blockEntity, Player castingPlayer, ItemStack activationItem) { + //manually call content of Ritual.finish(), because we cannot access it via super + level.playSound(null, goldenBowlPosition, OccultismSounds.POOF.get(), SoundSource.BLOCKS, 0.7f, + 0.7f); + castingPlayer.displayClientMessage(Component.translatable(this.getFinishedMessage()), true); + OccultismAdvancements.RITUAL.trigger((ServerPlayer) castingPlayer, this); + String entityName = ItemNBTUtil.getBoundSpiritName(activationItem); activationItem.shrink(1); //remove original activation item. diff --git a/src/main/java/com/github/klikli_dev/occultism/common/ritual/SummonWildHuntRitual.java b/src/main/java/com/github/klikli_dev/occultism/common/ritual/SummonWildHuntRitual.java index fda63938a..6efa9a6da 100644 --- a/src/main/java/com/github/klikli_dev/occultism/common/ritual/SummonWildHuntRitual.java +++ b/src/main/java/com/github/klikli_dev/occultism/common/ritual/SummonWildHuntRitual.java @@ -24,11 +24,15 @@ import com.github.klikli_dev.occultism.common.blockentity.GoldenSacrificialBowlBlockEntity; import com.github.klikli_dev.occultism.crafting.recipe.RitualRecipe; +import com.github.klikli_dev.occultism.registry.OccultismAdvancements; +import com.github.klikli_dev.occultism.registry.OccultismSounds; import com.github.klikli_dev.occultism.util.TextUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.*; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -44,7 +48,11 @@ public SummonWildHuntRitual(RitualRecipe recipe) { @Override public void finish(Level level, BlockPos goldenBowlPosition, GoldenSacrificialBowlBlockEntity blockEntity, Player castingPlayer, ItemStack activationItem) { - super.finish(level, goldenBowlPosition, blockEntity, castingPlayer, activationItem); + //manually call content of Ritual.finish(), because we cannot access it via super + level.playSound(null, goldenBowlPosition, OccultismSounds.POOF.get(), SoundSource.BLOCKS, 0.7f, + 0.7f); + castingPlayer.displayClientMessage(Component.translatable(this.getFinishedMessage()), true); + OccultismAdvancements.RITUAL.trigger((ServerPlayer) castingPlayer, this); activationItem.shrink(1); //remove original activation item.