diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/io/BufferExtensions.kt b/src/main/java/net/ccbluex/liquidbounce/utils/io/BufferExtensions.kt new file mode 100644 index 00000000000..02497744aa2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/io/BufferExtensions.kt @@ -0,0 +1,24 @@ +/* + * LiquidBounce Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/CCBlueX/LiquidBounce/ + */ +package net.ccbluex.liquidbounce.utils.io + +import java.nio.Buffer +import java.nio.ByteBuffer + +/** + * Prevents crashes when flip() is called from higher Java versions. + */ +fun ByteBuffer.flipSafely() { + try { + flip() + } catch (ex: Exception) { + try { + (this as Buffer).flip() + } catch (any: Exception) { + any.printStackTrace() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/io/GsonExtensions.kt b/src/main/java/net/ccbluex/liquidbounce/utils/io/GsonExtensions.kt index 3af5e514ab7..2954ec380e8 100644 --- a/src/main/java/net/ccbluex/liquidbounce/utils/io/GsonExtensions.kt +++ b/src/main/java/net/ccbluex/liquidbounce/utils/io/GsonExtensions.kt @@ -1,3 +1,8 @@ +/* + * LiquidBounce Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/CCBlueX/LiquidBounce/ + */ package net.ccbluex.liquidbounce.utils.io import com.google.gson.* diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/IconUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/IconUtils.kt index 06a82141541..f2576b4944d 100644 --- a/src/main/java/net/ccbluex/liquidbounce/utils/render/IconUtils.kt +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/IconUtils.kt @@ -7,6 +7,7 @@ package net.ccbluex.liquidbounce.utils.render import net.ccbluex.liquidbounce.LiquidBounce.CLIENT_NAME import net.ccbluex.liquidbounce.utils.client.ClientUtils +import net.ccbluex.liquidbounce.utils.io.flipSafely import net.minecraftforge.fml.relauncher.Side import net.minecraftforge.fml.relauncher.SideOnly import java.io.IOException @@ -40,7 +41,7 @@ object IconUtils { for (i in rgb) byteBuffer.putInt(i shl 8 or (i ushr 24 and 255)) - byteBuffer.flip() + byteBuffer.flipSafely() return byteBuffer } } diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.kt index dc56e6576dd..cdfc1d1e91f 100644 --- a/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.kt +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.kt @@ -12,6 +12,7 @@ import net.ccbluex.liquidbounce.utils.block.center import net.ccbluex.liquidbounce.utils.block.toVec import net.ccbluex.liquidbounce.utils.client.MinecraftInstance import net.ccbluex.liquidbounce.utils.extensions.* +import net.ccbluex.liquidbounce.utils.io.flipSafely import net.ccbluex.liquidbounce.utils.render.animation.AnimationUtil import net.minecraft.client.gui.FontRenderer import net.minecraft.client.gui.ScaledResolution @@ -1472,7 +1473,7 @@ object RenderUtils : MinecraftInstance { buffer.put(((pixel shr 24) and 0xFF).toByte()) } - buffer.flip() + buffer.flipSafely() val textureID = glGenTextures()