From b2733f13841363c9417c0eb79d7240990eb36bcb Mon Sep 17 00:00:00 2001 From: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Date: Thu, 30 May 2024 18:01:24 +1000 Subject: Backend: Make skyhanni ReplaceItemEvent (#1866) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal002@users.noreply.github.com> --- .../skyhanni/events/render/gui/ReplaceItemEvent.kt | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/events/render/gui/ReplaceItemEvent.kt (limited to 'src/main/java/at/hannibal2/skyhanni/events') diff --git a/src/main/java/at/hannibal2/skyhanni/events/render/gui/ReplaceItemEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/render/gui/ReplaceItemEvent.kt new file mode 100644 index 000000000..ca2f2efbb --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/events/render/gui/ReplaceItemEvent.kt @@ -0,0 +1,31 @@ +package at.hannibal2.skyhanni.events.render.gui + +import at.hannibal2.skyhanni.events.LorenzEvent +import net.minecraft.inventory.IInventory +import net.minecraft.inventory.InventoryBasic +import net.minecraft.item.ItemStack +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable + +class ReplaceItemEvent(val inventory: IInventory, val originalItem: ItemStack, val slot: Int) : LorenzEvent() { + var replacement: ItemStack? = null + private set + + fun replace(replacement: ItemStack?) { + this.replacement = replacement + } + + companion object { + @JvmStatic + fun postEvent( + inventory: InventoryBasic, + inventoryContents: Array, + slot: Int, + cir: CallbackInfoReturnable, + ) { + val originalItem = inventoryContents.getOrNull(slot) ?: return + val event = ReplaceItemEvent(inventory, originalItem, slot) + event.postAndCatch() + event.replacement?.let { cir.returnValue = it } + } + } +} -- cgit