CCBlueX Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    [Source Share] Fake New Novoline Notification In Custom LiquidBounce

    Scripts
    11
    13
    1064
    Loading More Posts
    • 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.
    • Gking
      Gking last edited by

      As the title

      /**
       * SpaceKing OpenSource Free Share
       */
      package net.ccbluex.liquidbounce.ui.client.hud.element.elements
      
      import net.ccbluex.liquidbounce.LiquidBounce
      import net.ccbluex.liquidbounce.features.module.modules.render.HUD
      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.ui.font.Fonts
      import net.ccbluex.liquidbounce.utils.render.EaseUtils
      import net.ccbluex.liquidbounce.utils.render.GLUtils
      import net.ccbluex.liquidbounce.utils.render.RenderUtils
      import net.minecraft.client.renderer.GlStateManager
      import org.lwjgl.opengl.GL11
      import java.awt.Color
      import java.math.BigDecimal
      import kotlin.math.pow
      
      /**
       * CustomHUD Notification element
       */
      @ElementInfo(name = "Notifications", single = true)
      class Notifications(x: Double = 0.0, y: Double = 0.0, scale: Float = 1F,
                          side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {
          /**
           * Example notification for CustomHUD designer
           */
          private val exampleNotification = Notification("Notification", "This is an example notification.", NotifyType.INFO)
      
          /**
           * Draw element
           */
          override fun drawElement(partialTicks: Float): Border? {
              val notifications = mutableListOf<Notification>()
              //FUCK YOU java.util.ConcurrentModificationException
              for ((index, notify) in LiquidBounce.hud.notifications.withIndex()) {
                  GL11.glPushMatrix()
      
                  if (notify.drawNotification(index)) {
                      notifications.add(notify)
                  }
      
                  GL11.glPopMatrix()
              }
              for (notify in notifications) {
                  LiquidBounce.hud.notifications.remove(notify)
              }
      
              if (mc.currentScreen is GuiHudDesigner) {
                  if (!LiquidBounce.hud.notifications.contains(exampleNotification))
                      LiquidBounce.hud.addNotification(exampleNotification)
      
                  exampleNotification.fadeState = FadeState.STAY
                  exampleNotification.displayTime = System.currentTimeMillis()
      //            exampleNotification.x = exampleNotification.textLength + 8F
      
                  return Border(-exampleNotification.width.toFloat() + 80, -exampleNotification.height.toFloat()-24.5f, 80F, -24.5F)
              }
      
              return null
          }
      
      }
      
      class Notification(val title: String, val content: String, val type: NotifyType, val time: Int = 2000, val animeTime: Int = 500) {
          val height = 30
          var fadeState = FadeState.IN
          var nowY = -height
          var string = ""
          var displayTime = System.currentTimeMillis()
          var animeXTime = System.currentTimeMillis()
          var animeYTime = System.currentTimeMillis()
          val width = Fonts.font32.getStringWidth(content) + 53
      
          fun drawCircle(x: Float, y: Float, radius: Float, start: Int, end: Int) {
              GlStateManager.enableBlend()
              GlStateManager.disableTexture2D()
              GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO)
              GL11.glEnable(GL11.GL_LINE_SMOOTH)
              GL11.glLineWidth(2f)
              GL11.glBegin(GL11.GL_LINE_STRIP)
              var i = end.toFloat()
              while (i >= start) {
                  var c = RenderUtils.getGradientOffset(Color(HUD.r.get(),HUD.g.get(),HUD.b.get()), Color(HUD.r2.get(),HUD.g2.get(),HUD.b2.get(), 1), (Math.abs(System.currentTimeMillis() / 360.0 + (i* 34 / 360) * 56 / 100) / 10)).rgb
                  val f2 = (c shr 24 and 255).toFloat() / 255.0f
                  val f22 = (c shr 16 and 255).toFloat() / 255.0f
                  val f3 = (c shr 8 and 255).toFloat() / 255.0f
                  val f4 = (c and 255).toFloat() / 255.0f
                  GlStateManager.color(f22, f3, f4, f2)
                  GL11.glVertex2f(
                      (x + Math.cos(i * Math.PI / 180) * (radius * 1.001f)).toFloat(),
                      (y + Math.sin(i * Math.PI / 180) * (radius * 1.001f)).toFloat()
                  )
                  i -= 360f / 90.0f
              }
              GL11.glEnd()
              GL11.glDisable(GL11.GL_LINE_SMOOTH)
              GlStateManager.enableTexture2D()
              GlStateManager.disableBlend()
          }
          /**
           * Draw notification
           */
          /**
           * SpaceKing OpenSource Free Share
           */
          fun drawNotification(index: Int): Boolean {
              val realY = -(index + 1) * (height + 10)
              val nowTime = System.currentTimeMillis()
              //Y-Axis Animation
              if (nowY != realY) {
                  var pct = (nowTime - animeYTime) / animeTime.toDouble()
                  if (pct > 1) {
                      nowY = realY
                      pct = 1.0
                  } else {
                      pct = easeOutBack(pct)
                  }
                  GL11.glTranslated(0.0, (realY - nowY) * pct, 0.0)
              } else {
                  animeYTime = nowTime
              }
              GL11.glTranslated(0.0, nowY.toDouble(), 0.0)
      
              //X-Axis Animation
              var pct = (nowTime - animeXTime) / animeTime.toDouble()
              when (fadeState) {
                  FadeState.IN -> {
                      if (pct > 1) {
                          fadeState = FadeState.STAY
                          animeXTime = nowTime
                          pct = 1.0
                      }
                      pct = easeOutBack(pct)
                  }
      
                  FadeState.STAY -> {
                      pct = 1.0
                      if ((nowTime - animeXTime) > time) {
                          fadeState = FadeState.OUT
                          animeXTime = nowTime
                      }
                  }
      
                  FadeState.OUT -> {
                      if (pct > 1) {
                          fadeState = FadeState.END
                          animeXTime = nowTime
                          pct = 1.0
                      }
                      pct = 1 - easeInBack(pct)
                  }
      
                  FadeState.END -> {
                      return true
                  }
              }
              if (type.toString() == "SUCCESS") {
                  string = "a"
              }
              if (type.toString() == "ERROR") {
                  string = "B"
              }
              if (type.toString() == "WARNING") {
                  string = "D"
              }
              if (type.toString() == "INFO") {
                  string = "C"
              }
              GL11.glScaled(pct,pct,pct)
              GL11.glTranslatef(-width.toFloat()/2 , -height.toFloat()/2, 0F)
              RenderUtils.drawRect(0F, 0F, width.toFloat(), height.toFloat(), Color(63, 63, 63, 140))
              drawGradientSideways(0.0, height - 1.7,
                  (width * ((nowTime - displayTime) / (animeTime * 2F + time))).toDouble(), height.toDouble(), Color(HUD.r.get(),HUD.g.get(),HUD.b.get()).rgb, Color(HUD.r2.get(),HUD.g2.get(),HUD.b2.get()).rgb)
              Fonts.font37.drawStringWithShadow("$title", 24.5F, 7F, Color.WHITE.rgb)
              Fonts.font32.drawStringWithShadow("$content" + " (" + BigDecimal(((time - time * ((nowTime - displayTime) / (animeTime * 2F + time))) / 1000).toDouble()).setScale(1, BigDecimal.ROUND_HALF_UP).toString() + "s)", 24.5F, 17.3F, Color.WHITE.rgb)
              drawFilledCircle(13, 15, 8.5F,Color.BLACK)
              Fonts.Nicon80.drawString(string, 3, 8, Color.WHITE.rgb)
              drawCircle(12.9f,15.0f,8.8f, 0,360)
              GlStateManager.resetColor()
      
      
              return false
          }
      
          fun drawGradientSideways(left: Double, top: Double, right: Double, bottom: Double, col1: Int, col2: Int) {
              val f = (col1 shr 24 and 0xFF) / 255.0f
              val f1 = (col1 shr 16 and 0xFF) / 255.0f
              val f2 = (col1 shr 8 and 0xFF) / 255.0f
              val f3 = (col1 and 0xFF) / 255.0f
              val f4 = (col2 shr 24 and 0xFF) / 255.0f
              val f5 = (col2 shr 16 and 0xFF) / 255.0f
              val f6 = (col2 shr 8 and 0xFF) / 255.0f
              val f7 = (col2 and 0xFF) / 255.0f
              GL11.glEnable(3042)
              GL11.glDisable(3553)
              GL11.glBlendFunc(770, 771)
              GL11.glEnable(2848)
              GL11.glShadeModel(7425)
              GL11.glPushMatrix()
              GL11.glBegin(7)
              GL11.glColor4f(f1, f2, f3, f)
              GL11.glVertex2d(left, top)
              GL11.glVertex2d(left, bottom)
              GL11.glColor4f(f5, f6, f7, f4)
              GL11.glVertex2d(right, bottom)
              GL11.glVertex2d(right, top)
              GL11.glEnd()
              GL11.glPopMatrix()
              GL11.glEnable(3553)
              GL11.glDisable(3042)
              GL11.glDisable(2848)
              GL11.glShadeModel(7424)
          }
      
          fun drawFilledCircle(xx: Int, yy: Int, radius: Float, color: Color) {
              val sections = 50
              val dAngle = 2 * Math.PI / sections
              var x: Float
              var y: Float
              GL11.glPushAttrib(GL11.GL_ENABLE_BIT)
              GLUtils.glEnable(GL11.GL_BLEND)
              GLUtils.glDisable(GL11.GL_TEXTURE_2D)
              GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA)
              GLUtils.glEnable(GL11.GL_LINE_SMOOTH)
              GL11.glBegin(GL11.GL_TRIANGLE_FAN)
              for (i in 0 until sections) {
                  x = (radius * Math.sin(i * dAngle)).toFloat()
                  y = (radius * Math.cos(i * dAngle)).toFloat()
                  GL11.glColor4f(color.red / 255f, color.green / 255f, color.blue / 255f, color.alpha / 255f)
                  GL11.glVertex2f(xx + x, yy + y)
              }
              GlStateManager.color(0f, 0f, 0f)
              GL11.glEnd()
              GL11.glPopAttrib()
          }
      
          fun easeInBack(x: Double): Double {
              val c1 = 1.70158
              val c3 = c1 + 1
      
              return c3 * x * x * x - c1 * x * x
          }
      
          fun easeOutBack(x: Double): Double {
              val c1 = 1.70158
              val c3 = c1 + 1
      
              return 1 + c3 * (x - 1).pow(3) + c1 * (x - 1).pow(2)
          }
      }
      
      enum class NotifyType() {
          SUCCESS(),
          ERROR(),
          WARNING(),
          INFO();
      }
      
      
      enum class FadeState { IN, STAY, OUT, END }
      /**
       * SpaceKing OpenSource Free Share
       */
      
      
      

      Don't resell it plz,and this is the effect of it
      Y@XU@{FJADL(NONWBQO41_X.png

      Larissa CookieChinese Plumer Man Ali00035 Minh Khang Gaming 5 Replies Last reply Reply Quote 2
      • Larissa
        Larissa @Gking last edited by

        @Gking nice codes!my dear!

        1 Reply Last reply Reply Quote 0
        • CookieChinese
          CookieChinese @Gking last edited by

          @Gking 呃,这里是js区,要投投java区

          Gking 1 Reply Last reply Reply Quote 0
          • Plumer Man
            Plumer Man @Gking last edited by

            @Gking pretty hot

            1 Reply Last reply Reply Quote 0
            • Ali00035
              Ali00035 Banned @Gking last edited by

              @Gking nice

              1 Reply Last reply Reply Quote 1
              • Gking
                Gking @CookieChinese last edited by

                @CookieChinese 呃,你跪下来给我磕头我就投java区

                kumri owo Y 2 Replies Last reply Reply Quote 0
                • kumri owo
                  kumri owo @Gking last edited by

                  @Gking sexy 😍

                  Ali00035 1 Reply Last reply Reply Quote 0
                  • Ali00035
                    Ali00035 Banned @kumri owo last edited by

                    @r-i-s-e indeed

                    1 Reply Last reply Reply Quote 0
                    • Y
                      ybyyby_ awa @Gking last edited by

                      @Gking 一针见血的(狗头保命)

                      T 1 Reply Last reply Reply Quote 0
                      • Mxmblee
                        Mxmblee last edited by

                        你用什么liquidbounce的

                        1 Reply Last reply Reply Quote 0
                        • Minh Khang Gaming
                          Minh Khang Gaming @Gking last edited by

                          @Gking How to use?

                          1 Reply Last reply Reply Quote 0
                          • K
                            Kirilenko last edited by

                            How to use?

                            1 Reply Last reply Reply Quote 0
                            • T
                              Td_maxmc_hax @ybyyby_ awa last edited by

                              @ybyyby_-awa 666

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              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