diff options
Diffstat (limited to 'src/main/java/at/hannibal2')
3 files changed, 83 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index 61f4315d2..e5169ab86 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -25,6 +25,7 @@ import at.hannibal2.skyhanni.features.event.diana.GriffinBurrowParticleFinder; import at.hannibal2.skyhanni.features.event.diana.SoopyGuessBurrow; import at.hannibal2.skyhanni.features.fishing.*; import at.hannibal2.skyhanni.features.garden.*; +import at.hannibal2.skyhanni.features.garden.composter.ComposterInventoryNumbers; import at.hannibal2.skyhanni.features.inventory.*; import at.hannibal2.skyhanni.features.itemabilities.FireVeilWandParticles; import at.hannibal2.skyhanni.features.itemabilities.abilitycooldown.ItemAbilityCooldown; @@ -242,6 +243,7 @@ public class SkyHanniMod { loadModule(new MinionCollectLogic()); loadModule(new PasteIntoSigns()); loadModule(new EstimatedItemValue()); + loadModule(new ComposterInventoryNumbers()); Commands.INSTANCE.init(); diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java index d433d401e..336e83755 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java @@ -749,6 +749,15 @@ public class Garden { public Position composterDisplayPos = new Position(-363, 13, false, true); @Expose + @ConfigOption( + name = "Inventory Numbers", + desc = "Show the amount of Organic Matter, Fuel and Composts Available while inside the composter inventory." + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 17) + public boolean composterInventoryNumbers = true; + + @Expose @ConfigOption(name = "Plot Price", desc = "Show the price of the plot in coins when inside the Configure Plots inventory.") @ConfigEditorBoolean public boolean plotPrice = true; diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt new file mode 100644 index 000000000..51e30ef16 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt @@ -0,0 +1,72 @@ +package at.hannibal2.skyhanni.features.garden.composter + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent +import at.hannibal2.skyhanni.features.garden.GardenAPI +import at.hannibal2.skyhanni.utils.ItemUtils.getLore +import at.hannibal2.skyhanni.utils.NumberUtil +import at.hannibal2.skyhanni.utils.StringUtils.removeColor +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.util.regex.Pattern + +class ComposterInventoryNumbers { + private val valuePattern = Pattern.compile("(?:.*) §e(.*)§6\\/(.*)") + private val compostsPattern = Pattern.compile("§7§7Compost Available: §a(.*)") + + @SubscribeEvent + fun onRenderItemTip(event: RenderInventoryItemTipEvent) { + if (!GardenAPI.inGarden()) return + if (!SkyHanniMod.feature.garden.composterInventoryNumbers) return + + if (event.inventoryName != "Composter") return + + val stack = event.stack + + val slotNumber = event.slot.slotNumber + + // Composts Available + if (slotNumber == 22) { + for (line in stack.getLore()) { + val matcher = compostsPattern.matcher(line) + if (!matcher.matches()) continue + + val total = matcher.group(1).replace(",", "").toInt() + if (total <= 64) continue + + event.offsetY = -2 + event.offsetX = -20 + event.stackTip = "§6$total" + return + } + } + + // Organic Matter or Fuel + if (slotNumber == 46 || slotNumber == 52) { + for (line in stack.getLore()) { + val matcher = valuePattern.matcher(line) + if (!matcher.matches()) continue + + val having = matcher.group(1).removeColor().replace(",", "").toDouble().toInt() + val havingFormat = NumberUtil.format(having) + val total = matcher.group(2).removeColor() + + + val color = if (slotNumber == 46) { + // Organic Matter + event.offsetY = -95 + event.offsetX = 5 + event.alignLeft = false + "§e" + } else { + // Fuel + event.offsetY = -76 + event.offsetX = -20 + "§a" + } + + event.stackTip = "$color$havingFormat/$total" + return + } + } + } +}
\ No newline at end of file |