Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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. A Notification Theme like IntelliJ IDEA.

A Notification Theme like IntelliJ IDEA.

Scheduled Pinned Locked Moved Kotlin/Java
7 Posts 6 Posters 2.5k 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.
  • LarissaL Offline
    LarissaL Offline
    Larissa
    wrote on last edited by Larissa
    #1

    this is a notification like idea.i will give you icons and codes.

    
    import net.ccbluex.liquidbounce.LiquidBounce
    import net.ccbluex.liquidbounce.utils.timer.MSTimer
    import net.ccbluex.liquidbounce.LiquidBounce.hud
    import net.ccbluex.liquidbounce.value.BoolValue
    import net.ccbluex.liquidbounce.value.FloatValue
    import net.ccbluex.liquidbounce.value.ListValue
    import net.ccbluex.liquidbounce.value.IntegerValue
    import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner
    import net.ccbluex.liquidbounce.ui.client.hud.element.Border
    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.utils.render.AnimationUtils
    import net.ccbluex.liquidbounce.utils.render.BlurUtils
    import net.ccbluex.liquidbounce.utils.render.Stencil
    import net.minecraft.client.gui.Gui
    import net.minecraft.client.renderer.GlStateManager
    import net.ccbluex.liquidbounce.ui.font.Fonts
    import net.ccbluex.liquidbounce.utils.ClientUtils
    import net.ccbluex.liquidbounce.utils.render.RenderUtils
    import net.minecraft.util.ResourceLocation
    import java.awt.Color
    
    import org.lwjgl.opengl.GL11
    
    @ElementInfo(name = "Notifications", single = true)
    class Notifications(x: Double = 0.0, y: Double = 30.0, scale: Float = 1F,
                        side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
    
        private val smoothYTransition = BoolValue("Smooth-YTransition", true)
        private val blurValue = BoolValue("Blur", false)
        private val blurStrength = FloatValue("Blur-Strength", 0F, 0F, 30F)
        private val styleValue = ListValue("Style", arrayOf("Compact", "New", "IntelliJ IDEA LOL"), "Compact")
        private val newAnimValue = BoolValue("UseNewAnim", true)
        private val animationSpeed = FloatValue("Anim-Speed", 0.5F, 0.01F, 1F, { newAnimValue.get() })
        private val bgRedValue = IntegerValue("Background-Red", 0, 0, 255)
        private val bgGreenValue = IntegerValue("Background-Red", 0, 0, 255)
        private val bgBlueValue = IntegerValue("Background-Red", 0, 0, 255)
        private val bgAlphaValue = IntegerValue("Background-Alpha", 190, 0, 255)
    
        /**
         * Example notification for CustomHUD designer
         */
        private val exampleNotification = Notification("Example Notification", Notification.Type.INFO)
    
        /**
         * Draw element
         */
        override fun drawElement(): Border? {
            val bgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get())
            var animationY = 30F
            val notifications = mutableListOf()
    
            for (i in hud.notifications)
                notifications.add(i)
            
            if (mc.currentScreen !is GuiHudDesigner || !notifications.isEmpty()) 
                for(i in notifications)
                    i.drawNotification(
                    animationY, 
                    smoothYTransition.get(), 
                    newAnimValue.get(), 
                    animationSpeed.get(), 
                    bgColor, side, 
                    styleValue.get(), 
                    blurValue.get(), 
                    blurStrength.get(), 
                    renderX.toFloat(), 
                    renderY.toFloat())
                        .also { animationY += when (styleValue.get().toLowerCase()) {
                            "compact" -> 20
                            "full" -> 30
                            else -> 30
                        } * if (side.vertical == Side.Vertical.DOWN) 1F else -1F}
            else
                exampleNotification.drawNotification(
                    animationY, 
                    smoothYTransition.get(), 
                    newAnimValue.get(), 
                    animationSpeed.get(), 
                    bgColor, side, 
                    styleValue.get(), 
                    blurValue.get(), 
                    blurStrength.get(), 
                    renderX.toFloat(), 
                    renderY.toFloat())
    
            if (mc.currentScreen is GuiHudDesigner) {
                exampleNotification.fadeState = Notification.FadeState.STAY
                //exampleNotification.stayTimer.reset()
                exampleNotification.x = exampleNotification.textLength + 8F
                if (exampleNotification.stayTimer.hasTimePassed(exampleNotification.displayTime)) 
                    exampleNotification.stayTimer.reset()
    
                return if (styleValue.get().equals("compact", true)) Border(-102F, -48F, 0F, -30F) else Border(-130F, -58F, 0F, -30F)
            }
    
            return null
        }
    
    }
    class Notification(message : String, type : Type, displayLength: Long) {
        private val notifyDir = "liquidbounce+/notif/"
        private val imgSuccess = ResourceLocation("${notifyDir}checkmark.png")
        private val imgError = ResourceLocation("${notifyDir}error.png")
        private val imgWarning = ResourceLocation("${notifyDir}warning.png")
        private val imgInfo = ResourceLocation("${notifyDir}info.png")
    
        var x = 0f
        var textLength = 0
        private var stay = 0f
        private var fadeStep = 0f
        var fadeState = FadeState.IN
        var displayTime : Long = 0L
        var stayTimer = MSTimer()
        private var firstY = 0f
        private var message: String = ""
        private var type: Type
        init {
            this.message = message
            this.type = type
            this.displayTime = displayLength
            this.firstY = 19190F
            this.stayTimer.reset()
            this.textLength = Fonts.minecraftFont.getStringWidth(message)
        }
    
        constructor(message: String, type: Type) : this(message, type, 2000L)
    
        constructor(message: String) : this(message, Type.INFO, 500L)
    
        constructor(message: String, displayLength: Long) : this(message, Type.INFO, displayLength)
    
        enum class Type {
            SUCCESS,
            INFO,
            WARNING,
            ERROR
        }
    
        enum class FadeState {
            IN,STAY,OUT,END
        }
    
        fun drawNotification(animationY: Float, smooth: Boolean, newAnim: Boolean, animSpeed: Float, backgroundColor: Color, side: Side, style: String, blur: Boolean, strength: Float, originalX: Float, originalY: Float) {
            val delta = RenderUtils.deltaTime
            val width = textLength.toFloat() + 8.0f
            
            if (smooth) {
                if (firstY == 19190.0F) {
                    firstY = animationY
                }
                firstY += (animationY - firstY) * 0.25F
            } else {
                firstY = animationY
            }
    
            var y = firstY
    
            when (style.toLowerCase()) {
                "compact" -> {
                    GlStateManager.resetColor()
                    if (blur) {
                        GL11.glTranslatef(-originalX, -originalY, 0F)
                        GL11.glPushMatrix()
                        BlurUtils.blurAreaRounded(originalX + -x - 5F, originalY + -18F - y, originalX + -x + 8F + textLength, originalY + -y, 3F, strength)
                        GL11.glPopMatrix()
                        GL11.glTranslatef(originalX, originalY, 0F)
                    } 
    
                    RenderUtils.customRounded(-x + 8F + textLength, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, backgroundColor.rgb)
                    RenderUtils.customRounded(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, when(type) {
                            Type.SUCCESS -> Color(80, 255, 80).rgb
                            Type.ERROR -> Color(255, 80, 80).rgb
                            Type.INFO -> Color(255, 255, 255).rgb
                            Type.WARNING -> Color(255, 255, 0).rgb
                        })  
    
                    GlStateManager.resetColor()
                    Fonts.minecraftFont.drawStringWithShadow(message, -x + 3, -13F - y, -1)
                }
    
                "new" -> {
                    val dist = (x + 1 + 26F) - (x - 8 - textLength)
                    val kek = -x - 1 - 20F
    
                    val toolong = dist * if (stayTimer.hasTimePassed(displayTime)) 0F else ((displayTime - (System.currentTimeMillis() - stayTimer.time)).toFloat() / displayTime.toFloat())
    
                    GlStateManager.resetColor()
                    if (blur) {
                        GL11.glTranslatef(-originalX, -originalY, 0F)
                        GL11.glPushMatrix()
                        BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                        GL11.glPopMatrix()
                        GL11.glTranslatef(originalX, originalY, 0F)
                    } 
    
                    Stencil.write(true)
                    RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, backgroundColor.rgb)
                    Stencil.erase(true)
    
                    GlStateManager.resetColor()
                    if (fadeState == FadeState.STAY && !stayTimer.hasTimePassed(displayTime))
                        RenderUtils.newDrawRect(kek, -y, kek + toolong, -1.5F - y, when(type) {
                            Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                            Type.ERROR -> Color(255, 80, 80, 255).rgb
                            Type.INFO -> Color(127,174,210).rgb
                            Type.WARNING -> Color(255, 255, 0).rgb
                        })
                    else if (fadeState == FadeState.IN)
                        RenderUtils.newDrawRect(kek, -y, kek + dist, -1.5F - y, when(type) {
                            Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                            Type.ERROR -> Color(255, 80, 80, 255).rgb
                            Type.INFO -> Color(127,174,210).rgb
                            Type.WARNING -> Color(255, 255, 0).rgb
                        })
    
                    Stencil.dispose()
    
                    GL11.glPushMatrix()
                    GlStateManager.disableAlpha()
                    GlStateManager.resetColor()
                    GL11.glColor4f(1F, 1F, 1F, 1F)
                    RenderUtils.drawImage2(when (type) {
                        Type.SUCCESS -> imgSuccess
                        Type.ERROR -> imgError
                        Type.WARNING -> imgWarning
                        Type.INFO -> imgInfo
                    }, kek +2, -24F - y, 18, 18)
                    GlStateManager.enableAlpha()
                    GL11.glPopMatrix()
    
                    Fonts.minecraftFont.drawStringWithShadow(message, -x + 2, -18F - y, -1)
                }
    
                "intellij idea lol" -> {
                    val dist = (x + 1 + 26F) - (x - 8 - textLength)
                    val kek = -x - 1 - 20F
    
                    GlStateManager.resetColor()
                    if (blur) {
                        GL11.glTranslatef(-originalX, -originalY, 0F)
                        GL11.glPushMatrix()
                        BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                        GL11.glPopMatrix()
                        GL11.glTranslatef(originalX, originalY, 0F)
                    }
    
                    Stencil.write(true)
    
                    if (type == Type.ERROR) {
                        RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(115,69,75).rgb)
                        RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(89,61,65).rgb)
                        Fonts.minecraftFont.drawStringWithShadow("IDE Error:", -x - 4, -25F - y, Color(249,130,108).rgb)
                    }
                    if (type == Type.INFO) {
                        RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(70,94,115).rgb)
                        RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(61,72,87).rgb)
                        Fonts.minecraftFont.drawStringWithShadow("IDE Information:", -x - 4, -25F - y, Color(119,145,147).rgb)
                    }
                    if (type == Type.SUCCESS) {
                        RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(67,104,67).rgb)
                        RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(55,78,55).rgb)
                        Fonts.minecraftFont.drawStringWithShadow("IDE Success:", -x - 4, -25F - y, Color(10,142,2).rgb)
                    }
                    if (type == Type.WARNING) {
                        RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(103,103,63).rgb)
                        RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(80,80,57).rgb)
                        Fonts.minecraftFont.drawStringWithShadow("IDE Warning:", -x - 4, -25F - y, Color(175,163,0).rgb)
                    }
    
                    Stencil.erase(true)
    
                    GlStateManager.resetColor()
    
                    Stencil.dispose()
    
                    GL11.glPushMatrix()
                    GlStateManager.disableAlpha()
                    GlStateManager.resetColor()
                    GL11.glColor4f(1F, 1F, 1F, 1F)
                    RenderUtils.drawImage2(when (type) {
                        Type.SUCCESS -> imgSuccess
                        Type.ERROR -> imgError
                        Type.WARNING -> imgWarning
                        Type.INFO -> imgInfo
                    }, kek + 5, -25F - y, 7, 7)
                    GlStateManager.enableAlpha()
                    GL11.glPopMatrix()
    
                    Fonts.minecraftFont.drawStringWithShadow(message, -x - 4, -13F - y, -1)
                }
            }
    
            when (fadeState) {
                FadeState.IN -> {
                    if (x < width) {
                        if (newAnim) 
                            x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(width, x, animSpeed * 0.025F * delta)
                        else 
                            x = AnimationUtils.easeOut(fadeStep, width) * width
                        fadeStep += delta / 4F
                    }
                    if (x >= width) {
                        fadeState = FadeState.STAY
                        x = width
                        fadeStep = width
                    }
    
                    stay = 60F
                    stayTimer.reset()
                }
    
                FadeState.STAY -> {
                    if (stay > 0) {
                        stay = 0F
                        stayTimer.reset()
                    }
                    if (stayTimer.hasTimePassed(displayTime))
                        fadeState = FadeState.OUT
                }
    
                FadeState.OUT -> if (x > 0) {
                    if (newAnim) 
                        x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(-width, x, animSpeed * 0.025F * delta)
                    else 
                        x = AnimationUtils.easeOut(fadeStep, width) * width
    
                    fadeStep -= delta / 4F
                } else
                    fadeState = FadeState.END
    
                FadeState.END -> hud.removeNotification(this)
            }        
        }
    }
    
    

    icon and ending photo!
    58CEA7EF-A755-4D52-9115-48F5C0E45083.png 55D78E4E-2882-4605-9869-8EC44C3B25AD.png 230046AE-FDC0-43BB-B75A-D00AA7872B8F.png 4B50C6C2-7A01-449F-9D0B-7405554E7E10.png 7E15207E-EDCD-438B-A8FA-643925E7C81D.png

    Ali00035A exit scammedE Konoha ScarletK RyannnnnR 4 Replies Last reply
    16
    • LarissaL Larissa

      this is a notification like idea.i will give you icons and codes.

      
      import net.ccbluex.liquidbounce.LiquidBounce
      import net.ccbluex.liquidbounce.utils.timer.MSTimer
      import net.ccbluex.liquidbounce.LiquidBounce.hud
      import net.ccbluex.liquidbounce.value.BoolValue
      import net.ccbluex.liquidbounce.value.FloatValue
      import net.ccbluex.liquidbounce.value.ListValue
      import net.ccbluex.liquidbounce.value.IntegerValue
      import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner
      import net.ccbluex.liquidbounce.ui.client.hud.element.Border
      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.utils.render.AnimationUtils
      import net.ccbluex.liquidbounce.utils.render.BlurUtils
      import net.ccbluex.liquidbounce.utils.render.Stencil
      import net.minecraft.client.gui.Gui
      import net.minecraft.client.renderer.GlStateManager
      import net.ccbluex.liquidbounce.ui.font.Fonts
      import net.ccbluex.liquidbounce.utils.ClientUtils
      import net.ccbluex.liquidbounce.utils.render.RenderUtils
      import net.minecraft.util.ResourceLocation
      import java.awt.Color
      
      import org.lwjgl.opengl.GL11
      
      @ElementInfo(name = "Notifications", single = true)
      class Notifications(x: Double = 0.0, y: Double = 30.0, scale: Float = 1F,
                          side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
      
          private val smoothYTransition = BoolValue("Smooth-YTransition", true)
          private val blurValue = BoolValue("Blur", false)
          private val blurStrength = FloatValue("Blur-Strength", 0F, 0F, 30F)
          private val styleValue = ListValue("Style", arrayOf("Compact", "New", "IntelliJ IDEA LOL"), "Compact")
          private val newAnimValue = BoolValue("UseNewAnim", true)
          private val animationSpeed = FloatValue("Anim-Speed", 0.5F, 0.01F, 1F, { newAnimValue.get() })
          private val bgRedValue = IntegerValue("Background-Red", 0, 0, 255)
          private val bgGreenValue = IntegerValue("Background-Red", 0, 0, 255)
          private val bgBlueValue = IntegerValue("Background-Red", 0, 0, 255)
          private val bgAlphaValue = IntegerValue("Background-Alpha", 190, 0, 255)
      
          /**
           * Example notification for CustomHUD designer
           */
          private val exampleNotification = Notification("Example Notification", Notification.Type.INFO)
      
          /**
           * Draw element
           */
          override fun drawElement(): Border? {
              val bgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get())
              var animationY = 30F
              val notifications = mutableListOf()
      
              for (i in hud.notifications)
                  notifications.add(i)
              
              if (mc.currentScreen !is GuiHudDesigner || !notifications.isEmpty()) 
                  for(i in notifications)
                      i.drawNotification(
                      animationY, 
                      smoothYTransition.get(), 
                      newAnimValue.get(), 
                      animationSpeed.get(), 
                      bgColor, side, 
                      styleValue.get(), 
                      blurValue.get(), 
                      blurStrength.get(), 
                      renderX.toFloat(), 
                      renderY.toFloat())
                          .also { animationY += when (styleValue.get().toLowerCase()) {
                              "compact" -> 20
                              "full" -> 30
                              else -> 30
                          } * if (side.vertical == Side.Vertical.DOWN) 1F else -1F}
              else
                  exampleNotification.drawNotification(
                      animationY, 
                      smoothYTransition.get(), 
                      newAnimValue.get(), 
                      animationSpeed.get(), 
                      bgColor, side, 
                      styleValue.get(), 
                      blurValue.get(), 
                      blurStrength.get(), 
                      renderX.toFloat(), 
                      renderY.toFloat())
      
              if (mc.currentScreen is GuiHudDesigner) {
                  exampleNotification.fadeState = Notification.FadeState.STAY
                  //exampleNotification.stayTimer.reset()
                  exampleNotification.x = exampleNotification.textLength + 8F
                  if (exampleNotification.stayTimer.hasTimePassed(exampleNotification.displayTime)) 
                      exampleNotification.stayTimer.reset()
      
                  return if (styleValue.get().equals("compact", true)) Border(-102F, -48F, 0F, -30F) else Border(-130F, -58F, 0F, -30F)
              }
      
              return null
          }
      
      }
      class Notification(message : String, type : Type, displayLength: Long) {
          private val notifyDir = "liquidbounce+/notif/"
          private val imgSuccess = ResourceLocation("${notifyDir}checkmark.png")
          private val imgError = ResourceLocation("${notifyDir}error.png")
          private val imgWarning = ResourceLocation("${notifyDir}warning.png")
          private val imgInfo = ResourceLocation("${notifyDir}info.png")
      
          var x = 0f
          var textLength = 0
          private var stay = 0f
          private var fadeStep = 0f
          var fadeState = FadeState.IN
          var displayTime : Long = 0L
          var stayTimer = MSTimer()
          private var firstY = 0f
          private var message: String = ""
          private var type: Type
          init {
              this.message = message
              this.type = type
              this.displayTime = displayLength
              this.firstY = 19190F
              this.stayTimer.reset()
              this.textLength = Fonts.minecraftFont.getStringWidth(message)
          }
      
          constructor(message: String, type: Type) : this(message, type, 2000L)
      
          constructor(message: String) : this(message, Type.INFO, 500L)
      
          constructor(message: String, displayLength: Long) : this(message, Type.INFO, displayLength)
      
          enum class Type {
              SUCCESS,
              INFO,
              WARNING,
              ERROR
          }
      
          enum class FadeState {
              IN,STAY,OUT,END
          }
      
          fun drawNotification(animationY: Float, smooth: Boolean, newAnim: Boolean, animSpeed: Float, backgroundColor: Color, side: Side, style: String, blur: Boolean, strength: Float, originalX: Float, originalY: Float) {
              val delta = RenderUtils.deltaTime
              val width = textLength.toFloat() + 8.0f
              
              if (smooth) {
                  if (firstY == 19190.0F) {
                      firstY = animationY
                  }
                  firstY += (animationY - firstY) * 0.25F
              } else {
                  firstY = animationY
              }
      
              var y = firstY
      
              when (style.toLowerCase()) {
                  "compact" -> {
                      GlStateManager.resetColor()
                      if (blur) {
                          GL11.glTranslatef(-originalX, -originalY, 0F)
                          GL11.glPushMatrix()
                          BlurUtils.blurAreaRounded(originalX + -x - 5F, originalY + -18F - y, originalX + -x + 8F + textLength, originalY + -y, 3F, strength)
                          GL11.glPopMatrix()
                          GL11.glTranslatef(originalX, originalY, 0F)
                      } 
      
                      RenderUtils.customRounded(-x + 8F + textLength, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, backgroundColor.rgb)
                      RenderUtils.customRounded(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, when(type) {
                              Type.SUCCESS -> Color(80, 255, 80).rgb
                              Type.ERROR -> Color(255, 80, 80).rgb
                              Type.INFO -> Color(255, 255, 255).rgb
                              Type.WARNING -> Color(255, 255, 0).rgb
                          })  
      
                      GlStateManager.resetColor()
                      Fonts.minecraftFont.drawStringWithShadow(message, -x + 3, -13F - y, -1)
                  }
      
                  "new" -> {
                      val dist = (x + 1 + 26F) - (x - 8 - textLength)
                      val kek = -x - 1 - 20F
      
                      val toolong = dist * if (stayTimer.hasTimePassed(displayTime)) 0F else ((displayTime - (System.currentTimeMillis() - stayTimer.time)).toFloat() / displayTime.toFloat())
      
                      GlStateManager.resetColor()
                      if (blur) {
                          GL11.glTranslatef(-originalX, -originalY, 0F)
                          GL11.glPushMatrix()
                          BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                          GL11.glPopMatrix()
                          GL11.glTranslatef(originalX, originalY, 0F)
                      } 
      
                      Stencil.write(true)
                      RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, backgroundColor.rgb)
                      Stencil.erase(true)
      
                      GlStateManager.resetColor()
                      if (fadeState == FadeState.STAY && !stayTimer.hasTimePassed(displayTime))
                          RenderUtils.newDrawRect(kek, -y, kek + toolong, -1.5F - y, when(type) {
                              Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                              Type.ERROR -> Color(255, 80, 80, 255).rgb
                              Type.INFO -> Color(127,174,210).rgb
                              Type.WARNING -> Color(255, 255, 0).rgb
                          })
                      else if (fadeState == FadeState.IN)
                          RenderUtils.newDrawRect(kek, -y, kek + dist, -1.5F - y, when(type) {
                              Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                              Type.ERROR -> Color(255, 80, 80, 255).rgb
                              Type.INFO -> Color(127,174,210).rgb
                              Type.WARNING -> Color(255, 255, 0).rgb
                          })
      
                      Stencil.dispose()
      
                      GL11.glPushMatrix()
                      GlStateManager.disableAlpha()
                      GlStateManager.resetColor()
                      GL11.glColor4f(1F, 1F, 1F, 1F)
                      RenderUtils.drawImage2(when (type) {
                          Type.SUCCESS -> imgSuccess
                          Type.ERROR -> imgError
                          Type.WARNING -> imgWarning
                          Type.INFO -> imgInfo
                      }, kek +2, -24F - y, 18, 18)
                      GlStateManager.enableAlpha()
                      GL11.glPopMatrix()
      
                      Fonts.minecraftFont.drawStringWithShadow(message, -x + 2, -18F - y, -1)
                  }
      
                  "intellij idea lol" -> {
                      val dist = (x + 1 + 26F) - (x - 8 - textLength)
                      val kek = -x - 1 - 20F
      
                      GlStateManager.resetColor()
                      if (blur) {
                          GL11.glTranslatef(-originalX, -originalY, 0F)
                          GL11.glPushMatrix()
                          BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                          GL11.glPopMatrix()
                          GL11.glTranslatef(originalX, originalY, 0F)
                      }
      
                      Stencil.write(true)
      
                      if (type == Type.ERROR) {
                          RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(115,69,75).rgb)
                          RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(89,61,65).rgb)
                          Fonts.minecraftFont.drawStringWithShadow("IDE Error:", -x - 4, -25F - y, Color(249,130,108).rgb)
                      }
                      if (type == Type.INFO) {
                          RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(70,94,115).rgb)
                          RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(61,72,87).rgb)
                          Fonts.minecraftFont.drawStringWithShadow("IDE Information:", -x - 4, -25F - y, Color(119,145,147).rgb)
                      }
                      if (type == Type.SUCCESS) {
                          RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(67,104,67).rgb)
                          RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(55,78,55).rgb)
                          Fonts.minecraftFont.drawStringWithShadow("IDE Success:", -x - 4, -25F - y, Color(10,142,2).rgb)
                      }
                      if (type == Type.WARNING) {
                          RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(103,103,63).rgb)
                          RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(80,80,57).rgb)
                          Fonts.minecraftFont.drawStringWithShadow("IDE Warning:", -x - 4, -25F - y, Color(175,163,0).rgb)
                      }
      
                      Stencil.erase(true)
      
                      GlStateManager.resetColor()
      
                      Stencil.dispose()
      
                      GL11.glPushMatrix()
                      GlStateManager.disableAlpha()
                      GlStateManager.resetColor()
                      GL11.glColor4f(1F, 1F, 1F, 1F)
                      RenderUtils.drawImage2(when (type) {
                          Type.SUCCESS -> imgSuccess
                          Type.ERROR -> imgError
                          Type.WARNING -> imgWarning
                          Type.INFO -> imgInfo
                      }, kek + 5, -25F - y, 7, 7)
                      GlStateManager.enableAlpha()
                      GL11.glPopMatrix()
      
                      Fonts.minecraftFont.drawStringWithShadow(message, -x - 4, -13F - y, -1)
                  }
              }
      
              when (fadeState) {
                  FadeState.IN -> {
                      if (x < width) {
                          if (newAnim) 
                              x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(width, x, animSpeed * 0.025F * delta)
                          else 
                              x = AnimationUtils.easeOut(fadeStep, width) * width
                          fadeStep += delta / 4F
                      }
                      if (x >= width) {
                          fadeState = FadeState.STAY
                          x = width
                          fadeStep = width
                      }
      
                      stay = 60F
                      stayTimer.reset()
                  }
      
                  FadeState.STAY -> {
                      if (stay > 0) {
                          stay = 0F
                          stayTimer.reset()
                      }
                      if (stayTimer.hasTimePassed(displayTime))
                          fadeState = FadeState.OUT
                  }
      
                  FadeState.OUT -> if (x > 0) {
                      if (newAnim) 
                          x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(-width, x, animSpeed * 0.025F * delta)
                      else 
                          x = AnimationUtils.easeOut(fadeStep, width) * width
      
                      fadeStep -= delta / 4F
                  } else
                      fadeState = FadeState.END
      
                  FadeState.END -> hud.removeNotification(this)
              }        
          }
      }
      
      

      icon and ending photo!
      58CEA7EF-A755-4D52-9115-48F5C0E45083.png 55D78E4E-2882-4605-9869-8EC44C3B25AD.png 230046AE-FDC0-43BB-B75A-D00AA7872B8F.png 4B50C6C2-7A01-449F-9D0B-7405554E7E10.png 7E15207E-EDCD-438B-A8FA-643925E7C81D.png

      Ali00035A Offline
      Ali00035A Offline
      Ali00035
      wrote on last edited by
      #2
      This post is deleted!
      1 Reply Last reply
      0
      • KoitoyuuK Offline
        KoitoyuuK Offline
        Koitoyuu
        wrote on last edited by
        #3

        Very Cute 😄

        LarissaL 1 Reply Last reply
        0
        • KoitoyuuK Koitoyuu

          Very Cute 😄

          LarissaL Offline
          LarissaL Offline
          Larissa
          wrote on last edited by
          #4

          @koitoyuu thx

          1 Reply Last reply
          15
          • LarissaL Larissa

            this is a notification like idea.i will give you icons and codes.

            
            import net.ccbluex.liquidbounce.LiquidBounce
            import net.ccbluex.liquidbounce.utils.timer.MSTimer
            import net.ccbluex.liquidbounce.LiquidBounce.hud
            import net.ccbluex.liquidbounce.value.BoolValue
            import net.ccbluex.liquidbounce.value.FloatValue
            import net.ccbluex.liquidbounce.value.ListValue
            import net.ccbluex.liquidbounce.value.IntegerValue
            import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner
            import net.ccbluex.liquidbounce.ui.client.hud.element.Border
            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.utils.render.AnimationUtils
            import net.ccbluex.liquidbounce.utils.render.BlurUtils
            import net.ccbluex.liquidbounce.utils.render.Stencil
            import net.minecraft.client.gui.Gui
            import net.minecraft.client.renderer.GlStateManager
            import net.ccbluex.liquidbounce.ui.font.Fonts
            import net.ccbluex.liquidbounce.utils.ClientUtils
            import net.ccbluex.liquidbounce.utils.render.RenderUtils
            import net.minecraft.util.ResourceLocation
            import java.awt.Color
            
            import org.lwjgl.opengl.GL11
            
            @ElementInfo(name = "Notifications", single = true)
            class Notifications(x: Double = 0.0, y: Double = 30.0, scale: Float = 1F,
                                side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
            
                private val smoothYTransition = BoolValue("Smooth-YTransition", true)
                private val blurValue = BoolValue("Blur", false)
                private val blurStrength = FloatValue("Blur-Strength", 0F, 0F, 30F)
                private val styleValue = ListValue("Style", arrayOf("Compact", "New", "IntelliJ IDEA LOL"), "Compact")
                private val newAnimValue = BoolValue("UseNewAnim", true)
                private val animationSpeed = FloatValue("Anim-Speed", 0.5F, 0.01F, 1F, { newAnimValue.get() })
                private val bgRedValue = IntegerValue("Background-Red", 0, 0, 255)
                private val bgGreenValue = IntegerValue("Background-Red", 0, 0, 255)
                private val bgBlueValue = IntegerValue("Background-Red", 0, 0, 255)
                private val bgAlphaValue = IntegerValue("Background-Alpha", 190, 0, 255)
            
                /**
                 * Example notification for CustomHUD designer
                 */
                private val exampleNotification = Notification("Example Notification", Notification.Type.INFO)
            
                /**
                 * Draw element
                 */
                override fun drawElement(): Border? {
                    val bgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get())
                    var animationY = 30F
                    val notifications = mutableListOf()
            
                    for (i in hud.notifications)
                        notifications.add(i)
                    
                    if (mc.currentScreen !is GuiHudDesigner || !notifications.isEmpty()) 
                        for(i in notifications)
                            i.drawNotification(
                            animationY, 
                            smoothYTransition.get(), 
                            newAnimValue.get(), 
                            animationSpeed.get(), 
                            bgColor, side, 
                            styleValue.get(), 
                            blurValue.get(), 
                            blurStrength.get(), 
                            renderX.toFloat(), 
                            renderY.toFloat())
                                .also { animationY += when (styleValue.get().toLowerCase()) {
                                    "compact" -> 20
                                    "full" -> 30
                                    else -> 30
                                } * if (side.vertical == Side.Vertical.DOWN) 1F else -1F}
                    else
                        exampleNotification.drawNotification(
                            animationY, 
                            smoothYTransition.get(), 
                            newAnimValue.get(), 
                            animationSpeed.get(), 
                            bgColor, side, 
                            styleValue.get(), 
                            blurValue.get(), 
                            blurStrength.get(), 
                            renderX.toFloat(), 
                            renderY.toFloat())
            
                    if (mc.currentScreen is GuiHudDesigner) {
                        exampleNotification.fadeState = Notification.FadeState.STAY
                        //exampleNotification.stayTimer.reset()
                        exampleNotification.x = exampleNotification.textLength + 8F
                        if (exampleNotification.stayTimer.hasTimePassed(exampleNotification.displayTime)) 
                            exampleNotification.stayTimer.reset()
            
                        return if (styleValue.get().equals("compact", true)) Border(-102F, -48F, 0F, -30F) else Border(-130F, -58F, 0F, -30F)
                    }
            
                    return null
                }
            
            }
            class Notification(message : String, type : Type, displayLength: Long) {
                private val notifyDir = "liquidbounce+/notif/"
                private val imgSuccess = ResourceLocation("${notifyDir}checkmark.png")
                private val imgError = ResourceLocation("${notifyDir}error.png")
                private val imgWarning = ResourceLocation("${notifyDir}warning.png")
                private val imgInfo = ResourceLocation("${notifyDir}info.png")
            
                var x = 0f
                var textLength = 0
                private var stay = 0f
                private var fadeStep = 0f
                var fadeState = FadeState.IN
                var displayTime : Long = 0L
                var stayTimer = MSTimer()
                private var firstY = 0f
                private var message: String = ""
                private var type: Type
                init {
                    this.message = message
                    this.type = type
                    this.displayTime = displayLength
                    this.firstY = 19190F
                    this.stayTimer.reset()
                    this.textLength = Fonts.minecraftFont.getStringWidth(message)
                }
            
                constructor(message: String, type: Type) : this(message, type, 2000L)
            
                constructor(message: String) : this(message, Type.INFO, 500L)
            
                constructor(message: String, displayLength: Long) : this(message, Type.INFO, displayLength)
            
                enum class Type {
                    SUCCESS,
                    INFO,
                    WARNING,
                    ERROR
                }
            
                enum class FadeState {
                    IN,STAY,OUT,END
                }
            
                fun drawNotification(animationY: Float, smooth: Boolean, newAnim: Boolean, animSpeed: Float, backgroundColor: Color, side: Side, style: String, blur: Boolean, strength: Float, originalX: Float, originalY: Float) {
                    val delta = RenderUtils.deltaTime
                    val width = textLength.toFloat() + 8.0f
                    
                    if (smooth) {
                        if (firstY == 19190.0F) {
                            firstY = animationY
                        }
                        firstY += (animationY - firstY) * 0.25F
                    } else {
                        firstY = animationY
                    }
            
                    var y = firstY
            
                    when (style.toLowerCase()) {
                        "compact" -> {
                            GlStateManager.resetColor()
                            if (blur) {
                                GL11.glTranslatef(-originalX, -originalY, 0F)
                                GL11.glPushMatrix()
                                BlurUtils.blurAreaRounded(originalX + -x - 5F, originalY + -18F - y, originalX + -x + 8F + textLength, originalY + -y, 3F, strength)
                                GL11.glPopMatrix()
                                GL11.glTranslatef(originalX, originalY, 0F)
                            } 
            
                            RenderUtils.customRounded(-x + 8F + textLength, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, backgroundColor.rgb)
                            RenderUtils.customRounded(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, when(type) {
                                    Type.SUCCESS -> Color(80, 255, 80).rgb
                                    Type.ERROR -> Color(255, 80, 80).rgb
                                    Type.INFO -> Color(255, 255, 255).rgb
                                    Type.WARNING -> Color(255, 255, 0).rgb
                                })  
            
                            GlStateManager.resetColor()
                            Fonts.minecraftFont.drawStringWithShadow(message, -x + 3, -13F - y, -1)
                        }
            
                        "new" -> {
                            val dist = (x + 1 + 26F) - (x - 8 - textLength)
                            val kek = -x - 1 - 20F
            
                            val toolong = dist * if (stayTimer.hasTimePassed(displayTime)) 0F else ((displayTime - (System.currentTimeMillis() - stayTimer.time)).toFloat() / displayTime.toFloat())
            
                            GlStateManager.resetColor()
                            if (blur) {
                                GL11.glTranslatef(-originalX, -originalY, 0F)
                                GL11.glPushMatrix()
                                BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                GL11.glPopMatrix()
                                GL11.glTranslatef(originalX, originalY, 0F)
                            } 
            
                            Stencil.write(true)
                            RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, backgroundColor.rgb)
                            Stencil.erase(true)
            
                            GlStateManager.resetColor()
                            if (fadeState == FadeState.STAY && !stayTimer.hasTimePassed(displayTime))
                                RenderUtils.newDrawRect(kek, -y, kek + toolong, -1.5F - y, when(type) {
                                    Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                    Type.ERROR -> Color(255, 80, 80, 255).rgb
                                    Type.INFO -> Color(127,174,210).rgb
                                    Type.WARNING -> Color(255, 255, 0).rgb
                                })
                            else if (fadeState == FadeState.IN)
                                RenderUtils.newDrawRect(kek, -y, kek + dist, -1.5F - y, when(type) {
                                    Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                    Type.ERROR -> Color(255, 80, 80, 255).rgb
                                    Type.INFO -> Color(127,174,210).rgb
                                    Type.WARNING -> Color(255, 255, 0).rgb
                                })
            
                            Stencil.dispose()
            
                            GL11.glPushMatrix()
                            GlStateManager.disableAlpha()
                            GlStateManager.resetColor()
                            GL11.glColor4f(1F, 1F, 1F, 1F)
                            RenderUtils.drawImage2(when (type) {
                                Type.SUCCESS -> imgSuccess
                                Type.ERROR -> imgError
                                Type.WARNING -> imgWarning
                                Type.INFO -> imgInfo
                            }, kek +2, -24F - y, 18, 18)
                            GlStateManager.enableAlpha()
                            GL11.glPopMatrix()
            
                            Fonts.minecraftFont.drawStringWithShadow(message, -x + 2, -18F - y, -1)
                        }
            
                        "intellij idea lol" -> {
                            val dist = (x + 1 + 26F) - (x - 8 - textLength)
                            val kek = -x - 1 - 20F
            
                            GlStateManager.resetColor()
                            if (blur) {
                                GL11.glTranslatef(-originalX, -originalY, 0F)
                                GL11.glPushMatrix()
                                BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                GL11.glPopMatrix()
                                GL11.glTranslatef(originalX, originalY, 0F)
                            }
            
                            Stencil.write(true)
            
                            if (type == Type.ERROR) {
                                RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(115,69,75).rgb)
                                RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(89,61,65).rgb)
                                Fonts.minecraftFont.drawStringWithShadow("IDE Error:", -x - 4, -25F - y, Color(249,130,108).rgb)
                            }
                            if (type == Type.INFO) {
                                RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(70,94,115).rgb)
                                RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(61,72,87).rgb)
                                Fonts.minecraftFont.drawStringWithShadow("IDE Information:", -x - 4, -25F - y, Color(119,145,147).rgb)
                            }
                            if (type == Type.SUCCESS) {
                                RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(67,104,67).rgb)
                                RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(55,78,55).rgb)
                                Fonts.minecraftFont.drawStringWithShadow("IDE Success:", -x - 4, -25F - y, Color(10,142,2).rgb)
                            }
                            if (type == Type.WARNING) {
                                RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(103,103,63).rgb)
                                RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(80,80,57).rgb)
                                Fonts.minecraftFont.drawStringWithShadow("IDE Warning:", -x - 4, -25F - y, Color(175,163,0).rgb)
                            }
            
                            Stencil.erase(true)
            
                            GlStateManager.resetColor()
            
                            Stencil.dispose()
            
                            GL11.glPushMatrix()
                            GlStateManager.disableAlpha()
                            GlStateManager.resetColor()
                            GL11.glColor4f(1F, 1F, 1F, 1F)
                            RenderUtils.drawImage2(when (type) {
                                Type.SUCCESS -> imgSuccess
                                Type.ERROR -> imgError
                                Type.WARNING -> imgWarning
                                Type.INFO -> imgInfo
                            }, kek + 5, -25F - y, 7, 7)
                            GlStateManager.enableAlpha()
                            GL11.glPopMatrix()
            
                            Fonts.minecraftFont.drawStringWithShadow(message, -x - 4, -13F - y, -1)
                        }
                    }
            
                    when (fadeState) {
                        FadeState.IN -> {
                            if (x < width) {
                                if (newAnim) 
                                    x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(width, x, animSpeed * 0.025F * delta)
                                else 
                                    x = AnimationUtils.easeOut(fadeStep, width) * width
                                fadeStep += delta / 4F
                            }
                            if (x >= width) {
                                fadeState = FadeState.STAY
                                x = width
                                fadeStep = width
                            }
            
                            stay = 60F
                            stayTimer.reset()
                        }
            
                        FadeState.STAY -> {
                            if (stay > 0) {
                                stay = 0F
                                stayTimer.reset()
                            }
                            if (stayTimer.hasTimePassed(displayTime))
                                fadeState = FadeState.OUT
                        }
            
                        FadeState.OUT -> if (x > 0) {
                            if (newAnim) 
                                x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(-width, x, animSpeed * 0.025F * delta)
                            else 
                                x = AnimationUtils.easeOut(fadeStep, width) * width
            
                            fadeStep -= delta / 4F
                        } else
                            fadeState = FadeState.END
            
                        FadeState.END -> hud.removeNotification(this)
                    }        
                }
            }
            
            

            icon and ending photo!
            58CEA7EF-A755-4D52-9115-48F5C0E45083.png 55D78E4E-2882-4605-9869-8EC44C3B25AD.png 230046AE-FDC0-43BB-B75A-D00AA7872B8F.png 4B50C6C2-7A01-449F-9D0B-7405554E7E10.png 7E15207E-EDCD-438B-A8FA-643925E7C81D.png

            exit scammedE Offline
            exit scammedE Offline
            exit scammed
            wrote on last edited by
            #5
            This post is deleted!
            1 Reply Last reply
            1
            • LarissaL Larissa

              this is a notification like idea.i will give you icons and codes.

              
              import net.ccbluex.liquidbounce.LiquidBounce
              import net.ccbluex.liquidbounce.utils.timer.MSTimer
              import net.ccbluex.liquidbounce.LiquidBounce.hud
              import net.ccbluex.liquidbounce.value.BoolValue
              import net.ccbluex.liquidbounce.value.FloatValue
              import net.ccbluex.liquidbounce.value.ListValue
              import net.ccbluex.liquidbounce.value.IntegerValue
              import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner
              import net.ccbluex.liquidbounce.ui.client.hud.element.Border
              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.utils.render.AnimationUtils
              import net.ccbluex.liquidbounce.utils.render.BlurUtils
              import net.ccbluex.liquidbounce.utils.render.Stencil
              import net.minecraft.client.gui.Gui
              import net.minecraft.client.renderer.GlStateManager
              import net.ccbluex.liquidbounce.ui.font.Fonts
              import net.ccbluex.liquidbounce.utils.ClientUtils
              import net.ccbluex.liquidbounce.utils.render.RenderUtils
              import net.minecraft.util.ResourceLocation
              import java.awt.Color
              
              import org.lwjgl.opengl.GL11
              
              @ElementInfo(name = "Notifications", single = true)
              class Notifications(x: Double = 0.0, y: Double = 30.0, scale: Float = 1F,
                                  side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
              
                  private val smoothYTransition = BoolValue("Smooth-YTransition", true)
                  private val blurValue = BoolValue("Blur", false)
                  private val blurStrength = FloatValue("Blur-Strength", 0F, 0F, 30F)
                  private val styleValue = ListValue("Style", arrayOf("Compact", "New", "IntelliJ IDEA LOL"), "Compact")
                  private val newAnimValue = BoolValue("UseNewAnim", true)
                  private val animationSpeed = FloatValue("Anim-Speed", 0.5F, 0.01F, 1F, { newAnimValue.get() })
                  private val bgRedValue = IntegerValue("Background-Red", 0, 0, 255)
                  private val bgGreenValue = IntegerValue("Background-Red", 0, 0, 255)
                  private val bgBlueValue = IntegerValue("Background-Red", 0, 0, 255)
                  private val bgAlphaValue = IntegerValue("Background-Alpha", 190, 0, 255)
              
                  /**
                   * Example notification for CustomHUD designer
                   */
                  private val exampleNotification = Notification("Example Notification", Notification.Type.INFO)
              
                  /**
                   * Draw element
                   */
                  override fun drawElement(): Border? {
                      val bgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get())
                      var animationY = 30F
                      val notifications = mutableListOf()
              
                      for (i in hud.notifications)
                          notifications.add(i)
                      
                      if (mc.currentScreen !is GuiHudDesigner || !notifications.isEmpty()) 
                          for(i in notifications)
                              i.drawNotification(
                              animationY, 
                              smoothYTransition.get(), 
                              newAnimValue.get(), 
                              animationSpeed.get(), 
                              bgColor, side, 
                              styleValue.get(), 
                              blurValue.get(), 
                              blurStrength.get(), 
                              renderX.toFloat(), 
                              renderY.toFloat())
                                  .also { animationY += when (styleValue.get().toLowerCase()) {
                                      "compact" -> 20
                                      "full" -> 30
                                      else -> 30
                                  } * if (side.vertical == Side.Vertical.DOWN) 1F else -1F}
                      else
                          exampleNotification.drawNotification(
                              animationY, 
                              smoothYTransition.get(), 
                              newAnimValue.get(), 
                              animationSpeed.get(), 
                              bgColor, side, 
                              styleValue.get(), 
                              blurValue.get(), 
                              blurStrength.get(), 
                              renderX.toFloat(), 
                              renderY.toFloat())
              
                      if (mc.currentScreen is GuiHudDesigner) {
                          exampleNotification.fadeState = Notification.FadeState.STAY
                          //exampleNotification.stayTimer.reset()
                          exampleNotification.x = exampleNotification.textLength + 8F
                          if (exampleNotification.stayTimer.hasTimePassed(exampleNotification.displayTime)) 
                              exampleNotification.stayTimer.reset()
              
                          return if (styleValue.get().equals("compact", true)) Border(-102F, -48F, 0F, -30F) else Border(-130F, -58F, 0F, -30F)
                      }
              
                      return null
                  }
              
              }
              class Notification(message : String, type : Type, displayLength: Long) {
                  private val notifyDir = "liquidbounce+/notif/"
                  private val imgSuccess = ResourceLocation("${notifyDir}checkmark.png")
                  private val imgError = ResourceLocation("${notifyDir}error.png")
                  private val imgWarning = ResourceLocation("${notifyDir}warning.png")
                  private val imgInfo = ResourceLocation("${notifyDir}info.png")
              
                  var x = 0f
                  var textLength = 0
                  private var stay = 0f
                  private var fadeStep = 0f
                  var fadeState = FadeState.IN
                  var displayTime : Long = 0L
                  var stayTimer = MSTimer()
                  private var firstY = 0f
                  private var message: String = ""
                  private var type: Type
                  init {
                      this.message = message
                      this.type = type
                      this.displayTime = displayLength
                      this.firstY = 19190F
                      this.stayTimer.reset()
                      this.textLength = Fonts.minecraftFont.getStringWidth(message)
                  }
              
                  constructor(message: String, type: Type) : this(message, type, 2000L)
              
                  constructor(message: String) : this(message, Type.INFO, 500L)
              
                  constructor(message: String, displayLength: Long) : this(message, Type.INFO, displayLength)
              
                  enum class Type {
                      SUCCESS,
                      INFO,
                      WARNING,
                      ERROR
                  }
              
                  enum class FadeState {
                      IN,STAY,OUT,END
                  }
              
                  fun drawNotification(animationY: Float, smooth: Boolean, newAnim: Boolean, animSpeed: Float, backgroundColor: Color, side: Side, style: String, blur: Boolean, strength: Float, originalX: Float, originalY: Float) {
                      val delta = RenderUtils.deltaTime
                      val width = textLength.toFloat() + 8.0f
                      
                      if (smooth) {
                          if (firstY == 19190.0F) {
                              firstY = animationY
                          }
                          firstY += (animationY - firstY) * 0.25F
                      } else {
                          firstY = animationY
                      }
              
                      var y = firstY
              
                      when (style.toLowerCase()) {
                          "compact" -> {
                              GlStateManager.resetColor()
                              if (blur) {
                                  GL11.glTranslatef(-originalX, -originalY, 0F)
                                  GL11.glPushMatrix()
                                  BlurUtils.blurAreaRounded(originalX + -x - 5F, originalY + -18F - y, originalX + -x + 8F + textLength, originalY + -y, 3F, strength)
                                  GL11.glPopMatrix()
                                  GL11.glTranslatef(originalX, originalY, 0F)
                              } 
              
                              RenderUtils.customRounded(-x + 8F + textLength, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, backgroundColor.rgb)
                              RenderUtils.customRounded(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, when(type) {
                                      Type.SUCCESS -> Color(80, 255, 80).rgb
                                      Type.ERROR -> Color(255, 80, 80).rgb
                                      Type.INFO -> Color(255, 255, 255).rgb
                                      Type.WARNING -> Color(255, 255, 0).rgb
                                  })  
              
                              GlStateManager.resetColor()
                              Fonts.minecraftFont.drawStringWithShadow(message, -x + 3, -13F - y, -1)
                          }
              
                          "new" -> {
                              val dist = (x + 1 + 26F) - (x - 8 - textLength)
                              val kek = -x - 1 - 20F
              
                              val toolong = dist * if (stayTimer.hasTimePassed(displayTime)) 0F else ((displayTime - (System.currentTimeMillis() - stayTimer.time)).toFloat() / displayTime.toFloat())
              
                              GlStateManager.resetColor()
                              if (blur) {
                                  GL11.glTranslatef(-originalX, -originalY, 0F)
                                  GL11.glPushMatrix()
                                  BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                  GL11.glPopMatrix()
                                  GL11.glTranslatef(originalX, originalY, 0F)
                              } 
              
                              Stencil.write(true)
                              RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, backgroundColor.rgb)
                              Stencil.erase(true)
              
                              GlStateManager.resetColor()
                              if (fadeState == FadeState.STAY && !stayTimer.hasTimePassed(displayTime))
                                  RenderUtils.newDrawRect(kek, -y, kek + toolong, -1.5F - y, when(type) {
                                      Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                      Type.ERROR -> Color(255, 80, 80, 255).rgb
                                      Type.INFO -> Color(127,174,210).rgb
                                      Type.WARNING -> Color(255, 255, 0).rgb
                                  })
                              else if (fadeState == FadeState.IN)
                                  RenderUtils.newDrawRect(kek, -y, kek + dist, -1.5F - y, when(type) {
                                      Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                      Type.ERROR -> Color(255, 80, 80, 255).rgb
                                      Type.INFO -> Color(127,174,210).rgb
                                      Type.WARNING -> Color(255, 255, 0).rgb
                                  })
              
                              Stencil.dispose()
              
                              GL11.glPushMatrix()
                              GlStateManager.disableAlpha()
                              GlStateManager.resetColor()
                              GL11.glColor4f(1F, 1F, 1F, 1F)
                              RenderUtils.drawImage2(when (type) {
                                  Type.SUCCESS -> imgSuccess
                                  Type.ERROR -> imgError
                                  Type.WARNING -> imgWarning
                                  Type.INFO -> imgInfo
                              }, kek +2, -24F - y, 18, 18)
                              GlStateManager.enableAlpha()
                              GL11.glPopMatrix()
              
                              Fonts.minecraftFont.drawStringWithShadow(message, -x + 2, -18F - y, -1)
                          }
              
                          "intellij idea lol" -> {
                              val dist = (x + 1 + 26F) - (x - 8 - textLength)
                              val kek = -x - 1 - 20F
              
                              GlStateManager.resetColor()
                              if (blur) {
                                  GL11.glTranslatef(-originalX, -originalY, 0F)
                                  GL11.glPushMatrix()
                                  BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                  GL11.glPopMatrix()
                                  GL11.glTranslatef(originalX, originalY, 0F)
                              }
              
                              Stencil.write(true)
              
                              if (type == Type.ERROR) {
                                  RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(115,69,75).rgb)
                                  RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(89,61,65).rgb)
                                  Fonts.minecraftFont.drawStringWithShadow("IDE Error:", -x - 4, -25F - y, Color(249,130,108).rgb)
                              }
                              if (type == Type.INFO) {
                                  RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(70,94,115).rgb)
                                  RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(61,72,87).rgb)
                                  Fonts.minecraftFont.drawStringWithShadow("IDE Information:", -x - 4, -25F - y, Color(119,145,147).rgb)
                              }
                              if (type == Type.SUCCESS) {
                                  RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(67,104,67).rgb)
                                  RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(55,78,55).rgb)
                                  Fonts.minecraftFont.drawStringWithShadow("IDE Success:", -x - 4, -25F - y, Color(10,142,2).rgb)
                              }
                              if (type == Type.WARNING) {
                                  RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(103,103,63).rgb)
                                  RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(80,80,57).rgb)
                                  Fonts.minecraftFont.drawStringWithShadow("IDE Warning:", -x - 4, -25F - y, Color(175,163,0).rgb)
                              }
              
                              Stencil.erase(true)
              
                              GlStateManager.resetColor()
              
                              Stencil.dispose()
              
                              GL11.glPushMatrix()
                              GlStateManager.disableAlpha()
                              GlStateManager.resetColor()
                              GL11.glColor4f(1F, 1F, 1F, 1F)
                              RenderUtils.drawImage2(when (type) {
                                  Type.SUCCESS -> imgSuccess
                                  Type.ERROR -> imgError
                                  Type.WARNING -> imgWarning
                                  Type.INFO -> imgInfo
                              }, kek + 5, -25F - y, 7, 7)
                              GlStateManager.enableAlpha()
                              GL11.glPopMatrix()
              
                              Fonts.minecraftFont.drawStringWithShadow(message, -x - 4, -13F - y, -1)
                          }
                      }
              
                      when (fadeState) {
                          FadeState.IN -> {
                              if (x < width) {
                                  if (newAnim) 
                                      x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(width, x, animSpeed * 0.025F * delta)
                                  else 
                                      x = AnimationUtils.easeOut(fadeStep, width) * width
                                  fadeStep += delta / 4F
                              }
                              if (x >= width) {
                                  fadeState = FadeState.STAY
                                  x = width
                                  fadeStep = width
                              }
              
                              stay = 60F
                              stayTimer.reset()
                          }
              
                          FadeState.STAY -> {
                              if (stay > 0) {
                                  stay = 0F
                                  stayTimer.reset()
                              }
                              if (stayTimer.hasTimePassed(displayTime))
                                  fadeState = FadeState.OUT
                          }
              
                          FadeState.OUT -> if (x > 0) {
                              if (newAnim) 
                                  x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(-width, x, animSpeed * 0.025F * delta)
                              else 
                                  x = AnimationUtils.easeOut(fadeStep, width) * width
              
                              fadeStep -= delta / 4F
                          } else
                              fadeState = FadeState.END
              
                          FadeState.END -> hud.removeNotification(this)
                      }        
                  }
              }
              
              

              icon and ending photo!
              58CEA7EF-A755-4D52-9115-48F5C0E45083.png 55D78E4E-2882-4605-9869-8EC44C3B25AD.png 230046AE-FDC0-43BB-B75A-D00AA7872B8F.png 4B50C6C2-7A01-449F-9D0B-7405554E7E10.png 7E15207E-EDCD-438B-A8FA-643925E7C81D.png

              Konoha ScarletK Offline
              Konoha ScarletK Offline
              Konoha Scarlet
              wrote on last edited by
              #6

              @larissa Nice work

              1 Reply Last reply
              1
              • LarissaL Larissa

                this is a notification like idea.i will give you icons and codes.

                
                import net.ccbluex.liquidbounce.LiquidBounce
                import net.ccbluex.liquidbounce.utils.timer.MSTimer
                import net.ccbluex.liquidbounce.LiquidBounce.hud
                import net.ccbluex.liquidbounce.value.BoolValue
                import net.ccbluex.liquidbounce.value.FloatValue
                import net.ccbluex.liquidbounce.value.ListValue
                import net.ccbluex.liquidbounce.value.IntegerValue
                import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner
                import net.ccbluex.liquidbounce.ui.client.hud.element.Border
                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.utils.render.AnimationUtils
                import net.ccbluex.liquidbounce.utils.render.BlurUtils
                import net.ccbluex.liquidbounce.utils.render.Stencil
                import net.minecraft.client.gui.Gui
                import net.minecraft.client.renderer.GlStateManager
                import net.ccbluex.liquidbounce.ui.font.Fonts
                import net.ccbluex.liquidbounce.utils.ClientUtils
                import net.ccbluex.liquidbounce.utils.render.RenderUtils
                import net.minecraft.util.ResourceLocation
                import java.awt.Color
                
                import org.lwjgl.opengl.GL11
                
                @ElementInfo(name = "Notifications", single = true)
                class Notifications(x: Double = 0.0, y: Double = 30.0, scale: Float = 1F,
                                    side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
                
                    private val smoothYTransition = BoolValue("Smooth-YTransition", true)
                    private val blurValue = BoolValue("Blur", false)
                    private val blurStrength = FloatValue("Blur-Strength", 0F, 0F, 30F)
                    private val styleValue = ListValue("Style", arrayOf("Compact", "New", "IntelliJ IDEA LOL"), "Compact")
                    private val newAnimValue = BoolValue("UseNewAnim", true)
                    private val animationSpeed = FloatValue("Anim-Speed", 0.5F, 0.01F, 1F, { newAnimValue.get() })
                    private val bgRedValue = IntegerValue("Background-Red", 0, 0, 255)
                    private val bgGreenValue = IntegerValue("Background-Red", 0, 0, 255)
                    private val bgBlueValue = IntegerValue("Background-Red", 0, 0, 255)
                    private val bgAlphaValue = IntegerValue("Background-Alpha", 190, 0, 255)
                
                    /**
                     * Example notification for CustomHUD designer
                     */
                    private val exampleNotification = Notification("Example Notification", Notification.Type.INFO)
                
                    /**
                     * Draw element
                     */
                    override fun drawElement(): Border? {
                        val bgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get())
                        var animationY = 30F
                        val notifications = mutableListOf()
                
                        for (i in hud.notifications)
                            notifications.add(i)
                        
                        if (mc.currentScreen !is GuiHudDesigner || !notifications.isEmpty()) 
                            for(i in notifications)
                                i.drawNotification(
                                animationY, 
                                smoothYTransition.get(), 
                                newAnimValue.get(), 
                                animationSpeed.get(), 
                                bgColor, side, 
                                styleValue.get(), 
                                blurValue.get(), 
                                blurStrength.get(), 
                                renderX.toFloat(), 
                                renderY.toFloat())
                                    .also { animationY += when (styleValue.get().toLowerCase()) {
                                        "compact" -> 20
                                        "full" -> 30
                                        else -> 30
                                    } * if (side.vertical == Side.Vertical.DOWN) 1F else -1F}
                        else
                            exampleNotification.drawNotification(
                                animationY, 
                                smoothYTransition.get(), 
                                newAnimValue.get(), 
                                animationSpeed.get(), 
                                bgColor, side, 
                                styleValue.get(), 
                                blurValue.get(), 
                                blurStrength.get(), 
                                renderX.toFloat(), 
                                renderY.toFloat())
                
                        if (mc.currentScreen is GuiHudDesigner) {
                            exampleNotification.fadeState = Notification.FadeState.STAY
                            //exampleNotification.stayTimer.reset()
                            exampleNotification.x = exampleNotification.textLength + 8F
                            if (exampleNotification.stayTimer.hasTimePassed(exampleNotification.displayTime)) 
                                exampleNotification.stayTimer.reset()
                
                            return if (styleValue.get().equals("compact", true)) Border(-102F, -48F, 0F, -30F) else Border(-130F, -58F, 0F, -30F)
                        }
                
                        return null
                    }
                
                }
                class Notification(message : String, type : Type, displayLength: Long) {
                    private val notifyDir = "liquidbounce+/notif/"
                    private val imgSuccess = ResourceLocation("${notifyDir}checkmark.png")
                    private val imgError = ResourceLocation("${notifyDir}error.png")
                    private val imgWarning = ResourceLocation("${notifyDir}warning.png")
                    private val imgInfo = ResourceLocation("${notifyDir}info.png")
                
                    var x = 0f
                    var textLength = 0
                    private var stay = 0f
                    private var fadeStep = 0f
                    var fadeState = FadeState.IN
                    var displayTime : Long = 0L
                    var stayTimer = MSTimer()
                    private var firstY = 0f
                    private var message: String = ""
                    private var type: Type
                    init {
                        this.message = message
                        this.type = type
                        this.displayTime = displayLength
                        this.firstY = 19190F
                        this.stayTimer.reset()
                        this.textLength = Fonts.minecraftFont.getStringWidth(message)
                    }
                
                    constructor(message: String, type: Type) : this(message, type, 2000L)
                
                    constructor(message: String) : this(message, Type.INFO, 500L)
                
                    constructor(message: String, displayLength: Long) : this(message, Type.INFO, displayLength)
                
                    enum class Type {
                        SUCCESS,
                        INFO,
                        WARNING,
                        ERROR
                    }
                
                    enum class FadeState {
                        IN,STAY,OUT,END
                    }
                
                    fun drawNotification(animationY: Float, smooth: Boolean, newAnim: Boolean, animSpeed: Float, backgroundColor: Color, side: Side, style: String, blur: Boolean, strength: Float, originalX: Float, originalY: Float) {
                        val delta = RenderUtils.deltaTime
                        val width = textLength.toFloat() + 8.0f
                        
                        if (smooth) {
                            if (firstY == 19190.0F) {
                                firstY = animationY
                            }
                            firstY += (animationY - firstY) * 0.25F
                        } else {
                            firstY = animationY
                        }
                
                        var y = firstY
                
                        when (style.toLowerCase()) {
                            "compact" -> {
                                GlStateManager.resetColor()
                                if (blur) {
                                    GL11.glTranslatef(-originalX, -originalY, 0F)
                                    GL11.glPushMatrix()
                                    BlurUtils.blurAreaRounded(originalX + -x - 5F, originalY + -18F - y, originalX + -x + 8F + textLength, originalY + -y, 3F, strength)
                                    GL11.glPopMatrix()
                                    GL11.glTranslatef(originalX, originalY, 0F)
                                } 
                
                                RenderUtils.customRounded(-x + 8F + textLength, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, backgroundColor.rgb)
                                RenderUtils.customRounded(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, when(type) {
                                        Type.SUCCESS -> Color(80, 255, 80).rgb
                                        Type.ERROR -> Color(255, 80, 80).rgb
                                        Type.INFO -> Color(255, 255, 255).rgb
                                        Type.WARNING -> Color(255, 255, 0).rgb
                                    })  
                
                                GlStateManager.resetColor()
                                Fonts.minecraftFont.drawStringWithShadow(message, -x + 3, -13F - y, -1)
                            }
                
                            "new" -> {
                                val dist = (x + 1 + 26F) - (x - 8 - textLength)
                                val kek = -x - 1 - 20F
                
                                val toolong = dist * if (stayTimer.hasTimePassed(displayTime)) 0F else ((displayTime - (System.currentTimeMillis() - stayTimer.time)).toFloat() / displayTime.toFloat())
                
                                GlStateManager.resetColor()
                                if (blur) {
                                    GL11.glTranslatef(-originalX, -originalY, 0F)
                                    GL11.glPushMatrix()
                                    BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                    GL11.glPopMatrix()
                                    GL11.glTranslatef(originalX, originalY, 0F)
                                } 
                
                                Stencil.write(true)
                                RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, backgroundColor.rgb)
                                Stencil.erase(true)
                
                                GlStateManager.resetColor()
                                if (fadeState == FadeState.STAY && !stayTimer.hasTimePassed(displayTime))
                                    RenderUtils.newDrawRect(kek, -y, kek + toolong, -1.5F - y, when(type) {
                                        Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                        Type.ERROR -> Color(255, 80, 80, 255).rgb
                                        Type.INFO -> Color(127,174,210).rgb
                                        Type.WARNING -> Color(255, 255, 0).rgb
                                    })
                                else if (fadeState == FadeState.IN)
                                    RenderUtils.newDrawRect(kek, -y, kek + dist, -1.5F - y, when(type) {
                                        Type.SUCCESS -> Color(80, 255, 80, 255).rgb
                                        Type.ERROR -> Color(255, 80, 80, 255).rgb
                                        Type.INFO -> Color(127,174,210).rgb
                                        Type.WARNING -> Color(255, 255, 0).rgb
                                    })
                
                                Stencil.dispose()
                
                                GL11.glPushMatrix()
                                GlStateManager.disableAlpha()
                                GlStateManager.resetColor()
                                GL11.glColor4f(1F, 1F, 1F, 1F)
                                RenderUtils.drawImage2(when (type) {
                                    Type.SUCCESS -> imgSuccess
                                    Type.ERROR -> imgError
                                    Type.WARNING -> imgWarning
                                    Type.INFO -> imgInfo
                                }, kek +2, -24F - y, 18, 18)
                                GlStateManager.enableAlpha()
                                GL11.glPopMatrix()
                
                                Fonts.minecraftFont.drawStringWithShadow(message, -x + 2, -18F - y, -1)
                            }
                
                            "intellij idea lol" -> {
                                val dist = (x + 1 + 26F) - (x - 8 - textLength)
                                val kek = -x - 1 - 20F
                
                                GlStateManager.resetColor()
                                if (blur) {
                                    GL11.glTranslatef(-originalX, -originalY, 0F)
                                    GL11.glPushMatrix()
                                    BlurUtils.blurAreaRounded(originalX + kek, originalY + -28F - y, originalX + -x + 8 + textLength, originalY + -y, 3F, strength)
                                    GL11.glPopMatrix()
                                    GL11.glTranslatef(originalX, originalY, 0F)
                                }
                
                                Stencil.write(true)
                
                                if (type == Type.ERROR) {
                                    RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(115,69,75).rgb)
                                    RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(89,61,65).rgb)
                                    Fonts.minecraftFont.drawStringWithShadow("IDE Error:", -x - 4, -25F - y, Color(249,130,108).rgb)
                                }
                                if (type == Type.INFO) {
                                    RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(70,94,115).rgb)
                                    RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(61,72,87).rgb)
                                    Fonts.minecraftFont.drawStringWithShadow("IDE Information:", -x - 4, -25F - y, Color(119,145,147).rgb)
                                }
                                if (type == Type.SUCCESS) {
                                    RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(67,104,67).rgb)
                                    RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(55,78,55).rgb)
                                    Fonts.minecraftFont.drawStringWithShadow("IDE Success:", -x - 4, -25F - y, Color(10,142,2).rgb)
                                }
                                if (type == Type.WARNING) {
                                    RenderUtils.drawRoundedRect(-x + 9 + textLength, -y + 1, kek - 1, -28F - y - 1, 0F, Color(103,103,63).rgb)
                                    RenderUtils.drawRoundedRect(-x + 8 + textLength, -y, kek, -28F - y, 0F, Color(80,80,57).rgb)
                                    Fonts.minecraftFont.drawStringWithShadow("IDE Warning:", -x - 4, -25F - y, Color(175,163,0).rgb)
                                }
                
                                Stencil.erase(true)
                
                                GlStateManager.resetColor()
                
                                Stencil.dispose()
                
                                GL11.glPushMatrix()
                                GlStateManager.disableAlpha()
                                GlStateManager.resetColor()
                                GL11.glColor4f(1F, 1F, 1F, 1F)
                                RenderUtils.drawImage2(when (type) {
                                    Type.SUCCESS -> imgSuccess
                                    Type.ERROR -> imgError
                                    Type.WARNING -> imgWarning
                                    Type.INFO -> imgInfo
                                }, kek + 5, -25F - y, 7, 7)
                                GlStateManager.enableAlpha()
                                GL11.glPopMatrix()
                
                                Fonts.minecraftFont.drawStringWithShadow(message, -x - 4, -13F - y, -1)
                            }
                        }
                
                        when (fadeState) {
                            FadeState.IN -> {
                                if (x < width) {
                                    if (newAnim) 
                                        x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(width, x, animSpeed * 0.025F * delta)
                                    else 
                                        x = AnimationUtils.easeOut(fadeStep, width) * width
                                    fadeStep += delta / 4F
                                }
                                if (x >= width) {
                                    fadeState = FadeState.STAY
                                    x = width
                                    fadeStep = width
                                }
                
                                stay = 60F
                                stayTimer.reset()
                            }
                
                            FadeState.STAY -> {
                                if (stay > 0) {
                                    stay = 0F
                                    stayTimer.reset()
                                }
                                if (stayTimer.hasTimePassed(displayTime))
                                    fadeState = FadeState.OUT
                            }
                
                            FadeState.OUT -> if (x > 0) {
                                if (newAnim) 
                                    x = net.ccbluex.liquidbounce.utils.AnimationUtils.animate(-width, x, animSpeed * 0.025F * delta)
                                else 
                                    x = AnimationUtils.easeOut(fadeStep, width) * width
                
                                fadeStep -= delta / 4F
                            } else
                                fadeState = FadeState.END
                
                            FadeState.END -> hud.removeNotification(this)
                        }        
                    }
                }
                
                

                icon and ending photo!
                58CEA7EF-A755-4D52-9115-48F5C0E45083.png 55D78E4E-2882-4605-9869-8EC44C3B25AD.png 230046AE-FDC0-43BB-B75A-D00AA7872B8F.png 4B50C6C2-7A01-449F-9D0B-7405554E7E10.png 7E15207E-EDCD-438B-A8FA-643925E7C81D.png

                RyannnnnR Offline
                RyannnnnR Offline
                Ryannnnn
                wrote on last edited by
                #7

                @larissa code by ryannnnn😎😎

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                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