From ae4b610ea3b05b73e11e5b8622b89d2ed4602170 Mon Sep 17 00:00:00 2001 From: BlayTheNinth <1933180+BlayTheNinth@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:59:05 +0100 Subject: [PATCH] feat: Add support for Inventory Totem #123 --- .../mods/hardcorerevival/HardcoreRevival.java | 1 + .../mods/hardcorerevival/compat/Compat.java | 1 + .../compat/InventoryTotemAddon.java | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 common/src/main/java/net/blay09/mods/hardcorerevival/compat/InventoryTotemAddon.java diff --git a/common/src/main/java/net/blay09/mods/hardcorerevival/HardcoreRevival.java b/common/src/main/java/net/blay09/mods/hardcorerevival/HardcoreRevival.java index 730e39e..0352f4d 100644 --- a/common/src/main/java/net/blay09/mods/hardcorerevival/HardcoreRevival.java +++ b/common/src/main/java/net/blay09/mods/hardcorerevival/HardcoreRevival.java @@ -39,6 +39,7 @@ public static void initialize() { RescueHandler.initialize(); Balm.initializeIfLoaded(Compat.MR_CRAYFISHS_GUN_MOD, "net.blay09.mods.hardcorerevival.compat.MrCrayfishsGunModAddon"); + Balm.initializeIfLoaded(Compat.INVENTORY_TOTEM, "new.blay09.mods.hardcorerevival.compat.InventoryTotemAddon"); } public static HardcoreRevivalManager getManager() { diff --git a/common/src/main/java/net/blay09/mods/hardcorerevival/compat/Compat.java b/common/src/main/java/net/blay09/mods/hardcorerevival/compat/Compat.java index e7f68ce..7a2fbb6 100644 --- a/common/src/main/java/net/blay09/mods/hardcorerevival/compat/Compat.java +++ b/common/src/main/java/net/blay09/mods/hardcorerevival/compat/Compat.java @@ -2,4 +2,5 @@ public class Compat { public static final String MR_CRAYFISHS_GUN_MOD = "cgm"; + public static final String INVENTORY_TOTEM = "inventorytotem"; } diff --git a/common/src/main/java/net/blay09/mods/hardcorerevival/compat/InventoryTotemAddon.java b/common/src/main/java/net/blay09/mods/hardcorerevival/compat/InventoryTotemAddon.java new file mode 100644 index 0000000..d5ecd0b --- /dev/null +++ b/common/src/main/java/net/blay09/mods/hardcorerevival/compat/InventoryTotemAddon.java @@ -0,0 +1,21 @@ +package net.blay09.mods.hardcorerevival.compat; + +import net.blay09.mods.balm.api.Balm; +import net.blay09.mods.hardcorerevival.api.PlayerAboutToKnockOutEvent; +import net.minecraft.core.component.DataComponents; + +public class InventoryTotemAddon { + public InventoryTotemAddon() { + Balm.getEvents().onEvent(PlayerAboutToKnockOutEvent.class, event -> { + final var player = event.getPlayer(); + final var inventory = player.getInventory(); + for (int i = 0; i < inventory.getContainerSize(); i++) { + final var itemStack = inventory.getItem(i); + final var deathProtection = itemStack.get(DataComponents.DEATH_PROTECTION); + if (deathProtection != null) { + event.setCanceled(true); + } + } + }); + } +}