<?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 SelfInfo as Akrien Client]]></title><description><![CDATA[<p dir="auto"><strong>I'm using novoline's font system, you can use LiquidBounce instead, note that novoline's font size is twice as large as Liquidbounce's</strong></p>
<p dir="auto">Effect image：<img src="/assets/uploads/files/1669394942669-2022-11-24_22.53.11.png" alt="2022-11-24_22.53.11.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Code:</p>
<pre><code>@ElementInfo(name = "SelfInfo")
public class SelfInfo extends Element {
    //code by younkoo(littledye or 情染)
    public static IntegerValue rRed = new IntegerValue("Red", 0, 0, 255);
    public static IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255);
    public static IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255);

    //fix jitter
    public IntegerValue indx = new IntegerValue("noting",120,0,1000);
    public IntegerValue indy = new IntegerValue("noting2",80,0,1000);

    public static Color mainColor() {
        return new Color(rRed.get(), rGreen.get(), rBlue.get());
    }

    private double armorBarWidth;

    private double hurttimeBarWidth;

    private double bpsBarWidth;

    private double healthBarWidth;

    public int x2 = indx.get(), y3 = indy.get();

    TimerUtil timerHelper = new TimerUtil();

    ScaledResolution sr = new ScaledResolution(mc);
    final float scaledWidth = sr.getScaledWidth();
    final float scaledHeight = sr.getScaledHeight();

    //code by younkoo(littledye or 情染)
    //code by younkoo(littledye or 情染)
    //code by younkoo(littledye or 情染)

    @Override
    public Border drawElement(float partialTicks) {
        double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ;
        double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX;
        double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ);
        double currSpeed = lastDist * 15.3571428571D / 4;

        final float xX = scaledWidth / 2.0f -x2;
        final float yX = scaledHeight / 2.0f + y3;
        VisualBase.drawNewRect(xX + 4.5, yX  + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB());
        VisualBase.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB());
        VisualBase.drawNewRect(xX + 5, yX  + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB());
        VisualBase.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB());
        VisualBase.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB());
        VisualBase.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB());
        VisualBase.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB());
        VisualBase.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB());

        Fonts.SF.SF_14.SF_14.drawString("Indicators", xX + 37, yX + 202 - 406, -1);

        // armor
        final float armorValue = mc.thePlayer.getTotalArmorValue();
        double armorPercentage = armorValue / 20;
        armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0);

        final double armorWidth = 51 * armorPercentage;
        this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481);
        VisualUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB());

        Fonts.SF.SF_14.SF_14.drawString("Armor", xX + 8, yX + 211 - 406, -1);

        // HurtTime
        double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6);
        final double hurttimeWidth = 51.0 * hurttimePercentage;
        this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481);
        VisualUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB());

        Fonts.SF.SF_14.SF_14.drawString("HurtTime", xX + 8, yX + 220 - 406, -1);

        // HurtTime
        double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0);
        final double bpsBarWidth = 51.0 * bpsPercentage;
        this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481);

        VisualUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB());

        Fonts.SF.SF_14.SF_14.drawString("BPS", xX + 8, yX + 229 - 406, -1);

        // HurtTime
        final float health = mc.thePlayer.getHealth();
        double hpPercentage = health / mc.thePlayer.getMaxHealth();
        hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0);
        final double hpWidth = 51.0 * hpPercentage;
        final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f);

        if (timerHelper.hasReached(15L)) {
            this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481);
            timerHelper.reset();
        }

        VisualUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB());

        Fonts.SF.SF_14.SF_14.drawString("HP", xX + 8, yX + 238 - 406, -1);
        return new Border(98,-8,194,39);
    }

}
</code></pre>
<p dir="auto"><strong>DrawNewRect</strong></p>
<pre><code>public static void drawNewRect(double left, double top, double right, double bottom, int color) {
        if (left &lt; right) {
            double i = left;
            left = right;
            right = i;
        }
        if (top &lt; bottom) {
            double j = top;
            top = bottom;
            bottom = j;
        }
        float f3 = (float)(color &gt;&gt; 24 &amp; 0xFF) / 255.0f;
        float f = (float)(color &gt;&gt; 16 &amp; 0xFF) / 255.0f;
        float f1 = (float)(color &gt;&gt; 8 &amp; 0xFF) / 255.0f;
        float f2 = (float)(color &amp; 0xFF) / 255.0f;
        Tessellator tessellator = Tessellator.getInstance();
        WorldRenderer vertexbuffer = tessellator.getWorldRenderer();
        GlStateManager.enableBlend();
        GlStateManager.disableTexture2D();
        GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1);
        GlStateManager.color(f, f1, f2, f3);
        vertexbuffer.begin(7, DefaultVertexFormats.POSITION);
        vertexbuffer.pos(left, bottom, 0.0).endVertex();
        vertexbuffer.pos(right, bottom, 0.0).endVertex();
        vertexbuffer.pos(right, top, 0.0).endVertex();
        vertexbuffer.pos(left, top, 0.0).endVertex();
        tessellator.draw();
        GlStateManager.enableTexture2D();
        GlStateManager.disableBlend();
    }
