diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-07 00:31:50 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-07 00:31:50 +0200 |
| commit | 26c0107adc319e169da89eb32ee50c4afb0709db (patch) | |
| tree | 9ee1ae505e5f82aba62f10c882af85a3acd6e483 /src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt | |
| parent | a358c9e7f2c765c994782fa412be6cdc4978c826 (diff) | |
| download | SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.tar.gz SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.tar.bz2 SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.zip | |
init lorenz mod
Diffstat (limited to 'src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt')
| -rw-r--r-- | src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt b/src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt new file mode 100644 index 000000000..0daa12b7d --- /dev/null +++ b/src/main/java/at/lorenz/mod/bazaar/BazaarOrderHelper.kt @@ -0,0 +1,87 @@ +package at.lorenz.mod.bazaar + +import at.lorenz.mod.config.LorenzConfig +import at.lorenz.mod.events.GuiContainerEvent +import at.lorenz.mod.utils.ItemUtils.Companion.getLore +import at.lorenz.mod.utils.LorenzColor +import at.lorenz.mod.utils.RenderUtil.Companion.highlight +import net.minecraft.client.gui.inventory.GuiChest +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.inventory.ContainerChest +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import org.lwjgl.opengl.GL11 + +class BazaarOrderHelper { + + companion object { + fun isBazaarOrderInventory(inventoryName: String): Boolean = when (inventoryName) { + "Your Bazaar Orders" -> true + "Co-op Bazaar Orders" -> true + else -> false + } + } + + @SubscribeEvent + fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) { + if (!LorenzConfig.lorenzBazaarOrderHelper) return + if (event.gui !is GuiChest) return + val guiChest = event.gui + val chest = guiChest.inventorySlots as ContainerChest + val inventoryName = chest.lowerChestInventory.displayName.unformattedText.trim() + + if (!isBazaarOrderInventory(inventoryName)) return + val lightingState = GL11.glIsEnabled(GL11.GL_LIGHTING) + GlStateManager.disableLighting() + GlStateManager.color(1f, 1f, 1f, 1f) + + out@ for (slot in chest.inventorySlots) { + if (slot == null) continue + if (slot.slotNumber != slot.slotIndex) continue + if (slot.stack == null) continue + + val stack = slot.stack + val displayName = stack.displayName + val isSelling = displayName.startsWith("§6§lSELL§7: ") + val isBuying = displayName.startsWith("§a§lBUY§7: ") + if (!isSelling && !isBuying) continue + + val text = displayName.split("§7: ")[1] + val name = BazaarApi.getCleanBazaarName(text) + val data = BazaarApi.getBazaarDataForName(name) + val buyPrice = data.buyPrice + val sellPrice = data.sellPrice + + val itemLore = stack.getLore() + for (line in itemLore) { + if (line.startsWith("§7Filled:")) { + if (line.endsWith(" §a§l100%!")) { + slot highlight LorenzColor.GREEN + continue@out + } + } + } + for (line in itemLore) { + if (line.startsWith("§7Price per unit:")) { + var text = line.split(": §6")[1] + text = text.substring(0, text.length - 6) + text = text.replace(",", "") + val price = text.toDouble() + if (isSelling) { + if (buyPrice < price) { + slot highlight LorenzColor.GOLD + continue@out + } + } else { + if (sellPrice > price) { + slot highlight LorenzColor.GOLD + continue@out + } + } + + } + } + } + + if (lightingState) GlStateManager.enableLighting() + } +} |
