Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

  1. Home
  2. Kotlin/Java
  3. Clickgui

Clickgui

Scheduled Pinned Locked Moved Kotlin/Java
12 Posts 10 Posters 2.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mike melonyM mike melony

    who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

    The_Shadow_EmpT Offline
    The_Shadow_EmpT Offline
    The_Shadow_Emp
    wrote on last edited by
    #2
    This post is deleted!
    1 Reply Last reply
    0
    • mike melonyM mike melony

      who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

      _SimonClient__ Offline
      _SimonClient__ Offline
      _SimonClient_
      wrote on last edited by
      #3

      @mike-melony learn javascript

      1 Reply Last reply
      0
      • E Offline
        E Offline
        Ender__Flash
        wrote on last edited by
        #4

        Bro, made it yourself.

        1 Reply Last reply
        0
        • mike melonyM mike melony

          who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

          DreamWasFuckedD Offline
          DreamWasFuckedD Offline
          DreamWasFucked
          wrote on last edited by
          #5
          /*
           * 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.ui.client.hud.designer
          
          import net.ccbluex.liquidbounce.LiquidBounce
          import net.ccbluex.liquidbounce.features.module.modules.render.ClickGUI
          import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.createDefault
          import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.elements
          import net.ccbluex.liquidbounce.ui.client.hud.element.Element
          import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo
          import net.ccbluex.liquidbounce.ui.client.hud.element.Side
          import net.ccbluex.liquidbounce.ui.font.Fonts
          import net.ccbluex.liquidbounce.ui.font.GameFontRenderer
          import net.ccbluex.liquidbounce.utils.MinecraftInstance
          import net.ccbluex.liquidbounce.utils.render.RenderUtils
          import net.ccbluex.liquidbounce.value.*
          import net.minecraft.client.gui.Gui
          import net.minecraft.client.gui.ScaledResolution
          import net.minecraft.util.MathHelper
          import org.lwjgl.input.Mouse
          import org.lwjgl.opengl.GL11
          import java.awt.Color
          
          class EditorPanel(private val hudDesigner: GuiHudDesigner, var x: Int, var y: Int) : MinecraftInstance() {
          
              var width = 80
                  private set
              var height = 20
                  private set
              var realHeight = 20
                  private set
          
              private var drag = false
              private var dragX = 0
              private var dragY = 0
          
              private var mouseDown = false
          
              private var scroll = 0
          
              var create = false
              private var currentElement: Element? = null
          
              /**
               * Draw editor panel to screen
               *
               * @param mouseX
               * @param mouseY
               * @param wheel
               */
              fun drawPanel(mouseX: Int, mouseY: Int, wheel: Int) {
                  // Drag panel
                  drag(mouseX, mouseY)
          
                  // Set current element
                  if (currentElement != hudDesigner.selectedElement)
                      scroll = 0
                  currentElement = hudDesigner.selectedElement
          
                  // Scrolling start
                  var currMouseY = mouseY
                  val shouldScroll = realHeight > 200
          
                  if (shouldScroll) {
                      GL11.glPushMatrix()
                      RenderUtils.makeScissorBox(x.toFloat(), y + 1F, x + width.toFloat(), y + 200F)
                      GL11.glEnable(GL11.GL_SCISSOR_TEST)
          
                      if (y + 200 < currMouseY)
                          currMouseY = -1
          
                      if (mouseX >= x && mouseX <= x + width && currMouseY >= y && currMouseY <= y + 200 && Mouse.hasWheel()) {
                          if (wheel < 0 && -scroll + 205 <= realHeight) {
                              scroll -= 12
                          } else if (wheel > 0) {
                              scroll += 12
                              if (scroll > 0) scroll = 0
                          }
                      }
                  }
          
                  // Draw panel
                  Gui.drawRect(x, y + 12, x + width, y + realHeight, Color(27, 34, 40).rgb)
                  when {
                      create -> drawCreate(mouseX, currMouseY)
                      currentElement != null -> drawEditor(mouseX, currMouseY)
                      else -> drawSelection(mouseX, currMouseY)
                  }
          
                  // Scrolling end
                  if (shouldScroll) {
                      val v = 197 * (-scroll / (realHeight - 170F))
                      GL11.glDisable(GL11.GL_SCISSOR_TEST)
                      GL11.glPopMatrix()
                  }
          
                  // Save mouse states
                  mouseDown = Mouse.isButtonDown(0)
              }
          
              /**
               * Draw create panel
               */
              private fun drawCreate(mouseX: Int, mouseY: Int) {
                  height = 15 + scroll
                  realHeight = 15
                  width = 90
          
                  for (element in elements) {
                      val info = element.getAnnotation(ElementInfo::class.java) ?: continue
          
                      if (info.single && LiquidBounce.hud.elements.any { it.javaClass == element })
                          continue
          
                      val name = info.name
                      Fonts.font35.drawString(name, x + 2, y + height, Color.WHITE.rgb)
          
                      val stringWidth = Fonts.font35.getStringWidth(name)
                      if (width < stringWidth + 8)
                          width = stringWidth + 8
          
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                              && mouseY <= y + height + 10) {
                          try {
                              val newElement = element.newInstance()
          
                              if (newElement.createElement())
                                  LiquidBounce.hud.addElement(newElement)
                          } catch (e: InstantiationException) {
                              e.printStackTrace()
                          } catch (e: IllegalAccessException) {
                              e.printStackTrace()
                          }
                          create = false
                      }
          
                      height += 10
                      realHeight += 10
                  }
          
                  Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                  Fonts.font35.drawString("Create element", x + 2F, y + 3.5F, Color.WHITE.rgb)
              }
          
              /**
               * Draw selection panel
               */
              private fun drawSelection(mouseX: Int, mouseY: Int) {
                  height = 15 + scroll
                  realHeight = 15
                  width = 120
          
                  Fonts.font35.drawString("Create element", x + 2, y + height, Color.WHITE.rgb)
                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                          && mouseY <= y + height + 10)
                      create = true
          
                  height += 10
                  realHeight += 10
          
                  Fonts.font35.drawString("Reset", x + 2, y + height, Color.WHITE.rgb)
                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                          && mouseY <= y + height + 10)
                      LiquidBounce.hud = createDefault()
          
                  height += 15
                  realHeight += 15
          
                  Fonts.font35.drawString("Available Elements", x + 2, y + height, Color.WHITE.rgb)
                  height += 10
                  realHeight += 10
          
                  for (element in LiquidBounce.hud.elements) {
                      Fonts.font35.drawString(element.name, x + 2, y + height, Color.WHITE.rgb)
          
                      val stringWidth = Fonts.font35.getStringWidth(element.name)
                      if (width < stringWidth + 8)
                          width = stringWidth + 8
          
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                              && mouseY <= y + height + 10)
                          hudDesigner.selectedElement = element
          
                      height += 10
                      realHeight += 10
                  }
          
                  Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                  Fonts.font35.drawString("Editor", x + 2F, y + 3.5f, Color.WHITE.rgb)
              }
          
              /**
               * Draw editor panel
               */
              private fun drawEditor(mouseX: Int, mouseY: Int) {
                  height = scroll + 15
                  realHeight = 15
          
                  val prevWidth = width
                  width = 100
          
                  val element = currentElement ?: return
          
                  // X
                  Fonts.font35.drawString("X: ${"%.2f".format(element.renderX)} (${"%.2f".format(element.x)})", x + 2, y + height, Color.WHITE.rgb)
                  height += 10
                  realHeight += 10
          
                  // Y
                  Fonts.font35.drawString("Y: ${"%.2f".format(element.renderY)} (${"%.2f".format(element.y)})", x + 2, y + height, Color.WHITE.rgb)
                  height += 10
                  realHeight += 10
          
                  // Scale
                  Fonts.font35.drawString("Scale: ${"%.2f".format(element.scale)}", x + 2, y + height, Color.WHITE.rgb)
                  height += 10
                  realHeight += 10
          
                  // Horizontal
                  Fonts.font35.drawString("H:", x + 2, y + height, Color.WHITE.rgb)
                  Fonts.font35.drawString(element.side.horizontal.sideName,
                          x + 12, y + height, Color.GRAY.rgb)
          
                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                          && mouseY <= y + height + 10) {
                      val values = Side.Horizontal.values()
                      val currIndex = values.indexOf(element.side.horizontal)
          
                      val x = element.renderX
          
                      element.side.horizontal = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1]
                      element.x = when (element.side.horizontal) {
                          Side.Horizontal.LEFT -> x
                          Side.Horizontal.MIDDLE -> (ScaledResolution(mc).scaledWidth / 2) - x
                          Side.Horizontal.RIGHT -> ScaledResolution(mc).scaledWidth - x
                      }
                  }
          
                  height += 10
                  realHeight += 10
          
                  // Vertical
                  Fonts.font35.drawString("V:", x + 2, y + height, Color.WHITE.rgb)
                  Fonts.font35.drawString(element.side.vertical.sideName,
                          x + 12, y + height, Color.GRAY.rgb)
          
                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && mouseY <= y + height + 10) {
                      val values = Side.Vertical.values()
                      val currIndex = values.indexOf(element.side.vertical)
          
                      val y = element.renderY
          
                      element.side.vertical = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1]
                      element.y = when (element.side.vertical) {
                          Side.Vertical.UP -> y
                          Side.Vertical.MIDDLE -> (ScaledResolution(mc).scaledHeight / 2) - y
                          Side.Vertical.DOWN -> ScaledResolution(mc).scaledHeight - y
                      }
          
                  }
          
                  height += 10
                  realHeight += 10
          
                  // Values
                  for (value in element.values) {
                      when (value) {
                          is BoolValue -> {
                              // Title
                              Fonts.font35.drawString(value.name, x + 2, y + height, if (value.get()) Color.WHITE.rgb else Color.GRAY.rgb)
          
                              val stringWidth = Fonts.font35.getStringWidth(value.name)
                              if (width < stringWidth + 8)
                                  width = stringWidth + 8
          
                              // Toggle value
                              if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width &&
                                      mouseY >= y + height && mouseY <= y + height + 10)
                                  value.set(!value.get())
          
                              // Change pos
                              height += 10
                              realHeight += 10
                          }
          
                          is FloatValue -> {
                              val current = value.get()
                              val min = value.minimum
                              val max = value.maximum
          
                              // Title
                              val text = "${value.name}: §c${"%.2f".format(current)}"
          
                              Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
          
                              val stringWidth = Fonts.font35.getStringWidth(text)
                              if (width < stringWidth + 8)
                                  width = stringWidth + 8
          
                              // Slider
                              RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE)
          
                              // Slider mark
                              val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min))
                              RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height
                                      + 15F, Color(37, 126, 255).rgb)
          
                              // Slider changer
                              if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 &&
                                      Mouse.isButtonDown(0)) {
                                  val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F)
          
                                  value.set(min + (max - min) * curr)
                              }
          
                              // Change pos
                              height += 20
                              realHeight += 20
                          }
          
                          is IntegerValue -> {
                              val current = value.get()
                              val min = value.minimum
                              val max = value.maximum
          
                              // Title
                              val text = "${value.name}: §c$current"
          
                              Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
          
                              val stringWidth = Fonts.font35.getStringWidth(text)
                              if (width < stringWidth + 8)
                                  width = stringWidth + 8
          
                              // Slider
                              RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE)
          
                              // Slider mark
                              val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min))
                              RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height
                                      + 15F, Color(37, 126, 255).rgb)
          
                              // Slider changer
                              if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 &&
                                      Mouse.isButtonDown(0)) {
                                  val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F)
          
                                  value.set((min + (max - min) * curr).toInt())
                              }
          
                              // Change pos
                              height += 20
                              realHeight += 20
                          }
          
                          is ListValue -> {
                              // Title
                              Fonts.font35.drawString(value.name, x + 2, y + height, Color.WHITE.rgb)
          
                              height += 10
                              realHeight += 10
          
                              // Selectable values
                              for (s in value.values) {
                                  // Value title
                                  val text = "§c> §r$s"
                                  Fonts.font35.drawString(text, x + 2, y + height, if (s == value.get()) Color.WHITE.rgb else Color.GRAY.rgb)
          
                                  val stringWidth = Fonts.font35.getStringWidth(text)
                                  if (width < stringWidth + 8)
                                      width = stringWidth + 8
          
                                  // Select value
                                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width
                                          && mouseY >= y + height && mouseY <= y + height + 10)
                                      value.set(s)
          
                                  // Change pos
                                  height += 10
                                  realHeight += 10
                              }
                          }
          
                          is FontValue -> {
                              val fontRenderer = value.get()
          
                              // Title
                              val text = when (fontRenderer) {
                                  is GameFontRenderer -> "Font: ${fontRenderer.defaultFont.font.name} - ${fontRenderer.defaultFont.font.size}"
                                  Fonts.minecraftFont -> "Font: Minecraft"
                                  else -> "Font: Unknown"
                              }
          
                              Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
          
                              val stringWidth = Fonts.font35.getStringWidth(text)
                              if (width < stringWidth + 8)
                                  width = stringWidth + 8
          
                              if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width &&
                                      mouseY >= y + height && mouseY <= y + height + 10) {
                                  val fonts = Fonts.getFonts()
          
                                  fonts.forEachIndexed { index, font ->
                                      if (font == fontRenderer) {
                                          value.set(fonts[if (index + 1 >= fonts.size) 0 else index + 1])
                                          return@forEachIndexed
                                      }
                                  }
                              }
          
                              height += 10
                              realHeight += 10
                          }
                      }
                  }
          
                  // Header
                  Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                  Fonts.font35.drawString(element.name, x + 2F, y + 3.5F, Color.WHITE.rgb)
          
                  // Delete button
                  if (!element.info.force) {
                      val deleteWidth = x + width - Fonts.font35.getStringWidth("Delete") - 2F
                      Fonts.font35.drawString("Delete", deleteWidth, y + 3.5F, Color.WHITE.rgb)
                      if (
                          Mouse.isButtonDown(0) &&
                          !mouseDown &&
                          mouseX >= deleteWidth &&
                          mouseX <= x + width &&
                          mouseY >= y &&
                          mouseY <= y + 10
                      ) {
                          LiquidBounce.hud.removeElement(element)
                      }
                  }
              }
          
              /**
               * Drag panel
               */
              private fun drag(mouseX: Int, mouseY: Int) {
                  if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 12 && Mouse.isButtonDown(0)
                          && !mouseDown) {
                      drag = true
                      dragX = mouseX - x
                      dragY = mouseY - y
                  }
          
                  if (Mouse.isButtonDown(0) && drag) {
                      x = mouseX - dragX
                      y = mouseY - dragY
                  } else drag = false
              }
          }
          
          mike melonyM 1 Reply Last reply
          undefined
          1
          • mike melonyM mike melony

            who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

            skiddermaster412S Offline
            skiddermaster412S Offline
            skiddermaster412
            wrote on last edited by
            #6

            @mike-melony ugly

            1 Reply Last reply
            2
            • DreamWasFuckedD DreamWasFucked
              /*
               * 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.ui.client.hud.designer
              
              import net.ccbluex.liquidbounce.LiquidBounce
              import net.ccbluex.liquidbounce.features.module.modules.render.ClickGUI
              import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.createDefault
              import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.elements
              import net.ccbluex.liquidbounce.ui.client.hud.element.Element
              import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo
              import net.ccbluex.liquidbounce.ui.client.hud.element.Side
              import net.ccbluex.liquidbounce.ui.font.Fonts
              import net.ccbluex.liquidbounce.ui.font.GameFontRenderer
              import net.ccbluex.liquidbounce.utils.MinecraftInstance
              import net.ccbluex.liquidbounce.utils.render.RenderUtils
              import net.ccbluex.liquidbounce.value.*
              import net.minecraft.client.gui.Gui
              import net.minecraft.client.gui.ScaledResolution
              import net.minecraft.util.MathHelper
              import org.lwjgl.input.Mouse
              import org.lwjgl.opengl.GL11
              import java.awt.Color
              
              class EditorPanel(private val hudDesigner: GuiHudDesigner, var x: Int, var y: Int) : MinecraftInstance() {
              
                  var width = 80
                      private set
                  var height = 20
                      private set
                  var realHeight = 20
                      private set
              
                  private var drag = false
                  private var dragX = 0
                  private var dragY = 0
              
                  private var mouseDown = false
              
                  private var scroll = 0
              
                  var create = false
                  private var currentElement: Element? = null
              
                  /**
                   * Draw editor panel to screen
                   *
                   * @param mouseX
                   * @param mouseY
                   * @param wheel
                   */
                  fun drawPanel(mouseX: Int, mouseY: Int, wheel: Int) {
                      // Drag panel
                      drag(mouseX, mouseY)
              
                      // Set current element
                      if (currentElement != hudDesigner.selectedElement)
                          scroll = 0
                      currentElement = hudDesigner.selectedElement
              
                      // Scrolling start
                      var currMouseY = mouseY
                      val shouldScroll = realHeight > 200
              
                      if (shouldScroll) {
                          GL11.glPushMatrix()
                          RenderUtils.makeScissorBox(x.toFloat(), y + 1F, x + width.toFloat(), y + 200F)
                          GL11.glEnable(GL11.GL_SCISSOR_TEST)
              
                          if (y + 200 < currMouseY)
                              currMouseY = -1
              
                          if (mouseX >= x && mouseX <= x + width && currMouseY >= y && currMouseY <= y + 200 && Mouse.hasWheel()) {
                              if (wheel < 0 && -scroll + 205 <= realHeight) {
                                  scroll -= 12
                              } else if (wheel > 0) {
                                  scroll += 12
                                  if (scroll > 0) scroll = 0
                              }
                          }
                      }
              
                      // Draw panel
                      Gui.drawRect(x, y + 12, x + width, y + realHeight, Color(27, 34, 40).rgb)
                      when {
                          create -> drawCreate(mouseX, currMouseY)
                          currentElement != null -> drawEditor(mouseX, currMouseY)
                          else -> drawSelection(mouseX, currMouseY)
                      }
              
                      // Scrolling end
                      if (shouldScroll) {
                          val v = 197 * (-scroll / (realHeight - 170F))
                          GL11.glDisable(GL11.GL_SCISSOR_TEST)
                          GL11.glPopMatrix()
                      }
              
                      // Save mouse states
                      mouseDown = Mouse.isButtonDown(0)
                  }
              
                  /**
                   * Draw create panel
                   */
                  private fun drawCreate(mouseX: Int, mouseY: Int) {
                      height = 15 + scroll
                      realHeight = 15
                      width = 90
              
                      for (element in elements) {
                          val info = element.getAnnotation(ElementInfo::class.java) ?: continue
              
                          if (info.single && LiquidBounce.hud.elements.any { it.javaClass == element })
                              continue
              
                          val name = info.name
                          Fonts.font35.drawString(name, x + 2, y + height, Color.WHITE.rgb)
              
                          val stringWidth = Fonts.font35.getStringWidth(name)
                          if (width < stringWidth + 8)
                              width = stringWidth + 8
              
                          if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                                  && mouseY <= y + height + 10) {
                              try {
                                  val newElement = element.newInstance()
              
                                  if (newElement.createElement())
                                      LiquidBounce.hud.addElement(newElement)
                              } catch (e: InstantiationException) {
                                  e.printStackTrace()
                              } catch (e: IllegalAccessException) {
                                  e.printStackTrace()
                              }
                              create = false
                          }
              
                          height += 10
                          realHeight += 10
                      }
              
                      Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                      Fonts.font35.drawString("Create element", x + 2F, y + 3.5F, Color.WHITE.rgb)
                  }
              
                  /**
                   * Draw selection panel
                   */
                  private fun drawSelection(mouseX: Int, mouseY: Int) {
                      height = 15 + scroll
                      realHeight = 15
                      width = 120
              
                      Fonts.font35.drawString("Create element", x + 2, y + height, Color.WHITE.rgb)
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                              && mouseY <= y + height + 10)
                          create = true
              
                      height += 10
                      realHeight += 10
              
                      Fonts.font35.drawString("Reset", x + 2, y + height, Color.WHITE.rgb)
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                              && mouseY <= y + height + 10)
                          LiquidBounce.hud = createDefault()
              
                      height += 15
                      realHeight += 15
              
                      Fonts.font35.drawString("Available Elements", x + 2, y + height, Color.WHITE.rgb)
                      height += 10
                      realHeight += 10
              
                      for (element in LiquidBounce.hud.elements) {
                          Fonts.font35.drawString(element.name, x + 2, y + height, Color.WHITE.rgb)
              
                          val stringWidth = Fonts.font35.getStringWidth(element.name)
                          if (width < stringWidth + 8)
                              width = stringWidth + 8
              
                          if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                                  && mouseY <= y + height + 10)
                              hudDesigner.selectedElement = element
              
                          height += 10
                          realHeight += 10
                      }
              
                      Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                      Fonts.font35.drawString("Editor", x + 2F, y + 3.5f, Color.WHITE.rgb)
                  }
              
                  /**
                   * Draw editor panel
                   */
                  private fun drawEditor(mouseX: Int, mouseY: Int) {
                      height = scroll + 15
                      realHeight = 15
              
                      val prevWidth = width
                      width = 100
              
                      val element = currentElement ?: return
              
                      // X
                      Fonts.font35.drawString("X: ${"%.2f".format(element.renderX)} (${"%.2f".format(element.x)})", x + 2, y + height, Color.WHITE.rgb)
                      height += 10
                      realHeight += 10
              
                      // Y
                      Fonts.font35.drawString("Y: ${"%.2f".format(element.renderY)} (${"%.2f".format(element.y)})", x + 2, y + height, Color.WHITE.rgb)
                      height += 10
                      realHeight += 10
              
                      // Scale
                      Fonts.font35.drawString("Scale: ${"%.2f".format(element.scale)}", x + 2, y + height, Color.WHITE.rgb)
                      height += 10
                      realHeight += 10
              
                      // Horizontal
                      Fonts.font35.drawString("H:", x + 2, y + height, Color.WHITE.rgb)
                      Fonts.font35.drawString(element.side.horizontal.sideName,
                              x + 12, y + height, Color.GRAY.rgb)
              
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height
                              && mouseY <= y + height + 10) {
                          val values = Side.Horizontal.values()
                          val currIndex = values.indexOf(element.side.horizontal)
              
                          val x = element.renderX
              
                          element.side.horizontal = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1]
                          element.x = when (element.side.horizontal) {
                              Side.Horizontal.LEFT -> x
                              Side.Horizontal.MIDDLE -> (ScaledResolution(mc).scaledWidth / 2) - x
                              Side.Horizontal.RIGHT -> ScaledResolution(mc).scaledWidth - x
                          }
                      }
              
                      height += 10
                      realHeight += 10
              
                      // Vertical
                      Fonts.font35.drawString("V:", x + 2, y + height, Color.WHITE.rgb)
                      Fonts.font35.drawString(element.side.vertical.sideName,
                              x + 12, y + height, Color.GRAY.rgb)
              
                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && mouseY <= y + height + 10) {
                          val values = Side.Vertical.values()
                          val currIndex = values.indexOf(element.side.vertical)
              
                          val y = element.renderY
              
                          element.side.vertical = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1]
                          element.y = when (element.side.vertical) {
                              Side.Vertical.UP -> y
                              Side.Vertical.MIDDLE -> (ScaledResolution(mc).scaledHeight / 2) - y
                              Side.Vertical.DOWN -> ScaledResolution(mc).scaledHeight - y
                          }
              
                      }
              
                      height += 10
                      realHeight += 10
              
                      // Values
                      for (value in element.values) {
                          when (value) {
                              is BoolValue -> {
                                  // Title
                                  Fonts.font35.drawString(value.name, x + 2, y + height, if (value.get()) Color.WHITE.rgb else Color.GRAY.rgb)
              
                                  val stringWidth = Fonts.font35.getStringWidth(value.name)
                                  if (width < stringWidth + 8)
                                      width = stringWidth + 8
              
                                  // Toggle value
                                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width &&
                                          mouseY >= y + height && mouseY <= y + height + 10)
                                      value.set(!value.get())
              
                                  // Change pos
                                  height += 10
                                  realHeight += 10
                              }
              
                              is FloatValue -> {
                                  val current = value.get()
                                  val min = value.minimum
                                  val max = value.maximum
              
                                  // Title
                                  val text = "${value.name}: §c${"%.2f".format(current)}"
              
                                  Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
              
                                  val stringWidth = Fonts.font35.getStringWidth(text)
                                  if (width < stringWidth + 8)
                                      width = stringWidth + 8
              
                                  // Slider
                                  RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE)
              
                                  // Slider mark
                                  val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min))
                                  RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height
                                          + 15F, Color(37, 126, 255).rgb)
              
                                  // Slider changer
                                  if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 &&
                                          Mouse.isButtonDown(0)) {
                                      val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F)
              
                                      value.set(min + (max - min) * curr)
                                  }
              
                                  // Change pos
                                  height += 20
                                  realHeight += 20
                              }
              
                              is IntegerValue -> {
                                  val current = value.get()
                                  val min = value.minimum
                                  val max = value.maximum
              
                                  // Title
                                  val text = "${value.name}: §c$current"
              
                                  Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
              
                                  val stringWidth = Fonts.font35.getStringWidth(text)
                                  if (width < stringWidth + 8)
                                      width = stringWidth + 8
              
                                  // Slider
                                  RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE)
              
                                  // Slider mark
                                  val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min))
                                  RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height
                                          + 15F, Color(37, 126, 255).rgb)
              
                                  // Slider changer
                                  if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 &&
                                          Mouse.isButtonDown(0)) {
                                      val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F)
              
                                      value.set((min + (max - min) * curr).toInt())
                                  }
              
                                  // Change pos
                                  height += 20
                                  realHeight += 20
                              }
              
                              is ListValue -> {
                                  // Title
                                  Fonts.font35.drawString(value.name, x + 2, y + height, Color.WHITE.rgb)
              
                                  height += 10
                                  realHeight += 10
              
                                  // Selectable values
                                  for (s in value.values) {
                                      // Value title
                                      val text = "§c> §r$s"
                                      Fonts.font35.drawString(text, x + 2, y + height, if (s == value.get()) Color.WHITE.rgb else Color.GRAY.rgb)
              
                                      val stringWidth = Fonts.font35.getStringWidth(text)
                                      if (width < stringWidth + 8)
                                          width = stringWidth + 8
              
                                      // Select value
                                      if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width
                                              && mouseY >= y + height && mouseY <= y + height + 10)
                                          value.set(s)
              
                                      // Change pos
                                      height += 10
                                      realHeight += 10
                                  }
                              }
              
                              is FontValue -> {
                                  val fontRenderer = value.get()
              
                                  // Title
                                  val text = when (fontRenderer) {
                                      is GameFontRenderer -> "Font: ${fontRenderer.defaultFont.font.name} - ${fontRenderer.defaultFont.font.size}"
                                      Fonts.minecraftFont -> "Font: Minecraft"
                                      else -> "Font: Unknown"
                                  }
              
                                  Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb)
              
                                  val stringWidth = Fonts.font35.getStringWidth(text)
                                  if (width < stringWidth + 8)
                                      width = stringWidth + 8
              
                                  if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width &&
                                          mouseY >= y + height && mouseY <= y + height + 10) {
                                      val fonts = Fonts.getFonts()
              
                                      fonts.forEachIndexed { index, font ->
                                          if (font == fontRenderer) {
                                              value.set(fonts[if (index + 1 >= fonts.size) 0 else index + 1])
                                              return@forEachIndexed
                                          }
                                      }
                                  }
              
                                  height += 10
                                  realHeight += 10
                              }
                          }
                      }
              
                      // Header
                      Gui.drawRect(x, y, x + width, y + 12, ClickGUI.generateColor().rgb)
                      Fonts.font35.drawString(element.name, x + 2F, y + 3.5F, Color.WHITE.rgb)
              
                      // Delete button
                      if (!element.info.force) {
                          val deleteWidth = x + width - Fonts.font35.getStringWidth("Delete") - 2F
                          Fonts.font35.drawString("Delete", deleteWidth, y + 3.5F, Color.WHITE.rgb)
                          if (
                              Mouse.isButtonDown(0) &&
                              !mouseDown &&
                              mouseX >= deleteWidth &&
                              mouseX <= x + width &&
                              mouseY >= y &&
                              mouseY <= y + 10
                          ) {
                              LiquidBounce.hud.removeElement(element)
                          }
                      }
                  }
              
                  /**
                   * Drag panel
                   */
                  private fun drag(mouseX: Int, mouseY: Int) {
                      if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 12 && Mouse.isButtonDown(0)
                              && !mouseDown) {
                          drag = true
                          dragX = mouseX - x
                          dragY = mouseY - y
                      }
              
                      if (Mouse.isButtonDown(0) && drag) {
                          x = mouseX - dragX
                          y = mouseY - dragY
                      } else drag = false
                  }
              }
              
              mike melonyM Offline
              mike melonyM Offline
              mike melony
              wrote on last edited by
              #7

              @auto-reply-bot It doesn't help

              Q 1 Reply Last reply
              0
              • mike melonyM mike melony

                @auto-reply-bot It doesn't help

                Q Offline
                Q Offline
                quadro
                wrote on last edited by
                #8

                @mike-melony you dont know programming
                you will never know programming
                that is why

                1 Reply Last reply
                0
                • mike melonyM mike melony

                  who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

                  exit scammedE Offline
                  exit scammedE Offline
                  exit scammed
                  wrote on last edited by exit scammed
                  #9

                  @mike-melony
                  basically null style but modified
                  edit: you cant

                  1 Reply Last reply
                  0
                  • mike melonyM mike melony

                    who can give me this clickgui thx0c6df495-278d-43ce-a02e-0b9b1a6b9cd3-image.png

                    _ Offline
                    _ Offline
                    _FengXiao
                    wrote on last edited by
                    #10

                    @mike-melony GodKing's Gui
                    I have the Clickgui.kt
                    But why I need give you

                    mike melonyM W 2 Replies Last reply
                    0
                    • _ _FengXiao

                      @mike-melony GodKing's Gui
                      I have the Clickgui.kt
                      But why I need give you

                      mike melonyM Offline
                      mike melonyM Offline
                      mike melony
                      wrote on last edited by
                      #11

                      @_fengxiao PLZ THX

                      1 Reply Last reply
                      0
                      • _ _FengXiao

                        @mike-melony GodKing's Gui
                        I have the Clickgui.kt
                        But why I need give you

                        W Offline
                        W Offline
                        williegaines
                        wrote on last edited by
                        #12

                        @_fengxiao trap the cat said in Clickgui:

                        @mike-melony GodKing's Gui
                        I have the Clickgui.kt
                        But why I need give you

                        Thanks!

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        About
                        • Terms of Service
                        • Privacy Policy
                        • Status
                        • Contact Us
                        Downloads
                        • Releases
                        • Source code
                        • License
                        Docs
                        • Tutorials
                        • CustomHUD
                        • AutoSettings
                        • ScriptAPI
                        Community
                        • Forum
                        • Guilded
                        • YouTube
                        • Twitter
                        • D.Tube
                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups