Исходник Hud Epfirium Client [IntellIj Ready, expensive 2.0 ready]

Начинающий
Статус
Оффлайн
Регистрация
11 Дек 2023
Сообщения
23
Реакции[?]
0
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

не знаю кому этот калл будет нужен, мб кому нибудь пригодится
Пожалуйста, авторизуйтесь для просмотра ссылки.


Hud:
/* Decompiler 316ms, total 617ms, lines 696 */
package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
   name = "Hud",
   type = Type.Render
)
public class HudFunction extends Module {
   public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
   public final BooleanOption glowing = new BooleanOption("Свечение", true);
   public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
      return this.elements.get(1);
   });
   public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
      return this.elements.get(1);
   });
   public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
   public final float offs = 0.0F;
   private float perc;
   final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
   public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
   private float heightDynamic = 0.0F;
   private int activeModules = 0;
   public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
   private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
   private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
   public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
   private int activeStaff = 0;
   private float hDynam = 0.0F;
   private float widthDynamic = 0.0F;
   private float nameWidth = 0.0F;
   List<HudFunction.StaffPlayer> staffPlayers = new ArrayList();
   public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
   public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
   private float hDynamic = 0.0F;
   private int activePotions = 0;
   List<Module> sortedFunctions = new ArrayList();
   TimerUtil delay = new TimerUtil();
   float health = 0.0F;
   public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
   private final Animation targetHudAnimation = new EaseBackIn(200, 1.0D, 1.5F);
   private PlayerEntity target = null;
   private double scale = 0.0D;

   public HudFunction() {
      this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
   }

   public void onEvent(Event event) {
      if (event instanceof EventUpdate && this.elements.get(2)) {
         this.staffPlayers.clear();
         Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

         label33:
         while(true) {
            ScorePlayerTeam team;
            String name;
            do {
               do {
                  if (!var2.hasNext()) {
                     break label33;
                  }

                  team = (ScorePlayerTeam)var2.next();
                  name = team.getMembershipCollection().toString();
                  name = name.substring(1, name.length() - 1);
               } while(!this.namePattern.matcher(name).matches());
            } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

            this.staffPlayers.add(new HudFunction.StaffPlayer(name, team.getPrefix()));
         }
      }

      if (event instanceof EventRender) {
         EventRender eventRender = (EventRender)event;
         if (eventRender.isRender2D()) {
            this.handleRender(eventRender);
            this.renderTimer(eventRender.matrixStack, 5, true);
         }
      }

   }

   private void handleRender(EventRender renderEvent) {
      MatrixStack stack = renderEvent.matrixStack;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      if (this.elements.get(0)) {
         Minecraft var10001 = mc;
         String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
         String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
         StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
         StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
         StyledFont medium2 = Fonts.sfbold[15];
         StyledFont texts = Fonts.msBold[19];
         float x2 = 5.0F;
         float y2 = 5.0F;
         float titleWidth = medium2.getWidth(title) + 5.0F;
         String var18 = gradientText2.getString();
         float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
         float titleHeight2 = 12.0F;
         float titleWidth3 = 13.0F;
         float titleHeight3 = 13.0F;
         Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
         Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         medium2.drawString(stack, gradientText2, 24.0D, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
         texts.drawString(stack, E, 8.0D, 8.0D, -1);
         medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
         medium2.drawString(stack, title, 8.0D, 25.0D, (new Color(255, 255, 255)).getRGB());
      }

      if (this.elements.get(1)) {
         this.renderArrayList(stack);
      }

      if (this.elements.get(2)) {
         this.onStaffListRender(stack, renderEvent);
      }

      if (this.elements.get(3)) {
         this.onPotionElementsRender(stack, renderEvent);
      }

      if (this.elements.get(5)) {
         this.onRenderTargetHUD(stack);
      }

      if (this.elements.get(6)) {
         this.onKeyBindsRender(stack);
      }

      if (this.elements.get(7)) {
         this.onInformationRender(stack, renderEvent);
      }

      if (this.elements.get(8)) {
         this.onArmorRender(renderEvent);
      }

   }

   private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
      float posX = this.timerHUD.getX();
      float posY = this.timerHUD.getY();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      int t_color = Color.WHITE.getRGB();
      StyledFont medium = Fonts.sfbold[15];
      float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
      float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
      this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
      String text = (int)(this.perc * 100.0F) + "%";
      float centr = (float)mc.getMainWindow().getScaledWidth();
      float width = 70.0F;
      int width2 = 60;
      this.timerHUD.setWidth(width);
      this.timerHUD.setHeight(20.0F);
      Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
      medium.drawString(matrixStack, "Timer", (double)posX + 22.5D, (double)(posY + 6.0F), t_color);
      Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
      Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5D, t_color);
   }

   private void onKeyBindsRender(MatrixStack stack) {
      float posX = this.keyBinds.getX();
      float posY = this.keyBinds.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
      int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeModules * offset);
      this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
      Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
      Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
      int index = 0;
      Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

      while(var17.hasNext()) {
         Module f = (Module)var17.next();
         if (f.bind != 0 && f.state) {
            String text = ClientUtil.getKey(f.bind);
            if (text != null) {
               String bindText = "[" + text.toUpperCase() + "]";
               float bindWidth = Fonts.sfbold[12].getWidth(bindText);
               Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               ++index;
            }
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeModules = index;
      this.keyBinds.setWidth((float)width);
      this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
   }

   private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
      float posX = this.staffList.getX();
      float posY = this.staffList.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      float width = Math.max(this.nameWidth + 40.0F, 100.0F);
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeStaff * offset);
      this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
      this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
      Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      int index = 0;
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
      if (!this.staffPlayers.isEmpty()) {
         for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
            HudFunction.StaffPlayer staff = (HudFunction.StaffPlayer)var16.next();
            String name = staff.getName();
            ITextComponent prefix = staff.getPrefix();
            String status = staff.getStatus().getString();
            Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
         }
      } else {
         this.nameWidth = 0.0F;
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeStaff = index;
      this.staffList.setWidth(this.widthDynamic);
      this.staffList.setHeight(this.hDynam + (float)headerHeight);
   }

   private String repairString(String input) {
      StringBuilder sb = new StringBuilder(input.length());
      char[] var3 = input.toCharArray();
      int var4 = var3.length;

      for(int var5 = 0; var5 < var4; ++var5) {
         char c = var3[var5];
         if (c >= '!' && c <= '~') {
            sb.append((char)(c - 'ﻠ'));
         } else {
            sb.append(c);
         }
      }

      return sb.toString();
   }

   private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
      float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
      Minecraft var10000 = mc;
      int var11 = (int)Minecraft.player.getPosX();
      Minecraft var10001 = mc;
      int var12 = (int)Minecraft.player.getPosY();
      Minecraft var10002 = mc;
      String pos = var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
      int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
      int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
      int x = 5;
      int backgroundY = (int)y - 2;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
      Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0D, (double)y, firstColor);
      Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
   }

   private void onArmorRender(EventRender renderEvent) {
      int count = 0;
      int i = 0;

      while(true) {
         Minecraft var10001 = mc;
         Minecraft var10000;
         if (i >= Minecraft.player.inventory.getSizeInventory()) {
            float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
            float yPos = (float)renderEvent.scaledResolution.scaledHeight();
            var10000 = mc;
            boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
            int off = totemInInv ? 5 : 0;
            var10000 = mc;
            if (Minecraft.player.isCreative()) {
               yPos += 17.0F;
            }

            var10000 = mc;

            for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
               ItemStack s = (ItemStack)var7.next();
            }

            if (totemInInv) {
            }

            return;
         }

         var10000 = mc;
         ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
         if (s.getItem() == Items.TOTEM_OF_UNDYING) {
            ++count;
         }

         ++i;
      }
   }

   private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
      float posX = this.potionStatus.getX();
      float posY = this.potionStatus.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activePotions * offset);
      this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
      Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
      int index = 0;
      Minecraft var10000 = mc;
      Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

      while(var16.hasNext()) {
         EffectInstance p = (EffectInstance)var16.next();
         if (p.isShowIcon()) {
            String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
            float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
            Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            ++index;
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activePotions = index;
      this.potionStatus.setWidth((float)width);
      this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
   }

   private void renderArrayList(MatrixStack stack) {
      float x = 5.0F;
      float y = 40.0F;
      float height = 10.0F;
      float yOffset = 0.0F;
      StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
      StyleManager styleManager = Managment.STYLE_MANAGER;
      if (this.delay.hasTimeElapsed(10000L)) {
         this.sortedFunctions = HudUtil.getSorted(font);
         this.delay.reset();
      }

      float gradientForce = 1.0F;
      int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
      int firstColor;
      int secondColor;
      Iterator var12;
      Module function;
      float width;
      if (this.glow.get()) {
         var12 = this.sortedFunctions.iterator();

         label113:
         while(true) {
            do {
               do {
                  if (!var12.hasNext()) {
                     yOffset = 0.0F;
                     break label113;
                  }

                  function = (Module)var12.next();
               } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01D) {
               width = font.getWidth(function.name) + 5.0F;
               firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
               secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
               RenderSystem.pushMatrix();
               RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
               RenderSystem.scalef(1.0F, function.animation, 1.0F);
               RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
               Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
               RenderSystem.popMatrix();
               yOffset += height * function.animation;
            }
         }
      }

      var12 = this.sortedFunctions.iterator();

      while(true) {
         do {
            do {
               if (!var12.hasNext()) {
                  yOffset = 0.0F;
                  var12 = this.sortedFunctions.iterator();

                  while(true) {
                     do {
                        do {
                           if (!var12.hasNext()) {
                              return;
                           }

                           function = (Module)var12.next();
                        } while(this.limitations.get(0) && function.category == Type.Render);
                     } while(this.limitations.get(1) && function.bind == 0);

                     function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                     if ((double)function.animation >= 0.01D) {
                        width = font.getWidth(function.name) + 4.0F;
                        firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                        secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                        RenderSystem.pushMatrix();
                        RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                        RenderSystem.scalef(1.0F, function.animation, 1.0F);
                        RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                        Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                        Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                        RenderSystem.popMatrix();
                        yOffset += height * function.animation;
                     }
                  }
               }

               function = (Module)var12.next();
            } while(this.limitations.get(0) && function.category == Type.Render);
         } while(this.limitations.get(1) && function.bind == 0);

         function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
         if ((double)function.animation >= 0.01D) {
            width = font.getWidth(function.name) + 5.0F;
            secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
            RenderSystem.pushMatrix();
            RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
            RenderSystem.scalef(1.0F, function.animation, 1.0F);
            RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
            Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
            font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
            RenderSystem.popMatrix();
            yOffset += height * function.animation;
         }
      }
   }

   private void onRenderTargetHUD(MatrixStack stack) {
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      this.target = this.getTarget(this.target);
      this.targetHudAnimation.setDuration(300);
      this.scale = this.targetHudAnimation.getOutput();
      if (this.scale == 0.0D) {
         this.target = null;
      }

      if (this.target != null) {
         String targetName = this.target.getName().getString();
         String substring = targetName.substring(0, Math.min(targetName.length(), 10));
         float nameWidth = Fonts.sfbold[18].getWidth(substring);
         float xPosition = this.targetHUD.getX();
         float yPosition = this.targetHUD.getY();
         float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
         float maxHeight = 30.0F;
         this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
         this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
         GlStateManager.pushMatrix();
         AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
         Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
         Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
         this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
         Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
         GlStateManager.popMatrix();
         this.targetHUD.setWidth(maxWidth);
         this.targetHUD.setHeight(30.0F);
      }
   }

   private void drawItemStack(float x, float y, float offset) {
      List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
      stackList.addAll((Collection)this.target.getArmorInventoryList());
      AtomicReference<Float> posX = new AtomicReference(x);
      stackList.stream().filter((stack) -> {
         return !stack.isEmpty();
      }).forEach((stack) -> {
         HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
      });
   }

   private PlayerEntity getTarget(PlayerEntity nullTarget) {
      PlayerEntity target = nullTarget;
      if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
         target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else if (mc.currentScreen instanceof ChatScreen) {
         Minecraft var10000 = mc;
         target = Minecraft.player;
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else {
         this.targetHudAnimation.setDirection(Direction.BACKWARDS);
      }

      return (PlayerEntity)target;
   }

   private class StaffPlayer {
      String name;
      ITextComponent prefix;
      HudFunction.Status status;

      private StaffPlayer(String name, ITextComponent prefix) {
         this.name = name;
         this.prefix = prefix;
         this.updateStatus();
      }

      private void updateStatus() {
         Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

         AbstractClientPlayerEntity player;
         do {
            if (!var1.hasNext()) {
               var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

               NetworkPlayerInfo info;
               do {
                  if (!var1.hasNext()) {
                     this.status = HudFunction.Status.VANISHED;
                     return;
                  }

                  info = (NetworkPlayerInfo)var1.next();
               } while(!info.getGameProfile().getName().equals(this.name));

               if (info.getGameType() == GameType.SPECTATOR) {
                  this.status = HudFunction.Status.SPEC;
                  return;
               }

               this.status = HudFunction.Status.NONE;
               return;
            }

            player = (AbstractClientPlayerEntity)var1.next();
         } while(!player.getNameClear().equals(this.name));

         this.status = HudFunction.Status.NEAR;
      }

      public String getName() {
         return this.name;
      }

      public ITextComponent getPrefix() {
         return this.prefix;
      }

      public HudFunction.Status getStatus() {
         return this.status;
      }
   }

   public static enum Status {
      NONE(""),
      NEAR(" §e[Near]"),
      SPEC(" §c[Spec]"),
      VANISHED(" §6[Vanish]");

      final String string;

      private Status(String string) {
         this.string = string;
      }

      public String getString() {
         return this.string;
      }

      // $FF: synthetic method
      private static HudFunction.Status[] $values() {
         return new HudFunction.Status[]{NONE, NEAR, SPEC, VANISHED};
      }
   }
}
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2023
Сообщения
457
Реакции[?]
5
Поинты[?]
6K
не знаю кому этот калл будет нужен, мб кому нибудь пригодится
Пожалуйста, авторизуйтесь для просмотра ссылки.


Hud:
/* Decompiler 316ms, total 617ms, lines 696 */
package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
   name = "Hud",
   type = Type.Render
)
public class HudFunction extends Module {
   public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
   public final BooleanOption glowing = new BooleanOption("Свечение", true);
   public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
      return this.elements.get(1);
   });
   public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
      return this.elements.get(1);
   });
   public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
   public final float offs = 0.0F;
   private float perc;
   final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
   public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
   private float heightDynamic = 0.0F;
   private int activeModules = 0;
   public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
   private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
   private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
   public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
   private int activeStaff = 0;
   private float hDynam = 0.0F;
   private float widthDynamic = 0.0F;
   private float nameWidth = 0.0F;
   List<HudFunction.StaffPlayer> staffPlayers = new ArrayList();
   public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
   public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
   private float hDynamic = 0.0F;
   private int activePotions = 0;
   List<Module> sortedFunctions = new ArrayList();
   TimerUtil delay = new TimerUtil();
   float health = 0.0F;
   public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
   private final Animation targetHudAnimation = new EaseBackIn(200, 1.0D, 1.5F);
   private PlayerEntity target = null;
   private double scale = 0.0D;

   public HudFunction() {
      this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
   }

   public void onEvent(Event event) {
      if (event instanceof EventUpdate && this.elements.get(2)) {
         this.staffPlayers.clear();
         Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

         label33:
         while(true) {
            ScorePlayerTeam team;
            String name;
            do {
               do {
                  if (!var2.hasNext()) {
                     break label33;
                  }

                  team = (ScorePlayerTeam)var2.next();
                  name = team.getMembershipCollection().toString();
                  name = name.substring(1, name.length() - 1);
               } while(!this.namePattern.matcher(name).matches());
            } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

            this.staffPlayers.add(new HudFunction.StaffPlayer(name, team.getPrefix()));
         }
      }

      if (event instanceof EventRender) {
         EventRender eventRender = (EventRender)event;
         if (eventRender.isRender2D()) {
            this.handleRender(eventRender);
            this.renderTimer(eventRender.matrixStack, 5, true);
         }
      }

   }

   private void handleRender(EventRender renderEvent) {
      MatrixStack stack = renderEvent.matrixStack;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      if (this.elements.get(0)) {
         Minecraft var10001 = mc;
         String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
         String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
         StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
         StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
         StyledFont medium2 = Fonts.sfbold[15];
         StyledFont texts = Fonts.msBold[19];
         float x2 = 5.0F;
         float y2 = 5.0F;
         float titleWidth = medium2.getWidth(title) + 5.0F;
         String var18 = gradientText2.getString();
         float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
         float titleHeight2 = 12.0F;
         float titleWidth3 = 13.0F;
         float titleHeight3 = 13.0F;
         Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
         Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         medium2.drawString(stack, gradientText2, 24.0D, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
         texts.drawString(stack, E, 8.0D, 8.0D, -1);
         medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
         medium2.drawString(stack, title, 8.0D, 25.0D, (new Color(255, 255, 255)).getRGB());
      }

      if (this.elements.get(1)) {
         this.renderArrayList(stack);
      }

      if (this.elements.get(2)) {
         this.onStaffListRender(stack, renderEvent);
      }

      if (this.elements.get(3)) {
         this.onPotionElementsRender(stack, renderEvent);
      }

      if (this.elements.get(5)) {
         this.onRenderTargetHUD(stack);
      }

      if (this.elements.get(6)) {
         this.onKeyBindsRender(stack);
      }

      if (this.elements.get(7)) {
         this.onInformationRender(stack, renderEvent);
      }

      if (this.elements.get(8)) {
         this.onArmorRender(renderEvent);
      }

   }

   private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
      float posX = this.timerHUD.getX();
      float posY = this.timerHUD.getY();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      int t_color = Color.WHITE.getRGB();
      StyledFont medium = Fonts.sfbold[15];
      float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
      float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
      this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
      String text = (int)(this.perc * 100.0F) + "%";
      float centr = (float)mc.getMainWindow().getScaledWidth();
      float width = 70.0F;
      int width2 = 60;
      this.timerHUD.setWidth(width);
      this.timerHUD.setHeight(20.0F);
      Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
      medium.drawString(matrixStack, "Timer", (double)posX + 22.5D, (double)(posY + 6.0F), t_color);
      Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
      Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5D, t_color);
   }

   private void onKeyBindsRender(MatrixStack stack) {
      float posX = this.keyBinds.getX();
      float posY = this.keyBinds.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
      int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeModules * offset);
      this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
      Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
      Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
      int index = 0;
      Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

      while(var17.hasNext()) {
         Module f = (Module)var17.next();
         if (f.bind != 0 && f.state) {
            String text = ClientUtil.getKey(f.bind);
            if (text != null) {
               String bindText = "[" + text.toUpperCase() + "]";
               float bindWidth = Fonts.sfbold[12].getWidth(bindText);
               Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               ++index;
            }
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeModules = index;
      this.keyBinds.setWidth((float)width);
      this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
   }

   private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
      float posX = this.staffList.getX();
      float posY = this.staffList.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      float width = Math.max(this.nameWidth + 40.0F, 100.0F);
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeStaff * offset);
      this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
      this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
      Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      int index = 0;
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
      if (!this.staffPlayers.isEmpty()) {
         for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
            HudFunction.StaffPlayer staff = (HudFunction.StaffPlayer)var16.next();
            String name = staff.getName();
            ITextComponent prefix = staff.getPrefix();
            String status = staff.getStatus().getString();
            Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
         }
      } else {
         this.nameWidth = 0.0F;
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeStaff = index;
      this.staffList.setWidth(this.widthDynamic);
      this.staffList.setHeight(this.hDynam + (float)headerHeight);
   }

   private String repairString(String input) {
      StringBuilder sb = new StringBuilder(input.length());
      char[] var3 = input.toCharArray();
      int var4 = var3.length;

      for(int var5 = 0; var5 < var4; ++var5) {
         char c = var3[var5];
         if (c >= '!' && c <= '~') {
            sb.append((char)(c - 'ﻠ'));
         } else {
            sb.append(c);
         }
      }

      return sb.toString();
   }

   private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
      float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
      Minecraft var10000 = mc;
      int var11 = (int)Minecraft.player.getPosX();
      Minecraft var10001 = mc;
      int var12 = (int)Minecraft.player.getPosY();
      Minecraft var10002 = mc;
      String pos = var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
      int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
      int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
      int x = 5;
      int backgroundY = (int)y - 2;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
      Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0D, (double)y, firstColor);
      Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
   }

   private void onArmorRender(EventRender renderEvent) {
      int count = 0;
      int i = 0;

      while(true) {
         Minecraft var10001 = mc;
         Minecraft var10000;
         if (i >= Minecraft.player.inventory.getSizeInventory()) {
            float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
            float yPos = (float)renderEvent.scaledResolution.scaledHeight();
            var10000 = mc;
            boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
            int off = totemInInv ? 5 : 0;
            var10000 = mc;
            if (Minecraft.player.isCreative()) {
               yPos += 17.0F;
            }

            var10000 = mc;

            for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
               ItemStack s = (ItemStack)var7.next();
            }

            if (totemInInv) {
            }

            return;
         }

         var10000 = mc;
         ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
         if (s.getItem() == Items.TOTEM_OF_UNDYING) {
            ++count;
         }

         ++i;
      }
   }

   private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
      float posX = this.potionStatus.getX();
      float posY = this.potionStatus.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activePotions * offset);
      this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
      Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
      int index = 0;
      Minecraft var10000 = mc;
      Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

      while(var16.hasNext()) {
         EffectInstance p = (EffectInstance)var16.next();
         if (p.isShowIcon()) {
            String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
            float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
            Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            ++index;
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activePotions = index;
      this.potionStatus.setWidth((float)width);
      this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
   }

   private void renderArrayList(MatrixStack stack) {
      float x = 5.0F;
      float y = 40.0F;
      float height = 10.0F;
      float yOffset = 0.0F;
      StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
      StyleManager styleManager = Managment.STYLE_MANAGER;
      if (this.delay.hasTimeElapsed(10000L)) {
         this.sortedFunctions = HudUtil.getSorted(font);
         this.delay.reset();
      }

      float gradientForce = 1.0F;
      int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
      int firstColor;
      int secondColor;
      Iterator var12;
      Module function;
      float width;
      if (this.glow.get()) {
         var12 = this.sortedFunctions.iterator();

         label113:
         while(true) {
            do {
               do {
                  if (!var12.hasNext()) {
                     yOffset = 0.0F;
                     break label113;
                  }

                  function = (Module)var12.next();
               } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01D) {
               width = font.getWidth(function.name) + 5.0F;
               firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
               secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
               RenderSystem.pushMatrix();
               RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
               RenderSystem.scalef(1.0F, function.animation, 1.0F);
               RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
               Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
               RenderSystem.popMatrix();
               yOffset += height * function.animation;
            }
         }
      }

      var12 = this.sortedFunctions.iterator();

      while(true) {
         do {
            do {
               if (!var12.hasNext()) {
                  yOffset = 0.0F;
                  var12 = this.sortedFunctions.iterator();

                  while(true) {
                     do {
                        do {
                           if (!var12.hasNext()) {
                              return;
                           }

                           function = (Module)var12.next();
                        } while(this.limitations.get(0) && function.category == Type.Render);
                     } while(this.limitations.get(1) && function.bind == 0);

                     function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                     if ((double)function.animation >= 0.01D) {
                        width = font.getWidth(function.name) + 4.0F;
                        firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                        secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                        RenderSystem.pushMatrix();
                        RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                        RenderSystem.scalef(1.0F, function.animation, 1.0F);
                        RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                        Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                        Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                        RenderSystem.popMatrix();
                        yOffset += height * function.animation;
                     }
                  }
               }

               function = (Module)var12.next();
            } while(this.limitations.get(0) && function.category == Type.Render);
         } while(this.limitations.get(1) && function.bind == 0);

         function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
         if ((double)function.animation >= 0.01D) {
            width = font.getWidth(function.name) + 5.0F;
            secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
            RenderSystem.pushMatrix();
            RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
            RenderSystem.scalef(1.0F, function.animation, 1.0F);
            RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
            Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
            font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
            RenderSystem.popMatrix();
            yOffset += height * function.animation;
         }
      }
   }

   private void onRenderTargetHUD(MatrixStack stack) {
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      this.target = this.getTarget(this.target);
      this.targetHudAnimation.setDuration(300);
      this.scale = this.targetHudAnimation.getOutput();
      if (this.scale == 0.0D) {
         this.target = null;
      }

      if (this.target != null) {
         String targetName = this.target.getName().getString();
         String substring = targetName.substring(0, Math.min(targetName.length(), 10));
         float nameWidth = Fonts.sfbold[18].getWidth(substring);
         float xPosition = this.targetHUD.getX();
         float yPosition = this.targetHUD.getY();
         float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
         float maxHeight = 30.0F;
         this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
         this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
         GlStateManager.pushMatrix();
         AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
         Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
         Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
         this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
         Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
         GlStateManager.popMatrix();
         this.targetHUD.setWidth(maxWidth);
         this.targetHUD.setHeight(30.0F);
      }
   }

   private void drawItemStack(float x, float y, float offset) {
      List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
      stackList.addAll((Collection)this.target.getArmorInventoryList());
      AtomicReference<Float> posX = new AtomicReference(x);
      stackList.stream().filter((stack) -> {
         return !stack.isEmpty();
      }).forEach((stack) -> {
         HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
      });
   }

   private PlayerEntity getTarget(PlayerEntity nullTarget) {
      PlayerEntity target = nullTarget;
      if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
         target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else if (mc.currentScreen instanceof ChatScreen) {
         Minecraft var10000 = mc;
         target = Minecraft.player;
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else {
         this.targetHudAnimation.setDirection(Direction.BACKWARDS);
      }

      return (PlayerEntity)target;
   }

   private class StaffPlayer {
      String name;
      ITextComponent prefix;
      HudFunction.Status status;

      private StaffPlayer(String name, ITextComponent prefix) {
         this.name = name;
         this.prefix = prefix;
         this.updateStatus();
      }

      private void updateStatus() {
         Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

         AbstractClientPlayerEntity player;
         do {
            if (!var1.hasNext()) {
               var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

               NetworkPlayerInfo info;
               do {
                  if (!var1.hasNext()) {
                     this.status = HudFunction.Status.VANISHED;
                     return;
                  }

                  info = (NetworkPlayerInfo)var1.next();
               } while(!info.getGameProfile().getName().equals(this.name));

               if (info.getGameType() == GameType.SPECTATOR) {
                  this.status = HudFunction.Status.SPEC;
                  return;
               }

               this.status = HudFunction.Status.NONE;
               return;
            }

            player = (AbstractClientPlayerEntity)var1.next();
         } while(!player.getNameClear().equals(this.name));

         this.status = HudFunction.Status.NEAR;
      }

      public String getName() {
         return this.name;
      }

      public ITextComponent getPrefix() {
         return this.prefix;
      }

      public HudFunction.Status getStatus() {
         return this.status;
      }
   }

   public static enum Status {
      NONE(""),
      NEAR(" §e[Near]"),
      SPEC(" §c[Spec]"),
      VANISHED(" §6[Vanish]");

      final String string;

      private Status(String string) {
         this.string = string;
      }

      public String getString() {
         return this.string;
      }

      // $FF: synthetic method
      private static HudFunction.Status[] $values() {
         return new HudFunction.Status[]{NONE, NEAR, SPEC, VANISHED};
      }
   }
}
Типо экспенсив 3.0?
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
265
Реакции[?]
2
Поинты[?]
1K
не знаю кому этот калл будет нужен, мб кому нибудь пригодится
Пожалуйста, авторизуйтесь для просмотра ссылки.


Hud:
/* Decompiler 316ms, total 617ms, lines 696 */
package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
   name = "Hud",
   type = Type.Render
)
public class HudFunction extends Module {
   public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
   public final BooleanOption glowing = new BooleanOption("Свечение", true);
   public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
      return this.elements.get(1);
   });
   public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
      return this.elements.get(1);
   });
   public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
   public final float offs = 0.0F;
   private float perc;
   final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
   public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
   private float heightDynamic = 0.0F;
   private int activeModules = 0;
   public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
   private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
   private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
   public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
   private int activeStaff = 0;
   private float hDynam = 0.0F;
   private float widthDynamic = 0.0F;
   private float nameWidth = 0.0F;
   List<HudFunction.StaffPlayer> staffPlayers = new ArrayList();
   public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
   public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
   private float hDynamic = 0.0F;
   private int activePotions = 0;
   List<Module> sortedFunctions = new ArrayList();
   TimerUtil delay = new TimerUtil();
   float health = 0.0F;
   public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
   private final Animation targetHudAnimation = new EaseBackIn(200, 1.0D, 1.5F);
   private PlayerEntity target = null;
   private double scale = 0.0D;

   public HudFunction() {
      this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
   }

   public void onEvent(Event event) {
      if (event instanceof EventUpdate && this.elements.get(2)) {
         this.staffPlayers.clear();
         Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

         label33:
         while(true) {
            ScorePlayerTeam team;
            String name;
            do {
               do {
                  if (!var2.hasNext()) {
                     break label33;
                  }

                  team = (ScorePlayerTeam)var2.next();
                  name = team.getMembershipCollection().toString();
                  name = name.substring(1, name.length() - 1);
               } while(!this.namePattern.matcher(name).matches());
            } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

            this.staffPlayers.add(new HudFunction.StaffPlayer(name, team.getPrefix()));
         }
      }

      if (event instanceof EventRender) {
         EventRender eventRender = (EventRender)event;
         if (eventRender.isRender2D()) {
            this.handleRender(eventRender);
            this.renderTimer(eventRender.matrixStack, 5, true);
         }
      }

   }

   private void handleRender(EventRender renderEvent) {
      MatrixStack stack = renderEvent.matrixStack;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      if (this.elements.get(0)) {
         Minecraft var10001 = mc;
         String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
         String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
         StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
         StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
         StyledFont medium2 = Fonts.sfbold[15];
         StyledFont texts = Fonts.msBold[19];
         float x2 = 5.0F;
         float y2 = 5.0F;
         float titleWidth = medium2.getWidth(title) + 5.0F;
         String var18 = gradientText2.getString();
         float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
         float titleHeight2 = 12.0F;
         float titleWidth3 = 13.0F;
         float titleHeight3 = 13.0F;
         Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
         Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         medium2.drawString(stack, gradientText2, 24.0D, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
         texts.drawString(stack, E, 8.0D, 8.0D, -1);
         medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
         medium2.drawString(stack, title, 8.0D, 25.0D, (new Color(255, 255, 255)).getRGB());
      }

      if (this.elements.get(1)) {
         this.renderArrayList(stack);
      }

      if (this.elements.get(2)) {
         this.onStaffListRender(stack, renderEvent);
      }

      if (this.elements.get(3)) {
         this.onPotionElementsRender(stack, renderEvent);
      }

      if (this.elements.get(5)) {
         this.onRenderTargetHUD(stack);
      }

      if (this.elements.get(6)) {
         this.onKeyBindsRender(stack);
      }

      if (this.elements.get(7)) {
         this.onInformationRender(stack, renderEvent);
      }

      if (this.elements.get(8)) {
         this.onArmorRender(renderEvent);
      }

   }

   private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
      float posX = this.timerHUD.getX();
      float posY = this.timerHUD.getY();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      int t_color = Color.WHITE.getRGB();
      StyledFont medium = Fonts.sfbold[15];
      float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
      float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
      this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
      String text = (int)(this.perc * 100.0F) + "%";
      float centr = (float)mc.getMainWindow().getScaledWidth();
      float width = 70.0F;
      int width2 = 60;
      this.timerHUD.setWidth(width);
      this.timerHUD.setHeight(20.0F);
      Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
      medium.drawString(matrixStack, "Timer", (double)posX + 22.5D, (double)(posY + 6.0F), t_color);
      Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
      Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5D, t_color);
   }

   private void onKeyBindsRender(MatrixStack stack) {
      float posX = this.keyBinds.getX();
      float posY = this.keyBinds.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
      int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeModules * offset);
      this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
      Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
      Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
      int index = 0;
      Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

      while(var17.hasNext()) {
         Module f = (Module)var17.next();
         if (f.bind != 0 && f.state) {
            String text = ClientUtil.getKey(f.bind);
            if (text != null) {
               String bindText = "[" + text.toUpperCase() + "]";
               float bindWidth = Fonts.sfbold[12].getWidth(bindText);
               Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               ++index;
            }
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeModules = index;
      this.keyBinds.setWidth((float)width);
      this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
   }

   private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
      float posX = this.staffList.getX();
      float posY = this.staffList.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      float width = Math.max(this.nameWidth + 40.0F, 100.0F);
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeStaff * offset);
      this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
      this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
      Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      int index = 0;
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
      if (!this.staffPlayers.isEmpty()) {
         for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
            HudFunction.StaffPlayer staff = (HudFunction.StaffPlayer)var16.next();
            String name = staff.getName();
            ITextComponent prefix = staff.getPrefix();
            String status = staff.getStatus().getString();
            Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
         }
      } else {
         this.nameWidth = 0.0F;
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeStaff = index;
      this.staffList.setWidth(this.widthDynamic);
      this.staffList.setHeight(this.hDynam + (float)headerHeight);
   }

   private String repairString(String input) {
      StringBuilder sb = new StringBuilder(input.length());
      char[] var3 = input.toCharArray();
      int var4 = var3.length;

      for(int var5 = 0; var5 < var4; ++var5) {
         char c = var3[var5];
         if (c >= '!' && c <= '~') {
            sb.append((char)(c - 'ﻠ'));
         } else {
            sb.append(c);
         }
      }

      return sb.toString();
   }

   private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
      float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
      Minecraft var10000 = mc;
      int var11 = (int)Minecraft.player.getPosX();
      Minecraft var10001 = mc;
      int var12 = (int)Minecraft.player.getPosY();
      Minecraft var10002 = mc;
      String pos = var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
      int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
      int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
      int x = 5;
      int backgroundY = (int)y - 2;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
      Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0D, (double)y, firstColor);
      Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
   }

   private void onArmorRender(EventRender renderEvent) {
      int count = 0;
      int i = 0;

      while(true) {
         Minecraft var10001 = mc;
         Minecraft var10000;
         if (i >= Minecraft.player.inventory.getSizeInventory()) {
            float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
            float yPos = (float)renderEvent.scaledResolution.scaledHeight();
            var10000 = mc;
            boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
            int off = totemInInv ? 5 : 0;
            var10000 = mc;
            if (Minecraft.player.isCreative()) {
               yPos += 17.0F;
            }

            var10000 = mc;

            for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
               ItemStack s = (ItemStack)var7.next();
            }

            if (totemInInv) {
            }

            return;
         }

         var10000 = mc;
         ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
         if (s.getItem() == Items.TOTEM_OF_UNDYING) {
            ++count;
         }

         ++i;
      }
   }

   private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
      float posX = this.potionStatus.getX();
      float posY = this.potionStatus.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activePotions * offset);
      this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
      Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
      int index = 0;
      Minecraft var10000 = mc;
      Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

      while(var16.hasNext()) {
         EffectInstance p = (EffectInstance)var16.next();
         if (p.isShowIcon()) {
            String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
            float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
            Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            ++index;
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activePotions = index;
      this.potionStatus.setWidth((float)width);
      this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
   }

   private void renderArrayList(MatrixStack stack) {
      float x = 5.0F;
      float y = 40.0F;
      float height = 10.0F;
      float yOffset = 0.0F;
      StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
      StyleManager styleManager = Managment.STYLE_MANAGER;
      if (this.delay.hasTimeElapsed(10000L)) {
         this.sortedFunctions = HudUtil.getSorted(font);
         this.delay.reset();
      }

      float gradientForce = 1.0F;
      int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
      int firstColor;
      int secondColor;
      Iterator var12;
      Module function;
      float width;
      if (this.glow.get()) {
         var12 = this.sortedFunctions.iterator();

         label113:
         while(true) {
            do {
               do {
                  if (!var12.hasNext()) {
                     yOffset = 0.0F;
                     break label113;
                  }

                  function = (Module)var12.next();
               } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01D) {
               width = font.getWidth(function.name) + 5.0F;
               firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
               secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
               RenderSystem.pushMatrix();
               RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
               RenderSystem.scalef(1.0F, function.animation, 1.0F);
               RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
               Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
               RenderSystem.popMatrix();
               yOffset += height * function.animation;
            }
         }
      }

      var12 = this.sortedFunctions.iterator();

      while(true) {
         do {
            do {
               if (!var12.hasNext()) {
                  yOffset = 0.0F;
                  var12 = this.sortedFunctions.iterator();

                  while(true) {
                     do {
                        do {
                           if (!var12.hasNext()) {
                              return;
                           }

                           function = (Module)var12.next();
                        } while(this.limitations.get(0) && function.category == Type.Render);
                     } while(this.limitations.get(1) && function.bind == 0);

                     function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                     if ((double)function.animation >= 0.01D) {
                        width = font.getWidth(function.name) + 4.0F;
                        firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                        secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                        RenderSystem.pushMatrix();
                        RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                        RenderSystem.scalef(1.0F, function.animation, 1.0F);
                        RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                        Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                        Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                        RenderSystem.popMatrix();
                        yOffset += height * function.animation;
                     }
                  }
               }

               function = (Module)var12.next();
            } while(this.limitations.get(0) && function.category == Type.Render);
         } while(this.limitations.get(1) && function.bind == 0);

         function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
         if ((double)function.animation >= 0.01D) {
            width = font.getWidth(function.name) + 5.0F;
            secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
            RenderSystem.pushMatrix();
            RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
            RenderSystem.scalef(1.0F, function.animation, 1.0F);
            RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
            Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
            font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
            RenderSystem.popMatrix();
            yOffset += height * function.animation;
         }
      }
   }

   private void onRenderTargetHUD(MatrixStack stack) {
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      this.target = this.getTarget(this.target);
      this.targetHudAnimation.setDuration(300);
      this.scale = this.targetHudAnimation.getOutput();
      if (this.scale == 0.0D) {
         this.target = null;
      }

      if (this.target != null) {
         String targetName = this.target.getName().getString();
         String substring = targetName.substring(0, Math.min(targetName.length(), 10));
         float nameWidth = Fonts.sfbold[18].getWidth(substring);
         float xPosition = this.targetHUD.getX();
         float yPosition = this.targetHUD.getY();
         float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
         float maxHeight = 30.0F;
         this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
         this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
         GlStateManager.pushMatrix();
         AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
         Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
         Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
         this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
         Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
         GlStateManager.popMatrix();
         this.targetHUD.setWidth(maxWidth);
         this.targetHUD.setHeight(30.0F);
      }
   }

   private void drawItemStack(float x, float y, float offset) {
      List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
      stackList.addAll((Collection)this.target.getArmorInventoryList());
      AtomicReference<Float> posX = new AtomicReference(x);
      stackList.stream().filter((stack) -> {
         return !stack.isEmpty();
      }).forEach((stack) -> {
         HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
      });
   }

   private PlayerEntity getTarget(PlayerEntity nullTarget) {
      PlayerEntity target = nullTarget;
      if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
         target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else if (mc.currentScreen instanceof ChatScreen) {
         Minecraft var10000 = mc;
         target = Minecraft.player;
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else {
         this.targetHudAnimation.setDirection(Direction.BACKWARDS);
      }

      return (PlayerEntity)target;
   }

   private class StaffPlayer {
      String name;
      ITextComponent prefix;
      HudFunction.Status status;

      private StaffPlayer(String name, ITextComponent prefix) {
         this.name = name;
         this.prefix = prefix;
         this.updateStatus();
      }

      private void updateStatus() {
         Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

         AbstractClientPlayerEntity player;
         do {
            if (!var1.hasNext()) {
               var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

               NetworkPlayerInfo info;
               do {
                  if (!var1.hasNext()) {
                     this.status = HudFunction.Status.VANISHED;
                     return;
                  }

                  info = (NetworkPlayerInfo)var1.next();
               } while(!info.getGameProfile().getName().equals(this.name));

               if (info.getGameType() == GameType.SPECTATOR) {
                  this.status = HudFunction.Status.SPEC;
                  return;
               }

               this.status = HudFunction.Status.NONE;
               return;
            }

            player = (AbstractClientPlayerEntity)var1.next();
         } while(!player.getNameClear().equals(this.name));

         this.status = HudFunction.Status.NEAR;
      }

      public String getName() {
         return this.name;
      }

      public ITextComponent getPrefix() {
         return this.prefix;
      }

      public HudFunction.Status getStatus() {
         return this.status;
      }
   }

   public static enum Status {
      NONE(""),
      NEAR(" §e[Near]"),
      SPEC(" §c[Spec]"),
      VANISHED(" §6[Vanish]");

      final String string;

      private Status(String string) {
         this.string = string;
      }

      public String getString() {
         return this.string;
      }

      // $FF: synthetic method
      private static HudFunction.Status[] $values() {
         return new HudFunction.Status[]{NONE, NEAR, SPEC, VANISHED};
      }
   }
}
АААаа боже вытащил с оупен сурс 0.3 ты 0.4 осиль папаша:roflanEbalo:
даже задекомп норм не осилил вары визде
 
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2022
Сообщения
33
Реакции[?]
1
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
17 Апр 2023
Сообщения
222
Реакции[?]
2
Поинты[?]
0
АААаа боже вытащил с оупен сурс 0.3 ты 0.4 осиль папаша:roflanEbalo:
даже задекомп норм не осилил вары визде
pon:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
    name = "Hud",
    type = Type.Render
)
public class HudFunction extends Module {
    public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
    public final BooleanOption glowing = new BooleanOption("Свечение", true);
    public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
        return this.elements.get(1);
    });
    public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
        return this.elements.get(1);
    });
    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
    public final float offs = 0.0F;
    private float perc;
    final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
    private float heightDynamic = 0.0F;
    private int activeModules = 0;
    public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
    private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
    private int activeStaff = 0;
    private float hDynam = 0.0F;
    private float widthDynamic = 0.0F;
    private float nameWidth = 0.0F;
    List<StaffPlayer> staffPlayers = new ArrayList();
    public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
    private float hDynamic = 0.0F;
    private int activePotions = 0;
    List<Module> sortedFunctions = new ArrayList();
    TimerUtil delay = new TimerUtil();
    float health = 0.0F;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1.0, 1.5F);
    private PlayerEntity target = null;
    private double scale = 0.0;

    public HudFunction() {
        this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
    }

    public void onEvent(Event event) {
        if (event instanceof EventUpdate && this.elements.get(2)) {
            this.staffPlayers.clear();
            Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

            label33:
            while(true) {
                ScorePlayerTeam team;
                String name;
                do {
                    do {
                        if (!var2.hasNext()) {
                            break label33;
                        }

                        team = (ScorePlayerTeam)var2.next();
                        name = team.getMembershipCollection().toString();
                        name = name.substring(1, name.length() - 1);
                    } while(!this.namePattern.matcher(name).matches());
                } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

                this.staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
            }
        }

        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                this.handleRender(eventRender);
                this.renderTimer(eventRender.matrixStack, 5, true);
            }
        }

    }

    private void handleRender(EventRender renderEvent) {
        MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        if (this.elements.get(0)) {
            Minecraft var10001 = mc;
            String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
            String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
            StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
            StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
            StyledFont medium2 = Fonts.sfbold[15];
            StyledFont texts = Fonts.msBold[19];
            float x2 = 5.0F;
            float y2 = 5.0F;
            float titleWidth = medium2.getWidth(title) + 5.0F;
            String var18 = gradientText2.getString();
            float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
            float titleHeight2 = 12.0F;
            float titleWidth3 = 13.0F;
            float titleHeight3 = 13.0F;
            Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
            Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            medium2.drawString(stack, gradientText2, 24.0, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
            texts.drawString(stack, E, 8.0, 8.0, -1);
            medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
            medium2.drawString(stack, title, 8.0, 25.0, (new Color(255, 255, 255)).getRGB());
        }

        if (this.elements.get(1)) {
            this.renderArrayList(stack);
        }

        if (this.elements.get(2)) {
            this.onStaffListRender(stack, renderEvent);
        }

        if (this.elements.get(3)) {
            this.onPotionElementsRender(stack, renderEvent);
        }

        if (this.elements.get(5)) {
            this.onRenderTargetHUD(stack);
        }

        if (this.elements.get(6)) {
            this.onKeyBindsRender(stack);
        }

        if (this.elements.get(7)) {
            this.onInformationRender(stack, renderEvent);
        }

        if (this.elements.get(8)) {
            this.onArmorRender(renderEvent);
        }

    }

    private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
        float posX = this.timerHUD.getX();
        float posY = this.timerHUD.getY();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        int t_color = Color.WHITE.getRGB();
        StyledFont medium = Fonts.sfbold[15];
        float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
        float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
        this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
        String text = (int)(this.perc * 100.0F) + "%";
        float centr = (float)mc.getMainWindow().getScaledWidth();
        float width = 70.0F;
        int width2 = 60;
        this.timerHUD.setWidth(width);
        this.timerHUD.setHeight(20.0F);
        Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
        medium.drawString(matrixStack, "Timer", (double)posX + 22.5, (double)(posY + 6.0F), t_color);
        Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
        Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5, t_color);
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
        int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activeModules * offset);
        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
        Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
        Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
        int index = 0;
        Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while(var17.hasNext()) {
            Module f = (Module)var17.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = "[" + text.toUpperCase() + "]";
                    float bindWidth = Fonts.sfbold[12].getWidth(bindText);
                    Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                    Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                    ++index;
                }
            }
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activeModules = index;
        this.keyBinds.setWidth((float)width);
        this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
    }

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = this.staffList.getX();
        float posY = this.staffList.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(this.nameWidth + 40.0F, 100.0F);
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activeStaff * offset);
        this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
        Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
        Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
        if (!this.staffPlayers.isEmpty()) {
            for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
                StaffPlayer staff = (StaffPlayer)var16.next();
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status = staff.getStatus().getString();
                Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
            }
        } else {
            this.nameWidth = 0.0F;
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffList.setWidth(this.widthDynamic);
        this.staffList.setHeight(this.hDynam + (float)headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        char[] var3 = input.toCharArray();
        int var4 = var3.length;

        for(int var5 = 0; var5 < var4; ++var5) {
            char c = var3[var5];
            if (c >= '!' && c <= '~') {
                sb.append((char)(c - 'ﻠ'));
            } else {
                sb.append(c);
            }
        }

        return sb.toString();
    }

    private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
        float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        Minecraft var10000 = mc;
        int var11 = (int)Minecraft.player.getPosX();
        Minecraft var10001 = mc;
        int var12 = (int)Minecraft.player.getPosY();
        Minecraft var10002 = mc;
        String pos = "" + var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
        int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
        int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
        int x = 5;
        int backgroundY = (int)y - 2;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
        Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0, (double)y, firstColor);
        Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
    }

    private void onArmorRender(EventRender renderEvent) {
        int count = 0;
        int i = 0;

        while(true) {
            Minecraft var10001 = mc;
            Minecraft var10000;
            if (i >= Minecraft.player.inventory.getSizeInventory()) {
                float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
                float yPos = (float)renderEvent.scaledResolution.scaledHeight();
                var10000 = mc;
                boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
                int off = totemInInv ? 5 : 0;
                var10000 = mc;
                if (Minecraft.player.isCreative()) {
                    yPos += 17.0F;
                }

                var10000 = mc;

                for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
                    ItemStack s = (ItemStack)var7.next();
                }

                if (totemInInv) {
                }

                return;
            }

            var10000 = mc;
            ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                ++count;
            }

            ++i;
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activePotions * offset);
        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
        Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
        Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
        int index = 0;
        Minecraft var10000 = mc;
        Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

        while(var16.hasNext()) {
            EffectInstance p = (EffectInstance)var16.next();
            if (p.isShowIcon()) {
                String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
                float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
                Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                ++index;
            }
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activePotions = index;
        this.potionStatus.setWidth((float)width);
        this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
    }

    private void renderArrayList(MatrixStack stack) {
        float x = 5.0F;
        float y = 40.0F;
        float height = 10.0F;
        float yOffset = 0.0F;
        StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;
        if (this.delay.hasTimeElapsed(10000L)) {
            this.sortedFunctions = HudUtil.getSorted(font);
            this.delay.reset();
        }

        float gradientForce = 1.0F;
        int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
        int firstColor;
        int secondColor;
        Iterator var12;
        Module function;
        float width;
        if (this.glow.get()) {
            var12 = this.sortedFunctions.iterator();

            label113:
            while(true) {
                do {
                    do {
                        if (!var12.hasNext()) {
                            yOffset = 0.0F;
                            break label113;
                        }

                        function = (Module)var12.next();
                    } while(this.limitations.get(0) && function.category == Type.Render);
                } while(this.limitations.get(1) && function.bind == 0);

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                if ((double)function.animation >= 0.01) {
                    width = font.getWidth(function.name) + 5.0F;
                    firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                    RenderSystem.scalef(1.0F, function.animation, 1.0F);
                    RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                    Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();
                    yOffset += height * function.animation;
                }
            }
        }

        var12 = this.sortedFunctions.iterator();

        while(true) {
            do {
                do {
                    if (!var12.hasNext()) {
                        yOffset = 0.0F;
                        var12 = this.sortedFunctions.iterator();

                        while(true) {
                            do {
                                do {
                                    if (!var12.hasNext()) {
                                        return;
                                    }

                                    function = (Module)var12.next();
                                } while(this.limitations.get(0) && function.category == Type.Render);
                            } while(this.limitations.get(1) && function.bind == 0);

                            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                            if ((double)function.animation >= 0.01) {
                                width = font.getWidth(function.name) + 4.0F;
                                firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                                secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                                RenderSystem.pushMatrix();
                                RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                                RenderSystem.scalef(1.0F, function.animation, 1.0F);
                                RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                                Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                                Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                                RenderSystem.popMatrix();
                                yOffset += height * function.animation;
                            }
                        }
                    }

                    function = (Module)var12.next();
                } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01) {
                width = font.getWidth(function.name) + 5.0F;
                secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                RenderSystem.scalef(1.0F, function.animation, 1.0F);
                RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
                RenderSystem.popMatrix();
                yOffset += height * function.animation;
            }
        }
    }

    private void onRenderTargetHUD(MatrixStack stack) {
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        this.target = this.getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = this.targetHudAnimation.getOutput();
        if (this.scale == 0.0) {
            this.target = null;
        }

        if (this.target != null) {
            String targetName = this.target.getName().getString();
            String substring = targetName.substring(0, Math.min(targetName.length(), 10));
            float nameWidth = Fonts.sfbold[18].getWidth(substring);
            float xPosition = this.targetHUD.getX();
            float yPosition = this.targetHUD.getY();
            float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
            float maxHeight = 30.0F;
            this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
            this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
            GlStateManager.pushMatrix();
            AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
            Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
            Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
            Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
            Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
            this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
            Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
            GlStateManager.popMatrix();
            this.targetHUD.setWidth(maxWidth);
            this.targetHUD.setHeight(30.0F);
        }
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
        stackList.addAll((Collection)this.target.getArmorInventoryList());
        AtomicReference<Float> posX = new AtomicReference(x);
        stackList.stream().filter((stack) -> {
            return !stack.isEmpty();
        }).forEach((stack) -> {
            HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
        });
    }

    private PlayerEntity getTarget(PlayerEntity nullTarget) {
        PlayerEntity target = nullTarget;
        if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
            target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
            this.targetHudAnimation.setDirection(Direction.FORWARDS);
        } else if (mc.currentScreen instanceof ChatScreen) {
            Minecraft var10000 = mc;
            target = Minecraft.player;
            this.targetHudAnimation.setDirection(Direction.FORWARDS);
        } else {
            this.targetHudAnimation.setDirection(Direction.BACKWARDS);
        }

        return (PlayerEntity)target;
    }

    private class StaffPlayer {
        String name;
        ITextComponent prefix;
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;
            this.updateStatus();
        }

        private void updateStatus() {
            Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

            AbstractClientPlayerEntity player;
            do {
                if (!var1.hasNext()) {
                    var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

                    NetworkPlayerInfo info;
                    do {
                        if (!var1.hasNext()) {
                            this.status = HudFunction.Status.VANISHED;
                            return;
                        }

                        info = (NetworkPlayerInfo)var1.next();
                    } while(!info.getGameProfile().getName().equals(this.name));

                    if (info.getGameType() == GameType.SPECTATOR) {
                        this.status = HudFunction.Status.SPEC;
                        return;
                    }

                    this.status = HudFunction.Status.NONE;
                    return;
                }

                player = (AbstractClientPlayerEntity)var1.next();
            } while(!player.getNameClear().equals(this.name));

            this.status = HudFunction.Status.NEAR;
        }

        public String getName() {
            return this.name;
        }

        public ITextComponent getPrefix() {
            return this.prefix;
        }

        public Status getStatus() {
            return this.status;
        }
    }

    public static enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        final String string;

        private Status(String string) {
            this.string = string;
        }

        public String getString() {
            return this.string;
        }
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июн 2022
Сообщения
291
Реакции[?]
13
Поинты[?]
4K
pon:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
    name = "Hud",
    type = Type.Render
)
public class HudFunction extends Module {
    public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
    public final BooleanOption glowing = new BooleanOption("Свечение", true);
    public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
        return this.elements.get(1);
    });
    public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
        return this.elements.get(1);
    });
    public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
    public final float offs = 0.0F;
    private float perc;
    final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
    public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
    private float heightDynamic = 0.0F;
    private int activeModules = 0;
    public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
    private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
    private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
    public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
    private int activeStaff = 0;
    private float hDynam = 0.0F;
    private float widthDynamic = 0.0F;
    private float nameWidth = 0.0F;
    List<StaffPlayer> staffPlayers = new ArrayList();
    public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
    public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
    private float hDynamic = 0.0F;
    private int activePotions = 0;
    List<Module> sortedFunctions = new ArrayList();
    TimerUtil delay = new TimerUtil();
    float health = 0.0F;
    public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
    private final Animation targetHudAnimation = new EaseBackIn(200, 1.0, 1.5F);
    private PlayerEntity target = null;
    private double scale = 0.0;

    public HudFunction() {
        this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
    }

    public void onEvent(Event event) {
        if (event instanceof EventUpdate && this.elements.get(2)) {
            this.staffPlayers.clear();
            Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

            label33:
            while(true) {
                ScorePlayerTeam team;
                String name;
                do {
                    do {
                        if (!var2.hasNext()) {
                            break label33;
                        }

                        team = (ScorePlayerTeam)var2.next();
                        name = team.getMembershipCollection().toString();
                        name = name.substring(1, name.length() - 1);
                    } while(!this.namePattern.matcher(name).matches());
                } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

                this.staffPlayers.add(new StaffPlayer(name, team.getPrefix()));
            }
        }

        if (event instanceof EventRender eventRender) {
            if (eventRender.isRender2D()) {
                this.handleRender(eventRender);
                this.renderTimer(eventRender.matrixStack, 5, true);
            }
        }

    }

    private void handleRender(EventRender renderEvent) {
        MatrixStack stack = renderEvent.matrixStack;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        if (this.elements.get(0)) {
            Minecraft var10001 = mc;
            String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
            String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
            StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
            StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
            StyledFont medium2 = Fonts.sfbold[15];
            StyledFont texts = Fonts.msBold[19];
            float x2 = 5.0F;
            float y2 = 5.0F;
            float titleWidth = medium2.getWidth(title) + 5.0F;
            String var18 = gradientText2.getString();
            float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
            float titleHeight2 = 12.0F;
            float titleWidth3 = 13.0F;
            float titleHeight3 = 13.0F;
            Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
            Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            medium2.drawString(stack, gradientText2, 24.0, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
            texts.drawString(stack, E, 8.0, 8.0, -1);
            medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
            medium2.drawString(stack, title, 8.0, 25.0, (new Color(255, 255, 255)).getRGB());
        }

        if (this.elements.get(1)) {
            this.renderArrayList(stack);
        }

        if (this.elements.get(2)) {
            this.onStaffListRender(stack, renderEvent);
        }

        if (this.elements.get(3)) {
            this.onPotionElementsRender(stack, renderEvent);
        }

        if (this.elements.get(5)) {
            this.onRenderTargetHUD(stack);
        }

        if (this.elements.get(6)) {
            this.onKeyBindsRender(stack);
        }

        if (this.elements.get(7)) {
            this.onInformationRender(stack, renderEvent);
        }

        if (this.elements.get(8)) {
            this.onArmorRender(renderEvent);
        }

    }

    private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
        float posX = this.timerHUD.getX();
        float posY = this.timerHUD.getY();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        int t_color = Color.WHITE.getRGB();
        StyledFont medium = Fonts.sfbold[15];
        float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
        float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
        this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
        String text = (int)(this.perc * 100.0F) + "%";
        float centr = (float)mc.getMainWindow().getScaledWidth();
        float width = 70.0F;
        int width2 = 60;
        this.timerHUD.setWidth(width);
        this.timerHUD.setHeight(20.0F);
        Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
        medium.drawString(matrixStack, "Timer", (double)posX + 22.5, (double)(posY + 6.0F), t_color);
        Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
        Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
        medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5, t_color);
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
        int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activeModules * offset);
        this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
        Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
        Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
        int index = 0;
        Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

        while(var17.hasNext()) {
            Module f = (Module)var17.next();
            if (f.bind != 0 && f.state) {
                String text = ClientUtil.getKey(f.bind);
                if (text != null) {
                    String bindText = "[" + text.toUpperCase() + "]";
                    float bindWidth = Fonts.sfbold[12].getWidth(bindText);
                    Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                    Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                    ++index;
                }
            }
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activeModules = index;
        this.keyBinds.setWidth((float)width);
        this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
    }

    private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
        float posX = this.staffList.getX();
        float posY = this.staffList.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        float width = Math.max(this.nameWidth + 40.0F, 100.0F);
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activeStaff * offset);
        this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
        Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
        Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
        if (!this.staffPlayers.isEmpty()) {
            for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
                StaffPlayer staff = (StaffPlayer)var16.next();
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status = staff.getStatus().getString();
                Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
            }
        } else {
            this.nameWidth = 0.0F;
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffList.setWidth(this.widthDynamic);
        this.staffList.setHeight(this.hDynam + (float)headerHeight);
    }

    private String repairString(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        char[] var3 = input.toCharArray();
        int var4 = var3.length;

        for(int var5 = 0; var5 < var4; ++var5) {
            char c = var3[var5];
            if (c >= '!' && c <= '~') {
                sb.append((char)(c - 'ﻠ'));
            } else {
                sb.append(c);
            }
        }

        return sb.toString();
    }

    private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
        float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
        Minecraft var10000 = mc;
        int var11 = (int)Minecraft.player.getPosX();
        Minecraft var10001 = mc;
        int var12 = (int)Minecraft.player.getPosY();
        Minecraft var10002 = mc;
        String pos = "" + var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
        int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
        int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
        int x = 5;
        int backgroundY = (int)y - 2;
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
        Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0, (double)y, firstColor);
        Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
    }

    private void onArmorRender(EventRender renderEvent) {
        int count = 0;
        int i = 0;

        while(true) {
            Minecraft var10001 = mc;
            Minecraft var10000;
            if (i >= Minecraft.player.inventory.getSizeInventory()) {
                float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
                float yPos = (float)renderEvent.scaledResolution.scaledHeight();
                var10000 = mc;
                boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
                int off = totemInInv ? 5 : 0;
                var10000 = mc;
                if (Minecraft.player.isCreative()) {
                    yPos += 17.0F;
                }

                var10000 = mc;

                for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
                    ItemStack s = (ItemStack)var7.next();
                }

                if (totemInInv) {
                }

                return;
            }

            var10000 = mc;
            ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
            if (s.getItem() == Items.TOTEM_OF_UNDYING) {
                ++count;
            }

            ++i;
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int roundDegree = 4;
        int headerHeight = 14;
        int width = 100;
        int padding = 5;
        int offset = 10;
        int headerColor = (new Color(0, 0, 0, 244)).getRGB();
        int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        float height = (float)(this.activePotions * offset);
        this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
        Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
        Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
        Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
        Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
        Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
        int index = 0;
        Minecraft var10000 = mc;
        Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

        while(var16.hasNext()) {
            EffectInstance p = (EffectInstance)var16.next();
            if (p.isShowIcon()) {
                String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
                float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
                Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
                ++index;
            }
        }

        SmartScissor.unset();
        SmartScissor.pop();
        this.activePotions = index;
        this.potionStatus.setWidth((float)width);
        this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
    }

    private void renderArrayList(MatrixStack stack) {
        float x = 5.0F;
        float y = 40.0F;
        float height = 10.0F;
        float yOffset = 0.0F;
        StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
        StyleManager styleManager = Managment.STYLE_MANAGER;
        if (this.delay.hasTimeElapsed(10000L)) {
            this.sortedFunctions = HudUtil.getSorted(font);
            this.delay.reset();
        }

        float gradientForce = 1.0F;
        int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
        int firstColor;
        int secondColor;
        Iterator var12;
        Module function;
        float width;
        if (this.glow.get()) {
            var12 = this.sortedFunctions.iterator();

            label113:
            while(true) {
                do {
                    do {
                        if (!var12.hasNext()) {
                            yOffset = 0.0F;
                            break label113;
                        }

                        function = (Module)var12.next();
                    } while(this.limitations.get(0) && function.category == Type.Render);
                } while(this.limitations.get(1) && function.bind == 0);

                function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                if ((double)function.animation >= 0.01) {
                    width = font.getWidth(function.name) + 5.0F;
                    firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                    secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                    RenderSystem.pushMatrix();
                    RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                    RenderSystem.scalef(1.0F, function.animation, 1.0F);
                    RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                    Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
                    RenderSystem.popMatrix();
                    yOffset += height * function.animation;
                }
            }
        }

        var12 = this.sortedFunctions.iterator();

        while(true) {
            do {
                do {
                    if (!var12.hasNext()) {
                        yOffset = 0.0F;
                        var12 = this.sortedFunctions.iterator();

                        while(true) {
                            do {
                                do {
                                    if (!var12.hasNext()) {
                                        return;
                                    }

                                    function = (Module)var12.next();
                                } while(this.limitations.get(0) && function.category == Type.Render);
                            } while(this.limitations.get(1) && function.bind == 0);

                            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                            if ((double)function.animation >= 0.01) {
                                width = font.getWidth(function.name) + 4.0F;
                                firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                                secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                                RenderSystem.pushMatrix();
                                RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                                RenderSystem.scalef(1.0F, function.animation, 1.0F);
                                RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                                Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                                Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                                RenderSystem.popMatrix();
                                yOffset += height * function.animation;
                            }
                        }
                    }

                    function = (Module)var12.next();
                } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01) {
                width = font.getWidth(function.name) + 5.0F;
                secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                RenderSystem.pushMatrix();
                RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                RenderSystem.scalef(1.0F, function.animation, 1.0F);
                RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
                font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
                RenderSystem.popMatrix();
                yOffset += height * function.animation;
            }
        }
    }

    private void onRenderTargetHUD(MatrixStack stack) {
        int firstColor = ColorUtil.getColorStyle(0.0F);
        int secondColor = ColorUtil.getColorStyle(90.0F);
        this.target = this.getTarget(this.target);
        this.targetHudAnimation.setDuration(300);
        this.scale = this.targetHudAnimation.getOutput();
        if (this.scale == 0.0) {
            this.target = null;
        }

        if (this.target != null) {
            String targetName = this.target.getName().getString();
            String substring = targetName.substring(0, Math.min(targetName.length(), 10));
            float nameWidth = Fonts.sfbold[18].getWidth(substring);
            float xPosition = this.targetHUD.getX();
            float yPosition = this.targetHUD.getY();
            float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
            float maxHeight = 30.0F;
            this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
            this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
            GlStateManager.pushMatrix();
            AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
            Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
            Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
            Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
            Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
            Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
            Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
            this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
            Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
            GlStateManager.popMatrix();
            this.targetHUD.setWidth(maxWidth);
            this.targetHUD.setHeight(30.0F);
        }
    }

    private void drawItemStack(float x, float y, float offset) {
        List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
        stackList.addAll((Collection)this.target.getArmorInventoryList());
        AtomicReference<Float> posX = new AtomicReference(x);
        stackList.stream().filter((stack) -> {
            return !stack.isEmpty();
        }).forEach((stack) -> {
            HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
        });
    }

    private PlayerEntity getTarget(PlayerEntity nullTarget) {
        PlayerEntity target = nullTarget;
        if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
            target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
            this.targetHudAnimation.setDirection(Direction.FORWARDS);
        } else if (mc.currentScreen instanceof ChatScreen) {
            Minecraft var10000 = mc;
            target = Minecraft.player;
            this.targetHudAnimation.setDirection(Direction.FORWARDS);
        } else {
            this.targetHudAnimation.setDirection(Direction.BACKWARDS);
        }

        return (PlayerEntity)target;
    }

    private class StaffPlayer {
        String name;
        ITextComponent prefix;
        Status status;

        private StaffPlayer(String name, ITextComponent prefix) {
            this.name = name;
            this.prefix = prefix;
            this.updateStatus();
        }

        private void updateStatus() {
            Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

            AbstractClientPlayerEntity player;
            do {
                if (!var1.hasNext()) {
                    var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

                    NetworkPlayerInfo info;
                    do {
                        if (!var1.hasNext()) {
                            this.status = HudFunction.Status.VANISHED;
                            return;
                        }

                        info = (NetworkPlayerInfo)var1.next();
                    } while(!info.getGameProfile().getName().equals(this.name));

                    if (info.getGameType() == GameType.SPECTATOR) {
                        this.status = HudFunction.Status.SPEC;
                        return;
                    }

                    this.status = HudFunction.Status.NONE;
                    return;
                }

                player = (AbstractClientPlayerEntity)var1.next();
            } while(!player.getNameClear().equals(this.name));

            this.status = HudFunction.Status.NEAR;
        }

        public String getName() {
            return this.name;
        }

        public ITextComponent getPrefix() {
            return this.prefix;
        }

        public Status getStatus() {
            return this.status;
        }
    }

    public static enum Status {
        NONE(""),
        NEAR(" §e[Near]"),
        SPEC(" §c[Spec]"),
        VANISHED(" §6[Vanish]");

        final String string;

        private Status(String string) {
            this.string = string;
        }

        public String getString() {
            return this.string;
        }
    }
}
Там настолько хорошая обфа что ее сняли Фернфловером:roflanEbalo:
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2024
Сообщения
69
Реакции[?]
1
Поинты[?]
0
Ну у тебя умничать точно не получается. Ты 5 из 6 слов пишешь неверно. Я зашёл к тебе в дс, указал на твои грамматические ошибки, а ты меня забанил. + Хватит выёбываться своей защитой, тебе её дал кореш, ну точнее он тебе её накладывает, самой обф у тебя нет. Эта обф стоит 300р. Сиди и не выёбывайся. Дс чела у которого купить эту обф (no ad) - kwishclientbust
 
