I fix some bugs and I will send it tomorrow

Gking
@Gking
A Chinese LiquidBounce User
Best posts made by Gking
-
[Kotlin] ArrayList SkyRainbow
public static int SkyRainbow(int var2, float bright, float st) { double v1 = Math.ceil(System.currentTimeMillis() + (long) (var2 * 109)) / 5; return Color.getHSBColor((double) ((float) ((v1 %= 360.0) / 360.0)) < 0.5 ? -((float) (v1 / 360.0)) : (float) (v1 / 360.0), st, bright).getRGB(); }
Add this into RenderUtils.java
val counter = intArrayOf(0) var Sky: Int Sky = RenderUtils.SkyRainbow(counter[0] * 100, saturationValue.get(), brightnessValue.get()) counter[0] = counter[0] + 1
then add this into your ArrayList.kt
It will work like this
-
[Kotlin]ArrayList Border
RenderUtils.drawRect(-1F, module.higt - 1F, 0F, module.higt + textHeight, rectColor) RenderUtils.drawRect(xPos - 3, module.higt, xPos - 2, module.higt + textHeight, rectColor) if (module != modules[0]) { var displayStrings = if (!tags.get()) modules[index - 1].name else if (tagsArrayColor.get()) modules[index - 1].colorlessTagName else modules[index - 1].tagName if (upperCaseValue.get()) displayStrings = displayStrings?.toUpperCase() RenderUtils.drawRect(xPos - 3 - (fontRenderer.getStringWidth(displayStrings) - fontRenderer.getStringWidth(displayString)), module.higt, xPos - 2, module.higt + 1, rectColor) if (module == modules[modules.size - 1]) { RenderUtils.drawRect(xPos - 3, module.higt + textHeight, 0.0F, module.higt + textHeight + 1, rectColor) } }
You can use this to make a Border in Arraylist.kt
-
[Source Share] Fake New Novoline Notification In Custom LiquidBounce
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
-
[JAVA]EnchantEffect
To celebrate my coming back I give out a EnchantEffect!
package net.ccbluex.liquidbounce.injection.forge.mixins.render; import net.ccbluex.liquidbounce.LiquidBounce; import net.ccbluex.liquidbounce.features.module.modules.render.EnchantEffect; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.resources.model.IBakedModel; import net.minecraft.util.ResourceLocation; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.awt.*; @Mixin(RenderItem.class) public abstract class MixinRenderItem { @Final @Shadow private TextureManager textureManager; @Final @Shadow private static ResourceLocation RES_ITEM_GLINT; @Shadow public abstract void renderModel(IBakedModel model, int color); @Inject(method = "renderEffect", at = @At("HEAD")) private void renderEffect(IBakedModel model, CallbackInfo callbackInfo) { EnchantEffect enchantEffect = (EnchantEffect) LiquidBounce.moduleManager.getModule(EnchantEffect.class); GlStateManager.depthMask(false); GlStateManager.depthFunc(514); GlStateManager.disableLighting(); GlStateManager.blendFunc(768, 1); this.textureManager.bindTexture(RES_ITEM_GLINT); GlStateManager.matrixMode(5890); GlStateManager.pushMatrix(); GlStateManager.scale(8.0f, 8.0f, 8.0f); float f = (float)(Minecraft.getSystemTime() % 3000L) / 3000.0f / 8.0f; GlStateManager.translate(f, 0.0f, 0.0f); GlStateManager.rotate(-50.0f, 0.0f, 0.0f, 1.0f); if(enchantEffect.getState()) { switch(enchantEffect.modeValue.get().toLowerCase()) { case "custom": this.renderModel(model, enchantEffect.currentColor); break; case "rainbow": this.renderModel(model, Color.getHSBColor(enchantEffect.hue / 255.0f, 0.75f, 0.9f).getRGB()); break; } } else { this.renderModel(model, -8372020); } GlStateManager.popMatrix(); GlStateManager.pushMatrix(); GlStateManager.scale(8.0f, 8.0f, 8.0f); float f1 = (float)(Minecraft.getSystemTime() % 4873L) / 4873.0f / 8.0f; GlStateManager.translate(-f1, 0.0f, 0.0f); GlStateManager.rotate(10.0f, 0.0f, 0.0f, 1.0f); if(enchantEffect.getState()) { switch(enchantEffect.modeValue.get().toLowerCase()) { case "custom": this.renderModel(model, enchantEffect.currentColor); break; case "rainbow": this.renderModel(model, Color.getHSBColor(enchantEffect.hue / 255.0f, 0.75f, 0.9f).getRGB()); break; } } else { this.renderModel(model, -8372020); } GlStateManager.popMatrix(); GlStateManager.matrixMode(5888); GlStateManager.blendFunc(770, 771); GlStateManager.enableLighting(); GlStateManager.depthFunc(515); GlStateManager.depthMask(true); this.textureManager.bindTexture(TextureMap.locationBlocksTexture); } }
package net.ccbluex.liquidbounce.features.module.modules.render; import net.ccbluex.liquidbounce.event.EventTarget; import net.ccbluex.liquidbounce.event.Render2DEvent; import net.ccbluex.liquidbounce.event.UpdateEvent; import net.ccbluex.liquidbounce.features.module.Module; import net.ccbluex.liquidbounce.features.module.ModuleCategory; import net.ccbluex.liquidbounce.features.module.ModuleInfo; import net.ccbluex.liquidbounce.ui.client.hud.Palette; import net.ccbluex.liquidbounce.value.IntegerValue; import net.ccbluex.liquidbounce.value.ListValue; import java.awt.*; import java.util.Random; @ModuleInfo(name = "EnchantEffect", description = "qwq", category = ModuleCategory.RENDER) public class EnchantEffect extends Module { public IntegerValue redValue = new IntegerValue("Red", 255, 0, 255); public IntegerValue greenValue = new IntegerValue("Green", 0, 0, 255); public IntegerValue blueValue = new IntegerValue("Blue", 0, 0, 255); public ListValue modeValue = new ListValue("Mode", new String[]{"Rainbow","Custom"}, "Custom"); public float hue = 0.0F; public int currentColor = new Color(redValue.get(),greenValue.get(),blueValue.get()).getRGB(); @EventTarget public void Render2d(final Render2DEvent e) { hue += 1f / 5.0f; if (hue > 255.0f) { hue = 0.0f; } } }
first you need to add a module,then add a mixin in net.ccbluex.liquidbounce.injection.forge.mixins.render and auth it
-
[Script]AAC4Criticals
var scriptName = "AttackCrit";
var scriptVersion = 1.0;
var scriptAuthor = "Gking";var EntityPlayer = Java.type('net.minecraft.entity.player.EntityPlayer');
var C04PacketPlayerPosition = Java.type('net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition')
var AttackCrit = new AttackCrit();
var client;function AttackCrit() {
var Mode = value.createList("Mode", ["AAC4HIT", "AAC4Packet", "Jump"], "AAC4HIT");
var MotionY = value.createFloat("CustomMotionY", 0, 0, 1);
var Timer = value.createFloat("TimerSpeed", 0, 0, 10);this.getName = function() { return "AttackCrit"; }; this.getTag = function() { return "" + Mode.get(); }; this.getDescription = function() { return "AttackCrit"; }; this.getCategory = function() { return "Fun"; }; this.addValues = function(values) { values.add(Mode); values.add(MotionY); values.add(Timer); } this.onAttack = function (event) { if(event.getTargetEntity() instanceof EntityPlayer){ entity = event.getTargetEntity(); } switch(Mode.get()) { case "AAC4HIT": mc.thePlayer.onCriticalHit(entity) break; case "AAC4Packet": //Maybe this one is unuseful mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(ma.thePlayer.posX, mc.thePlayer.posY + 0.0031311231111, mc.thePlayer.posZ, false)) break; case "Jump": if(mc.thePlayer.onGround || isOnGround(0.5)){ mc.thePlayer.jump(); mc.timer.timerSpeed = Timer.get(); mc.thePlayer.motionY = MotionY.get(); } break; } };
}
function onLoad() {}
function onEnable() {
client = moduleManager.registerModule(AttackCrit);
}function onDisable() {
moduleManager.unregisterModule(client);
} -
[Kotlin]ModuleInfo Element
Firse you should add this into Module.kt
var key = false set(key) { field = key if (!LiquidBounce.isStarting) LiquidBounce.fileManager.saveConfig(LiquidBounce.fileManager.modulesConfig) }
Then add this into ModulesConfig.java and register this command
module.setKey(jsonModule.get("KeyShow").getAsBoolean());
/* * LiquidBounce Hacked Client * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. * https://github.com/CCBlueX/LiquidBounce/ */ package net.ccbluex.liquidbounce.features.command.commands import net.ccbluex.liquidbounce.LiquidBounce import net.ccbluex.liquidbounce.features.command.Command import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType import org.lwjgl.input.Keyboard class KeyShowCommand : Command("moduleinfo", emptyArray()) { /** * Execute commands with provided [args] */ override fun execute(args: Array<String>) { if (args.size > 1) { // Get module by name val module = LiquidBounce.moduleManager.getModule(args[1]) if (module == null) { chat("Module §a§l" + args[1] + "§3 not found.") return } // Response to user if(!module.key){ module.key = true // LiquidBounce.hud.addNotification(Notification("ModuleInfo","Add Module Show in ModuleInfo Element", NotifyType.INFO)) } else if(module.key){ module.key = false // LiquidBounce.hud.addNotification(Notification("ModuleInfo","Delete Module Show in ModuleInfo Element", NotifyType.INFO)) } return } chatSyntax(arrayOf("<module> <on/off>")) } override fun tabComplete(args: Array<String>): List<String> { if (args.isEmpty()) return emptyList() val moduleName = args[0] return when (args.size) { 1 -> LiquidBounce.moduleManager.modules .map { it.name } .filter { it.startsWith(moduleName, true) } .toList() else -> emptyList() } } }
At last, use this and register elemnt
package net.ccbluex.liquidbounce.ui.client.hud.element.elements import net.ccbluex.liquidbounce.LiquidBounce 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.utils.PlayerListObject import net.ccbluex.liquidbounce.utils.render.GLUtils import net.ccbluex.liquidbounce.utils.render.RenderUtils import net.ccbluex.liquidbounce.value.IntegerValue import net.ccbluex.liquidbounce.value.ListValue import net.minecraft.client.gui.ScaledResolution import net.minecraft.client.renderer.GlStateManager import net.minecraft.util.EnumChatFormatting import org.lwjgl.input.Keyboard import org.lwjgl.opengl.GL11 import java.awt.Color import java.util.concurrent.CopyOnWriteArrayList /** * CustomHUD Armor element * * Shows a horizontal display of current armor */ @ElementInfo(name = "ModuleInfo") class ModuleInfo(x: Double = 10.0, y: Double = 10.0, scale: Float = 1F) : Element(x, y, scale) { /** * Draw element */ override fun drawElement(): Border { var textY: Float = 0f RenderUtils.drawRect(-1f, -11f, mc.fontRendererObj.getStringWidth("Module Info") + 90f, mc.fontRendererObj.FONT_HEIGHT.toFloat() / 2 - 5, Color(30, 30, 35, 220).rgb) mc.fontRendererObj.drawString("Module Info", 2F, -10f,-1,true) for (module in LiquidBounce.moduleManager.modules) { if(!module.key) continue RenderUtils.drawRect(-1f, -1f+textY, mc.fontRendererObj.getStringWidth("Module Info") + 90f, textY + mc.fontRendererObj.FONT_HEIGHT, Color(30, 30, 35, 170).rgb) mc.fontRendererObj.drawString(module.name, 3F, (0 + textY).toInt().toFloat(), -1,true) mc.fontRendererObj.drawString(if(module.state) EnumChatFormatting.GREEN.toString()+ "Enable" else EnumChatFormatting.RED.toString() + "Disable", 83F, (0 + textY).toInt().toFloat(), -1,true) mc.fontRendererObj.drawString(Keyboard.getKeyName(module.keyBind), 123F, (0 + textY).toInt().toFloat(), -1,true) textY += 10.0f } return Border(0f,0f,150f,textY) } }
Like this
-
[Kotlin] TargetHUD
This TargetHUD is changed from Target.kt
/* * LiquidBounce Hacked Client * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. * https://github.com/CCBlueX/LiquidBounce/ */ package net.ccbluex.liquidbounce.ui.client.hud.element.elements import net.ccbluex.liquidbounce.LiquidBounce import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura 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.font.Fonts import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox import net.ccbluex.liquidbounce.utils.render.RenderUtils import net.ccbluex.liquidbounce.value.FloatValue import net.minecraft.client.gui.Gui import net.minecraft.entity.Entity import net.minecraft.entity.player.EntityPlayer import net.minecraft.item.ItemArmor import net.minecraft.item.ItemStack import net.minecraft.item.ItemTool import net.minecraft.util.ResourceLocation import org.lwjgl.opengl.GL11 import java.awt.Color import java.text.DecimalFormat import java.text.DecimalFormatSymbols import java.util.* import kotlin.math.abs import kotlin.math.pow /** * A target hud */ @ElementInfo(name = "Target2") class Target2 : Element() { private val decimalFormat = DecimalFormat("##0.00", DecimalFormatSymbols(Locale.ENGLISH)) private val fadeSpeed = FloatValue("FadeSpeed", 2F, 1F, 9F) private var easingHealth: Float = 0F private var lastTarget: Entity? = null override fun drawElement(): Border { val target = (LiquidBounce.moduleManager[KillAura::class.java] as KillAura).target if (target is EntityPlayer) { if (target != lastTarget || easingHealth < 0 || easingHealth > target.maxHealth || abs(easingHealth - target.health) < 0.01) { easingHealth = target.health } val width = (38 + Fonts.font40.getStringWidth(target.name)) .coerceAtLeast(118) .toFloat() // Draw rect box RenderUtils.drawBorderedRect(0F, 0F, width, 36F, 3F, Color.BLACK.rgb, Color.BLACK.rgb) // Damage animation if (easingHealth > target.health) RenderUtils.drawRect(0F, 34F, (easingHealth / target.maxHealth) * width, 36F, Color(138, 60, 65).rgb) // Health bar if(target.hurtTime > 9){ RenderUtils.drawRect(0F, 34F, (target.health / target.maxHealth) * width, 36F, Color(149, 9, 17).rgb) } else { RenderUtils.drawRect(0F, 34F, (target.health / target.maxHealth) * width, 36F, Color(33, 239, 0).rgb) } RenderUtils.drawRect(0F, 38F, (target.totalArmorValue / 20.0F) * width, 38F, Color(10, 130, 229).rgb) // Heal animation if (easingHealth < target.health) RenderUtils.drawRect((easingHealth / target.maxHealth) * width, 34F, (target.health / target.maxHealth) * width, 36F, Color(44, 201, 144).rgb) easingHealth += ((target.health - easingHealth) / 2.0F.pow(10.0F - fadeSpeed.get())) * RenderUtils.deltaTime // Draw info val playerInfo = mc.netHandler.getPlayerInfo(target.uniqueID) if (playerInfo != null) { Fonts.font40.drawString(target.name, 36, 4, 0xffffff) // GlStateManager.scale(0.5,0.5,0.5); renderArmor((target as EntityPlayer?)!!) // Draw head val locationSkin = playerInfo.locationSkin drawHead(locationSkin, 30, 30) } } lastTarget = target return Border(0F, 0F, 120F, 36F) } private fun renderArmor(player: EntityPlayer) { var armourStack: ItemStack? var renderStack = player.inventory.armorInventory val length = renderStack.size var xOffset = 36 for (aRenderStack in renderStack) { armourStack = aRenderStack } if (player.heldItem != null) { val stock = player.heldItem.copy() if (stock.hasEffect() && (stock.item is ItemTool || stock.item is ItemArmor)) { stock.stackSize = 1 } this.renderItemStack(stock, xOffset, 10) xOffset += 16 } renderStack = player.inventory.armorInventory for (index in 3 downTo 0) { armourStack = renderStack[index] if (armourStack == null) continue this.renderItemStack(armourStack, xOffset, 10) xOffset += 16 } } private fun renderItemStack(stack: ItemStack, x: Int, y: Int) { mc.renderItem.zLevel = -150.0f mc.renderItem.renderItemAndEffectIntoGUI(stack, x, y) mc.renderItem.renderItemOverlays(mc.fontRendererObj, stack, x, y) } private fun drawHead(skin: ResourceLocation, width: Int, height: Int) { GL11.glColor4f(1F, 1F, 1F, 1F) mc.textureManager.bindTexture(skin) Gui.drawScaledCustomSizeModalRect(2, 2, 8F, 8F, 8, 8, width, height, 64F, 64F) } }
Create A new Kt in net.ccbluex.liquidbounce.ui.client.hud.element.elements
And AddElment in net.ccbluex.liquidbounce.ui.client.hud.HUD
![IY}478OUQEC%2PD7L{NNQM.png
Like This
Latest posts made by Gking
-
[Source Share] Fake New Novoline Notification In Custom LiquidBounce
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
-
RE: HELP
gradlew clean build --stacktrace
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':1.8.9-Forge'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:206)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:211)
at org.gradle.configuration.BuildOperationScriptPlugin$1$1.run(BuildOperationScriptPlugin.java:69)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:66)
at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:63)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:48)
at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:63)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:41)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:105)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:68)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:687)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:140)
at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:41)
at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:274)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:182)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:141)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51) at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.NullPointerException
at net.minecraftforge.gradle.common.BaseExtension.checkMappings(BaseExtension.java:261)
at net.minecraftforge.gradle.common.BaseExtension.setMappings(BaseExtension.java:240)
at net.minecraftforge.gradle.user.patcherUser.forge.ForgeExtension_Decorated.setMappings(Unknown Source)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.setProperty(BeanDynamicObject.java:376)
at org.gradle.internal.metaobject.BeanDynamicObject.trySetProperty(BeanDynamicObject.java:176)
at org.gradle.internal.metaobject.CompositeDynamicObject.trySetProperty(CompositeDynamicObject.java:66)
at org.gradle.internal.metaobject.ConfigureDelegate.setProperty(ConfigureDelegate.java:95)
at build_bscxab9jbq0ihtv2lykrws8ym$_run_closure4.doCall(C:\Users\g1383\Desktop\1\SpaceKing\1.8.9-Forge\build.gradle:63)
at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:167)
at org.gradle.api.internal.plugins.ExtensionsStorage$ExtensionHolder.configure(ExtensionsStorage.java:197)
at org.gradle.api.internal.plugins.ExtensionsStorage.configureExtension(ExtensionsStorage.java:69)
at org.gradle.api.internal.plugins.DefaultConvention.configureExtension(DefaultConvention.java:412)
at org.gradle.api.internal.plugins.DefaultConvention.access$500(DefaultConvention.java:45)
at org.gradle.api.internal.plugins.DefaultConvention$ExtensionsDynamicObject.tryInvokeMethod(DefaultConvention.java:349)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:133)
at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:160)
at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:82)
at build_bscxab9jbq0ihtv2lykrws8ym.run(C:\Users\g1383\Desktop\1\SpaceKing\1.8.9-Forge\build.gradle:60)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
... 102 more -
[Kotlin]ModuleInfo Element
Firse you should add this into Module.kt
var key = false set(key) { field = key if (!LiquidBounce.isStarting) LiquidBounce.fileManager.saveConfig(LiquidBounce.fileManager.modulesConfig) }
Then add this into ModulesConfig.java and register this command
module.setKey(jsonModule.get("KeyShow").getAsBoolean());
/* * LiquidBounce Hacked Client * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. * https://github.com/CCBlueX/LiquidBounce/ */ package net.ccbluex.liquidbounce.features.command.commands import net.ccbluex.liquidbounce.LiquidBounce import net.ccbluex.liquidbounce.features.command.Command import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType import org.lwjgl.input.Keyboard class KeyShowCommand : Command("moduleinfo", emptyArray()) { /** * Execute commands with provided [args] */ override fun execute(args: Array<String>) { if (args.size > 1) { // Get module by name val module = LiquidBounce.moduleManager.getModule(args[1]) if (module == null) { chat("Module §a§l" + args[1] + "§3 not found.") return } // Response to user if(!module.key){ module.key = true // LiquidBounce.hud.addNotification(Notification("ModuleInfo","Add Module Show in ModuleInfo Element", NotifyType.INFO)) } else if(module.key){ module.key = false // LiquidBounce.hud.addNotification(Notification("ModuleInfo","Delete Module Show in ModuleInfo Element", NotifyType.INFO)) } return } chatSyntax(arrayOf("<module> <on/off>")) } override fun tabComplete(args: Array<String>): List<String> { if (args.isEmpty()) return emptyList() val moduleName = args[0] return when (args.size) { 1 -> LiquidBounce.moduleManager.modules .map { it.name } .filter { it.startsWith(moduleName, true) } .toList() else -> emptyList() } } }
At last, use this and register elemnt
package net.ccbluex.liquidbounce.ui.client.hud.element.elements import net.ccbluex.liquidbounce.LiquidBounce 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.utils.PlayerListObject import net.ccbluex.liquidbounce.utils.render.GLUtils import net.ccbluex.liquidbounce.utils.render.RenderUtils import net.ccbluex.liquidbounce.value.IntegerValue import net.ccbluex.liquidbounce.value.ListValue import net.minecraft.client.gui.ScaledResolution import net.minecraft.client.renderer.GlStateManager import net.minecraft.util.EnumChatFormatting import org.lwjgl.input.Keyboard import org.lwjgl.opengl.GL11 import java.awt.Color import java.util.concurrent.CopyOnWriteArrayList /** * CustomHUD Armor element * * Shows a horizontal display of current armor */ @ElementInfo(name = "ModuleInfo") class ModuleInfo(x: Double = 10.0, y: Double = 10.0, scale: Float = 1F) : Element(x, y, scale) { /** * Draw element */ override fun drawElement(): Border { var textY: Float = 0f RenderUtils.drawRect(-1f, -11f, mc.fontRendererObj.getStringWidth("Module Info") + 90f, mc.fontRendererObj.FONT_HEIGHT.toFloat() / 2 - 5, Color(30, 30, 35, 220).rgb) mc.fontRendererObj.drawString("Module Info", 2F, -10f,-1,true) for (module in LiquidBounce.moduleManager.modules) { if(!module.key) continue RenderUtils.drawRect(-1f, -1f+textY, mc.fontRendererObj.getStringWidth("Module Info") + 90f, textY + mc.fontRendererObj.FONT_HEIGHT, Color(30, 30, 35, 170).rgb) mc.fontRendererObj.drawString(module.name, 3F, (0 + textY).toInt().toFloat(), -1,true) mc.fontRendererObj.drawString(if(module.state) EnumChatFormatting.GREEN.toString()+ "Enable" else EnumChatFormatting.RED.toString() + "Disable", 83F, (0 + textY).toInt().toFloat(), -1,true) mc.fontRendererObj.drawString(Keyboard.getKeyName(module.keyBind), 123F, (0 + textY).toInt().toFloat(), -1,true) textY += 10.0f } return Border(0f,0f,150f,textY) } }
Like this