</code></pre>
<p dir="auto"><strong>Animate</strong></p>
<pre><code>public static double animate(double target, double current, double speed) {
        boolean larger;
        boolean bl = larger = target &gt; current;
        if (speed &lt; 0.0) {
            speed = 0.0;
        } else if (speed &gt; 1.0) {
            speed = 1.0;
        }
        double dif = Math.max(target, current) - Math.min(target, current);
        double factor = dif * speed;
        if (factor &lt; 0.1) {
            factor = 0.1;
        }
        current = larger ? (current += factor) : (current -= factor);
        return current;
    }
</code></pre>
]]></description><link>https://forum.liquidbounce.net/topic/7318/a-selfinfo-as-akrien-client</link><generator>RSS for Node</generator><lastBuildDate>Mon, 09 Mar 2026 02:20:19 GMT</lastBuildDate><atom:link href="https://forum.liquidbounce.net/topic/7318.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Nov 2022 16:53:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to A SelfInfo as Akrien Client on Wed, 23 Aug 2023 16:06:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/younkoo">@<bdi>YounKoo</bdi></a> I am aware that this is a necropost, but I have a question. Can you give me the Novoline font renderer code (the one you ported to LiquidBounce)? It looks way better.</p>
]]></description><link>https://forum.liquidbounce.net/post/38187</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/38187</guid><dc:creator><![CDATA[Gabriel]]></dc:creator><pubDate>Wed, 23 Aug 2023 16:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to A SelfInfo as Akrien Client on Wed, 07 Dec 2022 08:26:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ukvaporwaves">@<bdi>ukvaporwaves</bdi></a> thx</p>
]]></description><link>https://forum.liquidbounce.net/post/37116</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/37116</guid><dc:creator><![CDATA[YounKoo]]></dc:creator><pubDate>Wed, 07 Dec 2022 08:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to A SelfInfo as Akrien Client on Thu, 01 Dec 2022 09:18:12 GMT]]></title><description><![CDATA[<p dir="auto">nice information ver useful</p>
]]></description><link>https://forum.liquidbounce.net/post/37091</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/37091</guid><dc:creator><![CDATA[ukvaporwaves]]></dc:creator><pubDate>Thu, 01 Dec 2022 09:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to A SelfInfo as Akrien Client on Sat, 26 Nov 2022 11:24:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/p1ayerlk_-0">@<bdi>P1ayerLk_-0</bdi></a> thx</p>
]]></description><link>https://forum.liquidbounce.net/post/37074</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/37074</guid><dc:creator><![CDATA[YounKoo]]></dc:creator><pubDate>Sat, 26 Nov 2022 11:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to A SelfInfo as Akrien Client on Sat, 26 Nov 2022 01:28:41 GMT]]></title><description><![CDATA[<p dir="auto">very sexy indicators, copied</p>
]]></description><link>https://forum.liquidbounce.net/post/37067</link><guid isPermaLink="true">https://forum.liquidbounce.net/post/37067</guid><dc:creator><![CDATA[P1ayerLk_ 0]]></dc:creator><pubDate>Sat, 26 Nov 2022 01:28:41 GMT</pubDate></item></channel></rss>