read only ambassador
Пользователь
Статус
Оффлайн
Регистрация
28 Июн 2022
Сообщения
626
Реакции[?]
110
Поинты[?]
14K
Ну у тебя умничать точно не получается. Ты 5 из 6 слов пишешь неверно. Я зашёл к тебе в дс, указал на твои грамматические ошибки, а ты меня забанил. + Хватит выёбываться своей защитой, тебе её дал кореш, ну точнее он тебе её накладывает, самой обф у тебя нет. Эта обф стоит 300р. Сиди и не выёбывайся. Дс чела у которого купить эту обф (no ad) - kwishclientbust
а можешь его на один дс сервер позвать? пару вопросов есть

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Начинающий
Статус
Оффлайн
Регистрация
5 Апр 2023
Сообщения
5
Реакции[?]
0
Поинты[?]
0
не знаю кому этот калл будет нужен, мб кому нибудь пригодится
Пожалуйста, авторизуйтесь для просмотра ссылки.


Hud:
/* Decompiler 316ms, total 617ms, lines 696 */
package ua.Epfirium.modules.impl.render;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.EffectUtils;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Team;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.world.GameType;
import ua.Epfirium.ClientInfo;
import ua.Epfirium.Initilization;
import ua.Epfirium.events.Event;
import ua.Epfirium.events.impl.player.EventUpdate;
import ua.Epfirium.events.impl.render.EventRender;
import ua.Epfirium.managment.Managment;
import ua.Epfirium.modules.Module;
import ua.Epfirium.modules.ModuleAnnotation;
import ua.Epfirium.modules.Type;
import ua.Epfirium.modules.settings.Setting;
import ua.Epfirium.modules.settings.imp.BooleanOption;
import ua.Epfirium.modules.settings.imp.MultiBoxSetting;
import ua.Epfirium.modules.settings.imp.SliderSetting;
import ua.Epfirium.ui.midnight.StyleManager;
import ua.Epfirium.util.ClientUtil;
import ua.Epfirium.util.IMinecraft;
import ua.Epfirium.util.animations.Animation;
import ua.Epfirium.util.animations.Direction;
import ua.Epfirium.util.animations.impl.EaseBackIn;
import ua.Epfirium.util.drag.Dragging;
import ua.Epfirium.util.font.Fonts;
import ua.Epfirium.util.font.styled.StyledFont;
import ua.Epfirium.util.misc.HudUtil;
import ua.Epfirium.util.misc.TimerUtil;
import ua.Epfirium.util.render.ColorUtil;
import ua.Epfirium.util.render.SmartScissor;
import ua.Epfirium.util.render.RenderUtil.Render2D;
import ua.Epfirium.util.render.animation.AnimationMath;

