From 53caebdecfffdcb3c386bc9ae412c32e8a6c709c Mon Sep 17 00:00:00 2001 From: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:25:08 +1000 Subject: Merge pull request #258 * highlight items missing in NEU repo * fixed it detecting some wrong items * Merge branch 'hannibal002:beta' into highlight_missing_neu_items --- .../skyhanni/test/HighlightMissingRepoItems.kt | 50 ++++++++++++++++++++++ .../hannibal2/skyhanni/test/SkyHanniTestCommand.kt | 1 + 2 files changed, 51 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt (limited to 'src/main/java/at/hannibal2/skyhanni/test') diff --git a/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt new file mode 100644 index 000000000..63b552373 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt @@ -0,0 +1,50 @@ +package at.hannibal2.skyhanni.test + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.GuiContainerEvent +import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName +import at.hannibal2.skyhanni.utils.LorenzColor +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.NEUItems +import at.hannibal2.skyhanni.utils.RenderUtils.highlight +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.inventory.GuiChest +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.inventory.Slot +import net.minecraftforge.fml.common.eventhandler.EventPriority +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class HighlightMissingRepoItems { + + @SubscribeEvent(priority = EventPriority.LOWEST) + fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) { + if (!LorenzUtils.inSkyBlock) return + if (!SkyHanniMod.feature.dev.highlightMissingRepo) return + + val gui = event.gui + + if (gui is GuiChest) { + highlightItems(gui.inventorySlots.inventorySlots) + } else if (gui is GuiInventory) { + val player = Minecraft.getMinecraft().thePlayer + highlightItems(player.inventoryContainer.inventorySlots) + } + } + + private fun highlightItems(slots: Iterable) { + if (NEUItems.allInternalNames.isEmpty()) return + for (slot in slots) { + if (!slot.hasStack) continue + val internalName = slot.stack.getInternalName() + if (internalName == "") continue + if (!NEUItems.allInternalNames.contains(internalName)) { + slot highlight LorenzColor.RED + } + } + } + + @SubscribeEvent + fun onRepoReload(event: io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent) { + NEUItems.allItemsCache = NEUItems.readAllNeuItems() + } +} \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniTestCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniTestCommand.kt index d3a7e982f..d10fc49f3 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniTestCommand.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniTestCommand.kt @@ -167,6 +167,7 @@ class SkyHanniTestCommand { val itemStack = event.itemStack if (itemStack != null) { val internalName = itemStack.getInternalName() + if (internalName == "" && !SkyHanniMod.feature.dev.showEmptyNames) return event.toolTip.add("Internal Name: '$internalName'") } } -- cgit