<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[A Notifications like Tenacity Client]]></title><description><![CDATA[<p dir="auto">first，you should add this into the Easeutils</p>
<pre><code>
@JvmStatic
    fun easeInExpo(x: Double): Double {
        return if(x == 0.0){0.0}else{2.0.pow(10 * x - 10)}
    }

    @JvmStatic
    fun easeOutExpo(x: Double): Double {
        return if(x == 1.0){1.0}else{1 - 2.0.pow(-10 * x)}
    }

</code></pre>
<p dir="auto">and this is the code in the elements files</p>
<pre><code>
package net.ccbluex.liquidbounce.ui.client.hud.element.elements

import com.sun.tracing.dtrace.ModuleName
import net.ccbluex.liquidbounce.LiquidBounce
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.RenderUtils
import net.minecraft.util.ResourceLocation
import org.lwjgl.opengl.GL11
import java.awt.Color

@ElementInfo(name = "Notifications")
class Notifications(x: Double = 6.0, y: Double = 60.0, scale: Float = 1F,
                    side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) {

    override fun drawElement(): Border? {

        LiquidBounce.hud.notifications.map { it }.forEachIndexed { index, notify -&gt;
            GL11.glPushMatrix()
            if(notify.drawNotification(index)){
                LiquidBounce.hud.notifications.remove(notify)
            }
            GL11.glPopMatrix()
        }
        if (mc.currentScreen is GuiHudDesigner) {
        }
        return null
    }
}

class Notification(val title: String, val content: String, val type: NotifyType, val time: Int=1500, val animeTime: Int=500) {
    val width=100.coerceAtLeast(Fonts.fontRegular38.getStringWidth(this.title)
            .coerceAtLeast(Fonts.fontRegular38.getStringWidth(this.content)) + 20)
    val height=27
    var fadeState = FadeState.IN
    var nowY=-height
    var animeXTime=System.currentTimeMillis()
    var animeYTime=System.currentTimeMillis()
    val error = ResourceLocation("liquidbounce/notification/disable.png")
    val successful = ResourceLocation("liquidbounce/notification/enable.png")

    fun drawNotification(index: Int):Boolean {
        val realY=(-(index)*height*1.25).toInt()
        val nowTime=System.currentTimeMillis()

        if(nowY!=realY){
            var pct=(nowTime-animeYTime)/animeTime.toDouble()
            if(pct&gt;1){
                nowY=realY
                pct=1.0
            }else{
                pct=EaseUtils.easeOutExpo(pct)
            }
            GL11.glTranslated(0.0,(realY-nowY)*pct,0.0)
        }else{
            animeYTime=nowTime
        }
        GL11.glTranslated(0.0,nowY.toDouble(),0.0)

        var larissa=(nowTime-animeXTime)/animeTime.toDouble()
        when(fadeState){
            FadeState.IN -&gt; {
                if(larissa&gt;1){
                    fadeState=FadeState.STAY
                    animeXTime=nowTime
                    larissa=1.0
                }
                larissa=EaseUtils.easeOutExpo(larissa)
            }
            FadeState.STAY -&gt; {
                larissa=1.0
                if((nowTime-animeXTime)&gt;time){
                    fadeState=FadeState.OUT
                    animeXTime=nowTime
                }
            }
            FadeState.OUT -&gt; {
                if(larissa&gt;1){
                    fadeState=FadeState.END
                    animeXTime=nowTime
                    larissa=1.0
                }
                larissa=1-EaseUtils.easeInExpo(larissa)
            }
            FadeState.END -&gt; {
                return true
            }
        }
        GL11.glTranslated(width-(width*larissa),0.0,0.0)
        GL11.glTranslatef(-width.toFloat(),0F,0F)

        if(type.renderColor == Color(0xFF2F2F)){
            RenderUtils.drawCircleRect(-18F,0F,width.toFloat(),height.toFloat(),6f,Color(180,0,0,190).rgb,true)
            RenderUtils.drawImage(error,-13,5,18,18)
            Fonts.fontBold35.drawString(title,9F,17F,Color(255,255,255,255).rgb)
            Fonts.fontBold40.drawString(content,9F,6F,Color(255,255,255,255).rgb)
        }else if(type.renderColor == Color(0x60E092)){
            RenderUtils.drawCircleRect(-16F,0F,width.toFloat(),height.toFloat(),6f,Color(0,180,0,190).rgb,true)
            RenderUtils.drawImage(successful,-13,5,18,18)
            Fonts.fontBold35.drawString(title,9F,17F,Color(255,255,255,255).rgb)
            Fonts.fontBold40.drawString(content,9F,6F,Color(255,255,255,255).rgb)
        }
        return false
    }
}
enum class NotifyType(var renderColor: Color) {
    SUCCESS(Color(0x60E092)),
    ERROR(Color(0xFF2F2F)),

}

enum class FadeState { IN, STAY, OUT, END }

</code></pre>
<p dir="auto">but it is not good to copy into the liquidbounceplus<br />
the assets and photos:<br />
<img src="/assets/uploads/files/1660813820391-d6ef1710-3de8-476f-a7d6-756d08666f11.png" alt="D6EF1710-3DE8-476F-A7D6-756D08666F11.png" class=" img-fluid img-markdown" /> <img src="/assets/uploads/files/1660813837603-cbede78f-b6b4-40f4-b3e0-83827ab90c96.jpeg" alt="CBEDE78F-B6B4-40F4-B3E0-83827AB90C96.jpeg" class=" img-fluid img-markdown" /> <img src="/assets/uploads/files/1660813831436-927189e0-06dd-4b2f-8902-fab82c4da1b9.png" alt="927189E0-06DD-4B2F-8902-FAB82C4DA1B9.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.liquidbounce.net/topic/4353/a-notifications-like-tenacity-client</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 10:13:44 GMT</lastBuildDate><atom:link href="https://forum.liquidbounce.net/topic/4353.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Aug 2022 09:10:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to A Notifications like Tenacity Client on Sun, 16 Jun 2024 02:01:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/larissa" aria-label="Profile: Larissa">@<bdi>Larissa</bdi></a> Why does IDEA show that there is no Notifications class?</p>
]]></description><link>https://forum.liquidbounce.net/post/39436</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/39436</guid><dc:creator><![CDATA[keke_mc]]></dc:creator><pubDate>Sun, 16 Jun 2024 02:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to A Notifications like Tenacity Client on Mon, 22 Aug 2022 04:23:08 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/plumer-man" aria-label="Profile: plumer-man">@<bdi>plumer-man</bdi></a> ok</p>
]]></description><link>https://forum.liquidbounce.net/post/32973</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/32973</guid><dc:creator><![CDATA[kumri owo]]></dc:creator><pubDate>Mon, 22 Aug 2022 04:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to A Notifications like Tenacity Client on Sun, 21 Aug 2022 14:51:35 GMT]]></title><description><![CDATA[<p dir="auto">you have to edit source yes.</p>
]]></description><link>https://forum.liquidbounce.net/post/32943</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/32943</guid><dc:creator><![CDATA[Plumer Man]]></dc:creator><pubDate>Sun, 21 Aug 2022 14:51:35 GMT</pubDate></item><item><title><![CDATA[Reply to A Notifications like Tenacity Client on Sat, 20 Aug 2022 00:39:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/larissa" aria-label="Profile: larissa">@<bdi>larissa</bdi></a> also how do you even install these? Do I have to edit the main code or smth</p>
]]></description><link>https://forum.liquidbounce.net/post/32873</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/32873</guid><dc:creator><![CDATA[kumri owo]]></dc:creator><pubDate>Sat, 20 Aug 2022 00:39:46 GMT</pubDate></item></channel></rss>