Added minimization of sidebar, cleaned and improved code, bug fixes, ui changes

This commit is contained in:
AFS0021822 2023-07-02 23:50:59 +02:00
parent d00d523e63
commit 0ca1a271d8
126 changed files with 1106 additions and 1008 deletions

View File

@ -1,10 +1,6 @@
package net.minecraft.client;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Queues;
import com.google.common.collect.Sets;
import com.google.common.collect.*;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFutureTask;
@ -13,45 +9,12 @@ import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.properties.Property;
import com.mojang.authlib.properties.PropertyMap;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.Proxy;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
import javax.imageio.ImageIO;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.audio.MusicTicker;
import net.minecraft.client.audio.SoundHandler;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiChat;
import net.minecraft.client.gui.GuiControls;
import net.minecraft.client.gui.GuiGameOver;
import net.minecraft.client.gui.GuiIngame;
import net.minecraft.client.gui.GuiIngameMenu;
import net.minecraft.client.gui.GuiMemoryErrorScreen;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiSleepMP;
import net.minecraft.client.gui.GuiYesNo;
import net.minecraft.client.gui.GuiYesNoCallback;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.gui.*;
import net.minecraft.client.gui.achievement.GuiAchievement;
import net.minecraft.client.gui.inventory.GuiInventory;
import net.minecraft.client.main.GameConfiguration;
@ -62,14 +25,7 @@ import net.minecraft.client.multiplayer.WorldClient;
import net.minecraft.client.network.NetHandlerLoginClient;
import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.BlockRendererDispatcher;
import net.minecraft.client.renderer.EntityRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.chunk.RenderChunk;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
@ -77,29 +33,8 @@ import net.minecraft.client.renderer.texture.DynamicTexture;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.resources.DefaultResourcePack;
import net.minecraft.client.resources.FoliageColorReloadListener;
import net.minecraft.client.resources.GrassColorReloadListener;
import net.minecraft.client.resources.I18n;
import net.minecraft.client.resources.IReloadableResourceManager;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.client.resources.IResourcePack;
import net.minecraft.client.resources.LanguageManager;
import net.minecraft.client.resources.ResourceIndex;
import net.minecraft.client.resources.ResourcePackRepository;
import net.minecraft.client.resources.SimpleReloadableResourceManager;
import net.minecraft.client.resources.SkinManager;
import net.minecraft.client.resources.data.AnimationMetadataSection;
import net.minecraft.client.resources.data.AnimationMetadataSectionSerializer;
import net.minecraft.client.resources.data.FontMetadataSection;
import net.minecraft.client.resources.data.FontMetadataSectionSerializer;
import net.minecraft.client.resources.data.IMetadataSerializer;
import net.minecraft.client.resources.data.LanguageMetadataSection;
import net.minecraft.client.resources.data.LanguageMetadataSectionSerializer;
import net.minecraft.client.resources.data.PackMetadataSection;
import net.minecraft.client.resources.data.PackMetadataSectionSerializer;
import net.minecraft.client.resources.data.TextureMetadataSection;
import net.minecraft.client.resources.data.TextureMetadataSectionSerializer;
import net.minecraft.client.resources.*;
import net.minecraft.client.resources.data.*;
import net.minecraft.client.resources.model.ModelManager;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding;
@ -113,11 +48,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLeashKnot;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.boss.BossStatus;
import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.item.EntityBoat;
import net.minecraft.entity.item.EntityItemFrame;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.item.EntityPainting;
import net.minecraft.entity.item.*;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Bootstrap;
@ -142,21 +73,9 @@ import net.minecraft.stats.AchievementList;
import net.minecraft.stats.IStatStringFormat;
import net.minecraft.stats.StatFileWriter;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.FrameTimer;
import net.minecraft.util.IThreadListener;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MinecraftError;
import net.minecraft.util.MouseHelper;
import net.minecraft.util.MovementInputFromOptions;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ReportedException;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.ScreenShotHelper;
import net.minecraft.util.Session;
import net.minecraft.util.Timer;
import net.minecraft.util.Util;
import net.minecraft.util.*;
import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.WorldProviderEnd;
import net.minecraft.world.WorldProviderHell;
@ -173,29 +92,38 @@ import org.lwjgl.LWJGLException;
import org.lwjgl.Sys;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.ContextCapabilities;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL20;
import org.lwjgl.opengl.GLContext;
import org.lwjgl.opengl.OpenGLException;
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.opengl.*;
import org.lwjgl.util.glu.GLU;
import rip.athena.api.event.Event;
import rip.athena.client.Athena;
import rip.athena.client.events.Event;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.client.events.types.entity.PlayerInteractEvent;
import rip.athena.client.events.types.input.KeyDownEvent;
import rip.athena.client.events.types.input.KeyUpEvent;
import rip.athena.client.events.types.input.MouseDownEvent;
import rip.athena.client.events.types.input.MouseMoveEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.client.ui.menu.AthenaMenu;
import rip.athena.client.events.client.ClientTickEvent;
import rip.athena.client.events.entity.PlayerInteractEvent;
import rip.athena.client.events.input.KeyDownEvent;
import rip.athena.client.events.input.KeyUpEvent;
import rip.athena.client.events.input.MouseDownEvent;
import rip.athena.client.events.input.MouseMoveEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import rip.athena.client.modules.fpssettings.OptimizerMod;
import rip.athena.client.modules.mods.HitDelayFix;
import rip.athena.client.modules.render.MotionBlur;
import rip.athena.client.ui.menu.AthenaMenu;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.Proxy;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class Minecraft implements IThreadListener, IPlayerUsage
{

View File

@ -44,8 +44,8 @@ import net.minecraft.world.border.WorldBorder;
import optifine.Config;
import optifine.CustomColors;
import rip.athena.client.Athena;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import rip.athena.client.modules.mods.OldAnimations;
public class GuiIngame extends Gui

View File

@ -5,6 +5,7 @@ import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.util.MathHelper;
import rip.athena.client.Athena;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -64,11 +65,11 @@ public class GuiOptionSlider extends GuiButton
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
// this.drawTexturedModalRect(this.xPosition + (int)(this.sliderValue * (float)(this.width - 8)), this.yPosition, 0, 66, 4, 20);
// this.drawTexturedModalRect(this.xPosition + (int)(this.sliderValue * (float)(this.width - 8)) + 4, this.yPosition, 196, 66, 4, 20);
if(!(sliderValue <= 0)) {
RoundedUtils.drawRound(this.xPosition, this.yPosition + 2, this.sliderValue * 150, height - 4, 4, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor());
RoundedUtils.drawRound(this.xPosition + this.sliderValue * 150 - 7, this.yPosition + 2, 7, height - 4, 2, Color.white
);
}
//if(!(sliderValue <= 0)) {
//RoundedUtils.drawRound(this.xPosition, this.yPosition + 2, this.sliderValue * 150, height - 4, 4, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor());
RoundedUtils.drawGradientRound(this.xPosition, this.yPosition + 2, this.sliderValue * 150, height - 4, 4, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRound(this.xPosition + (int)(this.sliderValue * (float)(this.width - 8)) + 2, this.yPosition + 2, 5, height - 4, 2, Color.white);
//}
}
}

View File