@ModuleAnnotation(
   name = "Hud",
   type = Type.Render
)
public class HudFunction extends Module {
   public MultiBoxSetting elements = new MultiBoxSetting("Элементы", new BooleanOption[]{new BooleanOption("Логотип", true), new BooleanOption("Список модулей", true), new BooleanOption("Список модераторов", true), new BooleanOption("Список зелий", true), new BooleanOption("Уведомления", true), new BooleanOption("Таргет Худ", true), new BooleanOption("Кейбинды", true), new BooleanOption("Корды", true), new BooleanOption("Броня", true)});
   public final BooleanOption glowing = new BooleanOption("Свечение", true);
   public MultiBoxSetting limitations = (new MultiBoxSetting("Ограничения", new BooleanOption[]{new BooleanOption("Скрывать визуалы", true), new BooleanOption("Только бинды", false)})).setVisible(() -> {
      return this.elements.get(1);
   });
   public BooleanOption glow = (new BooleanOption("Подсветка списка модулей", true)).setVisible(() -> {
      return this.elements.get(1);
   });
   public SliderSetting fontSize = new SliderSetting("Размер шрифта", 13.0F, 13.0F, 13.0F, 13.0F);
   public final float offs = 0.0F;
   private float perc;
   final Dragging timerHUD = Initilization.createDrag(this, "TimerHUD-new", 10.0F, 400.0F);
   public Dragging keyBinds = Initilization.createDrag(this, "KeyBinds", 200.0F, 50.0F);
   private float heightDynamic = 0.0F;
   private int activeModules = 0;
   public CopyOnWriteArrayList<TextComponent> components = new CopyOnWriteArrayList();
   private final Pattern namePattern = Pattern.compile("^\\w{3,16}$");
   private final Pattern prefixMatches = Pattern.compile(".[I](mod|der|adm|help|wne|мод|хелп|помо|адм|владе|отри|таф|taf|curat|курато|dev|раз|supp|сапп|yt|ютуб).[/I]");
   public Dragging staffList = Initilization.createDrag(this, "StaffList", 350.0F, 50.0F);
   private int activeStaff = 0;
   private float hDynam = 0.0F;
   private float widthDynamic = 0.0F;
   private float nameWidth = 0.0F;
   List<HudFunction.StaffPlayer> staffPlayers = new ArrayList();
   public Dragging events = Initilization.createDrag(this, "events", 213.0F, 108.0F);
   public Dragging potionStatus = Initilization.createDrag(this, "PotionStatus", 200.0F, 50.0F);
   private float hDynamic = 0.0F;
   private int activePotions = 0;
   List<Module> sortedFunctions = new ArrayList();
   TimerUtil delay = new TimerUtil();
   float health = 0.0F;
   public final Dragging targetHUD = Initilization.createDrag(this, "TargetHUD", 500.0F, 50.0F);
   private final Animation targetHudAnimation = new EaseBackIn(200, 1.0D, 1.5F);
   private PlayerEntity target = null;
   private double scale = 0.0D;

