From 685cc56672a053c10d44b71f911d9f674c2e6dec Mon Sep 17 00:00:00 2001 From: MellDa <60955857+MellDa1024@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:50:52 +0900 Subject: [PATCH 1/5] Username Bugfix Fixes 1-space blank when prefix or suffix is defined with blank --- .../lambda/client/gui/hudgui/elements/client/Username.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/client/Username.kt b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/client/Username.kt index 99f5b044f..bcee2ec82 100644 --- a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/client/Username.kt +++ b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/client/Username.kt @@ -13,9 +13,9 @@ internal object Username : LabelHud( private val suffix = setting("Suffix", "") override fun SafeClientEvent.updateText() { - displayText.add(prefix.value, primaryColor) + if (prefix.value != "") displayText.add(prefix.value, primaryColor) displayText.add(mc.session.username, secondaryColor) - displayText.add(suffix.value, primaryColor) + if (suffix.value != "") displayText.add(suffix.value, primaryColor) } -} \ No newline at end of file +} From 3242c2727d2ec84aade0cfa40e9aac723d7ee6f9 Mon Sep 17 00:00:00 2001 From: MellDa Date: Wed, 3 Aug 2022 14:53:10 +0900 Subject: [PATCH 2/5] Improved EnderChest Desync Problem(Desyncs when player close ender chest and moved item at same time), Now catches Ender chest in any language with using TextComponentTranslation.key instead of name(This method needed to use SPacketOpenWindow. --- .../hudgui/elements/player/InventoryViewer.kt | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt index 98a204626..f590026ab 100644 --- a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt +++ b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt @@ -1,7 +1,10 @@ package com.lambda.client.gui.hudgui.elements.player import com.lambda.client.event.SafeClientEvent +import com.lambda.client.event.events.ConnectionEvent +import com.lambda.client.event.events.PacketEvent import com.lambda.client.gui.hudgui.HudElement +import com.lambda.client.mixin.extension.windowID import com.lambda.client.module.modules.client.ClickGUI import com.lambda.client.module.modules.client.GuiColors import com.lambda.client.util.graphics.GlStateUtils @@ -10,6 +13,7 @@ import com.lambda.client.util.graphics.VertexHelper import com.lambda.client.util.items.storageSlots import com.lambda.client.util.math.Vec2d import com.lambda.client.util.threads.runSafe +import com.lambda.client.util.threads.safeListener import net.minecraft.client.gui.inventory.GuiContainer import net.minecraft.client.renderer.GlStateManager import net.minecraft.client.renderer.Tessellator @@ -18,7 +22,10 @@ import net.minecraft.init.Blocks import net.minecraft.inventory.ContainerChest import net.minecraft.inventory.InventoryBasic import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.CPacketCloseWindow +import net.minecraft.network.play.server.SPacketOpenWindow import net.minecraft.util.ResourceLocation +import net.minecraft.util.text.TextComponentTranslation import org.lwjgl.opengl.GL11.* internal object InventoryViewer : HudElement( @@ -39,6 +46,7 @@ internal object InventoryViewer : HudElement( override val hudWidth: Float = 162.0f override val hudHeight: Float = 54.0f + private var openedEnderChest : Int = -1 override fun renderHud(vertexHelper: VertexHelper) { super.renderHud(vertexHelper) runSafe { @@ -93,12 +101,41 @@ internal object InventoryViewer : HudElement( } + init { + safeListener { + openedEnderChest = -1 + } + safeListener { + if (it.packet !is SPacketOpenWindow) return@safeListener + if (it.packet.guiId != "minecraft:container") return@safeListener + try { + if ((it.packet.windowTitle as TextComponentTranslation).key != "container.enderchest") return@safeListener + openedEnderChest = it.packet.windowId + } catch (_: Exception) { + } + } + + safeListener { + if (it.packet !is CPacketCloseWindow) return@safeListener + if (it.packet.windowID == openedEnderChest) { + if (mc.currentScreen is GuiContainer) { + val container = (mc.currentScreen as GuiContainer).inventorySlots + if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { + if (container.windowId == openedEnderChest) { + for (i in 0..26) enderChestContents[i] = container.inventory[i] + } + } + } + openedEnderChest = -1 + } + } + } + private fun checkEnderChest() { if (mc.currentScreen is GuiContainer) { val container = (mc.currentScreen as GuiContainer).inventorySlots if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { - val inv = (container.lowerChestInventory as InventoryBasic) - if (inv.name.equals("Ender Chest", true)) { + if (container.windowId == openedEnderChest) { for (i in 0..26) enderChestContents[i] = container.inventory[i] } } From 068c3ceb335f63bfe20b827a9ac1add20d852589 Mon Sep 17 00:00:00 2001 From: MellDa Date: Sat, 6 Aug 2022 01:51:55 +0900 Subject: [PATCH 3/5] Refactored by Avanatiker --- .../hudgui/elements/player/InventoryViewer.kt | 40 ++++++++----------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt index f590026ab..00a50817f 100644 --- a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt +++ b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt @@ -46,7 +46,8 @@ internal object InventoryViewer : HudElement( override val hudWidth: Float = 162.0f override val hudHeight: Float = 54.0f - private var openedEnderChest : Int = -1 + private var openedEnderChest: Int = -1 + override fun renderHud(vertexHelper: VertexHelper) { super.renderHud(vertexHelper) runSafe { @@ -105,39 +106,32 @@ internal object InventoryViewer : HudElement( safeListener { openedEnderChest = -1 } + safeListener { if (it.packet !is SPacketOpenWindow) return@safeListener if (it.packet.guiId != "minecraft:container") return@safeListener - try { - if ((it.packet.windowTitle as TextComponentTranslation).key != "container.enderchest") return@safeListener - openedEnderChest = it.packet.windowId - } catch (_: Exception) { - } + if ((it.packet.windowTitle as TextComponentTranslation).key != "container.enderchest") return@safeListener + + openedEnderChest = it.packet.windowId } safeListener { if (it.packet !is CPacketCloseWindow) return@safeListener - if (it.packet.windowID == openedEnderChest) { - if (mc.currentScreen is GuiContainer) { - val container = (mc.currentScreen as GuiContainer).inventorySlots - if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { - if (container.windowId == openedEnderChest) { - for (i in 0..26) enderChestContents[i] = container.inventory[i] - } - } - } - openedEnderChest = -1 - } + if (it.packet.windowID != openedEnderChest) return@safeListener + + checkEnderChest() + openedEnderChest = -1 } } private fun checkEnderChest() { - if (mc.currentScreen is GuiContainer) { - val container = (mc.currentScreen as GuiContainer).inventorySlots - if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { - if (container.windowId == openedEnderChest) { - for (i in 0..26) enderChestContents[i] = container.inventory[i] - } + if (mc.currentScreen !is GuiContainer) return + + val container = (mc.currentScreen as GuiContainer).inventorySlots + + if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { + if (container.windowId == openedEnderChest) { + for (i in 0..26) enderChestContents[i] = container.inventory[i] } } } From 732b07a2fbfe2bb2d9064a79cf26b83b9aecce60 Mon Sep 17 00:00:00 2001 From: MellDa Date: Sat, 6 Aug 2022 02:02:46 +0900 Subject: [PATCH 4/5] Small fix --- .../lambda/client/gui/hudgui/elements/player/InventoryViewer.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt index 00a50817f..e86d890f4 100644 --- a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt +++ b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt @@ -110,6 +110,7 @@ internal object InventoryViewer : HudElement( safeListener { if (it.packet !is SPacketOpenWindow) return@safeListener if (it.packet.guiId != "minecraft:container") return@safeListener + if (it.packet.windowTitle !is TextComponentTranslation) return@safeListener if ((it.packet.windowTitle as TextComponentTranslation).key != "container.enderchest") return@safeListener openedEnderChest = it.packet.windowId From aebaa1bc976b1b32cb636f2fc54c8582fdabb3e0 Mon Sep 17 00:00:00 2001 From: MellDa Date: Sun, 7 Aug 2022 02:51:30 +0900 Subject: [PATCH 5/5] Refactored by Avanatiker 2 --- .../gui/hudgui/elements/player/InventoryViewer.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt index e86d890f4..cc35214c2 100644 --- a/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt +++ b/src/main/kotlin/com/lambda/client/gui/hudgui/elements/player/InventoryViewer.kt @@ -110,8 +110,9 @@ internal object InventoryViewer : HudElement( safeListener { if (it.packet !is SPacketOpenWindow) return@safeListener if (it.packet.guiId != "minecraft:container") return@safeListener - if (it.packet.windowTitle !is TextComponentTranslation) return@safeListener - if ((it.packet.windowTitle as TextComponentTranslation).key != "container.enderchest") return@safeListener + val title = it.packet.windowTitle + if (title !is TextComponentTranslation) return@safeListener + if (title.key != "container.enderchest") return@safeListener openedEnderChest = it.packet.windowId } @@ -126,9 +127,11 @@ internal object InventoryViewer : HudElement( } private fun checkEnderChest() { - if (mc.currentScreen !is GuiContainer) return + val guiScreen = mc.currentScreen - val container = (mc.currentScreen as GuiContainer).inventorySlots + if (guiScreen !is GuiContainer) return + + val container = guiScreen.inventorySlots if (container is ContainerChest && container.lowerChestInventory is InventoryBasic) { if (container.windowId == openedEnderChest) {