@ -29,7 +29,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraft.world.WorldSettings;
import rip.athena.client.Athena;
import rip.athena.client.events.types.entity.AttackEntityEvent;
import rip.athena.client.events.entity.AttackEntityEvent;
public class PlayerControllerMP
{

View File

@ -85,8 +85,8 @@ import org.lwjgl.opengl.GLContext;
import org.lwjgl.util.glu.GLU;
import org.lwjgl.util.glu.Project;
import rip.athena.client.Athena;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import rip.athena.client.modules.mods.*;
import shadersmod.client.Shaders;
import shadersmod.client.ShadersRender;

View File

@ -10,7 +10,6 @@ import net.minecraft.client.renderer.entity.layers.LayerCape;
import net.minecraft.client.renderer.entity.layers.LayerCustomHead;
import net.minecraft.client.renderer.entity.layers.LayerDeadmau5Head;
import net.minecraft.client.renderer.entity.layers.LayerHeldItem;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EnumPlayerModelParts;
import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack;
@ -19,7 +18,7 @@ import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.util.ResourceLocation;
import rip.athena.client.Athena;
import rip.athena.client.events.types.render.RenderPlayerEvent;
import rip.athena.client.events.render.RenderPlayerEvent;
public class RenderPlayer extends RendererLivingEntity<AbstractClientPlayer>
{

View File

@ -29,7 +29,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.opengl.GL11;
import rip.athena.client.Athena;
import rip.athena.client.events.types.render.RenderEntityEvent;
import rip.athena.client.events.render.RenderEntityEvent;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.modules.render.CustomHitColor;
import shadersmod.client.Shaders;

View File

@ -6,8 +6,7 @@ import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;
public class
LayerCape implements LayerRenderer
public class LayerCape implements LayerRenderer
{
private final RenderPlayer playerRenderer;
private static final String __OBFID = "CL_00002425";

View File

@ -36,8 +36,7 @@ import optifine.ConnectedTextures;
import optifine.Reflector;
import optifine.TextureUtils;
import rip.athena.client.Athena;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.client.events.types.client.SwitchTextureEvent;
import rip.athena.client.events.client.SwitchTextureEvent;
import shadersmod.client.ShadersTex;
public class TextureMap extends AbstractTexture implements ITickableTextureObject

View File

@ -75,9 +75,8 @@ import net.minecraft.world.LockCode;
import net.minecraft.world.World;
import net.minecraft.world.WorldSettings;
import rip.athena.client.Athena;
import rip.athena.client.events.types.entity.AttackEntityEvent;
import rip.athena.client.events.types.entity.PlayerInteractEvent;
import rip.athena.client.events.types.entity.PlayerTickEvent;
import rip.athena.client.events.entity.PlayerInteractEvent;
import rip.athena.client.events.entity.PlayerTickEvent;
@SuppressWarnings("incomplete-switch")
public abstract class EntityPlayer extends EntityLivingBase

View File

@ -49,7 +49,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
import rip.athena.client.Athena;
import rip.athena.client.events.types.network.IngoingPacketEvent;
import rip.athena.client.events.network.IngoingPacketEvent;
public class NetworkManager extends SimpleChannelInboundHandler<Packet>
{

View File

@ -20,7 +20,7 @@ import java.util.ArrayList;
*/
public class AccountManager {
private Minecraft mc = Minecraft.getMinecraft();
private final Minecraft mc = Minecraft.getMinecraft();
private ArrayList<Account> accounts = new ArrayList<>();
public boolean isFirstLogin = false;
@ -28,8 +28,7 @@ public class AccountManager {
private Account currentAccount;
public AccountManager() {
if(Athena.ACCOUNTS_DIR.length() == 0) {
if(Athena.INSTANCE.getACCOUNTS_DIR().length() == 0) {
isFirstLogin = true;
}
@ -47,7 +46,7 @@ public class AccountManager {
toSave.add("Current:" + getCurrentAccount().getUsername());
try {
PrintWriter pw = new PrintWriter(Athena.ACCOUNTS_DIR);
PrintWriter pw = new PrintWriter(Athena.INSTANCE.getACCOUNTS_DIR());
for (String str : toSave) {
pw.println(str);
}
@ -58,10 +57,10 @@ public class AccountManager {
}
public void load() {
ArrayList<String> lines = new ArrayList<String>();
ArrayList<String> lines = new ArrayList<>();
try {
BufferedReader reader = new BufferedReader(new FileReader(Athena.ACCOUNTS_DIR));
BufferedReader reader = new BufferedReader(new FileReader(Athena.INSTANCE.getACCOUNTS_DIR()));
String line = reader.readLine();
while (line != null) {
lines.add(line);
@ -79,10 +78,6 @@ public class AccountManager {
AccountType accountType = AccountType.MICROSOFT;
if(args[1].equals("MICROSOFT")) {
accountType = AccountType.MICROSOFT;
}
if(args[1].equals("SESSION")) {
accountType = AccountType.SESSION;
}
@ -101,10 +96,7 @@ public class AccountManager {
}
private void login(Account a) {
if(a == null) {
return;
}
if(a == null) return;
if(a.getAccountType().equals(AccountType.MICROSOFT)) {
MicrosoftAuthenticator authenticator = new MicrosoftAuthenticator();

View File

@ -11,10 +11,10 @@ import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.client.config.AbstractConfigEntry;
import rip.athena.client.cosmetics.cape.Cape;
import rip.athena.client.events.types.client.ConfigChangeEvent;
import rip.athena.client.events.client.ConfigChangeEvent;
import rip.athena.client.ui.clickgui.pages.SettingsPage;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.api.macros.Macro;
import rip.athena.api.macro.Macro;
import rip.athena.client.modules.render.Crosshair;
import rip.athena.client.theme.impl.AccentTheme;
import rip.athena.client.utils.StringUtils;
@ -90,7 +90,7 @@ public class Config {
Module module = Athena.INSTANCE.getModuleRepository().getModule(key);
if(module == null) {
Athena.INSTANCE.getLog().warn("Loaded config " + name + " with left over setting " + key + " which is no longer used.");
//Athena.INSTANCE.getLog().warn("Loaded config " + name + " with left over setting " + key + " which is no longer used.");
continue;
}
@ -146,24 +146,6 @@ public class Config {
}
}
String themeIdentifier = obj.getString("theme");
for (AccentTheme theme : AccentTheme.values()) {
if (theme.name().equalsIgnoreCase(themeIdentifier)) {
Athena.INSTANCE.getThemeManager().setTheme(theme);
break;
}
}
String capeIdentifier = obj.getString("cape");
for (Cape cape : Athena.INSTANCE.getCosmeticsController().getCapeManager().getCapes()) {
if (cape.getName().equalsIgnoreCase(capeIdentifier)) {
Athena.INSTANCE.getLog().info(cape + capeIdentifier + cape.getName());
Athena.INSTANCE.getCosmeticsController().getCapeManager().setSelectedCape(cape);
break;
}
}
JSONArray macroList = obj.getJSONArray("macros");
for(int i = 0; i < macroList.length(); i++) {
@ -179,6 +161,22 @@ public class Config {
JSONArray tileentities = fps.getJSONArray("tile-entities");
JSONArray particles = fps.getJSONArray("particles");
String themeIdentifier = obj.getString("theme");
for (AccentTheme theme : AccentTheme.values()) {
if (theme.name().equalsIgnoreCase(themeIdentifier)) {
Athena.INSTANCE.getThemeManager().setTheme(theme);
break;
}
}
String capeIdentifier = obj.getString("cape");
for (Cape cape : Athena.INSTANCE.getCosmeticsController().getCapeManager().getCapes()) {
if (cape.getName().equalsIgnoreCase(capeIdentifier)) {
Athena.INSTANCE.getCosmeticsController().getCapeManager().setSelectedCape(cape);
break;
}
}
List<String> list = new ArrayList<>();
for(int i = 0; i < blocks.length(); i++) {

View File

@ -0,0 +1,16 @@
package rip.athena.api.event;
import lombok.Getter;
import lombok.Setter;
/**
* @author Athena Development
* @project Athena-Client
* @date 6/1/2023
*/
@Setter
@Getter
public class Event {
private boolean cancelled;
}

View File

@ -1,4 +1,4 @@
package rip.athena.client.events;
package rip.athena.api.event;
import rip.athena.client.Athena;

View File

@ -1,4 +1,4 @@
package rip.athena.client.events;
package rip.athena.api.event;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -1,4 +1,4 @@
package rip.athena.api.macros;
package rip.athena.api.macro;
import lombok.Getter;
import lombok.Setter;

View File

@ -1,11 +1,11 @@
package rip.athena.api.macros;
package rip.athena.api.macro;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.KeyDownEvent;
import rip.athena.client.events.types.input.MouseDownEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.KeyDownEvent;
import rip.athena.client.events.input.MouseDownEvent;
import rip.athena.client.ui.clickgui.components.mods.MenuModKeybind;
import java.util.List;

View File

@ -19,7 +19,6 @@ public enum EnumModuleType {
FACTIONS(4, "FACTIONS",false),
OTHER(5, "OTHER",false),
HIDDEN(6, "", true),
FPS_SETTINGS(7, "",true);
private final int index;

View File

@ -1,21 +1,20 @@
package rip.athena.client;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.Display;
import rip.athena.api.module.ModuleRepository;
import rip.athena.api.account.AccountManager;
import rip.athena.api.config.save.ConfigManager;
import rip.athena.api.event.EventBus;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.api.macro.MacroManager;
import rip.athena.api.module.ModuleRepository;
import rip.athena.client.cosmetics.CosmeticsController;
import rip.athena.client.events.EventBus;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.client.ui.hud.HUDManager;
import rip.athena.client.ui.notifications.NotificationManager;
import rip.athena.api.macros.MacroManager;
import rip.athena.client.events.client.ClientTickEvent;
import rip.athena.client.socket.SocketClient;
import rip.athena.client.theme.ThemeManager;
import rip.athena.client.ui.hud.HUDManager;
import rip.athena.client.ui.notifications.NotificationManager;
import rip.athena.client.utils.PrefixedLogger;
import rip.athena.client.utils.discord.DiscordRPC;
import rip.athena.client.utils.input.KeybindManager;
@ -42,9 +41,9 @@ public class Athena {
public static final Athena INSTANCE = new Athena();
public static final File MAIN_DIR = Paths.get(Minecraft.getMinecraft().mcDataDir.getAbsolutePath(), "settings").toFile();
public static final File CONFIGS_DIR = Paths.get(MAIN_DIR.getAbsolutePath(), "configs").toFile();
public static final File ACCOUNTS_DIR = new File(MAIN_DIR.getAbsolutePath(), "accounts.json");
public final File MAIN_DIR = Paths.get(Minecraft.getMinecraft().mcDataDir.getAbsolutePath(), "settings").toFile();
public final File CONFIGS_DIR = Paths.get(MAIN_DIR.getAbsolutePath(), "configs").toFile();
public final File ACCOUNTS_DIR = new File(MAIN_DIR.getAbsolutePath(), "accounts.json");
private final PrefixedLogger log = new PrefixedLogger("Athena");
@ -52,17 +51,20 @@ public class Athena {
private final String clientVersion = "0.0.3";
private final String clientBuild = "062623";
private final boolean debug = false;
private NotificationManager notificationManager;
private CosmeticsController cosmeticsController;
private ModuleRepository moduleRepository;
private AccountManager accountManager;
private ConfigManager configManager;
private ModuleRepository moduleRepository;
private ThemeManager themeManager;
private MacroManager macroManager;
private HUDManager hudManager;
private DiscordRPC discordRPC;
private EventBus eventBus;
private boolean isGameRunningForeground = true;
public static boolean hasSent = false;
/**
@ -72,20 +74,28 @@ public class Athena {
* connections with servers or other systems.
*/
public void initClient() {
String os = System.getProperty("os.name");
if (os.toLowerCase().contains("win")) {
//this.discordRPC = new DiscordRPC();
}
createDirectoryIfNotExists(MAIN_DIR);
createFileIfNotExists(ACCOUNTS_DIR);
postInit();
handleManagers();
registerEvents();
checkCosmetics();
logInformation();
}
private void postInit() {
this.discordRPC = new DiscordRPC();
if(SocketClient.isClientRunning()) {
JOptionPane.showMessageDialog(null, "Port 45376 already in use.");
System.exit(0);
}
}
private void handleManagers() {
this.configManager = new ConfigManager(CONFIGS_DIR);
this.accountManager = new AccountManager();
this.moduleRepository = new ModuleRepository();
@ -97,15 +107,35 @@ public class Athena {
this.notificationManager = new NotificationManager();
this.cosmeticsController = new CosmeticsController();
registerEvents();
configManager.postInit();
}
private void checkCosmetics() {
if(this.cosmeticsController.getCapeManager().getSelectedCape() == null) {
this.cosmeticsController.getCapeManager().setSelectedCape(this.cosmeticsController.getCapeManager().getCape("None"));
}
}
private void logInformation() {
Athena.INSTANCE.getLog().info("Successfully loaded Athena!");
Athena.INSTANCE.getLog().info("--------------------------------");
Athena.INSTANCE.getLog().info("OS: " + System.getProperty("os.name"));
Athena.INSTANCE.getLog().info("Java: " + System.getProperty("java.version") + ", " + System.getProperty("java.vendor"));
Athena.INSTANCE.getLog().info("Java VM: " + System.getProperty("java.vm.name") + " (" + System.getProperty("java.vm.info") + "), " + System.getProperty("java.vm.vendor"));
Athena.INSTANCE.getLog().info("--------------------------------");
Athena.INSTANCE.getLog().info("Module Repository Size: " + this.moduleRepository.getModules().size());
Athena.INSTANCE.getLog().info("HUD Elements Size: " + this.hudManager.getElements().size());
Athena.INSTANCE.getLog().info("Account Size: " + this.accountManager.getAccounts().size());
Athena.INSTANCE.getLog().info("Config Size: " + this.configManager.getConfigs().size());
Athena.INSTANCE.getLog().info("Macro Size: " + this.macroManager.getMacros().size());
Athena.INSTANCE.getLog().info("Cape Size: " + this.cosmeticsController.getCapeManager().getCapes().size());
Athena.INSTANCE.getLog().info("--------------------------------");
Athena.INSTANCE.getLog().info("Active Primary Theme: " + this.themeManager.getPrimaryTheme().getTheme());
Athena.INSTANCE.getLog().info("Active Accent Theme: " + this.themeManager.getTheme().getTheme());
Athena.INSTANCE.getLog().info("Active Config: " + this.configManager.getLoadedConfig().getName());
Athena.INSTANCE.getLog().info("--------------------------------");
}
/**
* Registers the events for the event bus.
*/
@ -116,8 +146,6 @@ public class Athena {
eventBus.register(this);
}
private boolean isGameRunningForeground = true;
/**
* Event handler for the ClientTickEvent.
*
@ -129,7 +157,7 @@ public class Athena {
String currentUsername = Minecraft.getMinecraft().thePlayer.getGameProfile().getName();
if (!hasSent || !currentUsername.equals(SocketClient.getCurrentUsername())) {
if (hasSent && !currentUsername.equals(SocketClient.getCurrentUsername())) {
if (hasSent) {
// Player has changed their Minecraft account, disconnect the previous user
hasSent = false; // Reset the hasSent flag
}
@ -139,6 +167,7 @@ public class Athena {
// Send the modified "start" request with the username and UUID
System.out.println(SocketClient.sendRequest("start", currentUsername + ":" + uuid + ":true"));
Athena.INSTANCE.getLog().debug("Sent player initialize request");
SocketClient.setCurrentUsername(currentUsername);
hasSent = true;
@ -159,6 +188,7 @@ public class Athena {
private void createDirectoryIfNotExists(File directory) {
if (!directory.exists()) {
directory.mkdir();
Athena.INSTANCE.getLog().debug("Created folder: " + directory.getName());
}
}
@ -166,6 +196,7 @@ public class Athena {
if (!file.exists()) {
try {
file.createNewFile();
Athena.INSTANCE.getLog().debug("Created file: " + file.getName());
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -11,12 +11,9 @@ import rip.athena.client.cosmetics.cape.CapeManager;
@Getter
public class CosmeticsController {
private final CapeManager capeManager;
public CosmeticsController() {
capeManager = new CapeManager();
}
}

View File

@ -1,19 +0,0 @@
package rip.athena.client.events;
/**
* @author Athena Development
* @project Athena-Client
* @date 6/1/2023
*/
public class Event {
private boolean cancelled;
public boolean isCancelled() {
return cancelled;
}
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
}

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.client;
package rip.athena.client.events.client;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -0,0 +1,7 @@
package rip.athena.client.events.client;
import rip.athena.api.event.Event;
public class ConfigChangeEvent extends Event {
}

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.client;
package rip.athena.client.events.client;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,8 +1,8 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import com.google.common.collect.Maps;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
public class AttackEntityEvent extends Event {

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
import net.minecraft.util.DamageSource;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityMinecart;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.entity;
package rip.athena.client.events.entity;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
import net.minecraft.entity.player.EntityPlayer;
public class PlayerTickEvent extends Event {

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.input;
package rip.athena.client.events.input;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.input;
package rip.athena.client.events.input;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.input;
package rip.athena.client.events.input;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.input;
package rip.athena.client.events.input;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,7 +1,7 @@
package rip.athena.client.events.types.network;
package rip.athena.client.events.network;
import net.minecraft.network.Packet;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,8 +1,8 @@
package rip.athena.client.events.types.render;
package rip.athena.client.events.render;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.entity.EntityLivingBase;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,6 +1,6 @@
package rip.athena.client.events.types.render;
package rip.athena.client.events.render;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
/**
* @author Athena Development

View File

@ -1,7 +1,7 @@
package rip.athena.client.events.types.render;
package rip.athena.client.events.render;
import net.minecraft.entity.player.EntityPlayer;
import rip.athena.client.events.Event;
import rip.athena.api.event.Event;
public class RenderPlayerEvent extends Event {
private EntityPlayer player;

View File

@ -1,4 +1,4 @@
package rip.athena.client.events.types.render;
package rip.athena.client.events.render;
/**
* @author Athena Development

View File

@ -1,7 +0,0 @@
package rip.athena.client.events.types.client;
import rip.athena.client.events.Event;
public class ConfigChangeEvent extends Event {
}

View File

@ -17,9 +17,9 @@ import optifine.Config;
import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GLContext;
import rip.athena.client.Athena;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.client.events.types.render.RenderEntityEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.client.ClientTickEvent;
import rip.athena.client.events.render.RenderEntityEvent;
import rip.athena.client.modules.fpssettings.OptimizerMod;
import java.util.ArrayList;

View File

@ -6,9 +6,9 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.KeyDownEvent;
import rip.athena.client.events.types.input.KeyUpEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.KeyDownEvent;
import rip.athena.client.events.input.KeyUpEvent;
import rip.athena.client.utils.input.KeybindManager;
/**

View File

@ -6,8 +6,8 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.client.ClientTickEvent;
/**
* @author Athena Development

View File

@ -9,11 +9,11 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.entity.AttackEntityEvent;
import rip.athena.client.events.types.input.MouseDownEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.entity.AttackEntityEvent;
import rip.athena.client.events.input.MouseDownEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.NumberUtils;
import rip.athena.client.utils.font.FontManager;

View File

@ -17,6 +17,9 @@ public class Settings extends Module {
@ConfigValue.Boolean(name = "Custom GUI Font")
public static boolean customGuiFont = true;
@ConfigValue.Boolean(name = "Minimize Side Bar")
public static boolean smallBar = false;
@Override
public void onEnable() {
super.onEnable();

View File

@ -0,0 +1,88 @@
package rip.athena.client.modules.other;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@IModuleMetaData(name = "Test Module", type = EnumModuleType.OTHER, icon = "")
public class TestModule extends Module {
@ConfigValue.Boolean(name = "Boolean 1")
public boolean boolean1 = false;
@ConfigValue.Boolean(name = "Boolean 2")
public boolean boolean2 = false;
@ConfigValue.Boolean(name = "Boolean 3")
public boolean boolean3 = false;
@ConfigValue.Boolean(name = "Boolean 4")
public boolean boolean4 = false;
@ConfigValue.Boolean(name = "Boolean 5")
public boolean boolean5 = false;
@ConfigValue.Boolean(name = "Boolean 6")
public boolean boolean6 = false;
@ConfigValue.Boolean(name = "Boolean 7")
public boolean boolean7 = false;
@ConfigValue.Color(name = "Color 1")
public Color color1 = new Color(225,255,255);
@ConfigValue.Color(name = "Color 2")
public Color color2 = new Color(225,255,255);
@ConfigValue.Color(name = "Color 3")
public Color color3 = new Color(225,255,255);
@ConfigValue.Color(name = "Color 4")
public Color color4 = new Color(225,255,255);
@ConfigValue.Color(name = "Color 5")
public Color color5 = new Color(225,255,255);
HUDElement hud;
private int width = 56;
private int height = 20;
public TestModule() {
hud = new HUDElement("test", width, height) {
@Override
public void onRender() {
render();
}
};
hud.setX(100);
hud.setY(100);
addHUD(hud);
}
public void render() {
int x = hud.getX();
int y = hud.getY();
int width = hud.getWidth();
int height = hud.getHeight();
RoundedUtils.drawSelectRoundedRect(x, y, width + x, height + y, 12, 12, 0, 0, new Color(50, 50,50, 150).getRGB());
}
@Override
public void onEnable() {
super.onEnable();
}
@Override
public void onDisable() {
super.onDisable();
}
}

View File

@ -14,9 +14,9 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import java.awt.*;

View File

@ -7,8 +7,8 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.MouseDownEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.MouseDownEvent;
import rip.athena.api.font.FontManager;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.ClickCounter;

View File

@ -18,8 +18,8 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.KeyDownEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.KeyDownEvent;
import rip.athena.api.font.FontManager;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.render.ColorUtil;
@ -215,9 +215,7 @@ public class Coordinates extends Module {
GL11.glScaled(1, 1, 1);
GL11.glColor3f(1, 1, 1);
GL11.glPopMatrix();
}
if (this.displayMode.equalsIgnoreCase("Vertical")) {
} else {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_ALPHA_TEST);
if (mc.thePlayer.posX > 0) {

View File

@ -12,10 +12,10 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.client.ClientTickEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.client.ClientTickEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import java.awt.*;
import java.awt.image.BufferedImage;

View File

@ -5,8 +5,8 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.MouseDownEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.MouseDownEvent;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.ClickCounter;
import rip.athena.client.utils.render.DrawUtils;

View File

@ -12,8 +12,8 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.client.SwitchTextureEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.client.SwitchTextureEvent;
import rip.athena.api.font.FontManager;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.render.ColorUtil;

View File

@ -8,8 +8,8 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.entity.AttackEntityEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.entity.AttackEntityEvent;
import rip.athena.api.font.FontManager;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.render.ColorUtil;

View File

@ -14,9 +14,9 @@ import rip.athena.api.module.Module;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.Athena;
import rip.athena.api.config.ConfigValue;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import rip.athena.client.ui.hud.HUDElement;
import java.awt.*;

View File

@ -6,8 +6,8 @@ import rip.athena.api.module.EnumModuleType;
import rip.athena.api.module.Module;
import rip.athena.api.config.ConfigValue;
import rip.athena.api.module.annotations.IModuleMetaData;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.network.IngoingPacketEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.network.IngoingPacketEvent;
import rip.athena.client.ui.hud.HUDElement;
import rip.athena.client.utils.render.HUDUtil;

View File

@ -16,7 +16,7 @@ public enum PrimaryTheme implements ColorUtil {
DARK("Dark", new Color(30, 31, 35, 255).getRGB(), new Color(43, 44, 48, 255).getRGB(), new Color(35, 35, 35, 255).getRGB(), -1),
WHITE("White", new Color(255, 255, 255, 255).getRGB(), new Color(100, 100, 100, 255).getRGB(), new Color(50, 50, 50, 255).getRGB(), new Color(0,0,0).getRGB()),
TRANSPARENT("Gradient", new Color(200, 200, 200, 80).getRGB(), new Color(150, 150, 150, 100).getRGB(), new Color(100, 100, 100, 255).getRGB(), new Color(255, 255, 255).getRGB());
TRANSPARENT("Transparent", new Color(30, 31, 35, 200).getRGB(), new Color(43, 44, 48, 200).getRGB(), new Color(35, 35, 35, 200).getRGB(), -1);
private final String theme;
private final int firstColor, secondColor, thirdColor, textColor;

View File

@ -10,7 +10,7 @@ public enum Category {
MODS("MODS", "Athena/gui/menu/mods.png"),
SETTINGS("SETTINGS", "Athena/gui/menu/settings.png"),
MACROS("MACROS", "Athena/gui/mods/cps.png"),
WAYPOINTS("WAYPOINTS", "Athena/gui/menu/waypoints.png"),
//WAYPOINTS("WAYPOINTS", "Athena/gui/menu/waypoints.png"),
PROFILES("PROFILES", "Athena/gui/menu/profiles.png"),
COSMETICS("COSMETICS", "Athena/gui/menu/cosmetics.png"),
//COSMETICS("COSMETICS", "Athena/gui/menu/cosmetics.png"),

View File

@ -3,11 +3,14 @@ package rip.athena.client.ui.clickgui;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.api.config.save.Config;
import rip.athena.client.theme.impl.PrimaryTheme;
import rip.athena.client.ui.clickgui.components.mods.ModCategoryButton;
import rip.athena.client.ui.clickgui.pages.ModsPage;
import rip.athena.client.ui.framework.Menu;
import rip.athena.client.ui.framework.MenuComponent;
import rip.athena.client.ui.framework.MinecraftMenuImpl;
import rip.athena.client.ui.framework.components.MenuButton;
import rip.athena.client.ui.framework.components.MenuCheckbox;
import rip.athena.client.ui.framework.components.MenuDraggable;
import rip.athena.client.ui.framework.components.MenuScrollPane;
import rip.athena.client.ui.framework.draw.DrawImpl;
@ -51,7 +54,6 @@ public class IngameMenu extends MinecraftMenuImpl implements DrawImpl {
@Override
public void initGui() {
if(initd) {
menu.getComponents().clear();
initd = false;
@ -69,9 +71,16 @@ public class IngameMenu extends MinecraftMenuImpl implements DrawImpl {
int y = 59 + 60;
int height = 32;
int width = 205;
int x2 = 0;
if(Settings.smallBar) {
width = 40;
x2 = 152;
}
for(Category category : Category.values()) {
MenuButton comp = new CategoryButton(category, new ResourceLocation(category.getIcon()), 0, y, 205, height) {
MenuButton comp = new CategoryButton(category, new ResourceLocation(category.getIcon()), x2, y, width, height) {
@Override
public void onAction() {
if(IngameMenu.category != null) {
@ -129,19 +138,22 @@ public class IngameMenu extends MinecraftMenuImpl implements DrawImpl {
float value = guiScale / new ScaledResolution(mc).getScaleFactor();
GlStateManager.scale(value, value, value);
//DrawUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + 58, 4, MENU_TOP_BG_COLOR);
if(Settings.smallBar) {
RoundedUtils.drawSelectRoundedRect(menu.getX() + 150, menu.getY(), 200 + menu.getX(), menu.getHeight() + menu.getY(), 24, 24, 0, 0, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
RoundedUtils.drawSelectRoundedRect(menu.getX() + 220, menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 0, 0, 24, 24, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
} else {
if(Athena.INSTANCE.getThemeManager().getPrimaryTheme() != PrimaryTheme.TRANSPARENT) {
RoundedUtils.drawGradientRound(menu.getX() - 1, menu.getY() - 1, menu.getWidth() + 2, menu.getHeight() + 2, 10, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
}
drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth());
RoundedUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 16, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
rip.athena.client.utils.font.FontManager.getProductSansBold(60).drawString(Athena.INSTANCE.getClientName(), menu.getX() + 40, menu.getY() + 17, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
RoundedUtils.drawGradientRound(menu.getX() - 1, menu.getY() - 1, menu.getWidth() + 2, menu.getHeight() + 2, 10, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 16, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
drawVerticalLine(menu.getX() + 215, menu.getY() + 60, menu.getHeight() - 60, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth());
}
rip.athena.client.utils.font.FontManager.getProductSansBold(60).drawString(Athena.INSTANCE.getClientName(), menu.getX() + 60, menu.getY() + 17, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
//DrawUtils.drawImage(new ResourceLocation("Athena/logo/pride.png"), (int) (menu.getX() + FontManager.font1.getStringWidth(Athena.INSTANCE.getClientName().toUpperCase()) + 70), (int) (menu.getY() - 10 + FontManager.font1.getHeight(Athena.INSTANCE.getClientName().toUpperCase())), 30, 30);
drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth());
GlStateManager.color(1,1,1);
if(category != null) {
pageManager.getPage(category).onRender();

View File

@ -0,0 +1,212 @@
package rip.athena.client.ui.clickgui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;
import rip.athena.api.config.save.Config;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.theme.impl.PrimaryTheme;
import rip.athena.client.ui.clickgui.components.mods.CategoryButton;
import rip.athena.client.ui.clickgui.pages.ModsPage;
import rip.athena.client.ui.framework.Menu;
import rip.athena.client.ui.framework.MenuComponent;
import rip.athena.client.ui.framework.MinecraftMenuImpl;
import rip.athena.client.ui.framework.components.MenuButton;
import rip.athena.client.ui.framework.components.MenuDraggable;
import rip.athena.client.ui.framework.components.MenuScrollPane;
import rip.athena.client.ui.framework.draw.DrawImpl;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author Athena Development
* @project Athena-Client
* @date 6/2/2023
*/
public class IngameMenuOld extends MinecraftMenuImpl implements DrawImpl {
public static int MENU_ALPHA = 255;
public static int MENU_TOP_BG_COLOR = new Color(30, 30, 30, MENU_ALPHA).getRGB();
public static int MENU_PANE_BG_COLOR = new Color(35, 35, 35, MENU_ALPHA).getRGB();
public static int MENU_HEADER_TEXT_COLOR = new Color(255, 255, 255, MENU_ALPHA).getRGB();
public static int MENU_LINE_COLOR = new Color(25, 25, 28, IngameMenuOld.MENU_ALPHA).getRGB();
public static PageManager pageManager;
public static Category category = Category.MODS;
private static boolean initd;
private static int savedWidth = -1;
private static int savedHeight = -1;
public IngameMenuOld(Module feature, Menu menu) {
super(feature, menu);
//pageManager = new PageManager(this, menu);
}
@Override
public void initGui() {
if(initd) {
menu.getComponents().clear();
initd = false;
}
if(!initd) {
for(IPage page : pageManager.getPages().values()) {
page.onInit();
}
menu.addComponent(new MenuDraggable(0, 0, menu.getWidth(), 58));
int x = 175;
//int y = 58 / 2 + 2;
int y = 59 + 60;
int height = 32;
for(Category category : Category.values()) {
MenuButton comp = new CategoryButton(category, new ResourceLocation(category.getIcon()), 0, y, 205, height) {
@Override
public void onAction() {
if(IngameMenuOld.category != null) {
pageManager.getPage(IngameMenuOld.category).onUnload();
}
IngameMenuOld.category = category;
for(MenuComponent component : menu.getComponents()) {
if(component instanceof CategoryButton) {
CategoryButton button = (CategoryButton) component;
button.setActive(component == this);
}
}
initPage();
}
};
if(category == IngameMenuOld.category) {
comp.setActive(true);
}
menu.addComponent(comp);
if(Settings.customGuiFont) {
x += rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(category.getName()) + 20;
} else {
x += mc.fontRendererObj.getStringWidth(category.getName()) + 20;
}
y += 40;
}
initPage();
initd = true;
}
if(category != null) {
pageManager.getPage(category).onOpen();
}
super.initGui();
}
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
if(savedWidth != mc.displayWidth || savedHeight != mc.displayHeight) {
savedWidth = mc.displayWidth;
savedHeight = mc.displayHeight;
ScaledResolution sr = new ScaledResolution(mc);
menu.setX(sr.getScaledWidth() / 2);
menu.setY(sr.getScaledHeight() / 2);
}
GlStateManager.pushMatrix();
float value = guiScale / new ScaledResolution(mc).getScaleFactor();
GlStateManager.scale(value, value, value);
drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth());
if(Athena.INSTANCE.getThemeManager().getPrimaryTheme() != PrimaryTheme.TRANSPARENT) {
RoundedUtils.drawGradientRound(menu.getX() - 1, menu.getY() - 1, menu.getWidth() + 2, menu.getHeight() + 2, 10, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
}
RoundedUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 16, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
rip.athena.client.utils.font.FontManager.getProductSansBold(60).drawString(Athena.INSTANCE.getClientName(), menu.getX() + 60, menu.getY() + 17, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth());
if(category != null) {
pageManager.getPage(category).onRender();
}
GlStateManager.popMatrix();
super.drawScreen(mouseX, mouseY, partialTicks);
GlStateManager.pushMatrix();
GlStateManager.scale(value, value, value);
for(MenuComponent component : menu.getComponents()) {
if(component instanceof MenuScrollPane) {
MenuScrollPane scrollpane = (MenuScrollPane) component;
scrollpane.drawExtras();
}
}
GlStateManager.popMatrix();
GlStateManager.color(1,1,1);
}
public void initPage() {
List<MenuComponent> remove = new ArrayList<>();
for(MenuComponent component : menu.getComponents()) {
if(component instanceof CategoryButton || component instanceof MenuDraggable) {
continue;
}
remove.add(component);
}
menu.getComponents().removeAll(remove);
pageManager.getPage(category).onLoad();
}
public void openSettings(Module parent) {
if(category != null) {
pageManager.getPage(category).onUnload();
}
category = Category.MODS;
pageManager.getPage(ModsPage.class, Category.MODS).activeModule = parent;
initPage();
}
@Override
public void onGuiClosed() {
if(category != null) {
pageManager.getPage(category).onClose();
}
super.onGuiClosed();
new Thread(() -> {
Config config = Athena.INSTANCE.getConfigManager().getLoadedConfig();
if(config != null) {
config.save();
}
}).start();
}
}

View File

@ -31,9 +31,8 @@ public class PageManager {
pages.put(Category.MODS, new ModsPage(mc, menu, parent));
pages.put(Category.SETTINGS, new SettingsPage(mc, menu, parent));
pages.put(Category.MACROS, new MacrosPage(mc, menu, parent));
pages.put(Category.WAYPOINTS, new WaypointsPage(mc, menu, parent));
//pages.put(Category.WAYPOINTS, new WaypointsPage(mc, menu, parent));
pages.put(Category.PROFILES, new ProfilesPage(mc, menu, parent));
//pages.put(Category.COSMETICS, new CosmeticsPage(mc, menu, parent));
pages.put(Category.COSMETICS, new CosmeticsPage(mc, menu, parent));
pages.put(Category.THEMES, new ThemesPage(mc, menu, parent));
}

View File

@ -77,6 +77,7 @@ public class CosmeticGenericButton extends MacroButton {
drawText(text, x + (width / 2 - getStringWidth(text) / 2), y + (height / 2 - getStringHeight(text) / 2), textColor);
GlStateManager.color(1,1,1);
mouseDown = false;
}
}

View File

@ -8,7 +8,9 @@ import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
import rip.athena.client.ui.clickgui.IngameMenu;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.DrawUtils;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -19,8 +21,8 @@ import java.awt.*;
*/
public class FlipButton extends MenuButton {
public static final int NORMAL_ON = new Color(15, 58, 28, IngameMenu.MENU_ALPHA).getRGB();
public static final int NORMAL_OFF = new Color(58, 15, 17, IngameMenu.MENU_ALPHA).getRGB();
public static final int NORMAL_ON = new Color(15, 200, 28, IngameMenu.MENU_ALPHA).getRGB();
public static final int NORMAL_OFF = new Color(200, 15, 17, IngameMenu.MENU_ALPHA).getRGB();
public static final int HOVER_ON = new Color(23, 92, 44, IngameMenu.MENU_ALPHA).getRGB();
public static final int HOVER_OFF = new Color(94, 25, 28, IngameMenu.MENU_ALPHA).getRGB();
@ -58,19 +60,6 @@ public class FlipButton extends MenuButton {
int y = this.getRenderY();
int width = (this.width == -1 && this.height == -1) ? (getStringWidth(text) + minOffset * 2) : this.width;
int height = (this.width == -1 && this.height == -1) ? (getStringHeight(text) + minOffset * 2) : this.height;
int linePopupColor = getColor(DrawType.LINE, ButtonState.POPUP);
int backgroundColor = getColor(DrawType.BACKGROUND, lastState);
int lineColor = getColor(DrawType.LINE, lastState);
int textColor = getColor(DrawType.TEXT, lastState);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y, width, height, backgroundColor);
//drawHorizontalLine(x, y, width + 1, 1, lineColor);
//drawVerticalLine(x, y + 1, height - 1, 1, linePopupColor);
//drawHorizontalLine(x, y + height, width + 1, 1, lineColor);
//drawVerticalLine(x + width, y + 1, height - 1, 1, linePopupColor);
GlStateManager.color(1,1,1);
@ -80,14 +69,9 @@ public class FlipButton extends MenuButton {
y += 5;
height -= 10;
DrawUtils.drawRoundedRect(x - 1, y - 1, x + width + 1, y + height + 1, 4.0f, new Color(50, 50, 50, 255).getRGB());
RoundedUtils.drawGradientRound(x, y, width, height, 2.0f, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
DrawUtils.drawRoundedRect(x, y, x + width, y + height, 4.0f, new Color(35, 35, 35, 255).getRGB());
/*drawHorizontalLine(x, y, width + 1, 1, linePopupColor);
drawVerticalLine(x, y + 1, height - 1, 1, linePopupColor);
drawHorizontalLine(x, y + height, width + 1, 1, linePopupColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, linePopupColor);*/
int color = active ? NORMAL_ON : NORMAL_OFF;
if(lastState == ButtonState.HOVER || lastState == ButtonState.HOVERACTIVE) {
@ -101,11 +85,8 @@ public class FlipButton extends MenuButton {
if(active) {
DrawUtils.drawRoundedRect(x, y, x + width / 2, y + height, 4.0f, color);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y, width / 2, height, color);
} else {
DrawUtils.drawRoundedRect(x + width - width / 2, y, x + width, y + height, 4.0f, color);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + width - width / 2, y, width / 2, height, color);
}
mouseDown = false;

View File

@ -66,26 +66,11 @@ public class MacroBase extends MenuComponent {
int textColor = getColor(DrawType.TEXT, ButtonState.NORMAL);
int backgroundColor = getColor(DrawType.BACKGROUND, ButtonState.NORMAL);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y, width, height, backgroundColor);
GlStateManager.color(1,1,1);
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 12.0f, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getThirdColor());
/*drawHorizontalLine(x, y, width + 1, 1, lineColor);
drawVerticalLine(x, y + 1, height - 1, 1, lineColor);
drawHorizontalLine(x, y + height, width + 1, 1, lineColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, lineColor);
drawShadowUp(x, y, width + 1);
drawShadowLeft(x, y, height + 1);
drawShadowDown(x, y + height + 1, width + 1);
drawShadowRight(x + width + 1, y, height + 1);*/
//drawHorizontalLine(x, y, textWidth + 1, 1, linePopupColor);
//drawVerticalLine(x, y + 1, height - 1, 1, linePopupColor);
//drawHorizontalLine(x, y + height, textWidth +
drawText(text, x + spacing, y + height / 2 - getStringHeight(text) / 2, -1);
}
@Override

View File

@ -3,6 +3,7 @@ package rip.athena.client.ui.clickgui.components.macros;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import rip.athena.api.font.FontManager;
import rip.athena.client.Athena;
import rip.athena.client.ui.framework.TextPattern;
import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
@ -10,6 +11,8 @@ import rip.athena.client.ui.clickgui.IngameMenu;
import rip.athena.client.ui.clickgui.components.mods.SearchTextfield;
import org.lwjgl.input.Keyboard;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -68,6 +71,8 @@ public class MacroSlimTextField extends SearchTextfield {
GlStateManager.color(1,1,1);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y + height - 3, width, 3, lineColor);
//RoundedUtils.drawGradientRound(x - 1, y + 5, width + 2, height - 5, 2.0f, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRoundedRect(x, y + 5, width + x, height + y, 2.0f, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
String textToDraw = text;

View File

@ -9,8 +9,10 @@ import rip.athena.client.ui.framework.draw.DrawType;
import rip.athena.client.ui.clickgui.IngameMenu;
import rip.athena.client.ui.clickgui.components.mods.SearchTextfield;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.DrawUtils;
import org.lwjgl.input.Keyboard;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -78,7 +80,8 @@ public class MacroTextfield extends SearchTextfield {
DrawUtils.drawRoundedRect(x - 3, y - 3, x + width + 4, y + height + 4, 4, 369098752);
DrawUtils.drawRoundedRect(x - 2, y - 2, x + width + 3, y + height + 3, 4, 587202560);*/
DrawUtils.drawRoundedRect(x - 1, y - 1, x + width + 2, y + height + 2, 4, lineColor);
//DrawUtils.drawRoundedRect(x - 1, y - 1, x + width + 2, y + height + 2, 4, lineColor);
RoundedUtils.drawGradientRound(x - 1, y - 1, width + 2, height + 2, 2.0f, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
//DrawUtils.drawRoundedRect(x, y, x + width + 1, y + height + 1, 4, lineColor);
DrawUtils.drawRoundedRect(x, y, x + width + 1, y + height + 1, 4, backgroundColor);

View File

@ -1,8 +1,10 @@
package rip.athena.client.ui.clickgui.components.mods;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;
import rip.athena.client.Athena;
import rip.athena.client.ui.clickgui.IngameMenu;
import rip.athena.client.ui.framework.components.MenuButton;
import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
@ -36,6 +38,11 @@ public class CategoryButton extends MenuButton {
this.image = image;
}
public CategoryButton(String category, ResourceLocation image, int x, int y, int width, int height) {
super(category, x, y, width, height);
this.image = image;
}
@Override
public void onInitColors() {
setColor(DrawType.TEXT, ButtonState.NORMAL, new Color(30, 30, 30, 255));
@ -54,17 +61,31 @@ public class CategoryButton extends MenuButton {
int width = (this.width == -1 && this.height == -1) ? (getStringWidth(text) + minOffset * 2) : this.width;
int height = (this.width == -1 && this.height == -1) ? (getStringHeight(text) + minOffset * 2) : this.height;
if(isActive()) {
RoundedUtils.drawRound(x + 30, y, width - 70, height, 12, new Color(10,10,10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 30, y, width + x - 40, height + y, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
}
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getNunitoBold(25).drawString(text, x + 70, y + height / 2 - (getStringHeight(text) / 2) + 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2), Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
if(Settings.smallBar) {
if (isActive()) {
RoundedUtils.drawRound(x + 5, y, width - 5, height, 10, new Color(10, 10, 10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 5, y, width + x, height + y, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
}
DrawUtils.drawImage(image, x + 35, y + 3, 25, 25);
GlStateManager.pushMatrix();
DrawUtils.drawImage(image, x + 10, y + 3, 25, 25);
GlStateManager.popMatrix();
} else {
if (isActive()) {
RoundedUtils.drawRound(x + 30, y, width - 70, height, 12, new Color(10, 10, 10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 30, y, width + x - 40, height + y, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
}
if (Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getNunitoBold(25).drawString(text, x + 70, y + height / 2 - (getStringHeight(text) / 2) + 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2), Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
GlStateManager.pushMatrix();
DrawUtils.drawImage(image, x + 35, y + 3, 25, 25);
GlStateManager.popMatrix();
}
GlStateManager.color(1,1,1);
mouseDown = false;
}

View File

@ -5,6 +5,8 @@ import rip.athena.client.Athena;
import rip.athena.client.ui.framework.components.MenuCheckbox;
import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
import rip.athena.client.utils.animations.simple.SimpleAnimation;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -16,6 +18,9 @@ import java.awt.*;
*/
public class MenuModCheckbox extends MenuCheckbox {
private SimpleAnimation switchAnimation = new SimpleAnimation(0.0F);
public MenuModCheckbox(int x, int y, int width, int height) {
super("", x, y, width, height);
textOffset = 0;
@ -48,35 +53,23 @@ public class MenuModCheckbox extends MenuCheckbox {
GlStateManager.color(1, 1, 1);
if (backgroundColor == getColor(DrawType.BACKGROUND, ButtonState.ACTIVE)) {
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB());
RoundedUtils.drawRoundedRect(x + 3, y + 3, x + width - 3, y + height - 3, 4, Color.BLACK.getRGB());
// RoundedUtils.drawGradientRound(x + 2, y + 2, width - 3, height - 3, 3, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
RoundedUtils.drawGradientRound(x - 1, y - 1, width + 2, height + 2, 4, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getThirdColor());
RoundedUtils.drawRoundedRect(x, y, x + width / 2, y + height, 4, new Color(20, 200, 50).getRGB());
} else if (backgroundColor == getColor(DrawType.BACKGROUND, ButtonState.HOVER)) {
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB());
RoundedUtils.drawGradientRound(x - 1, y - 1, width + 2, height + 2, 4, ColorUtil.getClientColor(0, 255).brighter(), ColorUtil.getClientColor(90, 255).brighter(), ColorUtil.getClientColor(180, 255).brighter(), ColorUtil.getClientColor(270, 255).brighter());
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getThirdColor()).brighter().getRGB());
RoundedUtils.drawRoundedRect(x + ((float) width / 2), y, x + width, y + height, 4, new Color(200, 50, 50).brighter().getRGB());
} else if (backgroundColor == getColor(DrawType.BACKGROUND, ButtonState.HOVERACTIVE)) {
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB());
RoundedUtils.drawRoundedRect(x + 3, y + 3, x + width - 3, y + height - 3, 4, Color.BLACK.getRGB());
// RoundedUtils.drawGradientRound(x + 2, y + 2, width - 3, height - 3, 3, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().darker(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().darker(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().darker(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().darker());
RoundedUtils.drawGradientRound(x - 1, y - 1, width + 2, height + 2, 4, ColorUtil.getClientColor(0, 255).brighter(), ColorUtil.getClientColor(90, 255).brighter(), ColorUtil.getClientColor(180, 255).brighter(), ColorUtil.getClientColor(270, 255).brighter());
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getThirdColor()).brighter().getRGB());
RoundedUtils.drawRoundedRect(x, y, x + width / 2, y + height, 4, new Color(20, 200, 50).brighter().getRGB());
} else {
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getTheme().getThirdColor().getRGB());
// RoundedUtils.drawRoundedGradientOutlineCorner(x + 2, y, x + width - 2, y + height - 3, 1, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB());
RoundedUtils.drawGradientRound(x - 1, y - 1, width + 2, height + 2, 4, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 4, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getThirdColor());
RoundedUtils.drawRoundedRect(x + ((float) width / 2), y, x + width, y + height, 4, new Color(200, 50, 50).getRGB());
}
/*drawHorizontalLine(x, y, width + 1, 1, lineColor);
drawVerticalLine(x, y + 1, height - 1, 1, lineColor);
drawHorizontalLine(x, y + height, width + 1, 1, lineColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, lineColor);
rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + 2, y + 2, width - 3, height - 3, lineColor);
rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + 3, y + 3, width - 5, height - 5, backgroundColor);*/
//DrawUtils.drawRoundedRect(x, y, x + width, y + height, 4, lineColor);
//DrawUtils.drawRoundedRect(x + 4, y + 4, x + width - 4, y + height - 4, 1, backgroundColor);
drawTooltip();
mouseDown = false;

View File

@ -38,17 +38,17 @@ public class MenuModColorPicker extends MenuColorPicker {
GlStateManager.color(1, 1, 1);
drawHorizontalLine(x, y, width + 1, 1, lineColor);
/*drawHorizontalLine(x, y, width + 1, 1, lineColor);
drawVerticalLine(x, y + 1, height - 1, 1, lineColor);
drawHorizontalLine(x, y + height, width + 1, 1, lineColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, lineColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, lineColor);*/
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(x + 2, y + 2, width - 3, height - 3, lineColor);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(x + 3, y + 2, width - 1, height - 3, lineColor);
int index = 0;
for(int h = y; h < y + height - 5; h++) {
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(x + 3, h + 3, width - 5, 1, disabled ? lightenColor(index, 7, color).getRGB() : darkenColor(index, 7, color).getRGB());
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(x + 5, h + 3, width - 5, 1, /*disabled ? */lightenColor(index, 0, color).getRGB()/* : darkenColor(index, 7, color).getRGB()*/);
index++;
}

View File

@ -10,6 +10,7 @@ import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
import org.lwjgl.input.Keyboard;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.DrawUtils;
import rip.athena.client.utils.render.RoundedUtils;
@ -162,8 +163,9 @@ public class MenuModKeybind extends MenuComponent {
GlStateManager.color(1,1,1);
DrawUtils.drawRoundedRect(x, y, x + width, y + height, 4.0f, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
RoundedUtils.drawRoundedGradientOutlineCorner(x, y, x + width, y + height, 1, 12, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB());
RoundedUtils.drawGradientRound(x, y, width, height, 2.0f, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
DrawUtils.drawRoundedRect(x, y, x + width, y + height, 2.0f, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
//RoundedUtils.drawRoundedGradientOutlineCorner(x, y, x + width, y + height, 1, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor().getRGB());
//DrawUtils.drawRoundedRect(x + 1, y + 1, x + width - 1, y + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB());

View File

@ -9,6 +9,7 @@ import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
import org.lwjgl.input.Mouse;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.DrawUtils;
import rip.athena.client.utils.render.RoundedUtils;
@ -101,7 +102,8 @@ public class MenuModSlider extends MenuSlider {
linePos += minOffset;
}
DrawUtils.drawRoundedRect(x + 1, y + 1, x + linePos, y + height - 1, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB());
//DrawUtils.drawRoundedRect(x + 1, y + 1, x + linePos, y + height - 1, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB());
RoundedUtils.drawGradientRound(x + 1, y + 1, linePos, height - 1, 4, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
// RoundedUtils.drawRoundedRect(x + 1, y + 1, linePos, height - 1, 6 ,Athena.INSTANCE.getThemeManager().getTheme().getFirstColor().getRGB());
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + 1, y + 1, linePos, height - 1, backgroundColor);
@ -113,7 +115,7 @@ public class MenuModSlider extends MenuSlider {
cursorPos = cursorWidth;
}
DrawUtils.drawRoundedRect(x + cursorPos - cursorWidth, y + 1, x + cursorPos, y + height - 1, 6, -1);
DrawUtils.drawRoundedRect(x + cursorPos - cursorWidth + 10, y, x + cursorPos, y + height, 2, -1);
// DrawUtils.drawRoundedRect(x + cursorPos - cursorWidth, y, x + cursorWidth + 2, y + height + 1, 4, linePopupColor);
// DrawUtils.drawRoundedRect(x + 1 + cursorPos - cursorWidth, y + 1, cursorWidth, height - 1, 4, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());

View File

@ -66,28 +66,43 @@ public class ModCategoryButton extends MenuButton {
GlStateManager.color(1, 1, 1);
if(isActive()) {
RoundedUtils.drawRound(x + 17, y, width - 23, height - 4, 12, new Color(10,10,10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 17, y, width + x - 7, height + y - 4, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
//RoundedUtils.drawGradientRound(x + 17, y - 1, width - 23, height - 4, 12, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
//RoundedUtils.drawRoundedRect(x + 17, y - 1, x + width - 6, y + height - 4, 12, new Color(50,50,50,255).getRGB());
//RoundedUtils.drawRoundedRect(x + 18, y, x + width - 7, y + height - 5, 12, backgroundColor);
//drawHorizontalLine(x + (width / 2 - getStringWidth(text) / 2), y + 29, (int)Minecraft.getMinecraft().fontRendererObj.getStringWidth(text), 2, textColor);
}
if(Settings.customGuiFont) {
if(text.equalsIgnoreCase("EDIT HUD")) {
rip.athena.client.utils.font.FontManager.getProductSansBold(35).drawString(text, x + (width / 2 - getStringWidth(text) / 2) - 15, y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
rip.athena.client.utils.font.FontManager.getProductSansBold(25).drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
if(Settings.smallBar) {
if (text.equalsIgnoreCase("EDIT HUD")) {
DrawUtils.drawImage(image, x + 10, y + 3, 25, 25);
}
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
if(text.equalsIgnoreCase("EDIT HUD")) {
DrawUtils.drawImage(image, x + 25, y + 3, 25, 25);
if (isActive()) {
RoundedUtils.drawRound(x + 17, y, width - 23, height - 4, 12, new Color(10, 10, 10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 17, y, width + x - 7, height + y - 4, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
}
if (Settings.customGuiFont) {
if (!text.equalsIgnoreCase("EDIT HUD")) {
rip.athena.client.utils.font.FontManager.getProductSansBold(25).drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
} else {
if (isActive()) {
RoundedUtils.drawRound(x + 17, y, width - 23, height - 4, 12, new Color(10, 10, 10, 150));
RoundedUtils.drawRoundedGradientOutlineCorner(x + 17, y, width + x - 7, height + y - 4, 1, 12, ColorUtil.getClientColor(0, 255).getRGB(), ColorUtil.getClientColor(90, 255).getRGB(), ColorUtil.getClientColor(180, 255).getRGB(), ColorUtil.getClientColor(270, 255).getRGB());
}
if (Settings.customGuiFont) {
if (text.equalsIgnoreCase("EDIT HUD")) {
rip.athena.client.utils.font.FontManager.getProductSansBold(35).drawString(text, x + (width / 2 - getStringWidth(text) / 2) - 15, y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
rip.athena.client.utils.font.FontManager.getProductSansBold(25).drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
if (text.equalsIgnoreCase("EDIT HUD")) {
DrawUtils.drawImage(image, x + 25, y + 3, 25, 25);
}
}
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y, width - 10, height, backgroundColor);
/*DrawUtils.drawRoundedRect(x + 9, y - 1, x + width - 19, y + height + 1, 4, new Color(50,50,50,255).getRGB());
@ -98,7 +113,6 @@ public class ModCategoryButton extends MenuButton {
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2), textColor);
}*/
mouseDown = false;
}

View File

@ -11,6 +11,8 @@ import rip.athena.client.ui.framework.draw.DrawType;
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import rip.athena.client.utils.animations.simple.SimpleAnimation;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -24,7 +26,7 @@ import java.util.Collections;
public class ModScrollPane extends MenuScrollPane {
private boolean fullHeightScroller;
public ModScrollPane(int x, int y, int width, int height, boolean fullHeightScroller) {
super(x, y, width, height);
@ -141,8 +143,7 @@ public class ModScrollPane extends MenuScrollPane {
component.setWidth(width - scrollerWidth - 1);
}
}
Collections.sort(components, (a, b) -> Integer.compare(a.getPriority().getPriority(), b.getPriority().getPriority()));
Collections.reverse(components);
@ -223,33 +224,14 @@ public class ModScrollPane extends MenuScrollPane {
float scrollerDelta = (float)-theY / (scrollerHeight + maxY);
int newY = scrollerY + Math.round(scrollerHeight * scrollerDelta);
if(newSize > 4) {
if(scrollerSizeDelta < 1) {
scrollerHeight -= 3;
GlStateManager.color(1, 1,1);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, y - 2, scrollerWidth + 6, scrollerHeight + 8, 83886080);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, y - 1, scrollerWidth + 4, scrollerHeight + 6, 369098752);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, y, scrollerWidth + 2, scrollerHeight + 4, 587202560);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX, y + 1, scrollerWidth, scrollerHeight + 2, getColor(DrawType.LINE, ButtonState.NORMAL));
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, y + 2, scrollerWidth - 2, scrollerHeight, getColor(DrawType.BACKGROUND, ButtonState.NORMAL));
RoundedUtils.drawRoundedRect(scrollerX + 2, y + 2, scrollerX + scrollerWidth - 2, y + scrollerHeight, 6, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
//RoundedUtils.drawRoundedRect(scrollerX - 3, newY - 3, scrollerWidth + 6, newSize + 6, 12, -1);
RoundedUtils.drawGradientRound(scrollerX, newY - 3, scrollerWidth, newSize, 6,Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
//RoundedUtils.drawRoundedRect(scrollerX, newY - 3, scrollerX + scrollerWidth, newY + newSize, 6, -1);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, newY - 3, scrollerWidth + 6, newSize + 6, 83886080);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, newY - 2, scrollerWidth + 4, newSize + 4, 369098752);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, newY - 1, scrollerWidth + 2, newSize + 2, 587202560);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX, newY, scrollerWidth, newSize, getColor(DrawType.LINE, scrollerState));
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, newY + 1, scrollerWidth - 2, newSize - 2, getColor(DrawType.BACKGROUND, scrollerState));
RoundedUtils.drawGradientRound(scrollerX, newY - 3, scrollerWidth, newSize, 6, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
}
}

View File

@ -67,7 +67,7 @@ public class SearchTextfield extends MenuTextField {
GlStateManager.color(1, 1,1);
RoundedUtils.drawRoundedRect(x - 4, y - 4, x + width + 5, y + height + 5, 24, 83886080);
//RoundedUtils.drawRoundedRect(x - 4, y - 4, x + width + 5, y + height + 5, 24, 83886080);
RoundedUtils.drawRoundedRect(x - 2, y - 2, x + width + 3, y + height + 3, 24, 587202560);
/*DrawUtils.drawRoundedRect(x - 1, y - 1, x + width + 2, y + height + 2, 10, lineColor);
@ -107,7 +107,7 @@ public class SearchTextfield extends MenuTextField {
if(comp < index){
textToDraw = textToDraw.substring(1);
if(Settings.customGuiFont) {
labelWidth = (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(textToDraw + 1);
labelWidth = (int) rip.athena.client.utils.font.FontManager.getProductSansLight(30).width(textToDraw + 1);
} else {
labelWidth = Minecraft.getMinecraft().fontRendererObj.getStringWidth(textToDraw + 1);
}
@ -115,7 +115,7 @@ public class SearchTextfield extends MenuTextField {
} else if(comp > index){
textToDraw = textToDraw.substring(0, textToDraw.length() - 1);
if(Settings.customGuiFont) {
labelWidth = (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(textToDraw + 1);
labelWidth = (int) rip.athena.client.utils.font.FontManager.getProductSansLight(30).width(textToDraw + 1);
} else {
labelWidth = Minecraft.getMinecraft().fontRendererObj.getStringWidth(textToDraw + 1);
}
@ -137,7 +137,7 @@ public class SearchTextfield extends MenuTextField {
if(Settings.customGuiFont) {
textHeight = (int) FontManager.baloo17.getHeight(textToDraw);
drawVerticalLine(x + 10 + (int)rip.athena.client.utils.font.FontManager.getNunito(20).width(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor);
drawVerticalLine(x + 10 + (int)rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor);
} else {
textHeight = Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT;
drawVerticalLine(x + 10 + (int)Minecraft.getMinecraft().fontRendererObj.getStringWidth(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor);
@ -162,7 +162,7 @@ public class SearchTextfield extends MenuTextField {
}
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getNunito(20).drawString(textToDraw, x + 10 + minOffset + xAdd, y + 2 + (float) height / 2 - (float) (int) rip.athena.client.utils.font.FontManager.getNunito(20).height() / 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(textToDraw, x + 10 + minOffset + xAdd, y + 2 + (float) height / 2 - (float) (int) rip.athena.client.utils.font.FontManager.getNunito(20).height() / 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(textToDraw, x + 10 + minOffset + xAdd, (int) (y + (float) height / 2 - (float) (int) Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT / 2), Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}

View File

@ -9,6 +9,7 @@ import rip.athena.client.ui.framework.draw.ButtonState;
import rip.athena.client.ui.framework.draw.DrawType;
import rip.athena.client.ui.clickgui.IngameMenu;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
@ -44,9 +45,7 @@ public class ProfilesBase extends MenuComponent {
@Override
public void onInitColors() {
setColor(DrawType.TEXT, ButtonState.NORMAL, new Color(255, 255, 255, IngameMenu.MENU_ALPHA));
setColor(DrawType.BACKGROUND, ButtonState.NORMAL, new Color(35, 35, 35, IngameMenu.MENU_ALPHA));
setColor(DrawType.LINE, ButtonState.NORMAL, new Color(48, 47, 49, IngameMenu.MENU_ALPHA));
}
@ -57,25 +56,12 @@ public class ProfilesBase extends MenuComponent {
int mouseX = parent.getMouseX();
int width = this.width;
int lineColor = getColor(DrawType.LINE, ButtonState.NORMAL);
int textColor = getColor(DrawType.TEXT, ButtonState.NORMAL);
int backgroundColor = getColor(DrawType.BACKGROUND, ButtonState.NORMAL);
GlStateManager.color(1,1,1);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x, y, width, height, backgroundColor);
/*drawHorizontalLine(x, y, width + 1, 1, lineColor);
drawVerticalLine(x, y + 1, height - 1, 1, lineColor);
drawHorizontalLine(x, y + height, width + 1, 1, lineColor);
drawVerticalLine(x + width, y + 1, height - 1, 1, lineColor);*/
/*drawShadowUp(x, y, width + 1);
drawShadowLeft(x, y, height + 1);
drawShadowDown(x, y + height + 1, width + 1);
drawShadowRight(x + width + 1, y, height + 1);*/
RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 12.0f, new Color(50,50,50,255).getRGB());
//RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 12.0f, new Color(50,50,50,255).getRGB());
//RoundedUtils.drawGradientRound(x, y, width, height, 6f, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
RoundedUtils.drawRoundedRect(x + 1, y + 1, x + width - 1, y + height - 1, 12.0f, new Color(35,35,35,255).getRGB());
drawText(text, x + width / 2 - getStringWidth(text) / 2, y + 30, textColor);

View File

@ -2,6 +2,7 @@ package rip.athena.client.ui.clickgui.pages;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import rip.athena.client.Athena;
import rip.athena.client.cosmetics.cape.Cape;
import rip.athena.client.ui.clickgui.IngameMenu;
@ -12,6 +13,8 @@ import rip.athena.client.ui.clickgui.components.mods.ModScrollPane;
import rip.athena.client.ui.clickgui.pages.cosmetics.CosmeticType;
import rip.athena.client.ui.framework.Menu;
import java.awt.*;
/**
* @author Athena Development
* @project Athena-Client
@ -153,8 +156,9 @@ public class CosmeticsPage extends Page {
int x = menu.getX() + menu.getWidth() - width + 20;
int y = menu.getY() + 59;
int height = 32;
GlStateManager.color(1,1,1);
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
}
@Override

View File

@ -11,7 +11,7 @@ import rip.athena.client.ui.clickgui.components.mods.MenuModKeybind;
import rip.athena.client.ui.clickgui.components.mods.ModScrollPane;
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Keyboard;
import rip.athena.api.macros.Macro;
import rip.athena.api.macro.Macro;
import rip.athena.client.modules.other.Settings;
import rip.athena.client.utils.font.FontManager;
@ -161,27 +161,20 @@ public class MacrosPage extends Page {
GlStateManager.color(1,1,1);
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
if(Settings.customGuiFont) {
FontManager.getNunitoBold(30).drawString("MACROS", menu.getX() + 235, menu.getY() + 80, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
Minecraft.getMinecraft().fontRendererObj.drawString("MACROS", menu.getX() + 235, menu.getY() + 80, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
//drawHorizontalLine(menu.getX() + 31, menu.getY() + 110, menu.getWidth() - width - 31 * 2, 3, IngameMenu.MENU_LINE_COLOR);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, menu.getHeight() - 58, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, height + 1, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
drawShadowDown(menu.getX() + menu.getWidth() - width, y + height, width);
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString("ADD NEW MACRO", menu.getX() + menu.getWidth() - width / 2 - (double) FontManager.getProductSansRegular(30).width("ADD NEW MACRO") / 2, y + height / 2 - Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT / 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
} else {
Minecraft.getMinecraft().fontRendererObj.drawString("ADD NEW MACRO", menu.getX() + menu.getWidth() - width / 2 - Minecraft.getMinecraft().fontRendererObj.getStringWidth("ADD NEW MACRO") / 2, y + height / 2 - Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT / 2, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
drawShadowDown(menu.getX() + menu.getWidth() - width, y - 1, width);
y += 60;
if(Settings.customGuiFont) {

View File

@ -68,7 +68,7 @@ public class ModsPage extends Page {
int height = 32;
GlStateManager.color(1,1,1);
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
y += 50;
@ -79,7 +79,7 @@ public class ModsPage extends Page {
}
y = menu.getY() + menu.getHeight() - height;
drawShadowUp(menu.getX(), y - 10, 215);
//drawShadowUp(menu.getX(), y - 10, 215);
if (modCategory != null) {
if (Settings.customGuiFont) {
@ -89,17 +89,6 @@ public class ModsPage extends Page {
mc.fontRendererObj.drawString(activeModule != null ? "SETTINGS | " : modCategory.getText(), menu.getX() + 255, menu.getY() + 25, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getTextColor());
}
if (activeModule != null) {
int offset = (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width("SETTINGS | ");
String text = activeModule.getName().toUpperCase().trim();
//drawShadowUp(menu.getX() + 255, menu.getY() + 110 + 25 + 2, menu.getWidth() - 286);
//drawShadowLeft(menu.getX() + 255 + 2, menu.getY() + 110 + 25, menu.getHeight() - 110 - 50 - 5);
//drawShadowDown(menu.getX() + 255, menu.getY() + menu.getHeight() - 27 - 5, menu.getWidth() - 286);
//drawShadowRight(menu.getX() + menu.getWidth() - 33, menu.getY() + 110 + 25, menu.getHeight() - 110 - 50 - 5);
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(menu.getX() + 255, menu.getY() + 110 + 25, menu.getWidth() - 255 - 31, menu.getHeight() - 110 - 50 - 5, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
//rip.athena.client.gui.framework.draw.DrawImpl.drawRect(menu.getX() + 255 + 1, menu.getY() + 110 + 25 + 1, menu.getWidth() - 255 - 33, menu.getHeight() - 110 - 52 - 5, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor());
if (activeModule instanceof Crosshair) {
Crosshair crosshair = (Crosshair) activeModule;
int w = 86;
@ -219,7 +208,15 @@ public class ModsPage extends Page {
ModScrollPane pane = new ModScrollPane(255, 140, menu.getWidth() - 255 - 32, menu.getHeight() - 141, false);
menu.addComponent(pane);
menu.addComponent(new ModCategoryButton("EDIT HUD", new ResourceLocation("Athena/gui/menu/edit.png"), 0, menu.getHeight() - height - 5, 225, height) {
int width = 225;
int x2 = 0;
if(Settings.smallBar) {
width = 40;
x2 = 152;
}
menu.addComponent(new ModCategoryButton("EDIT HUD", new ResourceLocation("Athena/gui/menu/edit.png"), x2, menu.getHeight() - height - 5, width, height) {
@Override
public void onAction() {
setActive(false);
@ -261,7 +258,7 @@ public class ModsPage extends Page {
if (configEntry instanceof BooleanEntry) {
BooleanEntry entry = (BooleanEntry) configEntry;
MenuModCheckbox checkbox = new MenuModCheckbox(0, 0, 15, 15) {
MenuModCheckbox checkbox = new MenuModCheckbox(0, 0, 30, 15) {
@Override
public void onAction() {
entry.setValue(activeModule, isChecked());
@ -274,7 +271,7 @@ public class ModsPage extends Page {
} else if (configEntry instanceof ColorEntry) {
ColorEntry entry = (ColorEntry) configEntry;
toAdd.add(new MenuModColorPicker(0, 0, 15, 15, ((Color) entry.getValue(activeModule)).getRGB()) {
toAdd.add(new MenuModColorPicker(0, 0, 35, 20, ((Color) entry.getValue(activeModule)).getRGB()) {
@Override
public void onAction() {
entry.setValue(activeModule, getColor());

View File

@ -233,19 +233,14 @@ public class ProfilesPage extends Page {
int y = menu.getY() + 59;
int height = 32;
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getNunitoBold(30).drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR);
} else {
Minecraft.getMinecraft().fontRendererObj.drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR);
}
//drawHorizontalLine(menu.getX() + 31, menu.getY() + 110, menu.getWidth() - width - 31 * 2, 3, IngameMenu.MENU_LINE_COLOR);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, menu.getHeight() - 58, MacrosPage.MENU_SIDE_BG_COLOR);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, height + 1, ModCategoryButton.MAIN_COLOR);
drawShadowDown(menu.getX() + menu.getWidth() - width, y + height, width);
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString("CREATE NEW PROFILE", menu.getX() + menu.getWidth() - (float) width / 2 - rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width("CREATE NEW PROFILE") / 2, y + (float) height / 2 - FontManager.baloo17.getHeight("CREATE NEW PROFILE") / 2, IngameMenu.MENU_HEADER_TEXT_COLOR);
@ -253,8 +248,6 @@ public class ProfilesPage extends Page {
mc.fontRendererObj.drawString("CREATE NEW PROFILE", (int) (menu.getX() + menu.getWidth() - (float) width / 2 - mc.fontRendererObj.getStringWidth("CREATE NEW PROFILE") / 2), (int) (y + (float) height / 2 - mc.fontRendererObj.FONT_HEIGHT / 2), IngameMenu.MENU_HEADER_TEXT_COLOR);
}
drawShadowDown(menu.getX() + menu.getWidth() - width, y - 1, width);
y += 60;
if(Settings.customGuiFont) {
@ -265,10 +258,6 @@ public class ProfilesPage extends Page {
y += 120;
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, y, width, height + 1, ModCategoryButton.MAIN_COLOR);
drawShadowDown(menu.getX() + menu.getWidth() - width, y + height, width);
drawShadowUp(menu.getX() + menu.getWidth() - width, y, width);
if(Settings.customGuiFont) {
rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString("DOWNLOAD PROFILE", menu.getX() + menu.getWidth() - (float) width / 2 - rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width("DOWNLOAD PROFILE") / 2, y + (float) height / 2 - FontManager.baloo17.getHeight("DOWNLOAD PROFILE") / 2, IngameMenu.MENU_HEADER_TEXT_COLOR);
} else {

View File

@ -283,7 +283,7 @@ public class SettingsPage extends Page {
int y = menu.getY() + 59;
int height = 32;
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
/*rip.athena.client.gui.framework.draw.DrawImpl.drawRect(menu.getX(), menu.getY() + 58, width, menu.getHeight() - 58, MacrosPage.MENU_SIDE_BG_COLOR);
rip.athena.client.gui.framework.draw.DrawImpl.drawRect(menu.getX(), menu.getY() + 58, width, height + 1, ModCategoryButton.MAIN_COLOR);
@ -747,7 +747,7 @@ public class SettingsPage extends Page {
if(configEntry instanceof BooleanEntry) {
BooleanEntry entry = (BooleanEntry) configEntry;
MenuModCheckbox checkbox = new MenuModCheckbox(0, 0, 15, 15) {
MenuModCheckbox checkbox = new MenuModCheckbox(0, 0, 30, 15) {
@Override
public void onAction() {
entry.setValue(module, isChecked());

View File

@ -56,7 +56,7 @@ public class ThemesPage extends Page {
RoundedUtils.drawGradientRound(menu.getX() + 295, menu.getY() + 110, menu.getWidth() / 4, 20, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
RoundedUtils.drawGradientRound(menu.getX() + 595, menu.getY() + 110, menu.getWidth() / 4, 20, 6, new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor()), new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getFirstColor()), new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor()), new Color(Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor()));
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
}

View File

@ -204,7 +204,7 @@ public class WaypointsPage extends Page {
int y = menu.getY() + 59;
int height = 32;
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, Athena.INSTANCE.getThemeManager().getPrimaryTheme().getSecondColor());
drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(0,0,0,0).getRGB());
if(Settings.customGuiFont) {
FontManager.vision16.drawString("WAYPOINTS", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR);
@ -213,14 +213,8 @@ public class WaypointsPage extends Page {
}
//drawHorizontalLine(menu.getX() + 31, menu.getY() + 110, menu.getWidth() - width - 31 * 2, 3, IngameMenu.MENU_LINE_COLOR);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, menu.getHeight() - 58, MacrosPage.MENU_SIDE_BG_COLOR);
rip.athena.client.ui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, height + 1, ModCategoryButton.MAIN_COLOR);
drawShadowDown(menu.getX() + menu.getWidth() - width, y + height, width);
Minecraft.getMinecraft().fontRendererObj.drawString("ADD NEW WAYPOINT", menu.getX() + menu.getWidth() - width / 2 - Minecraft.getMinecraft().fontRendererObj.getStringWidth("ADD NEW WAYPOINT") / 2, y + height / 2 - Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT / 2, IngameMenu.MENU_HEADER_TEXT_COLOR);
drawShadowDown(menu.getX() + menu.getWidth() - width, y - 1, width);
y += 60;
Minecraft.getMinecraft().fontRendererObj.drawString("ENTER NAME", x, y, IngameMenu.MENU_HEADER_TEXT_COLOR);

View File

@ -304,8 +304,7 @@ public class MenuScrollPane extends MenuComponent {
component.setWidth(width - scrollerWidth - 1);
}
}
Collections.sort(components, (a, b) -> Integer.compare(a.getPriority().getPriority(), b.getPriority().getPriority()));
Collections.reverse(components);

View File

@ -5,14 +5,13 @@ import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Mouse;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.api.config.save.Config;
import rip.athena.api.font.FontManager;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.client.modules.render.GUIMod;
import rip.athena.client.ui.framework.MinecraftMenuImpl;
import rip.athena.client.ui.framework.draw.DrawImpl;
import rip.athena.client.modules.render.GUIMod;
import rip.athena.client.utils.render.AssetUtils;
import java.awt.*;
import java.io.IOException;
@ -25,8 +24,7 @@ import java.io.IOException;
public class HUDEditor extends MinecraftMenuImpl implements DrawImpl {
private final static rip.athena.client.ui.framework.Menu menu = new rip.athena.client.ui.framework.Menu("", Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
private final static ResourceLocation SETTINGS = AssetUtils.getResource("/gui/settings.png");
private final static int HELPER = new Color(200, 200, 200, 150).getRGB();
private final static int BACKGROUND = new Color(200, 200, 200, 100).getRGB();
@ -321,14 +319,14 @@ public class HUDEditor extends MinecraftMenuImpl implements DrawImpl {
if(xDelta < 0) {
xDelta = 0;
} else if(xDelta + selected.getWidth() * selected.getScale() > menu.getWidth() / SCALE) {
xDelta = Math.round(menu.getWidth() / SCALE - selected.getWidth() * (float)selected.getScale());
} else if(xDelta + selected.getWidth() * selected.getScale() > (double) menu.getWidth() / SCALE) {
xDelta = Math.round((float) menu.getWidth() / SCALE - selected.getWidth() * (float)selected.getScale());
}
if(yDelta < 0) {
yDelta = 0;
} else if(yDelta + selected.getHeight() * selected.getScale() > menu.getHeight() / SCALE) {
yDelta = Math.round(menu.getHeight() / SCALE - selected.getHeight() * (float)selected.getScale());
} else if(yDelta + selected.getHeight() * selected.getScale() > (double) menu.getHeight() / SCALE) {
yDelta = Math.round((float) menu.getHeight() / SCALE - selected.getHeight() * (float)selected.getScale());
}
selected.setX(xDelta);
@ -349,7 +347,7 @@ public class HUDEditor extends MinecraftMenuImpl implements DrawImpl {
@Override
public int getStringWidth(String string) {
return (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(string);
return rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(string);
}
@Override

View File

@ -1,5 +1,7 @@
package rip.athena.client.ui.hud;
import lombok.Getter;
import lombok.Setter;
import rip.athena.api.module.Module;
/**
@ -8,16 +10,20 @@ import rip.athena.api.module.Module;
* @date 6/2/2023
*/
@Setter
@Getter
public abstract class HUDElement implements IHUD {
private Module parent;
private String identifier;
private int x;
private int y;
private boolean visible;
private double scale;
private int width;
private int height;
private double scale;
private boolean visible;
private int x;
private int y;
public HUDElement(String identifier, int width, int height) {
this.identifier = identifier;
this.width = width;
@ -25,68 +31,4 @@ public abstract class HUDElement implements IHUD {
this.scale = 1;
this.visible = true;
}
public Module getParent() {
return parent;
}
public void setParent(Module parent) {
this.parent = parent;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public double getScale() {
return scale;
}
public void setScale(double scale) {
this.scale = scale;
}
public boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
}

View File

@ -5,9 +5,9 @@ import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import java.util.ArrayList;
import java.util.List;
@ -19,7 +19,7 @@ import java.util.List;
*/
public class HUDManager {
private List<HUDElement> elements;
private final List<HUDElement> elements;
public HUDManager() {
elements = new ArrayList<>();

View File

@ -1,26 +1,8 @@
package rip.athena.client.ui.menu;
import net.minecraft.client.gui.*;
import java.awt.Color;
import java.awt.Desktop;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.List;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.io.Charsets;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.opengl.GLContext;
import com.google.common.collect.Lists;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.*;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.texture.DynamicTexture;
@ -31,6 +13,10 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.world.demo.DemoWorldServer;
import net.minecraft.world.storage.ISaveFormat;
import net.minecraft.world.storage.WorldInfo;
import org.apache.commons.io.Charsets;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.opengl.GLContext;
import rip.athena.client.Athena;
import rip.athena.client.ui.menu.altmanager.GuiAccountManager;
import rip.athena.client.ui.menu.altmanager.GuiAltManager;
@ -41,6 +27,14 @@ import rip.athena.client.utils.render.ColorUtil;
import rip.athena.client.utils.render.DrawUtils;
import rip.athena.client.utils.render.RoundedUtils;
import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.List;
import java.util.Random;
/**
* @author Athena Development
* @project Athena-Client
@ -48,24 +42,16 @@ import rip.athena.client.utils.render.RoundedUtils;
*/
public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
{
private static final AtomicInteger field_175373_f = new AtomicInteger(0);
private static final Logger logger = LogManager.getLogger();
private static final Random RANDOM = new Random();
private float updateCounter;
private String splashText;
private int panoramaTimer;
private DynamicTexture viewportTexture;
private boolean field_175375_v = true;
private final Object threadLock = new Object();
private String openGLWarning1;
private String openGLWarning2;
private String openGLWarningLink;
private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("Athena/menu/panorama_0.png"), new ResourceLocation("Athena/menu/panorama_1.png"), new ResourceLocation("Athena/menu/panorama_2.png"), new ResourceLocation("Athena/menu/panorama_3.png"), new ResourceLocation("Athena/menu/panorama_4.png"), new ResourceLocation("Athena/menu/panorama_5.png")};
public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information.";
private int field_92024_r;
private int field_92023_s;
private int field_92022_t;
private int field_92021_u;
private int field_92020_v;
@ -76,9 +62,6 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
private GuiScreen field_183503_M;
public Animation introAnimation;
public boolean closeIntro;
private CloseType closeType;
public AthenaMenu()
{
@ -89,7 +72,7 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
try
{
List<String> list = Lists.<String>newArrayList();
List<String> list = Lists.newArrayList();
bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
String s;
@ -115,27 +98,18 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
}
}
}
}
catch (IOException var12)
{
;
}
finally
{
} catch (IOException ignored) {}
finally {
if (bufferedreader != null)
{
try
{
bufferedreader.close();
}
catch (IOException var11)
{
;
}
catch (IOException ignored) {}
}
}
this.updateCounter = RANDOM.nextFloat();
this.openGLWarning1 = "";
if (!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.areShadersSupported())
@ -144,12 +118,6 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
this.openGLWarning2 = I18n.format("title.oldgl2", new Object[0]);
this.openGLWarningLink = "https://help.mojang.com/customer/portal/articles/325948?ref=game";
}
}
public void updateScreen()
{
++this.panoramaTimer;
}
public boolean doesGuiPauseGame()
@ -173,20 +141,18 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
int j = this.height / 4 + 78;
{
this.addSingleplayerMultiplayerButtons(j, 24);
}
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, j + 72 - 24, 98, 20, I18n.format("menu.options", new Object[0])));
this.buttonList.add(new GuiButton(4, this.width / 2 + 2, j + 72 - 24, 98, 20, "Store"));
}
private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
{
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, p_73969_1_, I18n.format("menu.singleplayer", new Object[0])));
this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.format("menu.multiplayer", new Object[0])));
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, p_73969_1_, I18n.format("menu.singleplayer")));
this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_, I18n.format("menu.multiplayer")));
// this.buttonList.add(this.realmsButton = new GuiButton(14, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("menu.online", new Object[0]).replace("Minecraft", "").trim()));
}
@ -222,7 +188,7 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().browse(new URI("http://store.athena.rip"));
}
} catch (Exception e){}
} catch (Exception ignored){}
}
if (button.id == 11)
@ -265,12 +231,12 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback
try
{
Class<?> oclass = Class.forName("java.awt.Desktop");
Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.openGLWarningLink)});
Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null);
oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new URI(this.openGLWarningLink));
}
catch (Throwable throwable)
{
logger.error("Couldn\'t open link", throwable);
logger.error("Couldn't open link", throwable);
}
}

View File

@ -1,10 +0,0 @@
package rip.athena.client.ui.menu;
/**
* @author Athena Development
* @project Athena-Client
* @date 6/10/2023
*/
public enum CloseType {
ACCOUNT, CREDIT;
}

View File

@ -265,7 +265,7 @@ public class GuiAccountManager extends GuiScreen {
}
}
scrollAnimation.setAnimation((float) scrollY, 16);
scrollAnimation.setAnimation((float) scrollY, 10);
if(delete) {
Athena.INSTANCE.getAccountManager().getAccounts().remove(deleteAccount);

View File

@ -12,7 +12,7 @@ public class NotiRemovalThread implements Runnable {
@Override
public void run() {
while(true) {
notifications.removeIf(noti -> noti.isDead());
notifications.removeIf(Notification::isDead);
try {
Thread.sleep(500);

View File

@ -24,7 +24,7 @@ public class Notification {
public Notification(String text, Color color) {
this.text = text;
this.color = color;
start = System.currentTimeMillis();
this.start = System.currentTimeMillis();
}
public String getText() {

View File

@ -4,9 +4,9 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.util.ResourceLocation;
import rip.athena.client.Athena;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.render.RenderEvent;
import rip.athena.client.events.types.render.RenderType;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.render.RenderEvent;
import rip.athena.client.events.render.RenderType;
import java.awt.*;
import java.util.ArrayList;

View File

@ -16,11 +16,11 @@ public class MouseUtils {
public static Scroll scroll() {
int mouse = Mouse.getDWheel();
if(mouse > 0) {
if (mouse > 0) {
return Scroll.UP;
}else if(mouse < 0) {
} else if (mouse < 0) {
return Scroll.DOWN;
}else {
} else {
return null;
}
}

View File

@ -8,11 +8,11 @@ import java.text.DecimalFormat;
* @date 6/10/2023
*/
public class NumberUtils {
public static enum Format {
public enum Format {
Ones, Tenths, Hundredths;
}
public static String getStringValueOfLong(long value, Format format) {
return String.valueOf((new DecimalFormat(getDecimalFormat(format))).format(value));
return (new DecimalFormat(getDecimalFormat(format))).format(value);
}
public static String getStringValueOfFloat(float value, Format format) {
return String.valueOf((new DecimalFormat(getDecimalFormat(format))).format(value));

View File

@ -4,6 +4,7 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;
import rip.athena.client.Athena;
/**
* @author Athena Development
@ -52,4 +53,14 @@ public class PrefixedLogger {
logger.log(Level.ERROR, "[{}] {}", ThreadContext.get("LOG_PREFIX"), message);
}
/**
* Logs a debug message.
*
* @param message The message to log.
*/
public void debug(String message) {
if(Athena.INSTANCE.isDebug()) {
logger.log(Level.DEBUG, "[{}] {}", ThreadContext.get("LOG_PREFIX"), message);
}
}
}

View File

@ -107,5 +107,4 @@ public class StringUtils {
}
return s;
}
}

View File

@ -24,18 +24,20 @@ public class DiscordRPC {
private Core core;
public DiscordRPC() {
try {
File discordLibrary = downloadNativeLibrary();
if (discordLibrary == null) {
System.err.println("Failed to download Discord SDK.");
System.exit(-1);
if(System.getProperty("os.name").equalsIgnoreCase("win")) {
try {
File discordLibrary = downloadNativeLibrary();
if (discordLibrary == null) {
System.err.println("Failed to download Discord SDK.");
System.exit(-1);
}
// Initialize the Core
Core.init(discordLibrary);
canLoad = true;
start();
} catch (Exception e) {
e.printStackTrace();
}
// Initialize the Core
Core.init(discordLibrary);
canLoad = true;
start();
} catch (Exception e) {
e.printStackTrace();
}
}

View File

@ -4,9 +4,9 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import rip.athena.api.module.Module;
import rip.athena.client.Athena;
import rip.athena.client.events.SubscribeEvent;
import rip.athena.client.events.types.input.KeyDownEvent;
import rip.athena.client.events.types.input.KeyUpEvent;
import rip.athena.api.event.SubscribeEvent;
import rip.athena.client.events.input.KeyDownEvent;
import rip.athena.client.events.input.KeyUpEvent;
import rip.athena.client.modules.render.GUIMod;
import java.util.stream.Collectors;

Some files were not shown because too many files have changed in this diff Show More