From 82e410ad336dd739203f7e268af379065a511128 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 2 Apr 2023 15:10:13 +0700 Subject: [PATCH] Use onItemUseFirst --- .../mc/otm/OverdriveThatMatters.java | 3 --- .../mc/otm/item/FluidCapsuleItem.kt | 17 ++++++++--------- .../dbotthepony/mc/otm/item/PriorityUseItem.kt | 18 ------------------ 3 files changed, 8 insertions(+), 30 deletions(-) delete mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/item/PriorityUseItem.kt diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index 8f5a5f643..20ee86646 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -47,7 +47,6 @@ import ru.dbotthepony.mc.otm.config.ServerConfig; import ru.dbotthepony.mc.otm.config.ToolsConfig; import ru.dbotthepony.mc.otm.core.math.Decimal; import ru.dbotthepony.mc.otm.item.ItemTritaniumArmor; -import ru.dbotthepony.mc.otm.item.PriorityUseItemKt; import ru.dbotthepony.mc.otm.item.QuantumBatteryItem; import ru.dbotthepony.mc.otm.item.weapon.AbstractWeaponItem; import ru.dbotthepony.mc.otm.item.PortableCondensationDriveItem; @@ -187,8 +186,6 @@ public final class OverdriveThatMatters { EVENT_BUS.addListener(EventPriority.NORMAL, MatteryBlockEntity.Companion::playerDisconnected); EVENT_BUS.addListener(EventPriority.LOWEST, MatteryBlockEntity.Companion::postLevelTick); - EVENT_BUS.addListener(EventPriority.NORMAL, PriorityUseItemKt::onItemRightClick); - EVENT_BUS.addListener(EventPriority.LOWEST, KillAsAndroidTrigger.INSTANCE::onKill); EVENT_BUS.addListener(EventPriority.NORMAL, EnderTeleporterFeature.Companion::onEntityDeath); diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt index 6da3b2b88..52fc46eab 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt @@ -24,7 +24,6 @@ import net.minecraft.world.level.material.Fluids import net.minecraftforge.common.SoundActions import net.minecraftforge.common.capabilities.ForgeCapabilities import net.minecraftforge.common.capabilities.ICapabilityProvider -import net.minecraftforge.event.entity.player.PlayerInteractEvent import net.minecraftforge.fluids.FluidStack import net.minecraftforge.fluids.capability.IFluidHandler import net.minecraftforge.fluids.capability.templates.FluidHandlerItemStack @@ -38,7 +37,7 @@ import ru.dbotthepony.mc.otm.core.immutableList import ru.dbotthepony.mc.otm.core.immutableMap import ru.dbotthepony.mc.otm.core.orNull -class FluidCapsuleItem(val capacity: () -> Int) : Item(Properties().stacksTo(64)), PriorityUseItem { +class FluidCapsuleItem(val capacity: () -> Int) : Item(Properties().stacksTo(64)) { private inner class Cap(itemStack: ItemStack) : FluidHandlerItemStack(itemStack, capacity.invoke()) { override fun fill(resource: FluidStack, doFill: IFluidHandler.FluidAction): Int { this.capacity = this@FluidCapsuleItem.capacity.invoke() @@ -61,17 +60,17 @@ class FluidCapsuleItem(val capacity: () -> Int) : Item(Properties().stacksTo(64) } } - override fun isPriorityConsumer(event: PlayerInteractEvent.RightClickBlock): Boolean { - return canInteract(event.itemStack, event.entity, Context(event.hitVec.blockPos, event.entity.level.getBlockState(event.hitVec.blockPos), event.hitVec.direction)) - } - - override fun useOn(pContext: UseOnContext): InteractionResult { + // TODO: Так как использование предмета заблокировано за player.abilities.canBuild + // капсулу нельзя использовать в режиме приключения + // почему же можно использовать вёдра на котлах? + // ИБО КОТЛЫ ЗАХАРДКОЖЕНЫ НА ВЗАИМОДЕЙСТВИЕ С ВЁДРАМИ + override fun onItemUseFirst(stack: ItemStack, pContext: UseOnContext): InteractionResult { val context = Context(pContext.clickedPos, pContext.level.getBlockState(pContext.clickedPos), pContext.clickedFace) if (canInteract(pContext.itemInHand, pContext.player ?: return InteractionResult.FAIL, context)) return interact(pContext.itemInHand, pContext.player!!, context) - return InteractionResult.FAIL + return super.onItemUseFirst(stack, pContext) } override fun getName(pStack: ItemStack): Component { @@ -140,7 +139,7 @@ class FluidCapsuleItem(val capacity: () -> Int) : Item(Properties().stacksTo(64) } } - return InteractionResult.sidedSuccess(player.level.isClientSide) + return InteractionResult.CONSUME } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PriorityUseItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PriorityUseItem.kt deleted file mode 100644 index 6f6475e46..000000000 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PriorityUseItem.kt +++ /dev/null @@ -1,18 +0,0 @@ -package ru.dbotthepony.mc.otm.item - -import net.minecraftforge.event.entity.player.PlayerInteractEvent -import net.minecraftforge.eventbus.api.Event - -interface PriorityUseItem { - fun isPriorityConsumer(event: PlayerInteractEvent.RightClickBlock): Boolean -} - -internal fun onItemRightClick(event: PlayerInteractEvent.RightClickBlock) { - val item = event.itemStack.item - - if (!event.itemStack.isEmpty && item is PriorityUseItem) { - if (item.isPriorityConsumer(event)) { - event.useBlock = Event.Result.DENY - } - } -}