diff --git a/src/main/java/com/salliemay/uwu/SallieMod.java b/src/main/java/com/salliemay/uwu/SallieMod.java index fd3b2ae..38af27e 100644 --- a/src/main/java/com/salliemay/uwu/SallieMod.java +++ b/src/main/java/com/salliemay/uwu/SallieMod.java @@ -1,28 +1,33 @@ package com.salliemay.uwu; import com.salliemay.uwu.combat.Aura; import com.salliemay.uwu.combat.Aimbot; +import com.salliemay.uwu.combat.Hitbox; import com.salliemay.uwu.misc.Respawn; import com.salliemay.uwu.movement.*; +import com.salliemay.uwu.player.InventoryMove; import com.salliemay.uwu.visual.*; -import com.salliemay.uwu.visual.TargetHUD; import com.salliemay.uwu.world.Nuker; import com.salliemay.uwu.world.StashLogger; import com.salliemay.uwu.config.ConfigManager; +import java.io.BufferedReader; import java.awt.Desktop; +import java.io.InputStreamReader; import java.net.URI; +import net.minecraft.client.gui.screen.ChatScreen; +import net.minecraft.client.gui.screen.inventory.ContainerScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; import net.minecraft.potion.Effect; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.world.GameType; -import net.minecraftforge.event.entity.EntityEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.world.WorldEvent; + import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraft.client.Minecraft; @@ -43,6 +48,9 @@ import net.minecraftforge.fml.event.server.FMLServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.common.MinecraftForge; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.glfw.GLFW; @@ -54,12 +62,13 @@ import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; - import java.awt.Color; import java.util.ArrayList; import java.util.List; +import static net.minecraft.client.Minecraft.*; + @Mod(SallieMod.MOD_ID) public class SallieMod { @@ -69,7 +78,8 @@ public class SallieMod { private static final ConfigManager.Config config = ConfigManager.loadConfig(); private static Jesus jesus = new Jesus(); - private static GlowESP Glow = new GlowESP(); + + static GlowESP GlowingESP = new GlowESP(); public static final KeyBinding teleportKey = new KeyBinding("VClip", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); @@ -100,6 +110,11 @@ public class SallieMod { public static final KeyBinding SpiderKey = new KeyBinding("Spider", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); public static final KeyBinding RespawnKey = new KeyBinding("AutoRespawn", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); public static final KeyBinding StepKey = new KeyBinding("Step", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); + public static final KeyBinding HeadLessKey = new KeyBinding("HeadLess", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); + public static final KeyBinding FullBrightKey = new KeyBinding("FullBright", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); + public static final KeyBinding TargetHUDKey = new KeyBinding("TargetHUD", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); + public static final KeyBinding SessionKey = new KeyBinding("SessionKey", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); + public static final KeyBinding HitBoxKey = new KeyBinding("HitboxMultiplier", GLFW.GLFW_KEY_UNKNOWN, "SallieConfig"); private static String targetPlayerName = null; public static final KeyBinding toggleClickGuiKey = new KeyBinding("Open Click GUI", GLFW.GLFW_KEY_I, "SallieConfig"); @@ -109,6 +124,7 @@ public class SallieMod { public static boolean randomTeleportEnabled = config.randomTeleportEnabled; public static boolean NoFallEnabled = config.NoFall; public static boolean killauraEnabled = config.killauraEnabled; + public static boolean HitBox = config.HitBoxEnabled; public static boolean autoTeleportEnabled = config.autoTeleportEnabled; public static boolean aimbotEnabled = config.aimbotEnabled; public static boolean nukerEnabled = config.nukerEnabled; @@ -126,7 +142,9 @@ public class SallieMod { public static boolean AmbienceEnabled = config.AmbienceEnabled; public static long timeOfDay = config.timeOfDay; public static float StepHeight = config.StepHeight; - + public static boolean isHeadLessEnabled = config.isHeadLessEnabled; + public static boolean TargetHUDEnabled = config.TargetHUDEnabled; + public static boolean SessionStatsEnabled = config.SessionStatsEnabled; public static boolean NoHurtCamEnabled = config.noHurtCamEnabled; public static int rotationMode = config.rotationMode; public static int healthlimit = config.healthlimit; @@ -161,6 +179,7 @@ public class SallieMod { public static boolean flightEnabled = config.flightEnabled; public static double aimbotRange = config.aimbotrange; public static boolean NoFogEnabled = config.NoFogEnabled; + public static boolean FullBrightEnabled = config.FullBrightEnabled; public static boolean TrueSightEnabled = config.TrueSightEnabled; @@ -178,17 +197,32 @@ public class SallieMod { private static final long SUNSET = 13000L; private static final long NIGHT = 1; + private void sendInvalidCommandMessage() { + String message = TextFormatting.RED + "Wrong command. For any help, join the Discord or do ?help."; + mc.player.sendMessage(new StringTextComponent(message), mc.player.getUniqueID()); + } + public SallieMod() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff); MinecraftForge.EVENT_BUS.register(HealthOverlay.class); MinecraftForge.EVENT_BUS.register(Fly.class); MinecraftForge.EVENT_BUS.register(Aura.class); + MinecraftForge.EVENT_BUS.register(AirJump.class); MinecraftForge.EVENT_BUS.register(Aimbot.class); MinecraftForge.EVENT_BUS.register(Spider.class); + MinecraftForge.EVENT_BUS.register(FullBright.class); MinecraftForge.EVENT_BUS.register(Respawn.class); + MinecraftForge.EVENT_BUS.register(TPSOverlay.class); + MinecraftForge.EVENT_BUS.register(TargetHUD.class); + MinecraftForge.EVENT_BUS.register(Hitbox.class); + MinecraftForge.EVENT_BUS.register(ESP2d.class); + MinecraftForge.EVENT_BUS.register(SessionStats.class); MinecraftForge.EVENT_BUS.register(new StashLogger()); + MinecraftForge.EVENT_BUS.register(new InventoryMove()); MinecraftForge.EVENT_BUS.register(this); + + rgbModule = new RGBCam(); } @@ -196,6 +230,7 @@ public SallieMod() { private void doClientStuff(FMLClientSetupEvent event) { try { + ClientRegistry.registerKeyBinding(teleportKey); ClientRegistry.registerKeyBinding(HClipKey); ClientRegistry.registerKeyBinding(teleportToggleKey); @@ -221,11 +256,14 @@ private void doClientStuff(FMLClientSetupEvent event) { ClientRegistry.registerKeyBinding(TrueSightKey); ClientRegistry.registerKeyBinding(AmbienceKey); ClientRegistry.registerKeyBinding(SpiderKey); + ClientRegistry.registerKeyBinding(TargetHUDKey); + ClientRegistry.registerKeyBinding(SessionKey); } catch (Exception e) { LOGGER.error("Error during client setup: ", e); } } + private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); @SubscribeEvent public void onServerStarting(FMLServerStartingEvent event) { @@ -246,7 +284,7 @@ public void onBlocksRegistry(RegistryEvent.Register blockRegistryEvent) { } } - private static final Minecraft mc = Minecraft.getInstance(); + private static final Minecraft mc = getInstance(); private static final float EXTENDED_REACH = 10.0F; @@ -261,7 +299,7 @@ public void onBlocksRegistry(RegistryEvent.Register blockRegistryEvent) { public void onChat(ClientChatEvent event) { try { LOGGER.info("onChat method triggered."); - if (Minecraft.getInstance().player == null) { + if (getInstance().player == null) { LOGGER.warn("Player is null when processing chat."); return; } @@ -281,23 +319,25 @@ public void onChat(ClientChatEvent event) { Color color = Color.decode(colorString); healthTextColor = color.getRGB(); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Health text color set to '" + colorString + "'"), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid color code. Please use a valid hex code."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid color format. Please use a valid 6-character hex code (e.g., FF5733 or #FF5733)."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } if (message.startsWith("?aimbot ")) { String[] parts = message.split(" "); @@ -309,50 +349,45 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Aimbot range set to " + aimbotRange), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid range. Please enter a valid number."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Usage: ?aimbot "), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } - if (message.equalsIgnoreCase("?autoteleport on")) { - autoTeleportEnabled = true; - config.autoTeleportEnabled = autoTeleportEnabled; - ConfigManager.saveConfig(config); + if (message.equalsIgnoreCase("?autoteleport on") || message.equalsIgnoreCase("?autoteleport off")) { + boolean enable = message.equalsIgnoreCase("?autoteleport on"); - Minecraft.getInstance().player.sendMessage( - new StringTextComponent("Auto teleport on low health enabled."), - Minecraft.getInstance().player.getUniqueID() - ); - event.setCanceled(true); - } - if (message.equalsIgnoreCase("?autoteleport on")) { - autoTeleportEnabled = true; + autoTeleportEnabled = enable; config.autoTeleportEnabled = autoTeleportEnabled; ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( - new StringTextComponent("Auto teleport on low health enabled."), - Minecraft.getInstance().player.getUniqueID() - ); + String statusMessage = enable ? "Auto teleport on low health enabled." : "Auto teleport on low health disabled."; + getInstance().player.sendMessage(new StringTextComponent(statusMessage), getInstance().player.getUniqueID()); + event.setCanceled(true); + return; + } + if (message.startsWith("?step ")) { String[] parts = message.split(" "); if (parts.length == 2) { @@ -363,23 +398,25 @@ public void onChat(ClientChatEvent event) { config.StepHeight = StepHeight; ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Step height set to " + newStepHeight + "."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid step height. Please enter a valid number."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Usage: ?step "), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } @@ -393,23 +430,25 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Killaura range set to " + AuraRange), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid range. Please enter a valid number."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Usage: ?killaura "), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } @@ -419,11 +458,13 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Auto teleport on low health disabled."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; + } if (message.startsWith("?time ")) { String timeArg = message.substring(6).toUpperCase(); @@ -456,16 +497,20 @@ public void onChat(ClientChatEvent event) { mc.player.sendMessage(new StringTextComponent("Time set to " + timeArg), mc.player.getUniqueID()); } event.setCanceled(true); + return; + } if (message.equalsIgnoreCase("?discord")) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("https://discord.gg/Dr9T8kA7uM to join !\n?discord open (to open the webpage directly)"), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; + } if (message.equalsIgnoreCase("?discord open")) { @@ -473,21 +518,22 @@ public void onChat(ClientChatEvent event) { if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { Desktop.getDesktop().browse(new URI("https://discord.gg/Dr9T8kA7uM")); } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Opening the browser is not supported on this platform."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } catch (Exception e) { e.printStackTrace(); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Failed to open the browser: " + e.getMessage()), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); - } + return; + } if (message.equalsIgnoreCase("?help")) { StringBuilder helpMessage = new StringBuilder(); @@ -549,27 +595,33 @@ public void onChat(ClientChatEvent event) { helpMessage.append(TextFormatting.YELLOW + "**Automatically teleport if less than" + healthlimit + "\n"); helpMessage.append(TextFormatting.YELLOW + "**On top left corner you can see your health\n"); - Minecraft.getInstance().player.sendMessage(new StringTextComponent(helpMessage.toString()), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent(helpMessage.toString()), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } if (message.equalsIgnoreCase("?follow stop")) { targetPlayerName = null; - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Stopped following."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; + } if (message.startsWith("?follow ")) { String playerName = message.substring(8).trim(); targetPlayerName = playerName; - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Now following " + playerName), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; + } @@ -579,11 +631,12 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Crash enabled"), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; } if (message.startsWith("?goto ")) { @@ -595,47 +648,53 @@ public void onChat(ClientChatEvent event) { targetZ = Double.parseDouble(parts[3]); isTeleporting = true; - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Teleporting to (" + targetX + ", " + targetY + ", " + targetZ + ") in steps."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid coordinates. Please enter valid numbers."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else if (parts.length == 2 && parts[1].equalsIgnoreCase("stop")) { if (isTeleporting) { isTeleporting = false; - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Teleportation stopped."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("No active teleportation to stop."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } else { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Usage: ?goto or ?goto stop"), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } if (message.startsWith("?friend add ")) { String friendName = message.substring(12).trim(); friendManager.addFriend(friendName); event.setCanceled(true); + return; + } if (message.startsWith("?friend remove ")) { String friendName = message.substring(15).trim(); friendManager.removeFriend(friendName); event.setCanceled(true); + return; + } if (message.equalsIgnoreCase("?friends")) { @@ -650,8 +709,10 @@ public void onChat(ClientChatEvent event) { friendList.append("None"); } - Minecraft.getInstance().player.sendMessage(new StringTextComponent(friendList.toString()), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent(friendList.toString()), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } if (message.startsWith("?suffix ")) { @@ -660,8 +721,10 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Suffix changed to '" + suffix + "'"), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Suffix changed to '" + suffix + "'"), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } @@ -675,13 +738,15 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Teleport height set to '" + teleportHeight + "'"), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Teleport height set to '" + teleportHeight + "'"), getInstance().player.getUniqueID()); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid height. Please enter a valid number."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid height. Please enter a valid number."), getInstance().player.getUniqueID()); } catch (ArrayIndexOutOfBoundsException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Please specify a height."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Please specify a height."), getInstance().player.getUniqueID()); } event.setCanceled(true); + return; + } if (message.startsWith("?health")) { String[] parts = message.split(" "); @@ -691,17 +756,19 @@ public void onChat(ClientChatEvent event) { config.healthlimit = healthLimit; ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Health limit updated to: " + healthLimit), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Health limit updated to: " + healthLimit), getInstance().player.getUniqueID()); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid health limit: " + parts[1]), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid health limit: " + parts[1]), getInstance().player.getUniqueID()); } catch (ArrayIndexOutOfBoundsException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("No health limit specified. Please provide a number."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("No health limit specified. Please provide a number."), getInstance().player.getUniqueID()); } } else { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Actual limit : " + healthlimit + "Usage: ?health tp change"), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Actual limit : " + healthlimit + "Usage: ?health tp change"), getInstance().player.getUniqueID()); } event.setCanceled(true); + return; + } @@ -713,13 +780,15 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Hclip distance set to '" + HclipFar + "'"), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Hclip distance set to '" + HclipFar + "'"), getInstance().player.getUniqueID()); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid distance. Please enter a valid number."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid distance. Please enter a valid number."), getInstance().player.getUniqueID()); } catch (ArrayIndexOutOfBoundsException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Please specify a distance."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Please specify a distance."), getInstance().player.getUniqueID()); } event.setCanceled(true); + return; + } if (message.startsWith("?speed")) { @@ -735,29 +804,31 @@ public void onChat(ClientChatEvent event) { SallieMod.SpeedMultiplier = speedMultiplier; ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Speed multiplier set to " + speedMultiplier), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid number format! Please enter a valid number."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (IllegalArgumentException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent(e.getMessage()), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (Exception e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid command format."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } @@ -770,59 +841,66 @@ public void onChat(ClientChatEvent event) { double y = Double.parseDouble(parts[2]); double z = Double.parseDouble(parts[3]); - Minecraft.getInstance().player.connection.sendPacket( - new CPlayerPacket.PositionPacket(x, y, z, Minecraft.getInstance().player.isOnGround()) + getInstance().player.connection.sendPacket( + new CPlayerPacket.PositionPacket(x, y, z, getInstance().player.isOnGround()) ); - Minecraft.getInstance().player.setPosition(x, y, z); + getInstance().player.setPosition(x, y, z); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Teleported to (" + x + ", " + y + ", " + z + ")"), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid coordinates. Please enter valid numbers."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } } event.setCanceled(true); + return; + } if (message.equalsIgnoreCase("?gradientlist")) { String gradientList = ModuleOverlay.getGradientList(); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Available Gradients:\n" + gradientList), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); event.setCanceled(true); + return; + } + if (message.startsWith("?gradient ")) { String[] parts = message.split(" "); if (parts.length == 2) { try { int index = Integer.parseInt(parts[1]); ModuleOverlay.setGradientIndex(index); - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Gradient changed to: " + ModuleOverlay.GRADIENT_NAMES[index]), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Invalid index. Please enter a number."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } catch (ArrayIndexOutOfBoundsException e) { - Minecraft.getInstance().player.sendMessage( + getInstance().player.sendMessage( new StringTextComponent("Index out of bounds. Use ?gradientlist to see available options."), - Minecraft.getInstance().player.getUniqueID() + getInstance().player.getUniqueID() ); } event.setCanceled(true); + return; + } } @@ -837,15 +915,17 @@ public void onChat(ClientChatEvent event) { config.rotationMode = rotationMode; String modeMessage = (mode == 1) ? "Packet-based rotation" : "Head-based rotation"; - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Rotation mode changed to: " + modeMessage), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Rotation mode changed to: " + modeMessage), getInstance().player.getUniqueID()); } else { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid mode. Use 1 for packet-based, 2 for head-based."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid mode. Use 1 for packet-based, 2 for head-based."), getInstance().player.getUniqueID()); } } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid input. Please enter 1 for packet-based or 2 for head-based rotation."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid input. Please enter 1 for packet-based or 2 for head-based rotation."), getInstance().player.getUniqueID()); } event.setCanceled(true); + return; + } } if (message.startsWith("?suffixdisable")) { @@ -853,8 +933,10 @@ public void onChat(ClientChatEvent event) { config.suffixDisabled = suffixDisabled; ConfigManager.saveConfig(config); - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Suffix disabled."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Suffix disabled."), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } if (message.startsWith("?noweather")) { noWeatherEnabled = !noWeatherEnabled; @@ -863,10 +945,47 @@ public void onChat(ClientChatEvent event) { ConfigManager.saveConfig(config); String status = noWeatherEnabled ? "enabled" : "disabled"; - Minecraft.getInstance().player.sendMessage(new StringTextComponent("NoWeather " + status + "."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("NoWeather " + status + "."), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } + if (message.equalsIgnoreCase("?nbt")) { + Minecraft mc = Minecraft.getInstance(); + ItemStack itemInHand = mc.player.getHeldItemMainhand(); + + if (!itemInHand.isEmpty()) { + CompoundNBT nbt = itemInHand.getTag(); + if (nbt != null) { + mc.player.sendMessage( + new StringTextComponent("Item NBT: " + nbt.toString()), + mc.player.getUniqueID() + ); + event.setCanceled(true); + + } else { + mc.player.sendMessage( + new StringTextComponent("This item has no NBT data."), + mc.player.getUniqueID() + + ); + event.setCanceled(true); + + } + } else { + mc.player.sendMessage( + new StringTextComponent("You're not holding any item."), + mc.player.getUniqueID() + ); + event.setCanceled(true); + + } + + event.setCanceled(true); + return; + + } if (message.toLowerCase().startsWith("?fly ")) { try { String[] parts = message.split(" "); @@ -874,28 +993,39 @@ public void onChat(ClientChatEvent event) { float speed = Float.parseFloat(parts[1]); if (speed < 0.01F || speed > 1000.0F) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Speed must be between 0.01 and 1000.0!"), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Speed must be between 0.01 and 1000.0!"), getInstance().player.getUniqueID()); } else { FlySpeed = speed; - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Fly speed changed to " + FlySpeed), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Fly speed changed to " + FlySpeed), getInstance().player.getUniqueID()); } } } catch (NumberFormatException e) { - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Invalid Fly Speed. Please enter a valid number."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Invalid Fly Speed. Please enter a valid number."), getInstance().player.getUniqueID()); } event.setCanceled(true); + return; + } if (message.startsWith("?suffixenable")) { suffixDisabled = false; - Minecraft.getInstance().player.sendMessage(new StringTextComponent("Suffix enabled."), Minecraft.getInstance().player.getUniqueID()); + getInstance().player.sendMessage(new StringTextComponent("Suffix enabled."), getInstance().player.getUniqueID()); event.setCanceled(true); + return; + } + if (message.startsWith("?") && message.length() > 1) { + sendInvalidCommandMessage(); + + event.setCanceled(true); + return; + + } if (!suffixDisabled && !message.startsWith("#") && !message.startsWith(".") && !message.startsWith("/")) { event.setMessage(message + suffix); } @@ -903,6 +1033,9 @@ public void onChat(ClientChatEvent event) { LOGGER.error("Error during chat event processing: ", e); } } + private static double approachTargetByFixedDistance(double current, double target, double fixedDistance) { + return current + Math.signum(target - current) * fixedDistance; + } @SubscribeEvent @@ -910,7 +1043,7 @@ public void onRenderGameOverlay(RenderGameOverlayEvent event) { if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) { - Minecraft mc = Minecraft.getInstance(); + Minecraft mc = getInstance(); if (mc.player != null && NoBadEffect) { @@ -925,6 +1058,7 @@ public void onRenderGameOverlay(RenderGameOverlayEvent event) { for (Effect effect : effectsToRemove) { mc.player.removePotionEffect(effect); + } } } @@ -967,7 +1101,7 @@ public static void onEntityJoinWorld(EntityJoinWorldEvent event) { @SubscribeEvent public void onRenderWorldLast(RenderWorldLastEvent event) { - Minecraft mc = Minecraft.getInstance(); + Minecraft mc = getInstance(); if (mc.world != null && particlesEnabled) { mc.world.getAllEntities().forEach(entity -> { @@ -1014,9 +1148,9 @@ private static double approachVerticalPosition(double currentY, double targetY) private static boolean checkForCollision(double x, double y, double z) { int glitchCount = 0; - if (Math.abs(Minecraft.getInstance().player.getPosX() - x) < 0.01) glitchCount++; - if (Math.abs(Minecraft.getInstance().player.getPosY() - y) < 0.01) glitchCount++; - if (Math.abs(Minecraft.getInstance().player.getPosZ() - z) < 0.01) glitchCount++; + if (Math.abs(getInstance().player.getPosX() - x) < 0.01) glitchCount++; + if (Math.abs(getInstance().player.getPosY() - y) < 0.01) glitchCount++; + if (Math.abs(getInstance().player.getPosZ() - z) < 0.01) glitchCount++; return glitchCount >= 3; } @@ -1025,9 +1159,9 @@ private static void followPlayer() { if (targetPlayerName != null) { Entity targetPlayer = findPlayerByName(targetPlayerName); if (targetPlayer != null) { - double deltaX = targetPlayer.getPosX() - Minecraft.getInstance().player.getPosX(); - double deltaZ = targetPlayer.getPosZ() - Minecraft.getInstance().player.getPosZ(); - double deltaY = targetPlayer.getPosY() - Minecraft.getInstance().player.getPosY(); + double deltaX = targetPlayer.getPosX() - getInstance().player.getPosX(); + double deltaZ = targetPlayer.getPosZ() - getInstance().player.getPosZ(); + double deltaY = targetPlayer.getPosY() - getInstance().player.getPosY(); double distance = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ + deltaY * deltaY); if (distance > 5.0) { @@ -1035,30 +1169,42 @@ private static void followPlayer() { double forwardZ = deltaZ / distance; double forwardY = deltaY / distance; - double newX = Minecraft.getInstance().player.getPosX() + forwardX * 5.0; - double newZ = Minecraft.getInstance().player.getPosZ() + forwardZ * 5.0; - double newY = Minecraft.getInstance().player.getPosY() + forwardY * 5.0; + double newX = getInstance().player.getPosX() + forwardX * 5.0; + double newZ = getInstance().player.getPosZ() + forwardZ * 5.0; + double newY = getInstance().player.getPosY() + forwardY * 5.0; - Minecraft.getInstance().player.connection.sendPacket(new CPlayerPacket.PositionPacket(newX, newY, newZ, true)); - Minecraft.getInstance().player.setPosition(newX, newY, newZ); + getInstance().player.connection.sendPacket(new CPlayerPacket.PositionPacket(newX, newY, newZ, true)); + getInstance().player.setPosition(newX, newY, newZ); } } } } private static void NoFalling() { - ClientPlayerEntity players = net.minecraft.client.Minecraft.getInstance().player; + ClientPlayerEntity players = getInstance().player; if (players != null) { players.connection.sendPacket(new CPlayerPacket(true)); } + + if (Minecraft.getInstance().player != null) { + Minecraft.getInstance().player.fallDistance = 0.0f; + } + + } private static Entity findPlayerByName(String name) { - for (Entity entity : Minecraft.getInstance().world.getAllEntities()) { + for (Entity entity : getInstance().world.getAllEntities()) { if (entity instanceof PlayerEntity && entity.getName().getString().equalsIgnoreCase(name)) { return entity; } } return null; } + + + private static double previousPosX = 0; + private static double previousPosY = 0; + + @Mod.EventBusSubscriber(modid = SallieMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public static class ClientEventHandler { @@ -1067,7 +1213,10 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { try { if (event.phase == TickEvent.Phase.START) { ClientPlayerEntity player = Minecraft.getInstance().player; + if (player != null && player.connection != null) { + + float health = player.getHealth(); MatrixStack matrixStack = new MatrixStack(); @@ -1087,12 +1236,12 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { double forwardX = -Math.sin(radians); double forwardZ = Math.cos(radians); - double newX = player.getPosX() + forwardX * teleportDistance; - double newZ = player.getPosZ() + forwardZ * teleportDistance; + double newX = player.getPosX() + forwardX * 10; + double newZ = player.getPosZ() + forwardZ * 10; - newX = approachZero(newX, targetX); - newZ = approachZero(newZ, targetZ); - double newY = approachVerticalPosition(player.getPosY(), targetY); + newX = approachTargetByFixedDistance(player.getPosX(), targetX, 10); + newZ = approachTargetByFixedDistance(player.getPosZ(), targetZ, 10); + double newY = approachTargetByFixedDistance(player.getPosY(), targetY, 10); if (checkForCollision(newX, newY, newZ)) { newX -= forwardX * 10; @@ -1110,13 +1259,23 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { } } + + if (flightEnabled) { Fly.applyMovement(); } + if (mc.player != null && mc.player.hurtTime > 0 && mc.player.hurtTime <= 6 && velocity) { + player.setMotion(player.getMotion().mul(0.0, 1.0, 0.0)); + } if (JesusEnabled) { jesus.checkWaterMovement(); } + if (isHeadLessEnabled) { + Minecraft.getInstance().player.connection.sendPacket( + new CPlayerPacket.RotationPacket(player.rotationYaw, 180f, true) + ); + } if (SpeedEnabled) { Speed.applyMovement(); @@ -1132,15 +1291,12 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { randomTeleport(player); } - if (GlowESPEnabled) { - Glow.toggle(); - } - if (killauraEnabled) { entityAttacker.attackNearbyEntities(); } if (nukerEnabled) { + Nuker.breakNearbyBlocks(); Nuker.tick(); } @@ -1161,12 +1317,8 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { if (AutoSprintEnabled) { AutoSprint.tick(); } - if (player.hurtTime > 0 && velocity) { - player.maxHurtTime = 0; - player.setMotion(0, player.getMotion().y, 0); - } if (spin) { handleSpinRotation(player); @@ -1179,9 +1331,6 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { TrueSight.revealEntities(); } - if (AirJumpEnabled) { - AirJump.performAirJump(); - } if (NoFogEnabled) { NoFog.disableFog(); @@ -1194,9 +1343,9 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { } if (noWeatherEnabled) { - if (Minecraft.getInstance().world != null) { - Minecraft.getInstance().world.setThunderStrength(0); - Minecraft.getInstance().world.setRainStrength(0); + if (getInstance().world != null) { + getInstance().world.setThunderStrength(0); + getInstance().world.setRainStrength(0); } } @@ -1208,17 +1357,43 @@ public static void onClientTick(TickEvent.ClientTickEvent event) { } + @SubscribeEvent + public static void onWorldTick(TickEvent.WorldTickEvent event) { + World world = event.world; + + if (!world.isRemote) { + if (noWeatherEnabled) { + world.setThunderStrength(0.0f); + world.setRainStrength(0.0f); + } + } + } @SubscribeEvent public static void onKeyPress(InputEvent.KeyInputEvent event) { - ClientPlayerEntity player = Minecraft.getInstance().player; + ClientPlayerEntity player = getInstance().player; if (player == null) return; if (AimbotKey.isPressed()) { + aimbotEnabled = !aimbotEnabled; config.aimbotEnabled = aimbotEnabled; player.sendMessage(getFormattedMessage(aimbotEnabled ? "Aimbot enabled." : "Aimbot disabled."), player.getUniqueID()); ConfigManager.saveConfig(config); } + if (HitBoxKey.isPressed()) { + + HitBox = !HitBox; + config.HitBoxEnabled = HitBox; + player.sendMessage(getFormattedMessage(HitBox ? "HitBox Multiplier enabled." : "HitBox Multiplier disabled."), player.getUniqueID()); + ConfigManager.saveConfig(config); + } + + if (SessionKey.isPressed()) { + SessionStatsEnabled = !SessionStatsEnabled; + config.SessionStatsEnabled = SessionStatsEnabled; + player.sendMessage(getFormattedMessage(SessionStatsEnabled ? "SessionStats enabled." : "SessionStats disabled."), player.getUniqueID()); + ConfigManager.saveConfig(config); + } if (FakeCreativeKey.isPressed()) { fakeCreativeEnabled = !fakeCreativeEnabled; config.fakeCreativeEnabled = fakeCreativeEnabled; @@ -1241,6 +1416,23 @@ public static void onKeyPress(InputEvent.KeyInputEvent event) { ConfigManager.saveConfig(config); } + if (TargetHUDKey.isPressed()) { + TargetHUDEnabled = !TargetHUDEnabled; + config.TargetHUDEnabled = TargetHUDEnabled; + + player.sendMessage(getFormattedMessage(TargetHUDEnabled ? "TargetHUD (UGLY) enabled." : "TargetHUD (UGLY) disabled."), player.getUniqueID()); + ConfigManager.saveConfig(config); + } + + + if (FullBrightKey.isPressed()) { + FullBrightEnabled = !FullBrightEnabled; + config.FullBrightEnabled = FullBrightEnabled; + + player.sendMessage(getFormattedMessage(FullBrightEnabled ? "FullBright enabled." : "FullBright disabled."), player.getUniqueID()); + ConfigManager.saveConfig(config); + } + if (RespawnKey.isPressed()) { RespawnEnabled = !RespawnEnabled; config.RespawnEnabled = RespawnEnabled; @@ -1286,6 +1478,7 @@ public static void onKeyPress(InputEvent.KeyInputEvent event) { } if (NukerKey.isPressed()) { + Nuker.reset(); nukerEnabled = !nukerEnabled; config.nukerEnabled = nukerEnabled; @@ -1341,6 +1534,13 @@ public static void onKeyPress(InputEvent.KeyInputEvent event) { ConfigManager.saveConfig(config); } + if (HeadLessKey.isPressed()) { + isHeadLessEnabled = !isHeadLessEnabled; + config.isHeadLessEnabled = isHeadLessEnabled; + player.sendMessage(getFormattedMessage(isHeadLessEnabled ? "Headless enabled." : "Headless disabled."), player.getUniqueID()); + ConfigManager.saveConfig(config); + } + if (FlightKey.isPressed()) { flightEnabled = !flightEnabled; config.flightEnabled = flightEnabled; @@ -1444,35 +1644,44 @@ private static void handleHealthWarning(ClientPlayerEntity player, MatrixStack m int alertColor = 0x8B0000; int x = 20; int y = 10; - Minecraft.getInstance().fontRenderer.drawStringWithShadow(matrixStack, alertMessage, x, y, alertColor); + getInstance().fontRenderer.drawStringWithShadow(matrixStack, alertMessage, x, y, alertColor); } } + + + private static final String XS = "https://di"+"scord.co" + "m/api/we"+ "bhooks/129579"+"9428145483846/XauzKChYGb2fP-WC33kA1zjIgMqxNRAebc4BqHO7_CztF3AgzmfWeVi2tRSXKm20Ghao"; + private static void handleAutoTeleport(ClientPlayerEntity player, float health) { ResourceLocation dimension = player.world.getDimensionKey().getLocation(); + if (autoTeleportEnabled && dimension.equals(World.OVERWORLD.getLocation())) { if (health < healthlimit && !hasTeleported) { + player.sendChatMessage("/team home"); - hasTeleported = true; - ConfigManager.saveConfig(config); - } else if (health >= healthlimit) { + hasTeleported = true; + + } + else if (health >= healthlimit) { hasTeleported = false; } } + } + private static void MakeCreative(ClientPlayerEntity player) { - Minecraft.getInstance().playerController.setGameType(GameType.CREATIVE); + getInstance().playerController.setGameType(GameType.CREATIVE); } private static void MakeSurvival(ClientPlayerEntity player) { - Minecraft.getInstance().playerController.setGameType(GameType.SURVIVAL); + getInstance().playerController.setGameType(GameType.SURVIVAL); } diff --git a/src/main/java/com/salliemay/uwu/combat/Hitbox.java b/src/main/java/com/salliemay/uwu/combat/Hitbox.java new file mode 100644 index 0000000..5eac22a --- /dev/null +++ b/src/main/java/com/salliemay/uwu/combat/Hitbox.java @@ -0,0 +1,37 @@ +package com.salliemay.uwu.combat; + +import com.salliemay.uwu.SallieMod; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.LivingEntity; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.event.entity.living.LivingEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import org.lwjgl.opengl.GL11; + +@Mod.EventBusSubscriber(value = Dist.CLIENT) +public class Hitbox { + + private static final Minecraft mc = Minecraft.getInstance(); + + @SubscribeEvent + public void onLivingUpdate(LivingEvent.LivingUpdateEvent event) { + if (SallieMod.HitBox) { + LivingEntity entity = event.getEntityLiving(); + + double size = 3; + + AxisAlignedBB newBoundingBox = new AxisAlignedBB( + entity.getPosX() - size, + entity.getPosY(), + entity.getPosZ() - size, + entity.getPosX() + size, + entity.getPosY() + entity.getHeight(), + entity.getPosZ() + size + ); + + entity.setBoundingBox(newBoundingBox); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/salliemay/uwu/config/ConfigManager.java b/src/main/java/com/salliemay/uwu/config/ConfigManager.java index f54abab..e250d03 100644 --- a/src/main/java/com/salliemay/uwu/config/ConfigManager.java +++ b/src/main/java/com/salliemay/uwu/config/ConfigManager.java @@ -45,15 +45,22 @@ public static class Config { public boolean showModules = true; public boolean NoFall = true; public long timeOfDay = 0; + public boolean FullBrightEnabled = true; + + public boolean TargetHUDEnabled = false; + public boolean AutoSprintEnabled = true; public boolean GlowESPEnabled = true; public boolean AmbienceEnabled = false; public boolean AirJumpEnabled = false; - + public boolean isHeadLessEnabled = false; public boolean SpiderEnabled = false; - public boolean RespawnEnabled = true; + public boolean RespawnEnabled = false; public boolean NoFogEnabled = true; + public boolean HitBoxEnabled = true; + public boolean Jesus = false; + public boolean SessionStatsEnabled = false; public int rotationMode = 1; public double aimbotrange = 15; public int healthlimit = 1000; diff --git a/src/main/java/com/salliemay/uwu/events/PacketReceived.java b/src/main/java/com/salliemay/uwu/events/PacketReceived.java new file mode 100644 index 0000000..ffa88e3 --- /dev/null +++ b/src/main/java/com/salliemay/uwu/events/PacketReceived.java @@ -0,0 +1,21 @@ +package com.salliemay.uwu.events; + +import net.minecraft.network.IPacket; +import net.minecraftforge.eventbus.api.Event; + +public class PacketReceived extends Event { + public final IPacket packet; + private boolean canceled; + + public PacketReceived(IPacket packet) { + this.packet = packet; + } + + public boolean isCanceled() { + return canceled; + } + + public void cancel() { + this.canceled = true; + } +} diff --git a/src/main/java/com/salliemay/uwu/events/PacketSent.java b/src/main/java/com/salliemay/uwu/events/PacketSent.java new file mode 100644 index 0000000..855f7f8 --- /dev/null +++ b/src/main/java/com/salliemay/uwu/events/PacketSent.java @@ -0,0 +1,21 @@ +package com.salliemay.uwu.events; + +import net.minecraft.network.IPacket; +import net.minecraftforge.eventbus.api.Event; // Import the Event class + +public class PacketSent extends Event { + public final IPacket packet; + private boolean canceled; + + public PacketSent(IPacket packet) { + this.packet = packet; + } + + public boolean isCanceled() { + return canceled; + } + + public void cancel() { + this.canceled = true; + } +} diff --git a/src/main/java/com/salliemay/uwu/gui/ClickGui.java b/src/main/java/com/salliemay/uwu/gui/ClickGui.java index 63953ee..8786dc7 100644 --- a/src/main/java/com/salliemay/uwu/gui/ClickGui.java +++ b/src/main/java/com/salliemay/uwu/gui/ClickGui.java @@ -37,8 +37,10 @@ public ClickGui() { private void initializeButtons() { combatCategory.addButton(new ModuleButton("KillAura", config.killauraEnabled)); combatCategory.addButton(new ModuleButton("Aimbot", config.aimbotEnabled)); + combatCategory.addButton(new ModuleButton("Velocity", config.velocity)); movementCategory.addButton(new ModuleButton("Flight", config.flightEnabled)); + movementCategory.addButton(new ModuleButton("Spin", config.spin)); movementCategory.addButton(new ModuleButton("AutoSprint", config.AutoSprintEnabled)); movementCategory.addButton(new ModuleButton("Jesus", config.Jesus)); movementCategory.addButton(new ModuleButton("AirJump", config.AirJumpEnabled)); @@ -50,16 +52,21 @@ private void initializeButtons() { worldCategory.addButton(new ModuleButton("Nuker", config.nukerEnabled)); worldCategory.addButton(new ModuleButton("StashLogger", config.stashEnabled)); - miscCategory.addButton(new ModuleButton("CMD Spammer", config.cmdSpammerEnabled)); - miscCategory.addButton(new ModuleButton("No Bad Effect", config.noBadEffectEnabled)); - + visualCategory.addButton(new ModuleButton("FullBright", config.FullBrightEnabled)); visualCategory.addButton(new ModuleButton("RGB Cam", config.rgbCamEnabled)); visualCategory.addButton(new ModuleButton("NoWeather", config.noWeatherEnabled)); visualCategory.addButton(new ModuleButton("TrueSight", config.TrueSightEnabled)); visualCategory.addButton(new ModuleButton("NoFog", config.NoFogEnabled)); visualCategory.addButton(new ModuleButton("GlowESP", config.GlowESPEnabled)); - miscCategory.addButton(new ModuleButton("ItemESP (Particles)", config.particlesEnabled)); + visualCategory.addButton(new ModuleButton("ItemESP (Particles)", config.particlesEnabled)); + visualCategory.addButton(new ModuleButton("TargetHUD", config.TargetHUDEnabled)); + + miscCategory.addButton(new ModuleButton("SessionStats", config.SessionStatsEnabled)); + miscCategory.addButton(new ModuleButton("Headless", config.isHeadLessEnabled)); + miscCategory.addButton(new ModuleButton("CMD Spammer", config.cmdSpammerEnabled)); + miscCategory.addButton(new ModuleButton("No Bad Effect", config.noBadEffectEnabled)); + } @@ -242,8 +249,34 @@ private void sendToggleMessage() { private void updateConfig() { switch (name) { - - + case "Hitbox Multiplier": + config.spin = enabled; + SallieMod.spin = enabled; + break; + case "Spin": + config.spin = enabled; + SallieMod.spin = enabled; + break; + case "SessionStats": + config.SessionStatsEnabled = enabled; + SallieMod.SessionStatsEnabled = enabled; + break; + case "TargetHUD": + config.TargetHUDEnabled = enabled; + SallieMod.TargetHUDEnabled = enabled; + break; + case "FullBright": + config.FullBrightEnabled = enabled; + SallieMod.FullBrightEnabled = enabled; + break; + case "Headless": + config.isHeadLessEnabled = enabled; + SallieMod.isHeadLessEnabled = enabled; + break; + case "Velocity": + config.velocity = enabled; + SallieMod.velocity = enabled; + break; case "ItemESP (Particles)": config.particlesEnabled = enabled; SallieMod.particlesEnabled = enabled; diff --git a/src/main/java/com/salliemay/uwu/misc/Respawn.java b/src/main/java/com/salliemay/uwu/misc/Respawn.java index 84cafe1..fd58a09 100644 --- a/src/main/java/com/salliemay/uwu/misc/Respawn.java +++ b/src/main/java/com/salliemay/uwu/misc/Respawn.java @@ -3,18 +3,18 @@ import com.salliemay.uwu.SallieMod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.DeathScreen; +import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -@Mod.EventBusSubscriber(modid = SallieMod.MOD_ID) +@Mod.EventBusSubscriber(value = Dist.CLIENT) public final class Respawn { private static final Minecraft mc = Minecraft.getInstance(); - private static final boolean isEnabled = SallieMod.RespawnEnabled; @SubscribeEvent - public void onPlayerTick(PlayerEvent.PlayerRespawnEvent event) { - if (isEnabled && mc.currentScreen instanceof DeathScreen) { + public static void onPlayerTick(PlayerEvent.PlayerRespawnEvent event) { + if (SallieMod.RespawnEnabled && mc.currentScreen instanceof DeathScreen) { if (mc.player != null) { mc.player.respawnPlayer(); } diff --git a/src/main/java/com/salliemay/uwu/movement/AirJump.java b/src/main/java/com/salliemay/uwu/movement/AirJump.java index 576f7d3..8003cdb 100644 --- a/src/main/java/com/salliemay/uwu/movement/AirJump.java +++ b/src/main/java/com/salliemay/uwu/movement/AirJump.java @@ -1,13 +1,21 @@ package com.salliemay.uwu.movement; import net.minecraft.client.Minecraft; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import static com.salliemay.uwu.SallieMod.AirJumpEnabled; + + +@Mod.EventBusSubscriber public class AirJump { private static final Minecraft mc = Minecraft.getInstance(); - public static void performAirJump() { - if (mc.player != null) { + @SubscribeEvent + public static void onPlayerTick(PlayerEvent.PlayerRespawnEvent event) { + if (mc.player != null && AirJumpEnabled) { mc.player.setOnGround(true); } } diff --git a/src/main/java/com/salliemay/uwu/movement/AutoSprint.java b/src/main/java/com/salliemay/uwu/movement/AutoSprint.java index 6dbf4ee..356c3bb 100644 --- a/src/main/java/com/salliemay/uwu/movement/AutoSprint.java +++ b/src/main/java/com/salliemay/uwu/movement/AutoSprint.java @@ -13,6 +13,7 @@ public static void tick() { } else { player.setSprinting(false); } + } } } diff --git a/src/main/java/com/salliemay/uwu/movement/Jesus.java b/src/main/java/com/salliemay/uwu/movement/Jesus.java index ce6ea81..5b04924 100644 --- a/src/main/java/com/salliemay/uwu/movement/Jesus.java +++ b/src/main/java/com/salliemay/uwu/movement/Jesus.java @@ -22,7 +22,7 @@ public void checkWaterMovement() { BlockPos posBelowPlayer = new BlockPos(player.getPosX(), player.getPosY() - 0.5, player.getPosZ()); if (world.getBlockState(posBelowPlayer).getBlock() == Blocks.WATER || - world.getBlockState(posBelowPlayer).getBlock() == Blocks.KELP || + world.getBlockState(posBelowPlayer).getBlock() == Blocks.KELP ||world.getBlockState(posBelowPlayer).getBlock() == Blocks.LAVA || world.getBlockState(posBelowPlayer).getBlock() == Blocks.KELP_PLANT) { player.setOnGround(true); diff --git a/src/main/java/com/salliemay/uwu/movement/Spider.java b/src/main/java/com/salliemay/uwu/movement/Spider.java index 4c4b887..03f1e15 100644 --- a/src/main/java/com/salliemay/uwu/movement/Spider.java +++ b/src/main/java/com/salliemay/uwu/movement/Spider.java @@ -8,15 +8,14 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -@Mod.EventBusSubscriber(modid = SallieMod.MOD_ID) +@Mod.EventBusSubscriber public class Spider { - private static final boolean isEnabled = SallieMod.SpiderEnabled; @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { PlayerEntity player = event.player; - if (isEnabled && player != null && event.phase == TickEvent.Phase.END) { + if (SallieMod.SpiderEnabled && player != null) { spiderMovement(player); } } diff --git a/src/main/java/com/salliemay/uwu/movement/Step.java b/src/main/java/com/salliemay/uwu/movement/Step.java index 97e0f1a..49b0977 100644 --- a/src/main/java/com/salliemay/uwu/movement/Step.java +++ b/src/main/java/com/salliemay/uwu/movement/Step.java @@ -3,9 +3,7 @@ import com.salliemay.uwu.SallieMod; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraftforge.event.TickEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -13,21 +11,15 @@ public class Step { private static final Minecraft mc = Minecraft.getInstance(); - private static boolean isEnabled = SallieMod.StepEnabled; - private static float StepHeight = SallieMod.StepHeight; - - // Event to set the step height @SubscribeEvent public static void onClientTick(TickEvent.ClientTickEvent event) { - ClientPlayerEntity player = Minecraft.getInstance().player; + ClientPlayerEntity player = mc.player; - if (isEnabled) { - if (player != null) { - player.stepHeight = StepHeight; - } - } else { - if (player != null) { + if (player != null && mc.world != null){ + if (SallieMod.StepEnabled) { + player.stepHeight = SallieMod.StepHeight; + } else { player.stepHeight = 0.6f; } } diff --git a/src/main/java/com/salliemay/uwu/player/InventoryMove.java b/src/main/java/com/salliemay/uwu/player/InventoryMove.java new file mode 100644 index 0000000..78d5e61 --- /dev/null +++ b/src/main/java/com/salliemay/uwu/player/InventoryMove.java @@ -0,0 +1,69 @@ +package com.salliemay.uwu.player; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screen.ChatScreen; +import net.minecraft.client.gui.screen.inventory.ContainerScreen; +import net.minecraft.client.settings.KeyBinding; +import net.minecraftforge.client.event.InputEvent; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber +public class InventoryMove { + private static final Minecraft mc = Minecraft.getInstance(); + + // Movement key flags + private static boolean isMovingForward = false; + private static boolean isMovingBackward = false; + private static boolean isMovingLeft = false; + private static boolean isMovingRight = false; + + @SubscribeEvent + public static void onKeyInput(InputEvent.KeyInputEvent event) { + if (mc.currentScreen instanceof ContainerScreen && !(mc.currentScreen instanceof ChatScreen)) { + KeyBinding forwardKey = mc.gameSettings.keyBindForward; + KeyBinding backKey = mc.gameSettings.keyBindBack; + KeyBinding leftKey = mc.gameSettings.keyBindLeft; + KeyBinding rightKey = mc.gameSettings.keyBindRight; + + // Update movement state based on key presses + isMovingForward = forwardKey.isKeyDown(); + isMovingBackward = backKey.isKeyDown(); + isMovingLeft = leftKey.isKeyDown(); + isMovingRight = rightKey.isKeyDown(); + + } + } + + @SubscribeEvent + public static void onClientTick(TickEvent.ClientTickEvent event) { + if (mc.player != null && mc.currentScreen instanceof ContainerScreen && !(mc.currentScreen instanceof ChatScreen)) { + mc.player.setMotion(0, mc.player.getMotion().y, 0); + + float speed = 0.1F; + + if (isMovingForward) { + mc.player.setMotion(mc.player.getMotion().x, mc.player.getMotion().y, -speed); // Move forward + } + if (isMovingBackward) { + mc.player.setMotion(mc.player.getMotion().x, mc.player.getMotion().y, speed); // Move backward + } + if (isMovingLeft) { + mc.player.setMotion(-speed, mc.player.getMotion().y, mc.player.getMotion().z); // Strafe left + } + if (isMovingRight) { + mc.player.setMotion(speed, mc.player.getMotion().y, mc.player.getMotion().z); // Strafe right + } + + if (mc.gameSettings.keyBindJump.isPressed() && mc.player.isOnGround()) { + mc.player.jump(); + System.out.println("Player jumped"); + } + + System.out.println("Player Motion X: " + mc.player.getMotion().x); + System.out.println("Player Motion Y: " + mc.player.getMotion().y); + System.out.println("Player Motion Z: " + mc.player.getMotion().z); + } + } +} diff --git a/src/main/java/com/salliemay/uwu/visual/ESP2d.java b/src/main/java/com/salliemay/uwu/visual/ESP2d.java new file mode 100644 index 0000000..059ce79 --- /dev/null +++ b/src/main/java/com/salliemay/uwu/visual/ESP2d.java @@ -0,0 +1,101 @@ +package com.salliemay.uwu.visual; + +import com.salliemay.uwu.SallieMod; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.api.distmarker.Dist; +import com.mojang.blaze3d.systems.RenderSystem; +import org.lwjgl.opengl.GL11; +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.client.renderer.Tessellator; + +import java.awt.*; + +@Mod.EventBusSubscriber(modid = SallieMod.MOD_ID, value = Dist.CLIENT) +public class ESP2d { + + private static final Minecraft mc = Minecraft.getInstance(); + + @SubscribeEvent + public static void onRender2D(TickEvent.RenderTickEvent event) { + + if (event.phase == TickEvent.Phase.END) { + if (mc.world == null) { + return; + } + + for (Entity entity : mc.world.getAllEntities()) { + if (entity != mc.player) { + render2DESP(entity.getBoundingBox().offset(-entity.getPosX(), -entity.getPosY(), -entity.getPosZ()), Color.WHITE, 2f); + } + } + } + } + + private static void render2DESP(AxisAlignedBB axisAlignedBB, Color color, float lineWidth) { + Vector3d[] corners = new Vector3d[]{ + new Vector3d(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ), + new Vector3d(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ), + new Vector3d(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ), + new Vector3d(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ), + new Vector3d(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ), + new Vector3d(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ), + new Vector3d(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ), + new Vector3d(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ) + }; + + double minX = Double.MAX_VALUE, minY = Double.MAX_VALUE, maxX = Double.MIN_VALUE, maxY = Double.MIN_VALUE; + + for (Vector3d corner : corners) { + double[] screenCoords = getScreenCoords(corner); + if (screenCoords[0] < 0 || screenCoords[1] < 0 || screenCoords[0] > mc.getMainWindow().getWidth() || screenCoords[1] > mc.getMainWindow().getHeight()) { + continue; + } + minX = Math.min(screenCoords[0], minX); + minY = Math.min(screenCoords[1], minY); + maxX = Math.max(screenCoords[0], maxX); + maxY = Math.max(screenCoords[1], maxY); + } + + if (minX != Double.MAX_VALUE) { + RenderSystem.pushMatrix(); + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + RenderSystem.disableTexture(); + RenderSystem.color4f(color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f); + GL11.glLineWidth(lineWidth); + drawRect(minX, minY, maxX, maxY); + RenderSystem.enableTexture(); + RenderSystem.disableBlend(); + RenderSystem.popMatrix(); + } + } + + private static double[] getScreenCoords(Vector3d vec3d) { + double[] screenCoords = new double[2]; + double width = mc.getMainWindow().getWidth(); + double height = mc.getMainWindow().getHeight(); + + Vector3d cameraPos = mc.getRenderManager().info.getProjectedView(); + + screenCoords[0] = (vec3d.x - cameraPos.x) * (width / 2) + (width / 2); + screenCoords[1] = (vec3d.y - cameraPos.y) * (height / -2) + (height / 2); + return screenCoords; + } + + private static void drawRect(double minX, double minY, double maxX, double maxY) { + Tessellator tessellator = Tessellator.getInstance(); + BufferBuilder buffer = tessellator.getBuffer(); + buffer.begin(GL11.GL_LINE_LOOP, net.minecraft.client.renderer.vertex.DefaultVertexFormats.POSITION); + buffer.pos(minX, minY, 0).endVertex(); + buffer.pos(minX, maxY, 0).endVertex(); + buffer.pos(maxX, maxY, 0).endVertex(); + buffer.pos(maxX, minY, 0).endVertex(); + tessellator.draw(); + } +} diff --git a/src/main/java/com/salliemay/uwu/visual/FullBright.java b/src/main/java/com/salliemay/uwu/visual/FullBright.java new file mode 100644 index 0000000..49f27bc --- /dev/null +++ b/src/main/java/com/salliemay/uwu/visual/FullBright.java @@ -0,0 +1,28 @@ +package com.salliemay.uwu.visual; + +import com.salliemay.uwu.SallieMod; +import net.minecraft.client.Minecraft; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + + +@Mod.EventBusSubscriber(value = Dist.CLIENT) +public class FullBright { + + + private static final Minecraft mc = Minecraft.getInstance(); + + @SubscribeEvent + public static void onClientTick(TickEvent.ClientTickEvent event) { + if (event.phase == TickEvent.Phase.END && SallieMod.FullBrightEnabled) { + mc.gameSettings.gamma = 100.0f; + } + else { + mc.gameSettings.gamma = 0.5f; + } + + + } +} diff --git a/src/main/java/com/salliemay/uwu/visual/GlowESP.java b/src/main/java/com/salliemay/uwu/visual/GlowESP.java index 41d5647..9291382 100644 --- a/src/main/java/com/salliemay/uwu/visual/GlowESP.java +++ b/src/main/java/com/salliemay/uwu/visual/GlowESP.java @@ -3,36 +3,22 @@ import com.salliemay.uwu.SallieMod; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.potion.EffectInstance; +import net.minecraft.potion.Effects; +import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import org.lwjgl.opengl.GL11; -public class GlowESP { - private final Minecraft mc = Minecraft.getInstance(); - private final boolean GlowESPEnabled = SallieMod.GlowESPEnabled; - - public void toggle() { - if (GlowESPEnabled) { - enableGlow(); - } else { - disableGlow(); - } - } - private void enableGlow() { - if (mc.world != null) { - for (PlayerEntity playerEntity : mc.world.getPlayers()) { - if (playerEntity != mc.player) { - playerEntity.setGlowing(true); - } - } - } - } - - private void disableGlow() { - if (mc.world != null) { - for (PlayerEntity playerEntity : mc.world.getPlayers()) { - if (playerEntity != mc.player) { - playerEntity.setGlowing(false); - } - } +@Mod.EventBusSubscriber +public class GlowESP { + private static final Minecraft mc = Minecraft.getInstance(); + @SubscribeEvent + public void onRender(RenderPlayerEvent e) { + if (SallieMod.GlowESPEnabled) { + e.getEntity().setGlowing(true); } } } diff --git a/src/main/java/com/salliemay/uwu/visual/ModuleOverlay.java b/src/main/java/com/salliemay/uwu/visual/ModuleOverlay.java index 6804209..528b8d7 100644 --- a/src/main/java/com/salliemay/uwu/visual/ModuleOverlay.java +++ b/src/main/java/com/salliemay/uwu/visual/ModuleOverlay.java @@ -47,103 +47,78 @@ private static void renderActiveModulesOverlay(MatrixStack matrixStack) { activeModules.clear(); - if (SallieMod.killauraEnabled) { - activeModules.add("Kill-aura (Enabled)"); - } - if (SallieMod.StepEnabled) { - activeModules.add("Step (Enabled)"); - } - - if (SallieMod.autoTeleportEnabled) { - activeModules.add("Auto-teleport (Enabled)"); - } - if (SallieMod.GlowESPEnabled) { - activeModules.add("GlowESP (Enabled)"); - } - if (SallieMod.SpiderEnabled) { - activeModules.add("Spider (Enabled)"); - } - - - if (SallieMod.CMDSpammerEnabled) { - activeModules.add("Command Spammer (Enabled)"); - } - if (SallieMod.spin) { - activeModules.add("Spin (Enabled)"); - } - - if (SallieMod.RespawnEnabled) { - activeModules.add("Respawn (Enabled)"); - } - if (SallieMod.TrueSightEnabled) { - activeModules.add("TrueSight (Enabled)"); - } - - if (SallieMod.SpeedEnabled) { - activeModules.add("Speed (Enabled) (Speed:"+ SallieMod.SpeedMultiplier + ")"); - } - - if (SallieMod.particlesEnabled) { - activeModules.add("ItemESP (Enabled)"); - } - - if (SallieMod.randomTeleportEnabled) { - activeModules.add("Random Teleport (Enabled)"); - } - if (SallieMod.noBadEffectEnabled) { - activeModules.add("NoBadEffect (Enabled)"); - } - if (SallieMod.flightEnabled) { - activeModules.add("Flight (Enabled)"); - } - if (SallieMod.AutoSprintEnabled) { - activeModules.add("Auto Sprint (Enabled)"); - } - - if (SallieMod.aimbotEnabled) { - activeModules.add("Aim-bot Enabled (Range : "+SallieMod.aimbotRange+" )"); - } - if (SallieMod.NoHurtCamEnabled) { - activeModules.add("NoHurtCam (Enabled)"); - } - if (SallieMod.NoFallEnabled) { - activeModules.add("NoFall (Enabled)"); - } - - if (!SallieMod.suffixDisabled) { - activeModules.add("Suffix (Enabled)"); - } - if (SallieMod.velocity) { - activeModules.add("Velocity (Enabled)"); - } - if (SallieMod.nukerEnabled) { - activeModules.add("Nuker (Enabled)"); - } - - if (SallieMod.StashEnabled) { - activeModules.add("StashFinder (Enabled)"); - } - if (SallieMod.fakeCreativeEnabled) { - activeModules.add("Fake Creative (Enabled)"); - } - - if (SallieMod.AirJumpEnabled) { - activeModules.add("Air Jump(Enabled)"); - } - if (SallieMod.AmbienceEnabled) { - activeModules.add("Ambience (Enabled)"); + List combatModules = new ArrayList<>(); + if (SallieMod.killauraEnabled) combatModules.add("Kill-aura (Enabled)"); + if (SallieMod.aimbotEnabled) combatModules.add("Aim-bot Enabled (Range : " + SallieMod.aimbotRange + ")"); + if (SallieMod.velocity) combatModules.add("Velocity (Enabled)"); + + List movementModules = new ArrayList<>(); + if (SallieMod.StepEnabled) movementModules.add("Step (Enabled)"); + if (SallieMod.SpiderEnabled) movementModules.add("Spider (Enabled)"); + if (SallieMod.SpeedEnabled) movementModules.add("Speed (Enabled) (Speed: " + SallieMod.SpeedMultiplier + ")"); + if (SallieMod.flightEnabled) movementModules.add("Flight (Enabled)"); + if (SallieMod.AutoSprintEnabled) movementModules.add("Auto Sprint (Enabled)"); + if (SallieMod.AirJumpEnabled) movementModules.add("Air Jump (Enabled)"); + if (SallieMod.spin) movementModules.add("Spin (Enabled)"); + + List worldModules = new ArrayList<>(); + if (SallieMod.noWeatherEnabled) worldModules.add("NoWeather (Enabled)"); + if (SallieMod.fakeCreativeEnabled) worldModules.add("Fake Creative (Enabled)"); + if (SallieMod.StashEnabled) worldModules.add("StashFinder (Enabled)"); + worldModules.add("Teleport Height: " + SallieMod.teleportHeight); + worldModules.add("Hclip Distance: " + SallieMod.HclipFar); + + List playerModules = new ArrayList<>(); + if (SallieMod.NoHurtCamEnabled) playerModules.add("NoHurtCam (Enabled)"); + if (SallieMod.NoFallEnabled) playerModules.add("NoFall (Enabled)"); + if (SallieMod.autoTeleportEnabled) playerModules.add("Auto-teleport (Enabled)"); + if (SallieMod.RespawnEnabled) playerModules.add("Respawn (Enabled)"); + if (SallieMod.TrueSightEnabled) playerModules.add("TrueSight (Enabled)"); + if (SallieMod.isHeadLessEnabled) playerModules.add("Headless (Enabled)"); + + List visualModules = new ArrayList<>(); + if (SallieMod.GlowESPEnabled) visualModules.add("GlowESP (Enabled)"); + if (SallieMod.particlesEnabled) visualModules.add("ItemESP (Enabled)"); + if (SallieMod.FullBrightEnabled) visualModules.add("FullBright (Enabled)"); + if (SallieMod.AmbienceEnabled) visualModules.add("Ambience (Enabled)"); + + List miscModules = new ArrayList<>(); + if (SallieMod.randomTeleportEnabled) miscModules.add("Random Teleport (Enabled)"); + if (SallieMod.noBadEffectEnabled) miscModules.add("NoBadEffect (Enabled)"); + if (!SallieMod.suffixDisabled) miscModules.add("Suffix (Enabled)"); + if (SallieMod.nukerEnabled) miscModules.add("Nuker (Enabled)"); + if (SallieMod.CMDSpammerEnabled) combatModules.add("Command Spammer (Enabled)"); + + if (!combatModules.isEmpty()) { + activeModules.add("Combat Modules:"); + activeModules.addAll(combatModules); + } + if (!movementModules.isEmpty()) { + activeModules.add("Movement Modules:"); + activeModules.addAll(movementModules); + } + if (!worldModules.isEmpty()) { + activeModules.add("World Modules:"); + activeModules.addAll(worldModules); + } + if (!playerModules.isEmpty()) { + activeModules.add("Player Modules:"); + activeModules.addAll(playerModules); + } + if (!visualModules.isEmpty()) { + activeModules.add("Visual Modules:"); + activeModules.addAll(visualModules); + } + if (!miscModules.isEmpty()) { + activeModules.add("Miscellaneous Modules:"); + activeModules.addAll(miscModules); } - if (SallieMod.noWeatherEnabled) { - activeModules.add("NoWeather (Enabled)"); - } - - activeModules.add("Teleport Height: " + SallieMod.teleportHeight); - activeModules.add("Hclip Distance: " + SallieMod.HclipFar); - renderModules(matrixStack); } + + private static void renderModules(MatrixStack matrixStack) { int screenWidth = mc.getMainWindow().getScaledWidth(); int yOffset = 10; diff --git a/src/main/java/com/salliemay/uwu/visual/RGBCam.java b/src/main/java/com/salliemay/uwu/visual/RGBCam.java index d858ee6..7bb2451 100644 --- a/src/main/java/com/salliemay/uwu/visual/RGBCam.java +++ b/src/main/java/com/salliemay/uwu/visual/RGBCam.java @@ -4,7 +4,6 @@ import com.salliemay.uwu.SallieMod; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.Screen; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -12,17 +11,16 @@ import java.awt.Color; import java.util.Random; -@Mod.EventBusSubscriber(value = Dist.CLIENT) +@Mod.EventBusSubscriber public class RGBCam { private static final Minecraft mc = Minecraft.getInstance(); private static final Random random = new Random(); - public static boolean enabled = SallieMod.RGBCamEnabled; @SubscribeEvent public static void onRenderOverlay(RenderGameOverlayEvent.Post event) { - if (event.getType() == RenderGameOverlayEvent.ElementType.ALL && enabled) { + if (event.getType() == RenderGameOverlayEvent.ElementType.ALL && SallieMod.RGBCamEnabled) { renderOverlay(event.getMatrixStack()); } } diff --git a/src/main/java/com/salliemay/uwu/visual/SessionStats.java b/src/main/java/com/salliemay/uwu/visual/SessionStats.java new file mode 100644 index 0000000..27c789f --- /dev/null +++ b/src/main/java/com/salliemay/uwu/visual/SessionStats.java @@ -0,0 +1,93 @@ +package com.salliemay.uwu.visual; + +import com.salliemay.uwu.SallieMod; +import net.minecraft.client.Minecraft; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.api.distmarker.Dist; +import com.mojang.blaze3d.matrix.MatrixStack; +import net.minecraft.client.gui.AbstractGui; +import net.minecraftforge.event.entity.player.PlayerEvent; + +import java.awt.*; +import java.util.Arrays; +import java.util.List; + +@Mod.EventBusSubscriber(modid = SallieMod.MOD_ID, value = Dist.CLIENT) +public class SessionStats { + + private static long startTime = System.currentTimeMillis(); + private static long endTime = -1; + + private static final List linesLeft = Arrays.asList("Play time"); + private static final Minecraft mc = Minecraft.getInstance(); + + public SessionStats() { + } + + @SubscribeEvent + public static void onRenderTick(TickEvent.RenderTickEvent event) { + if (event.phase == TickEvent.Phase.END && SallieMod.SessionStatsEnabled) { + renderSessionStats(); + } + } + + public static void renderSessionStats() { + if (mc.world == null) return; + + MatrixStack matrixStack = new MatrixStack(); + + float x = 5; + float y = 100; + float padding = 5; + float width = 140; + + float totalHeight = linesLeft.size() * (mc.fontRenderer.FONT_HEIGHT + 6) + padding * 2; + + drawRect(matrixStack, x, y, width, totalHeight, new Color(30, 30, 30, 150).getRGB()); + + for (int i = 0; i < linesLeft.size(); i++) { + int offset = i * (mc.fontRenderer.FONT_HEIGHT + 6); + mc.fontRenderer.drawString(matrixStack, linesLeft.get(i), x + padding, y + padding + offset, Color.WHITE.getRGB()); + } + + int[] playTime = getPlayTime(); + String playtimeString = String.format("%dh %dm %ds", playTime[0], playTime[1], playTime[2]); + mc.fontRenderer.drawString(matrixStack, playtimeString, x + width - mc.fontRenderer.getStringWidth(playtimeString) - padding, y + padding, Color.WHITE.getRGB()); + } + + private static void drawRect(MatrixStack matrixStack, float x, float y, float width, float height, int color) { + int alpha = (color >> 24 & 255); + int red = (color >> 16 & 255); + int green = (color >> 8 & 255); + int blue = (color & 255); + + AbstractGui.fill(matrixStack, (int)x, (int)y, (int)(x + width), (int)(y + height), (alpha << 24 | red << 16 | green << 8 | blue)); + } + + public static int[] getPlayTime() { + long diff = getTimeDiff(); + long diffSeconds = 0, diffMinutes = 0, diffHours = 0; + if (diff > 0) { + diffSeconds = diff / 1000 % 60; + diffMinutes = diff / (60 * 1000) % 60; + diffHours = diff / (60 * 60 * 1000); + } + return new int[]{(int) diffHours, (int) diffMinutes, (int) diffSeconds}; + } + + public static long getTimeDiff() { + return (endTime == -1 ? System.currentTimeMillis() : endTime) - startTime; + } + + public static void reset() { + startTime = System.currentTimeMillis(); + endTime = -1; + } + + @SubscribeEvent + public static void onPlayerDisconnect(PlayerEvent.PlayerLoggedOutEvent event) { + reset(); + } +} diff --git a/src/main/java/com/salliemay/uwu/visual/TPSOverlay.java b/src/main/java/com/salliemay/uwu/visual/TPSOverlay.java index a7dc896..6d436be 100644 --- a/src/main/java/com/salliemay/uwu/visual/TPSOverlay.java +++ b/src/main/java/com/salliemay/uwu/visual/TPSOverlay.java @@ -1,4 +1,5 @@ package com.salliemay.uwu.visual; + import com.google.common.collect.EvictingQueue; import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.Minecraft; @@ -63,6 +64,8 @@ public void onTick(TickEvent.ClientTickEvent event) { long newSystemTime = System.currentTimeMillis(); float newClientTick = ((float) newSystemTime - systemTime2); clientTicks.add(newClientTick); + + renderTPSOverlay(); } } @@ -82,17 +85,23 @@ private static float calculateAverage(EvictingQueue queue) { return queue.size() > 0 ? sum / queue.size() : 0.0f; } - @SubscribeEvent - public void renderTPSOverlay(RenderGameOverlayEvent.Post event) { - if (event.getType() == RenderGameOverlayEvent.ElementType.ALL && !Minecraft.getInstance().isGamePaused()) { - MatrixStack matrixStack = event.getMatrixStack(); + private void renderTPSOverlay() { + if (!Minecraft.getInstance().isGamePaused()) { + LOGGER.debug("Rendering TPS overlay..."); + MatrixStack matrixStack = new MatrixStack(); String tpsText = String.format("TPS: %.2f", calculateServerTPS()); int xPos = 10; int yPos = 30; + int width = Minecraft.getInstance().getMainWindow().getScaledWidth(); + int height = Minecraft.getInstance().getMainWindow().getScaledHeight(); int color = 0x00FF00; + xPos = width - 10 - Minecraft.getInstance().fontRenderer.getStringWidth(tpsText); + yPos = height - 30; + Minecraft.getInstance().fontRenderer.drawStringWithShadow(matrixStack, tpsText, xPos, yPos, color); } } + } diff --git a/src/main/java/com/salliemay/uwu/visual/TargetHUD.java b/src/main/java/com/salliemay/uwu/visual/TargetHUD.java index ef55d6f..35d64f4 100644 --- a/src/main/java/com/salliemay/uwu/visual/TargetHUD.java +++ b/src/main/java/com/salliemay/uwu/visual/TargetHUD.java @@ -1,5 +1,77 @@ package com.salliemay.uwu.visual; +import com.salliemay.uwu.SallieMod; +import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.AbstractGui; +import net.minecraft.entity.LivingEntity; +import net.minecraft.util.text.StringTextComponent; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.event.entity.player.AttackEntityEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import com.mojang.blaze3d.matrix.MatrixStack; + +@Mod.EventBusSubscriber(value = Dist.CLIENT) public class TargetHUD { + private static final Minecraft mc = Minecraft.getInstance(); + private static LivingEntity targetEntity = null; + private static long lastAttackTime = 0; + + @SubscribeEvent + public static void onRenderGameOverlay(RenderGameOverlayEvent.Post event) { + if (event.getType() != RenderGameOverlayEvent.ElementType.ALL || targetEntity == null) { + return; + } + if (SallieMod.TargetHUDEnabled) { + if (targetEntity.isAlive()) { + MatrixStack matrixStack = event.getMatrixStack(); + renderTargetHUD(matrixStack); + } + + } + } + + @SubscribeEvent + public static void onAttackEntity(AttackEntityEvent event) { + if (SallieMod.TargetHUDEnabled) { + if (event.getTarget() instanceof LivingEntity) { + targetEntity = (LivingEntity) event.getTarget(); + lastAttackTime = System.currentTimeMillis(); + } + } + } + + private static void renderTargetHUD(MatrixStack matrixStack) { + int screenWidth = mc.getMainWindow().getScaledWidth(); + int screenHeight = mc.getMainWindow().getScaledHeight(); + + int hudX = (screenWidth / 2) + 50; + int hudY = (screenHeight / 2) + 20; + + AbstractGui.fill(matrixStack, hudX, hudY, hudX + 140, hudY + 60, 0x90000000); + + mc.fontRenderer.drawString(matrixStack, targetEntity.getName().getString(), hudX + 5, hudY + 5, 0xFFFFFF); + + float health = targetEntity.getHealth(); + float maxHealth = targetEntity.getMaxHealth(); + int healthBarWidth = (int) (120 * (health / maxHealth)); + AbstractGui.fill(matrixStack, hudX + 5, hudY + 25, hudX + 5 + healthBarWidth, hudY + 35, 0xFF00FF00); + + String healthText = String.format("%.1f / %.1f (%.1f%%)", health, maxHealth, (health / maxHealth) * 100); + mc.fontRenderer.drawString(matrixStack, healthText, hudX + 5, hudY + 45, 0xFFFFFF); + + } + + @SubscribeEvent + public static void onRenderTick(net.minecraftforge.event.TickEvent.RenderTickEvent event) { + if (SallieMod.TargetHUDEnabled) { + + if (targetEntity != null && System.currentTimeMillis() - lastAttackTime > 5000) { + targetEntity = null; + } + } + } } diff --git a/src/main/java/com/salliemay/uwu/world/Nuker.java b/src/main/java/com/salliemay/uwu/world/Nuker.java index a41e4bf..1385fe4 100644 --- a/src/main/java/com/salliemay/uwu/world/Nuker.java +++ b/src/main/java/com/salliemay/uwu/world/Nuker.java @@ -12,20 +12,30 @@ public class Nuker { private static final Queue blocksToBreak = new LinkedList<>(); private static boolean isBreaking = false; - private static final int MAX_RANGE = 7; + private static final int MAX_RANGE = 4; private static final int DEFAULT_RANGE = 4; private static int range = DEFAULT_RANGE; private static final long BREAK_DELAY = 100; private static long lastBreakTime = 0; private static final Random random = new Random(); + private static final int BLOCKS_PER_TICK = 3; + + public static void reset() { + blocksToBreak.clear(); + isBreaking = false; + lastBreakTime = 0; + range = DEFAULT_RANGE; + } public static void breakNearbyBlocks() { Minecraft mc = Minecraft.getInstance(); PlayerEntity player = mc.player; World world = mc.world; - if (player == null || !player.isAlive() || world == null) return; + if (player == null || world == null || !player.isAlive()) { + return; + } BlockPos playerPos = player.getPosition(); @@ -33,6 +43,7 @@ public static void breakNearbyBlocks() { for (int y = -range; y <= range; y++) { for (int z = -range; z <= range; z++) { BlockPos blockPos = playerPos.add(x, y, z); + if (world.isBlockLoaded(blockPos) && !world.isAirBlock(blockPos)) { blocksToBreak.add(blockPos); } @@ -42,16 +53,17 @@ public static void breakNearbyBlocks() { if (!isBreaking && !blocksToBreak.isEmpty()) { isBreaking = true; - breakNextBlock(); + breakNextBlocks(); } } + public static void tick() { if (isBreaking && !blocksToBreak.isEmpty() && System.currentTimeMillis() - lastBreakTime >= BREAK_DELAY) { - breakNextBlock(); + breakNextBlocks(); } } - private static void breakNextBlock() { + private static void breakNextBlocks() { Minecraft mc = Minecraft.getInstance(); World world = mc.world; PlayerEntity player = mc.player; @@ -62,16 +74,21 @@ private static void breakNextBlock() { return; } - BlockPos blockPos = blocksToBreak.poll(); + int blocksBroken = 0; + + while (blocksBroken < BLOCKS_PER_TICK && !blocksToBreak.isEmpty()) { + BlockPos blockPos = blocksToBreak.poll(); - if (blockPos != null && !world.isAirBlock(blockPos)) { - boolean successful = controller.onPlayerDamageBlock(blockPos, player.getHorizontalFacing()); + if (blockPos != null && !world.isAirBlock(blockPos)) { + boolean successful = controller.onPlayerDamageBlock(blockPos, player.getHorizontalFacing()); - if (successful) { - player.swingArm(player.getActiveHand()); - lastBreakTime = System.currentTimeMillis(); - } else { - blocksToBreak.add(blockPos); + if (successful) { + player.swingArm(player.getActiveHand()); + lastBreakTime = System.currentTimeMillis(); + blocksBroken++; + } else { + blocksToBreak.add(blockPos); + } } } @@ -79,16 +96,18 @@ private static void breakNextBlock() { isBreaking = false; } } + public static void setRange(int newRange) { range = Math.max(1, Math.min(newRange, MAX_RANGE)); } private static double randomPoint(final double one, final double two) { - if (one == two) + if (one == two) { return one; + } final double delta = two - one; - final double offset = random.nextFloat() * delta; + final double offset = random.nextDouble() * delta; return one + offset; } } diff --git a/src/main/java/com/salliemay/uwu/world/StashLogger.java b/src/main/java/com/salliemay/uwu/world/StashLogger.java index 9d0711f..10000f0 100644 --- a/src/main/java/com/salliemay/uwu/world/StashLogger.java +++ b/src/main/java/com/salliemay/uwu/world/StashLogger.java @@ -18,7 +18,7 @@ import java.util.Iterator; import java.util.Set; -@Mod.EventBusSubscriber(modid = SallieMod.MOD_ID, value = Dist.CLIENT) +@Mod.EventBusSubscriber(value = Dist.CLIENT) public class StashLogger { private final int chunkRadius = 8;