diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
5 files changed, 73 insertions, 28 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt b/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt index 5584da0fe..908d8b810 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/APIUtil.kt @@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.utils import at.hannibal2.skyhanni.SkyHanniMod import com.google.gson.JsonObject import com.google.gson.JsonParser +import com.google.gson.stream.MalformedJsonException import org.apache.http.client.config.RequestConfig import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.HttpClientBuilder @@ -40,7 +41,13 @@ object APIUtil { val entity = response.entity if (entity != null) { val retSrc = EntityUtils.toString(entity) - return parser.parse(retSrc) as JsonObject + try { + return parser.parse(retSrc) as JsonObject + } catch (e: MalformedJsonException) { + LorenzUtils.error("MalformedJsonException!") + println("MalformedJsonException at '$urlString'") + e.printStackTrace() + } } } } catch (throwable: Throwable) { diff --git a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt index 1d51d1be9..feaaaa481 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt @@ -11,9 +11,10 @@ object InventoryUtils { fun currentlyOpenInventory(): String { val screen = Minecraft.getMinecraft().currentScreen if (screen !is GuiChest) return "" - val chest = screen.inventorySlots as ContainerChest + val inventorySlots = screen.inventorySlots + val chest = inventorySlots as ContainerChest - return chest.lowerChestInventory.displayName.unformattedText.trim() + return chest.getInventoryName() } fun getItemsInOpenChest(): List<Slot> { @@ -32,4 +33,19 @@ object InventoryUtils { } return list } + + fun openInventoryName(): String { + val guiChest = Minecraft.getMinecraft().currentScreen + val chestName = if (guiChest is GuiChest) { + val chest = guiChest.inventorySlots as ContainerChest + chest.getInventoryName() + } else { + "" + } + return chestName + } + + fun ContainerChest.getInventoryName(): String { + return this.lowerChestInventory.displayName.unformattedText.trim() + } }
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index c4c9cedca..043978277 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -1,7 +1,8 @@ package at.hannibal2.skyhanni.utils import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.data.HypixelData +import at.hannibal2.skyhanni.data.HyPixelData +import at.hannibal2.skyhanni.data.IslandType import at.hannibal2.skyhanni.features.dungeon.DungeonData import at.hannibal2.skyhanni.utils.StringUtils.removeColor import net.minecraft.client.Minecraft @@ -14,30 +15,42 @@ import java.text.SimpleDateFormat object LorenzUtils { - val isOnHypixel: Boolean - get() = HypixelData.hypixel && Minecraft.getMinecraft().thePlayer != null + val isHyPixel: Boolean + get() = HyPixelData.hypixel && Minecraft.getMinecraft().thePlayer != null - val inSkyblock: Boolean - get() = isOnHypixel && HypixelData.skyblock + val inSkyBlock: Boolean + get() = isHyPixel && HyPixelData.skyBlock val inDungeons: Boolean - get() = inSkyblock && DungeonData.inDungeon() + get() = inSkyBlock && DungeonData.inDungeon() - val skyBlockIsland: String - get() = HypixelData.skyBlockIsland + val skyBlockIsland: IslandType + get() = HyPixelData.skyBlockIsland //TODO add cache val skyBlockArea: String - get() = HypixelData.readSkyBlockArea() + get() = HyPixelData.readSkyBlockArea() val inKuudraFight: Boolean - get() = skyBlockIsland == "Instanced" + get() = skyBlockIsland == IslandType.KUUDRA_ARENA - const val DEBUG_PREFIX = "[Debug] §7" + val noTradeMode: Boolean + get() = HyPixelData.noTrade + + val isBingoProfile: Boolean + get() = inSkyBlock && HyPixelData.bingo + + const val DEBUG_PREFIX = "[SkyHanni Debug] §7" private val log = LorenzLogger("chat/mod_sent") fun debug(message: String) { - internalChat(DEBUG_PREFIX + message) + if (SkyHanniMod.feature.dev.debugEnabled) { + if (internalChat(DEBUG_PREFIX + message)) { + consoleLog("[Debug] $message") + } + } else { + consoleLog("[Debug] $message") + } } fun warning(message: String) { @@ -52,21 +65,22 @@ object LorenzUtils { internalChat(message) } - private fun internalChat(message: String) { + private fun internalChat(message: String): Boolean { log.log(message) val minecraft = Minecraft.getMinecraft() if (minecraft == null) { consoleLog(message.removeColor()) - return + return false } val thePlayer = minecraft.thePlayer if (thePlayer == null) { consoleLog(message.removeColor()) - return + return false } thePlayer.addChatMessage(ChatComponentText(message)) + return true } //TODO move into StringUtils diff --git a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt index c0e64c7be..1036dab62 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt @@ -130,15 +130,19 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter { if (cause.stackTrace.isNotEmpty()) { val first = cause.stackTrace[0] if (SkyHanniMod.feature.dev.filterScoreboardErrors) { - if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:229)") { + val firstName = first.toString() + if (firstName == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:229)" || + firstName == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:262)" + ) { filterConsole("NullPointerException at Scoreboard.removeTeam") return Filter.Result.DENY } - if (first.toString() == "net.minecraft.scoreboard.Scoreboard.createTeam(Scoreboard.java:218)") { + if (firstName == "net.minecraft.scoreboard.Scoreboard.createTeam(Scoreboard.java:218)") { filterConsole("IllegalArgumentException at Scoreboard.createTeam") return Filter.Result.DENY } - if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:179)") { + if (firstName == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:179)" || + firstName == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:198)") { filterConsole("IllegalArgumentException at Scoreboard.removeObjective") return Filter.Result.DENY } @@ -154,7 +158,7 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter { } if (!SkyHanniMod.feature.dev.printUnfilteredDebugs) return Filter.Result.ACCEPT - if (!SkyHanniMod.feature.dev.printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyblock) return Filter.Result.ACCEPT + if (!SkyHanniMod.feature.dev.printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyBlock) return Filter.Result.ACCEPT if (formattedMessage == "filtered console: ") return Filter.Result.ACCEPT debug(" ") diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt index 97bba3099..ff28c52ab 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt @@ -424,22 +424,26 @@ object RenderUtils { return lastValue + (currentValue - lastValue) * multiplier } - fun Position.renderString(string: String, offsetY: Int = 0) { + fun Position.renderString(string: String?, offsetY: Int = 0) { + val minecraft = Minecraft.getMinecraft() + if (minecraft.gameSettings.keyBindPlayerList.isKeyDown) return + + if (string == null) return if (string == "") return - val textToRender = "§f$string" + val display = "§f$string" GlStateManager.pushMatrix() - val resolution = ScaledResolution(Minecraft.getMinecraft()) + val resolution = ScaledResolution(minecraft) - val renderer = Minecraft.getMinecraft().renderManager.fontRenderer ?: return + val renderer = minecraft.renderManager.fontRenderer ?: return - val offsetX = (200 - renderer.getStringWidth(textToRender.removeColor())) / 2 + val offsetX = (200 - renderer.getStringWidth(display.removeColor())) / 2 val x = getAbsX(resolution, 200) + offsetX val y = getAbsY(resolution, 16) + offsetY GlStateManager.translate(x + 1.0, y + 1.0, 0.0) - renderer.drawStringWithShadow(textToRender, 0f, 0f, 0) + renderer.drawStringWithShadow(display, 0f, 0f, 0) GlStateManager.popMatrix() } |