Skip to content

Commit cd33e77

Browse files
committed
fix: old patchouli books not working when right clicking tables
1 parent 45f441e commit cd33e77

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

src/main/kotlin/com/williambl/haema/compat/emi/HaemaEmiPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.williambl.haema.compat.emi
22

33
import com.williambl.haema.Haema
44
import com.williambl.haema.api.RitualTableUseEvent
5+
import com.williambl.haema.core.BookOfBloodItem
56
import com.williambl.haema.craft.BookOfBloodRecipe
67
import com.williambl.haema.ritual.RitualModule
78
import dev.emi.emi.api.EmiApi
@@ -41,7 +42,7 @@ class HaemaEmiPlugin: EmiPlugin{
4142

4243
init {
4344
RitualTableUseEvent.EVENT.register(RitualTableUseEvent { _, world, _, player, hand, _ ->
44-
if (player.getStackInHand(hand).item == Haema.BOOK_OF_BLOOD && world.isClient) {
45+
if (BookOfBloodItem.isBook(player.getStackInHand(hand)) && world.isClient) {
4546
EmiApi.displayRecipeCategory(RitualCategory)
4647
}
4748
})

src/main/kotlin/com/williambl/haema/compat/rei/HaemaREIPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.williambl.haema.compat.rei
22

33
import com.williambl.haema.Haema
44
import com.williambl.haema.api.RitualTableUseEvent
5+
import com.williambl.haema.core.BookOfBloodItem
56
import com.williambl.haema.craft.BookOfBloodRecipe
67
import com.williambl.haema.ritual.craft.RitualRecipe
78
import com.williambl.haema.util.SelfClosingScreen
@@ -29,7 +30,7 @@ class HaemaREIPlugin : REIClientPlugin {
2930

3031
init {
3132
RitualTableUseEvent.EVENT.register(RitualTableUseEvent { _, world, _, player, hand, _ ->
32-
if (player.getStackInHand(hand).item == Haema.BOOK_OF_BLOOD && world.isClient) {
33+
if (BookOfBloodItem.isBook(player.getStackInHand(hand)) && world.isClient) {
3334
ViewSearchBuilder.builder().addCategory(ritualId).open()
3435
REIRuntimeImpl.getInstance().previousScreen = SelfClosingScreen()
3536
}

src/main/kotlin/com/williambl/haema/core/BookOfBloodItem.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import net.minecraft.world.World
1212
import vazkii.patchouli.api.PatchouliAPI
1313
import vazkii.patchouli.common.base.PatchouliSounds
1414
import vazkii.patchouli.common.book.BookRegistry
15+
import vazkii.patchouli.common.item.PatchouliItems
1516

1617
class BookOfBloodItem(settings: Settings?) : Item(settings) {
1718
override fun use(world: World, player: PlayerEntity, hand: Hand): TypedActionResult<ItemStack> {
@@ -25,4 +26,10 @@ class BookOfBloodItem(settings: Settings?) : Item(settings) {
2526
}
2627
return TypedActionResult(ActionResult.SUCCESS, stack)
2728
}
29+
30+
companion object {
31+
fun isBook(stack: ItemStack): Boolean {
32+
return stack.item is BookOfBloodItem || stack.item == PatchouliItems.BOOK
33+
}
34+
}
2835
}

src/main/kotlin/com/williambl/haema/ritual/RitualModule.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.williambl.haema.ritual
22

33
import com.williambl.haema.Haema
44
import com.williambl.haema.api.RitualTableUseEvent
5+
import com.williambl.haema.core.BookOfBloodItem
56
import com.williambl.haema.id
67
import com.williambl.haema.ritual.craft.AddLevelsRitualAction
78
import com.williambl.haema.ritual.craft.ChangeAbilitiesRitualAction
@@ -27,6 +28,7 @@ import net.minecraft.util.hit.BlockHitResult
2728
import net.minecraft.util.math.BlockPos
2829
import net.minecraft.util.registry.Registry
2930
import net.minecraft.world.World
31+
import vazkii.patchouli.common.item.PatchouliItems
3032
import vazkii.patchouli.common.multiblock.DenseMultiblock
3133
import vazkii.patchouli.common.multiblock.MultiblockRegistry
3234
import vazkii.patchouli.common.multiblock.StateMatcher
@@ -62,7 +64,11 @@ object RitualModule: ModInitializer {
6264

6365
override fun onInitialize() {
6466
RitualTableUseEvent.EVENT.register { _: BlockState, world: World, _: BlockPos, player: PlayerEntity, hand: Hand, _: BlockHitResult ->
65-
if (player.getStackInHand(hand).item == Haema.BOOK_OF_BLOOD && world.isClient && !FabricLoader.getInstance().isModLoaded("roughlyenoughitems") && !FabricLoader.getInstance().isModLoaded("emi")) {
67+
if (world.isClient
68+
&& BookOfBloodItem.isBook(player.getStackInHand(hand))
69+
&& !FabricLoader.getInstance().isModLoaded("roughlyenoughitems")
70+
&& !FabricLoader.getInstance().isModLoaded("emi")
71+
) {
6672
player.sendMessage(Text.translatable("gui.haema.message.no_recipe_viewer"), true);
6773
}
6874
}

0 commit comments

Comments
 (0)