   public HudFunction() {
      this.addSettings(new Setting[]{this.elements, this.limitations, this.glow});
   }

   public void onEvent(Event event) {
      if (event instanceof EventUpdate && this.elements.get(2)) {
         this.staffPlayers.clear();
         Iterator var2 = mc.world.getScoreboard().getTeams().stream().sorted(Comparator.comparing(Team::getName)).toList().iterator();

         label33:
         while(true) {
            ScorePlayerTeam team;
            String name;
            do {
               do {
                  if (!var2.hasNext()) {
                     break label33;
                  }

                  team = (ScorePlayerTeam)var2.next();
                  name = team.getMembershipCollection().toString();
                  name = name.substring(1, name.length() - 1);
               } while(!this.namePattern.matcher(name).matches());
            } while(!this.prefixMatches.matcher(this.repairString(team.getPrefix().getString().toLowerCase(Locale.ROOT))).matches() && !Managment.STAFF_MANAGER.isStaff(name));

            this.staffPlayers.add(new HudFunction.StaffPlayer(name, team.getPrefix()));
         }
      }

      if (event instanceof EventRender) {
         EventRender eventRender = (EventRender)event;
         if (eventRender.isRender2D()) {
            this.handleRender(eventRender);
            this.renderTimer(eventRender.matrixStack, 5, true);
         }
      }

   }

   private void handleRender(EventRender renderEvent) {
      MatrixStack stack = renderEvent.matrixStack;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      if (this.elements.get(0)) {
         Minecraft var10001 = mc;
         String title2 = " | " + ClientInfo.version + " | " + Minecraft.debugFPS + " Fps";
         String title = "tps:20.0 | ms:" + HudUtil.calculatePing();
         StringTextComponent E = ClientUtil.gradient("E", firstColor, secondColor);
         StringTextComponent gradientText2 = ClientUtil.gradient("Epfirium", (new Color(255, 255, 255)).getRGB(), (new Color(255, 255, 255)).getRGB());
         StyledFont medium2 = Fonts.sfbold[15];
         StyledFont texts = Fonts.msBold[19];
         float x2 = 5.0F;
         float y2 = 5.0F;
         float titleWidth = medium2.getWidth(title) + 5.0F;
         String var18 = gradientText2.getString();
         float titleWidth2 = medium2.getWidth(var18 + title2) + 6.0F;
         float titleHeight2 = 12.0F;
         float titleWidth3 = 13.0F;
         float titleHeight3 = 13.0F;
         Render2D.drawShadow(5.0F, 5.0F, 13.0F, 13.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 5.0F, 13.0F, 13.0F, 2.5F, (new Color(1, 0, 3)).getRGB());
         Render2D.drawShadow(21.0F, 5.0F, titleWidth2, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(21.0F, 5.0F, titleWidth2, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawShadow(5.0F, 21.0F, titleWidth, 12.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawRound(5.0F, 21.0F, titleWidth, 12.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         medium2.drawString(stack, gradientText2, 24.0D, (double)(5.0F + medium2.getFontHeight() / 2.0F - 0.5F), -1);
         texts.drawString(stack, E, 8.0D, 8.0D, -1);
         medium2.drawString(stack, title2, (double)(21.0F + medium2.getWidth(gradientText2.getString()) + 3.5F), (double)(5.0F + medium2.getFontHeight() / 2.5F + 0.5F), (new Color(255, 255, 255)).getRGB());
         medium2.drawString(stack, title, 8.0D, 25.0D, (new Color(255, 255, 255)).getRGB());
      }

      if (this.elements.get(1)) {
         this.renderArrayList(stack);
      }

      if (this.elements.get(2)) {
         this.onStaffListRender(stack, renderEvent);
      }

      if (this.elements.get(3)) {
         this.onPotionElementsRender(stack, renderEvent);
      }

      if (this.elements.get(5)) {
         this.onRenderTargetHUD(stack);
      }

      if (this.elements.get(6)) {
         this.onKeyBindsRender(stack);
      }

      if (this.elements.get(7)) {
         this.onInformationRender(stack, renderEvent);
      }

      if (this.elements.get(8)) {
         this.onArmorRender(renderEvent);
      }

   }

   private void renderTimer(MatrixStack matrixStack, int offset, boolean glowing) {
      float posX = this.timerHUD.getX();
      float posY = this.timerHUD.getY();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      int t_color = Color.WHITE.getRGB();
      StyledFont medium = Fonts.sfbold[15];
      float quotient = Managment.FUNCTION_MANAGER.timerFunction.maxViolation / Managment.FUNCTION_MANAGER.timerFunction.timerAmount.getValue().floatValue();
      float minimumValue = Math.min(Managment.FUNCTION_MANAGER.timerFunction.getViolation(), quotient);
      this.perc = AnimationMath.lerp(this.perc, (quotient - minimumValue) / quotient, 10.0F);
      String text = (int)(this.perc * 100.0F) + "%";
      float centr = (float)mc.getMainWindow().getScaledWidth();
      float width = 70.0F;
      int width2 = 60;
      this.timerHUD.setWidth(width);
      this.timerHUD.setHeight(20.0F);
      Render2D.drawShadow(posX, posY, width, 33.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawGradientRound(posX - 0.25F, posY - 0.25F, width + 0.25F, 33.25F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      Render2D.drawRound(posX, posY, width, 33.0F, 2.5F, (new Color(0, 0, 0)).getRGB());
      medium.drawString(matrixStack, "Timer", (double)posX + 22.5D, (double)(posY + 6.0F), t_color);
      Render2D.drawRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2, 10.0F, 3.0F, ColorUtil.getColor(35, 35, 35, 255));
      Render2D.drawGradientRound(posX + 5.0F, posY + 25.0F - 8.0F, (float)width2 * this.perc, 10.0F, 2.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
      medium.drawString(matrixStack, text, (double)(posX + width - medium.getWidth(text) - 3.0F - 21.0F), (double)posY + 19.5D, t_color);
   }

   private void onKeyBindsRender(MatrixStack stack) {
      float posX = this.keyBinds.getX();
      float posY = this.keyBinds.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor1 = (new Color(255, 255, 255, 255)).getRGB();
      int backgroundColor2 = (new Color(ColorUtil.getColorStyle(180.0F))).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeModules * offset);
      this.heightDynamic = AnimationMath.fast(this.heightDynamic, height, 10.0F);
      Render2D.drawShadow(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.heightDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(1, 0, 3, 255)).getRGB());
      Fonts.sfbold[14].drawCenteredString(stack, ClientUtil.gradient("Key-Binds", firstColor, secondColor), (double)(this.keyBinds.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.heightDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.heightDynamic + (float)padding / 2.0F));
      int index = 0;
      Iterator var17 = Managment.FUNCTION_MANAGER.getFunctions().iterator();

      while(var17.hasNext()) {
         Module f = (Module)var17.next();
         if (f.bind != 0 && f.state) {
            String text = ClientUtil.getKey(f.bind);
            if (text != null) {
               String bindText = "[" + text.toUpperCase() + "]";
               float bindWidth = Fonts.sfbold[12].getWidth(bindText);
               Fonts.sfbold[12].drawString(stack, f.name, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               Fonts.sfbold[12].drawString(stack, bindText, (double)(posX + (float)width - bindWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
               ++index;
            }
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeModules = index;
      this.keyBinds.setWidth((float)width);
      this.keyBinds.setHeight((float)(this.activeModules * offset + headerHeight));
   }

   private void onStaffListRender(MatrixStack matrixStack, EventRender render) {
      float posX = this.staffList.getX();
      float posY = this.staffList.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      float width = Math.max(this.nameWidth + 40.0F, 100.0F);
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activeStaff * offset);
      this.hDynam = AnimationMath.fast(this.hDynam, height, 10.0F);
      this.widthDynamic = AnimationMath.fast(this.widthDynamic, width, 10.0F);
      Render2D.drawShadow(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, this.widthDynamic, this.hDynam + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.sfbold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Staff-List", firstColor, secondColor), (double)(posX + this.widthDynamic / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, this.widthDynamic, this.hDynam + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      int index = 0;
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)this.widthDynamic, (double)((float)headerHeight + this.hDynam + (float)padding / 2.0F));
      if (!this.staffPlayers.isEmpty()) {
         for(Iterator var16 = this.staffPlayers.iterator(); var16.hasNext(); ++index) {
            HudFunction.StaffPlayer staff = (HudFunction.StaffPlayer)var16.next();
            String name = staff.getName();
            ITextComponent prefix = staff.getPrefix();
            String status = staff.getStatus().getString();
            Fonts.sfbold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.sfbold[12].drawString(matrixStack, name + status, (double)(posX + (float)padding + Fonts.sfbold[12].getWidth(prefix.getString())), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            this.nameWidth = Fonts.sfbold[12].getWidth(prefix.getString() + name + status);
         }
      } else {
         this.nameWidth = 0.0F;
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activeStaff = index;
      this.staffList.setWidth(this.widthDynamic);
      this.staffList.setHeight(this.hDynam + (float)headerHeight);
   }

   private String repairString(String input) {
      StringBuilder sb = new StringBuilder(input.length());
      char[] var3 = input.toCharArray();
      int var4 = var3.length;

      for(int var5 = 0; var5 < var4; ++var5) {
         char c = var3[var5];
         if (c >= '!' && c <= '~') {
            sb.append((char)(c - 'ﻠ'));
         } else {
            sb.append(c);
         }
      }

      return sb.toString();
   }

   private void onInformationRender(MatrixStack stack, EventRender renderEvent) {
      float y = (float)renderEvent.scaledResolution.scaledHeight() - Fonts.gilroyBold[15].getFontHeight() - (float)(mc.currentScreen instanceof ChatScreen ? 8 * mc.gameSettings.guiScale : 0);
      Minecraft var10000 = mc;
      int var11 = (int)Minecraft.player.getPosX();
      Minecraft var10001 = mc;
      int var12 = (int)Minecraft.player.getPosY();
      Minecraft var10002 = mc;
      String pos = var11 + ", " + var12 + ", " + (int)Minecraft.player.getPosZ();
      int textWidth = (int)(Fonts.sfbold[15].getWidth("   Coords:   " + pos) + 8.0F);
      int textHeight = (int)(Fonts.sfbold[15].getFontHeight() + 2.2F);
      int x = 5;
      int backgroundY = (int)y - 2;
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      Render2D.drawShadow((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 3.0F, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound((float)x, (float)backgroundY, (float)textWidth, (float)textHeight, 2.5F, Color.BLACK.getRGB());
      Fonts.sfbold[15].drawString(stack, ClientUtil.gradient("   Coords:   ", firstColor, secondColor), 4.0D, (double)y, firstColor);
      Fonts.sfbold[15].drawString(stack, pos, (double)(4.0F + Fonts.gilroyBold[15].getWidth("   Coords:   ")), (double)y, (new Color(230, 230, 230)).getRGB());
   }

   private void onArmorRender(EventRender renderEvent) {
      int count = 0;
      int i = 0;

      while(true) {
         Minecraft var10001 = mc;
         Minecraft var10000;
         if (i >= Minecraft.player.inventory.getSizeInventory()) {
            float xPos = (float)renderEvent.scaledResolution.scaledWidth() / 2.0F;
            float yPos = (float)renderEvent.scaledResolution.scaledHeight();
            var10000 = mc;
            boolean totemInInv = Minecraft.player.inventory.mainInventory.stream().map(ItemStack::getItem).toList().contains(Items.TOTEM_OF_UNDYING);
            int off = totemInInv ? 5 : 0;
            var10000 = mc;
            if (Minecraft.player.isCreative()) {
               yPos += 17.0F;
            }

            var10000 = mc;

            for(Iterator var7 = Minecraft.player.inventory.armorInventory.iterator(); var7.hasNext(); off += 15) {
               ItemStack s = (ItemStack)var7.next();
            }

            if (totemInInv) {
            }

            return;
         }

         var10000 = mc;
         ItemStack s = Minecraft.player.inventory.getStackInSlot(i);
         if (s.getItem() == Items.TOTEM_OF_UNDYING) {
            ++count;
         }

         ++i;
      }
   }

   private void onPotionElementsRender(MatrixStack matrixStack, EventRender renderEvent) {
      float posX = this.potionStatus.getX();
      float posY = this.potionStatus.getY();
      int roundDegree = 4;
      int headerHeight = 14;
      int width = 100;
      int padding = 5;
      int offset = 10;
      int headerColor = (new Color(0, 0, 0, 244)).getRGB();
      int backgroundColor = (new Color(0, 0, 0, 244)).getRGB();
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      float height = (float)(this.activePotions * offset);
      this.hDynamic = AnimationMath.fast(this.hDynamic, height, 10.0F);
      Render2D.drawShadow(posX - 3.0F, posY - 3.0F, (float)(width + 5), this.hDynamic + (float)headerHeight + 2.5F + 5.0F, 10, firstColor, secondColor, firstColor, secondColor);
      Render2D.drawGradientRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), firstColor, secondColor, firstColor, secondColor);
      Render2D.drawRound(posX, posY, (float)width, this.hDynamic + (float)headerHeight + 2.5F, (float)(roundDegree - 1), (new Color(0, 0, 0, 244)).getRGB());
      Fonts.gilroyBold[14].drawCenteredString(matrixStack, ClientUtil.gradient("Potion-status", firstColor, secondColor), (double)(this.potionStatus.getX() + (float)width / 2.0F), (double)(posY + 5.5F), firstColor);
      Render2D.drawRoundedCorner(posX, posY + (float)headerHeight, (float)width, this.hDynamic + (float)padding / 2.0F, new Vector4f(0.0F, (float)roundDegree, 0.0F, (float)roundDegree), backgroundColor);
      SmartScissor.push();
      SmartScissor.setFromComponentCoordinates((double)posX, (double)posY, (double)width, (double)((float)headerHeight + this.hDynamic + (float)padding / 2.0F));
      int index = 0;
      Minecraft var10000 = mc;
      Iterator var16 = Minecraft.player.getActivePotionEffects().iterator();

      while(var16.hasNext()) {
         EffectInstance p = (EffectInstance)var16.next();
         if (p.isShowIcon()) {
            String durationText = EffectUtils.getPotionDurationString(p, 1.0F);
            float durationWidth = Fonts.gilroyBold[12].getWidth(durationText);
            Fonts.gilroyBold[12].drawString(matrixStack, I18n.format(p.getEffectName(), new Object[0]), (double)(posX + (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            Fonts.gilroyBold[12].drawString(matrixStack, durationText, (double)(posX + (float)width - durationWidth - (float)padding), (double)(posY + (float)headerHeight + (float)padding + (float)(index * offset)), -1);
            ++index;
         }
      }

      SmartScissor.unset();
      SmartScissor.pop();
      this.activePotions = index;
      this.potionStatus.setWidth((float)width);
      this.potionStatus.setHeight((float)(this.activePotions * offset + headerHeight));
   }

   private void renderArrayList(MatrixStack stack) {
      float x = 5.0F;
      float y = 40.0F;
      float height = 10.0F;
      float yOffset = 0.0F;
      StyledFont font = Fonts.sfbold[this.fontSize.getValue().intValue()];
      StyleManager styleManager = Managment.STYLE_MANAGER;
      if (this.delay.hasTimeElapsed(10000L)) {
         this.sortedFunctions = HudUtil.getSorted(font);
         this.delay.reset();
      }

      float gradientForce = 1.0F;
      int fontOffset = this.fontSize.getValue().intValue() > 14 ? -14 + this.fontSize.getValue().intValue() - (this.fontSize.getValue().intValue() > 14 ? 1 : 0) : 0;
      int firstColor;
      int secondColor;
      Iterator var12;
      Module function;
      float width;
      if (this.glow.get()) {
         var12 = this.sortedFunctions.iterator();

         label113:
         while(true) {
            do {
               do {
                  if (!var12.hasNext()) {
                     yOffset = 0.0F;
                     break label113;
                  }

                  function = (Module)var12.next();
               } while(this.limitations.get(0) && function.category == Type.Render);
            } while(this.limitations.get(1) && function.bind == 0);

            function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
            if ((double)function.animation >= 0.01D) {
               width = font.getWidth(function.name) + 5.0F;
               firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
               secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
               RenderSystem.pushMatrix();
               RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
               RenderSystem.scalef(1.0F, function.animation, 1.0F);
               RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
               Render2D.drawShadow(x, y + yOffset, width, height, 10, firstColor, secondColor);
               RenderSystem.popMatrix();
               yOffset += height * function.animation;
            }
         }
      }

      var12 = this.sortedFunctions.iterator();

      while(true) {
         do {
            do {
               if (!var12.hasNext()) {
                  yOffset = 0.0F;
                  var12 = this.sortedFunctions.iterator();

                  while(true) {
                     do {
                        do {
                           if (!var12.hasNext()) {
                              return;
                           }

                           function = (Module)var12.next();
                        } while(this.limitations.get(0) && function.category == Type.Render);
                     } while(this.limitations.get(1) && function.bind == 0);

                     function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
                     if ((double)function.animation >= 0.01D) {
                        width = font.getWidth(function.name) + 4.0F;
                        firstColor = styleManager.getCurrentStyle().getColor((int)((yOffset + height * function.animation) * gradientForce));
                        secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
                        RenderSystem.pushMatrix();
                        RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
                        RenderSystem.scalef(1.0F, function.animation, 1.0F);
                        RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
                        Render2D.drawShadow(x, y + yOffset, 1.0F, height, 8, firstColor, secondColor);
                        Render2D.drawVertical(x, y + yOffset, 1.0F, height, firstColor, secondColor);
                        RenderSystem.popMatrix();
                        yOffset += height * function.animation;
                     }
                  }
               }

               function = (Module)var12.next();
            } while(this.limitations.get(0) && function.category == Type.Render);
         } while(this.limitations.get(1) && function.bind == 0);

         function.animation = AnimationMath.lerp(function.animation, function.state ? 1.0F : 0.0F, 15.0F);
         if ((double)function.animation >= 0.01D) {
            width = font.getWidth(function.name) + 5.0F;
            secondColor = styleManager.getCurrentStyle().getColor((int)(yOffset * gradientForce));
            RenderSystem.pushMatrix();
            RenderSystem.translatef(x + width / 2.0F, y + yOffset, 0.0F);
            RenderSystem.scalef(1.0F, function.animation, 1.0F);
            RenderSystem.translatef(-(x + width / 2.0F), -(y + yOffset), 0.0F);
            Render2D.drawRound(x, y + yOffset, width, height + 0.6F, 1.0F, ColorUtil.rgba(21, 21, 21, 255));
            font.drawString(stack, function.name, (double)(x + 3.0F), (double)(y + yOffset + font.getFontHeight() / 2.0F - (float)fontOffset - 1.0F), secondColor);
            RenderSystem.popMatrix();
            yOffset += height * function.animation;
         }
      }
   }

   private void onRenderTargetHUD(MatrixStack stack) {
      int firstColor = ColorUtil.getColorStyle(0.0F);
      int secondColor = ColorUtil.getColorStyle(90.0F);
      this.target = this.getTarget(this.target);
      this.targetHudAnimation.setDuration(300);
      this.scale = this.targetHudAnimation.getOutput();
      if (this.scale == 0.0D) {
         this.target = null;
      }

      if (this.target != null) {
         String targetName = this.target.getName().getString();
         String substring = targetName.substring(0, Math.min(targetName.length(), 10));
         float nameWidth = Fonts.sfbold[18].getWidth(substring);
         float xPosition = this.targetHUD.getX();
         float yPosition = this.targetHUD.getY();
         float maxWidth = Math.max(nameWidth + 50.0F, 120.0F);
         float maxHeight = 30.0F;
         this.health = AnimationMath.fast(this.health, this.target.getHealth() / this.target.getMaxHealth(), 5.0F);
         this.health = MathHelper.clamp(this.health, 0.0F, 1.0F);
         GlStateManager.pushMatrix();
         AnimationMath.sizeAnimation((double)(xPosition + maxWidth / 2.0F), (double)(yPosition + 15.0F), this.scale);
         Render2D.drawShadow(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 10, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawGradientRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 3.0F, firstColor, secondColor, ColorUtil.getColorStyle(180.0F), ColorUtil.getColorStyle(270.0F));
         Render2D.drawRound(xPosition, yPosition, maxWidth - 27.0F, 40.0F, 2.5F, (new Color(0, 0, 0, 244)).getRGB());
         Render2D.drawFace(xPosition + 4.0F, yPosition + 4.0F, 8.0F, 8.0F, 8.0F, 8.0F, 22.0F, 22.0F, 64.0F, 64.0F, (AbstractClientPlayerEntity)this.target);
         Render2D.drawShadow(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 10, firstColor, secondColor, firstColor, secondColor);
         Render2D.drawGradientRound(xPosition + maxWidth - 116.0F, yPosition + 30.0F, 85.0F * this.health, 6.0F, 1.5F, firstColor, secondColor, firstColor, secondColor);
         this.drawItemStack(xPosition + 32.0F, yPosition + 22.0F - 5.5F, 10.0F);
         Fonts.sfbold[18].drawString(stack, substring, (double)(xPosition + 30.0F), (double)(yPosition + 6.0F), -1);
         GlStateManager.popMatrix();
         this.targetHUD.setWidth(maxWidth);
         this.targetHUD.setHeight(30.0F);
      }
   }

   private void drawItemStack(float x, float y, float offset) {
      List<ItemStack> stackList = new ArrayList(Arrays.asList(this.target.getHeldItemMainhand(), this.target.getHeldItemOffhand()));
      stackList.addAll((Collection)this.target.getArmorInventoryList());
      AtomicReference<Float> posX = new AtomicReference(x);
      stackList.stream().filter((stack) -> {
         return !stack.isEmpty();
      }).forEach((stack) -> {
         HudUtil.drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, 0.6F);
      });
   }

   private PlayerEntity getTarget(PlayerEntity nullTarget) {
      PlayerEntity target = nullTarget;
      if (Managment.FUNCTION_MANAGER.auraFunction.getTarget() instanceof PlayerEntity) {
         target = (PlayerEntity)Managment.FUNCTION_MANAGER.auraFunction.getTarget();
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else if (mc.currentScreen instanceof ChatScreen) {
         Minecraft var10000 = mc;
         target = Minecraft.player;
         this.targetHudAnimation.setDirection(Direction.FORWARDS);
      } else {
         this.targetHudAnimation.setDirection(Direction.BACKWARDS);
      }

      return (PlayerEntity)target;
   }

   private class StaffPlayer {
      String name;
      ITextComponent prefix;
      HudFunction.Status status;

      private StaffPlayer(String name, ITextComponent prefix) {
         this.name = name;
         this.prefix = prefix;
         this.updateStatus();
      }

      private void updateStatus() {
         Iterator var1 = IMinecraft.mc.world.getPlayers().iterator();

         AbstractClientPlayerEntity player;
         do {
            if (!var1.hasNext()) {
               var1 = IMinecraft.mc.getConnection().getPlayerInfoMap().iterator();

               NetworkPlayerInfo info;
               do {
                  if (!var1.hasNext()) {
                     this.status = HudFunction.Status.VANISHED;
                     return;
                  }

                  info = (NetworkPlayerInfo)var1.next();
               } while(!info.getGameProfile().getName().equals(this.name));

               if (info.getGameType() == GameType.SPECTATOR) {
                  this.status = HudFunction.Status.SPEC;
                  return;
               }

               this.status = HudFunction.Status.NONE;
               return;
            }

            player = (AbstractClientPlayerEntity)var1.next();
         } while(!player.getNameClear().equals(this.name));

         this.status = HudFunction.Status.NEAR;
      }

      public String getName() {
         return this.name;
      }

      public ITextComponent getPrefix() {
         return this.prefix;
      }

      public HudFunction.Status getStatus() {
         return this.status;
      }
   }

   public static enum Status {
      NONE(""),
      NEAR(" §e[Near]"),
      SPEC(" §c[Spec]"),
      VANISHED(" §6[Vanish]");

      final String string;

      private Status(String string) {
         this.string = string;
      }

      public String getString() {
         return this.string;
      }

      // $FF: synthetic method
      private static HudFunction.Status[] $values() {
         return new HudFunction.Status[]{NONE, NEAR, SPEC, VANISHED};
      }
   }
}
ХАХАХ читу месяца нету а его уже сливают
 
Сверху Снизу