diff options
author | RoseGoldIsntGay <yoavkau@gmail.com> | 2021-11-22 09:12:31 +0200 |
---|---|---|
committer | RoseGoldIsntGay <yoavkau@gmail.com> | 2021-11-22 09:12:31 +0200 |
commit | 19de3c3ee0582f25d8e127492d791f81a410b70a (patch) | |
tree | 5ac734875a7da4fc6ffd9521f880d6292c909ed7 | |
parent | 9ec7ca5e828f33122818a51215bbec5e68a84db2 (diff) | |
download | RGA-19de3c3ee0582f25d8e127492d791f81a410b70a.tar.gz RGA-19de3c3ee0582f25d8e127492d791f81a410b70a.tar.bz2 RGA-19de3c3ee0582f25d8e127492d791f81a410b70a.zip |
2.3.0
20 files changed, 958 insertions, 677 deletions
diff --git a/build.gradle b/build.gradle index 34084c1..b9398de 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id "org.spongepowered.mixin" version "0.6-SNAPSHOT" } -version = "2.2.0" +version = "2.3.0" group = "rosegoldaddons" archivesBaseName = "RoseGoldAddons" diff --git a/src/main/java/rosegoldaddons/Config.java b/src/main/java/rosegoldaddons/Config.java index 77efa64..964ae57 100644 --- a/src/main/java/rosegoldaddons/Config.java +++ b/src/main/java/rosegoldaddons/Config.java @@ -1,22 +1,26 @@ package rosegoldaddons; import gg.essential.vigilance.Vigilant; -import gg.essential.vigilance.data.Property; -import gg.essential.vigilance.data.PropertyType; +import gg.essential.vigilance.data.*; +import org.jetbrains.annotations.NotNull; -import java.awt.*; import java.io.File; -import java.util.Arrays; +import java.util.Comparator; -import java.io.File; public class Config extends Vigilant { public static Config INSTANCE = new Config(); @Property(type = PropertyType.SWITCH, name = "Auto Start Dungeon + Ready", description = "Automatically starts the dungeon and gets ready.", - category = "RoseGoldAddons", subcategory = "General") + category = "Dungeons", subcategory = "General") public boolean AutoReady = true; + public boolean autoArrowAlign = true; + + @Property(type = PropertyType.SLIDER, name = "Auto Arrow Align Delay", description = "How often to click an item frame (in miliseconds)", + category = "Dungeons", subcategory = "General", max = 500) + public int autoArrowAlignDelay = 10; + @Property(type = PropertyType.SWITCH, name = "Party Untransfer", description = "When you really dont wanna be party leader.", category = "RoseGoldAddons", subcategory = "General") public boolean AutoUntransfer = true; @@ -29,28 +33,64 @@ public class Config extends Vigilant { category = "RoseGoldAddons", subcategory = "General") public boolean UseUtility = false; + @Property(type = PropertyType.SWITCH, name = "Entity Reach", description = "Interact with entities from far away", + category = "RoseGoldAddons", subcategory = "General") + public boolean entityReach = false; + + @Property(type = PropertyType.SWITCH, name = "Entity Reach Sticky Mode", description = "Remember last entity looked at", + category = "RoseGoldAddons", subcategory = "General") + public boolean sticky = false; + @Property(type = PropertyType.SLIDER, name = "Sword Swap Delay", description = "How often to swap swords (in miliseconds)", category = "RoseGoldAddons", subcategory = "General", max = 2000) public int swapFrequency = 500; - @Property(type = PropertyType.SLIDER, name = "ItemFrame Terminal Aura Delay", description = "How often to click an item frame (in miliseconds)", - category = "RoseGoldAddons", subcategory = "General", max = 500) - public int auraDelay = 10; - @Property(type = PropertyType.SLIDER, name = "Smooth Look Velocity", description = "How fast should head rotation changes be (in miliseconds)", category = "RoseGoldAddons", subcategory = "General", min = 1, max = 200) public int smoothLookVelocity = 50; @Property(type = PropertyType.SLIDER, name = "Macro Range", description = "Look for entities only in radius of the player, 0 = unlimited", - category = "RoseGoldAddons", subcategory = "General", min = 0, max = 100) + category = "RoseGoldAddons", subcategory = "General", max = 100) public int macroRadius = 0; - @Property(type = PropertyType.SLIDER, name = "Monkey Pet Level", description = "Level of your legendary monkey, needed to maximize foraging macro efficiency", - category = "RoseGoldAddons", subcategory = "General", min = 1, max = 100) - public int monkeyLevel = 0; + @Property(type = PropertyType.SLIDER, name = "Delay Before Breaking Tree", description = "Miliseconds to wait before breaking tree", + category = "Foraging", subcategory = "General", max = 2000) + public int treecapDelay = 1000; + + @Property(type = PropertyType.SLIDER, name = "Delay Before Using Rod", description = "Miliseconds to wait before using rod", + category = "Foraging", subcategory = "General", max = 500) + public int prerodDelay = 150; + + @Property(type = PropertyType.SLIDER, name = "Delay After Using Rod", description = "Miliseconds to wait after using rod (before starting over)", + category = "Foraging", subcategory = "General", max = 500) + public int postrodDelay = 150; + + @Property(type = PropertyType.SWITCH, name = "Radomize Delay", description = "Add slight randomization to delay", + category = "Foraging", subcategory = "General") + public boolean randomizeForaging = true; + + @Property(type = PropertyType.SWITCH, name = "Admin Antisus", description = "Act as if you're there when you get AFK checked (not recommended to leave on)", + category = "Foraging", subcategory = "General") + public boolean forageantisus = false; public Config() { - super(new File("./config/rosegoldaddons/config.toml"), "RoseGold Addons"); + super(new File("./config/rosegoldaddons/config.toml"), "RoseGold Addons", new JVMAnnotationPropertyCollector(), new ConfigSorting()); initialize(); } + + public static class ConfigSorting extends SortingBehavior { + @NotNull + @Override + public Comparator<Category> getCategoryComparator() { + return (o1, o2) -> { + if(o1.getName().equals("RoseGoldAddons")) { + return -1; + } else if(o2.getName().equals("RoseGoldAddons")) { + return 1; + } else { + return o1.getName().compareTo(o2.getName()); + } + }; + } + } } diff --git a/src/main/java/rosegoldaddons/Main.java b/src/main/java/rosegoldaddons/Main.java index 7a134de..c440d9b 100644 --- a/src/main/java/rosegoldaddons/Main.java +++ b/src/main/java/rosegoldaddons/Main.java @@ -5,9 +5,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.settings.KeyBinding; import net.minecraft.event.ClickEvent; import net.minecraft.util.ChatComponentText; -import net.minecraft.util.Timer; import net.minecraftforge.client.ClientCommandHandler; -import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.client.registry.ClientRegistry; @@ -24,16 +22,17 @@ import rosegoldaddons.features.BlockBreakAura; import rosegoldaddons.features.*; import rosegoldaddons.utils.ChatUtils; import rosegoldaddons.utils.OpenSkyblockGui; -import tv.twitch.chat.Chat; import java.io.*; -import java.util.TimerTask; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.HashMap; @Mod(modid = "timechanger", name = "RoseGold Addons", version = "2.1") public class Main { public static GuiScreen display = null; public static Config configFile = Config.INSTANCE; - public static KeyBinding[] keyBinds = new KeyBinding[14]; + public static KeyBinding[] keyBinds = new KeyBinding[13]; public static int tickCount = 0; public static boolean endermanMacro = false; public static boolean powderMacro = false; @@ -42,7 +41,6 @@ public class Main { public static boolean SoulWhipMacro = false; public static boolean verified = false; public static boolean GhostMacro = false; - public static boolean legitToggle = false; public static boolean gemNukeToggle = false; public static boolean wartToggle = false; public static boolean autoUseItems = false; @@ -52,6 +50,7 @@ public class Main { public static boolean necronAimbot = false; public static boolean bloodTriggerBot = false; private static boolean initMessage = false; + private static boolean firstLoginThisSession = true; @Mod.EventHandler public void onFMLInitialization(FMLPreInitializationEvent event) { @@ -67,40 +66,79 @@ public class Main { MinecraftForge.EVENT_BUS.register(new AutoReady()); MinecraftForge.EVENT_BUS.register(new OpenSkyblockGui()); MinecraftForge.EVENT_BUS.register(new EndermanMacro()); - MinecraftForge.EVENT_BUS.register(new ItemFrameAura()); + MinecraftForge.EVENT_BUS.register(new AutoArrowAlign()); MinecraftForge.EVENT_BUS.register(new PowderMacro()); MinecraftForge.EVENT_BUS.register(new SwordSwapping()); MinecraftForge.EVENT_BUS.register(new PartyUntransfer()); MinecraftForge.EVENT_BUS.register(new GhostMacro()); MinecraftForge.EVENT_BUS.register(new BlockBreakAura()); - MinecraftForge.EVENT_BUS.register(new WartMacro()); MinecraftForge.EVENT_BUS.register(new CustomItemMacro()); MinecraftForge.EVENT_BUS.register(new HardstoneMacro()); MinecraftForge.EVENT_BUS.register(new ForagingIslandMacro()); MinecraftForge.EVENT_BUS.register(new NecronAimbot()); MinecraftForge.EVENT_BUS.register(new BloodTriggerBot()); + MinecraftForge.EVENT_BUS.register(new EntityReach()); configFile.initialize(); ClientCommandHandler.instance.registerCommand(new OpenSettings()); ClientCommandHandler.instance.registerCommand(new Rosedrobe()); ClientCommandHandler.instance.registerCommand(new LobbySwap()); ClientCommandHandler.instance.registerCommand(new Backpack()); - ClientCommandHandler.instance.registerCommand(new WartSetup()); ClientCommandHandler.instance.registerCommand(new UseCooldown()); + ClientCommandHandler.instance.registerCommand(new Rosepet()); + ClientCommandHandler.instance.registerCommand(new AllEntities()); + + try { + Reader reader = Files.newBufferedReader(Paths.get("./config/rosegoldaddons/rcmacros.json")); + int data = reader.read(); + String str = ""; + while(data != -1) { + str += (char) data; + data = reader.read(); + } + str = str.replace("\"",""); + str = str.replace("{",""); + str = str.replace("}",""); + String[] arr = str.split(","); + for(int i = 0; i < arr.length; i++) { + String[] arr2 = arr[i].split(":"); + System.out.println(arr2[0]+" "+arr2[1]); + UseCooldown.RCitems.put(arr2[0], Integer.parseInt(arr2[1])); + } + reader.close(); + Reader reader2 = Files.newBufferedReader(Paths.get("./config/rosegoldaddons/lcmacros.json")); + int data2 = reader2.read(); + String str2 = ""; + while(data2 != -1) { + str2 += (char) data2; + data2 = reader.read(); + } + str2 = str2.replace("\"",""); + str2 = str2.replace("{",""); + str2 = str2.replace("}",""); + String[] arr3 = str2.split(","); + for(int i = 0; i < arr3.length; i++) { + String[] arr4 = arr3[i].split(":"); + System.out.println(arr4[0]+" "+arr4[1]); + UseCooldown.LCitems.put(arr4[0], Integer.parseInt(arr4[1])); + } + reader2.close(); + } catch (Exception e) { + e.printStackTrace(); + } keyBinds[0] = new KeyBinding("Custom Item Macro Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); keyBinds[1] = new KeyBinding("Toggle Enderman Macro", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[2] = new KeyBinding("Item Frame Aura", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[2] = new KeyBinding("Arrow Align Aura", Keyboard.KEY_NONE, "RoseGold Addons"); keyBinds[3] = new KeyBinding("Powder Macro Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); keyBinds[4] = new KeyBinding("AOTS SS Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); keyBinds[5] = new KeyBinding("Soul Whip SS Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); keyBinds[6] = new KeyBinding("Ghost Macro Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[7] = new KeyBinding("Item Frame Legit Mode Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[8] = new KeyBinding("Gemstone Smart Nuke", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[9] = new KeyBinding("Wart Macro", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[10] = new KeyBinding("Hardstone Macro", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[11] = new KeyBinding("Foraging Island Macro", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[12] = new KeyBinding("Necron Aimbot Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); - keyBinds[13] = new KeyBinding("Blood Room Tiggerbot Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[7] = new KeyBinding("Gemstone Smart Nuke", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[8] = new KeyBinding("Wart Macro", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[9] = new KeyBinding("Hardstone Macro", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[10] = new KeyBinding("Foraging Island Macro", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[11] = new KeyBinding("Necron Aimbot Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); + keyBinds[12] = new KeyBinding("Blood Room Tiggerbot Toggle", Keyboard.KEY_NONE, "RoseGold Addons"); for (KeyBinding keyBind : keyBinds) { ClientRegistry.registerKeyBinding(keyBind); @@ -109,23 +147,34 @@ public class Main { @SubscribeEvent public void onConnect(FMLNetworkEvent.ClientConnectedToServerEvent event) { - new Thread(() -> { - try { - Thread.sleep(4000); - ChatComponentText msg1 = new ChatComponentText("§0§7Thanks to ShadyAddons:§b https://cheatersgetbanned.me"); - msg1.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://cheatersgetbanned.me")); - ChatComponentText msg2 = new ChatComponentText("§0§7Thanks to Harry282 (SBClient):§b https://github.com/Harry282/Skyblock-Client"); - msg2.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://github.com/Harry282/Skyblock-Client")); - ChatComponentText msg3 = new ChatComponentText("RoseGoldAddons Github for updates:§b https://github.com/RoseGoldIsntGay/RoseGoldAddons"); - msg3.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://github.com/RoseGoldIsntGay/RoseGoldAddons")); - ChatUtils.sendMessage("§0§7Thanks to pizza boy (Pizza Client)"); - Minecraft.getMinecraft().thePlayer.addChatMessage(msg1); - Minecraft.getMinecraft().thePlayer.addChatMessage(msg2); - Minecraft.getMinecraft().thePlayer.addChatMessage(msg3); - } catch (Exception e) { - e.printStackTrace(); - } - }).start(); + if(firstLoginThisSession) { + new Thread(() -> { + try { + Thread.sleep(4000); + ChatComponentText msg1 = new ChatComponentText("§0§7Thanks to ShadyAddons:§b https://cheatersgetbanned.me"); + msg1.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://cheatersgetbanned.me")); + ChatComponentText msg2 = new ChatComponentText("§0§7Thanks to Harry282 (SBClient):§b https://github.com/Harry282/Skyblock-Client"); + msg2.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://github.com/Harry282/Skyblock-Client")); + ChatComponentText msg3 = new ChatComponentText("§0§7RoseGoldAddons Github for updates:§b https://github.com/RoseGoldIsntGay/RoseGoldAddons"); + msg3.setChatStyle(ChatUtils.createClickStyle(ClickEvent.Action.OPEN_URL, "https://github.com/RoseGoldIsntGay/RoseGoldAddons")); + ChatUtils.sendMessage("§0§7Thanks to pizza boy (Pizza Client)"); + Minecraft.getMinecraft().thePlayer.addChatMessage(msg1); + Minecraft.getMinecraft().thePlayer.addChatMessage(msg2); + Minecraft.getMinecraft().thePlayer.addChatMessage(msg3); + firstLoginThisSession = false; + } catch (Exception e) { + e.printStackTrace(); + } + }).start(); + } + } + + @SubscribeEvent + public void onWorldChange(WorldEvent.Unload event) { + if(forageOnIsland) { + ChatUtils.sendMessage("§cDetected World Change, Stopping All Macros"); + forageOnIsland = false; + } } @SubscribeEvent @@ -152,7 +201,7 @@ public class Main { String str = endermanMacro ? "§aZealot Macro Activated" : "§cZealot Macro Deactivated"; ChatUtils.sendMessage(str); } else if (keyBinds[2].isPressed()) { - ItemFrameAura.mainAura(); + AutoArrowAlign.cheat(); } else if (keyBinds[3].isPressed()) { powderMacro = !powderMacro; String str = powderMacro ? "§aPowder Macro Activated" : "§cPowder Macro Deactivated"; @@ -170,31 +219,26 @@ public class Main { String str = GhostMacro ? "§aGhost Macro Activated" : "§cGhost Macro Deactivated"; ChatUtils.sendMessage(str); } else if (keyBinds[7].isPressed()) { - legitToggle = !legitToggle; - String str = legitToggle ? "§aLegit Mode Activated" : "§cLegit Mode Deactivated"; - SwordSwapping.tickCount = 0; - ChatUtils.sendMessage(str); - } else if (keyBinds[8].isPressed()) { gemNukeToggle = !gemNukeToggle; String str = gemNukeToggle ? "§aGemstone Nuke Activated" : "§cGemstone Nuke Deactivated"; ChatUtils.sendMessage(str); - } else if (keyBinds[9].isPressed()) { + } else if (keyBinds[8].isPressed()) { wartToggle = !wartToggle; - String str = wartToggle ? "§aWart Macro Activated" : "§cWart Macro Deactivated"; + String str = wartToggle ? "§aNothing Activated" : "§cNothing Deactivated"; ChatUtils.sendMessage(str); - } else if (keyBinds[10].isPressed()) { + } else if (keyBinds[9].isPressed()) { autoHardStone = !autoHardStone; String str = autoHardStone ? "§aHardstone Macro Activated" : "§cHardstone Macro Deactivated"; ChatUtils.sendMessage(str); - } else if (keyBinds[11].isPressed()) { + } else if (keyBinds[10].isPressed()) { forageOnIsland = !forageOnIsland; String str = forageOnIsland ? "§aForaging Macro Activated" : "§cForaging Macro Deactivated"; ChatUtils.sendMessage(str); - } else if (keyBinds[12].isPressed()) { + } else if (keyBinds[11].isPressed()) { necronAimbot = !necronAimbot; String str = necronAimbot ? "§aNecron Aimbot Activated" : "§cNecron Aimbot Deactivated"; ChatUtils.sendMessage(str); - } else if (keyBinds[13].isPressed()) { + } else if (keyBinds[12].isPressed()) { bloodTriggerBot = !bloodTriggerBot; String str = bloodTriggerBot ? "§aBlood Room Triggerbot Activated" : "§cBlood Room Triggerbot Deactivated"; ChatUtils.sendMessage(str); diff --git a/src/main/java/rosegoldaddons/commands/WartSetup.java b/src/main/java/rosegoldaddons/commands/AllEntities.java index a143349..ce0117b 100644 --- a/src/main/java/rosegoldaddons/commands/WartSetup.java +++ b/src/main/java/rosegoldaddons/commands/AllEntities.java @@ -1,24 +1,22 @@ package rosegoldaddons.commands; import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.command.CommandException; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; +import net.minecraft.entity.Entity; import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; import org.jetbrains.annotations.NotNull; import rosegoldaddons.utils.ChatUtils; import java.util.ArrayList; import java.util.List; -public class WartSetup implements ICommand { - public static int wartEnd = 99999; - public static String cardinal = "west"; - +public class AllEntities implements ICommand { @Override public String getCommandName() { - return "wartsetup"; + return "allentities"; } @Override @@ -33,22 +31,8 @@ public class WartSetup implements ICommand { @Override public void processCommand(ICommandSender sender, String[] args) throws CommandException { - if(args.length == 2) { - if(args[0].equals("west")) { - cardinal = "west"; - } else if(args[0].equals("north")) { - cardinal = "north"; - } else if(args[0].equals("east")) { - cardinal = "east"; - } else if(args[0].equals("south")) { - cardinal = "south"; - } - - if(isNumeric(args[1])) { - wartEnd = (int) Math.floor(Double.parseDouble(args[1])); - } - } else { - ChatUtils.sendMessage("§cInvalid Arguments."); + for (Entity entity1 : (Minecraft.getMinecraft().theWorld.loadedEntityList)) { + ChatUtils.sendMessage(""+entity1); } } @@ -67,11 +51,6 @@ public class WartSetup implements ICommand { return false; } - @Override - public int compareTo(@NotNull ICommand o) { - return 0; - } - private boolean isNumeric(String str) { try { Double.parseDouble(str); @@ -80,4 +59,9 @@ public class WartSetup implements ICommand { return false; } } + + @Override + public int compareTo(@NotNull ICommand o) { + return 0; + } } diff --git a/src/main/java/rosegoldaddons/commands/Rosedrobe.java b/src/main/java/rosegoldaddons/commands/Rosedrobe.java index d05c6be..55024df 100644 --- a/src/main/java/rosegoldaddons/commands/Rosedrobe.java +++ b/src/main/java/rosegoldaddons/commands/Rosedrobe.java @@ -25,7 +25,6 @@ import java.util.List; public class Rosedrobe implements ICommand { public static boolean openWardrobe = false; public static int slot = 0; - int windowId; @Override public String getCommandName() { diff --git a/src/main/java/rosegoldaddons/commands/Rosepet.java b/src/main/java/rosegoldaddons/commands/Rosepet.java new file mode 100644 index 0000000..800098f --- /dev/null +++ b/src/main/java/rosegoldaddons/commands/Rosepet.java @@ -0,0 +1,65 @@ +package rosegoldaddons.commands; + +import net.minecraft.client.Minecraft; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; +import org.jetbrains.annotations.NotNull; +import rosegoldaddons.utils.ChatUtils; + +import java.util.ArrayList; +import java.util.List; + +public class Rosepet implements ICommand { + public static boolean openPetS = false; + public static String name = ""; + + @Override + public String getCommandName() { + return "rosepet"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/" + getCommandName(); + } + + @Override + public List<String> getCommandAliases() { + return new ArrayList<>(); + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + if (args.length == 0) { + Minecraft.getMinecraft().thePlayer.sendChatMessage("/pets"); + openPetS = true; + } else { + Minecraft.getMinecraft().thePlayer.sendChatMessage("/pets"); + openPetS = true; + name = args[0]; + + } + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + return new ArrayList<>(); + } + + @Override + public boolean isUsernameIndex(String[] args, int index) { + return false; + } + + @Override + public int compareTo(@NotNull ICommand o) { + return 0; + } +} diff --git a/src/main/java/rosegoldaddons/commands/UseCooldown.java b/src/main/java/rosegoldaddons/commands/UseCooldown.java index 45d78b0..351df9a 100644 --- a/src/main/java/rosegoldaddons/commands/UseCooldown.java +++ b/src/main/java/rosegoldaddons/commands/UseCooldown.java @@ -1,5 +1,6 @@ package rosegoldaddons.commands; +import com.google.gson.Gson; import net.minecraft.client.Minecraft; import net.minecraft.command.CommandException; import net.minecraft.command.ICommand; @@ -7,16 +8,24 @@ import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; import org.jetbrains.annotations.NotNull; import rosegoldaddons.utils.ChatUtils; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; + public class UseCooldown implements ICommand { - public static HashMap<String, Integer> items = new HashMap<String, Integer>(); + public static HashMap<String, Integer> RCitems = new HashMap<String, Integer>(); + public static HashMap<String, Integer> LCitems = new HashMap<String, Integer>(); @Override public String getCommandName() { @@ -35,6 +44,16 @@ public class UseCooldown implements ICommand { @Override public void processCommand(ICommandSender sender, String[] args) throws CommandException { + if (args.length == 0) { + for (String i : RCitems.keySet()) { + ChatUtils.sendMessage("§7Right click macro set on " + i + " §7with cooldown of " + RCitems.get(i) + " ms."); + } + for (String i : LCitems.keySet()) { + ChatUtils.sendMessage("§7Left click macro set on " + i + " §7with cooldown of " + LCitems.get(i) + " ms."); + } + saveMacros(); + return; + } if (args.length == 1 && isNumeric(args[0])) { InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; @@ -42,16 +61,42 @@ public class UseCooldown implements ICommand { if (curStack != null) { int cd = Integer.parseInt(args[0]); if (cd == 0) { - items.remove(curStack.getDisplayName()); + RCitems.remove(curStack.getDisplayName()); ChatUtils.sendMessage("§aSuccessfully Removed " + curStack.getDisplayName() + "§a."); + saveMacros(); return; } - if (cd < 1) { - ChatUtils.sendMessage("§cInvalid Miliseconds, Minimum delay 1 Milisecond."); + if (cd < 100) { + ChatUtils.sendMessage("§cInvalid Miliseconds, Minimum delay 100 Milisecond."); + saveMacros(); return; } - ChatUtils.sendMessage("§aSuccessfully Added " + curStack.getDisplayName() + "§a with delay of " + cd + " ms."); - items.put(curStack.getDisplayName(), cd); + RCitems.put(curStack.getDisplayName(), cd); + ChatUtils.sendMessage("§aSuccessfully Added " + curStack.getDisplayName() + "§a to right click with a delay of " + cd + " ms."); + saveMacros(); + } else { + ChatUtils.sendMessage("§cError getting current held item."); + } + } else if (args.length == 2 && isNumeric(args[0]) && args[1].equalsIgnoreCase("left")) { + InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; + + ItemStack curStack = inv.getStackInSlot(Minecraft.getMinecraft().thePlayer.inventory.currentItem); + if (curStack != null) { + int cd = Integer.parseInt(args[0]); + if (cd == 0) { + LCitems.remove(curStack.getDisplayName()); + ChatUtils.sendMessage("§aSuccessfully Removed " + curStack.getDisplayName() + "§a."); + saveMacros(); + return; + } + if (cd < 100) { + ChatUtils.sendMessage("§cInvalid Miliseconds, Minimum delay 100 Milisecond."); + saveMacros(); + return; + } + ChatUtils.sendMessage("§aSuccessfully Added " + curStack.getDisplayName() + "§a to left click with a delay of " + cd + " ms."); + LCitems.put(curStack.getDisplayName(), cd); + saveMacros(); } else { ChatUtils.sendMessage("§cError getting current held item."); } @@ -84,6 +129,52 @@ public class UseCooldown implements ICommand { } } + private void saveMacros() { + try { + String rcjson = new Gson().toJson(RCitems); + Files.write(Paths.get("./config/rosegoldaddons/rcmacros.json"), rcjson.getBytes(StandardCharsets.UTF_8)); + String lcjson = new Gson().toJson(LCitems); + Files.write(Paths.get("./config/rosegoldaddons/lcmacros.json"), lcjson.getBytes(StandardCharsets.UTF_8)); + } catch(Exception error) { + System.out.println("Error saving config file"); + error.printStackTrace(); + } + /*File rcfile = new File("./config/rosegoldaddons/rcmacro.txt"); + BufferedWriter bf = null; + try { + bf = new BufferedWriter(new FileWriter(rcfile)); + for (HashMap.Entry<String, Integer> entry : RCitems.entrySet()) { + bf.write(entry.getKey() + ":" + entry.getValue()); + bf.newLine(); + } + bf.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + bf.close(); + } catch (Exception e) { + } + } + File lcfile = new File("./config/rosegoldaddons/lcmacro.txt"); + BufferedWriter bf2 = null; + try { + bf2 = new BufferedWriter(new FileWriter(lcfile)); + for (HashMap.Entry<String, Integer> entry : LCitems.entrySet()) { + bf2.write(entry.getKey() + ":" + entry.getValue()); + bf2.newLine(); + } + bf2.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + bf2.close(); + } catch (Exception e) { + } + }*/ + } + @Override public int compareTo(@NotNull ICommand o) { return 0; diff --git a/src/main/java/rosegoldaddons/events/ClickEvent.java b/src/main/java/rosegoldaddons/events/ClickEvent.java new file mode 100644 index 0000000..b0544c4 --- /dev/null +++ b/src/main/java/rosegoldaddons/events/ClickEvent.java @@ -0,0 +1,20 @@ +package rosegoldaddons.events; + +import net.minecraftforge.fml.common.eventhandler.Cancelable; +import net.minecraftforge.fml.common.eventhandler.Event; + +@Cancelable +public class ClickEvent extends Event { + + + public static class Right extends ClickEvent { + } + + public static class Left extends ClickEvent { + } + + public static class Middle extends ClickEvent { + + + } +} diff --git a/src/main/java/rosegoldaddons/features/AutoArrowAlign.java b/src/main/java/rosegoldaddons/features/AutoArrowAlign.java new file mode 100644 index 0000000..4744766 --- /dev/null +++ b/src/main/java/rosegoldaddons/features/AutoArrowAlign.java @@ -0,0 +1,333 @@ +package rosegoldaddons.features; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.init.Items; +import net.minecraft.item.ItemCloth; +import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.C02PacketUseEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.MovingObjectPosition; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import rosegoldaddons.Main; +import rosegoldaddons.events.ClickEvent; +import rosegoldaddons.utils.ChatUtils; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class AutoArrowAlign { + private static final ArrayList<Entity> itemFrames = new ArrayList<>(); + private static final ArrayList<Entity> arrowItemFrames = new ArrayList<>(); + private static final Map<BlockPos, Integer> clicksPerFrame = new HashMap<>(); + private static final Map<BlockPos, Integer> toClickMap = new HashMap<>(); + private static boolean init = false; + private static final BlockPos topLeft = new BlockPos(196, 125, 278); + + /*@SubscribeEvent + public void debugging(TickEvent.ClientTickEvent event) { + if (!Main.configFile.autoArrowAlign) return; + if (init) { + for (int y = 126; y > 119; y--) { + String line = ""; + for (int z = 278; z < 283; z++) { + BlockPos BP = new BlockPos(topLeft.getX(), y, z); + int toClick = -1; + if (toClickMap.containsKey(BP)) { + toClick = toClickMap.get(BP); + } + line += (toClick + " "); + } + ChatUtils.sendMessage(y + ": " + line); + } + itemFrames.forEach(itemFrame -> { + BlockPos BP = new BlockPos(itemFrame.getPosition().getX(), itemFrame.getPosition().getY(), itemFrame.getPosition().getZ()); + ChatUtils.sendMessage(BP+""); + }); + } + }*/ + + + @SubscribeEvent + public void onRender(RenderWorldLastEvent event) { + if (!Main.configFile.autoArrowAlign) return; + itemFrames.clear(); + for (Entity entity1 : (Minecraft.getMinecraft().theWorld.loadedEntityList)) { + if (entity1 instanceof EntityItemFrame) { + itemFrames.add(entity1); + } + } + arrowItemFrames.clear(); + itemFrames.forEach(itemFrame -> { + ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); + if (itemStack != null) { + if (itemStack.getItem() == Items.arrow) { + arrowItemFrames.add(itemFrame); + } + } + }); + } + + @SubscribeEvent + public void worldUnload(WorldEvent.Unload event) { + init = false; + toClickMap.clear(); + clicksPerFrame.clear(); + } + + public static void cheat() { + initFrame(); + arrowItemFrames.forEach(itemFrame -> { + BlockPos BP = new BlockPos(topLeft.getX(), itemFrame.getPosition().getY(), itemFrame.getPosition().getZ()); + int endRotationAmount = 0; + if (clicksPerFrame.containsKey(BP)) { + endRotationAmount = clicksPerFrame.get(BP); + } + int currRotationAmount = ((EntityItemFrame) itemFrame).getRotation(); + int toClick = 0; + if (currRotationAmount < endRotationAmount) { + toClick = endRotationAmount - currRotationAmount; + } else if (currRotationAmount > endRotationAmount) { + currRotationAmount = currRotationAmount - 8; + toClick = endRotationAmount - currRotationAmount; + } + toClickMap.put(BP, toClick); + }); + if (init) { + int j = 0; + Entity save = null; + for (Entity itemFrame : arrowItemFrames) { + BlockPos BP = new BlockPos(topLeft.getX(), itemFrame.getPosition().getY(), itemFrame.getPosition().getZ()); + if (toClickMap.containsKey(BP)) { + j++; + int toClick2 = toClickMap.get(BP); + if (j == arrowItemFrames.size()) { + save = itemFrame; + toClick2 -= 1; + } + for (int i = 0; i < toClick2; i++) { + interactWithEntity(itemFrame); + } + } + } + Entity finalSave = save; + new Thread(() -> { + try { + Thread.sleep(60); + if(finalSave != null) { + interactWithEntity(finalSave); + } + } catch (Exception e) { + e.printStackTrace(); + } + }).start(); + } + } + + private static String findPattern() { + ArrayList<Entity> redWools = new ArrayList<>(); + ArrayList<Entity> greenWools = new ArrayList<>(); + + itemFrames.forEach(itemFrame -> { + ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); + if (itemStack != null) { + if (itemStack.getItem() instanceof ItemCloth && itemStack.getItemDamage() == 14) { + redWools.add(itemFrame); + } + if (itemStack.getItem() instanceof ItemCloth && itemStack.getItemDamage() == 5) { + greenWools.add(itemFrame); + } + } + }); + if (redWools.size() != 0 && greenWools.size() != 0) { + int relativeR1 = topLeft.getY() - (((Entity) redWools.toArray()[0]).getPosition()).getY(); + switch (redWools.size()) { + case 1: + switch (greenWools.size()) { + case 1: + if (relativeR1 == 4) { + return "legs"; + } + if (relativeR1 == 0) { + return "N"; + } + return "spiral"; + case 2: + if (relativeR1 == 2) { + return "W"; + } + return "bottleneck"; + } + break; + case 2: + if (greenWools.size() > 1) return "zigzag"; + return "S"; + case 3: + return "lines"; + } + } + return "Unrecognized"; + } + + private static void initFrame() { + if (init) return; + String pattern = findPattern(); + ChatUtils.sendMessage("Pattern Found: " + pattern); + switch (pattern) { + case "legs": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 1), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 1), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 3), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 1), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 3), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 1), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 3), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 3), 7); + init = true; + break; + case "N": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 4), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 5); + init = true; + break; + case "spiral": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 4), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ()), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 7); + init = true; + break; + case "W": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 4), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 4), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ()), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 4), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ()), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 4), 5); + init = true; + break; + case "bottleneck": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ()), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 1), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 4), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 3), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 4), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 1), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 3), 7); + init = true; + break; + case "S": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 1), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 1); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 4), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 4), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ()), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 5); + break; + case "lines": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 3), 5); + init = true; + break; + case "zigzag": + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 2), 3); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY(), topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 1, topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 2, topLeft.getZ() - 3), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 1), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 3, topLeft.getZ() - 2), 5); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 2), 7); + clicksPerFrame.put(new BlockPos(topLeft.getX(), topLeft.getY() - 4, topLeft.getZ() - 3), 5); + init = true; + break; + } + + } + + public static void rightClick() { + try { + Method rightClickMouse; + try { + rightClickMouse = Minecraft.class.getDeclaredMethod("rightClickMouse"); + } catch (NoSuchMethodException e) { + rightClickMouse = Minecraft.class.getDeclaredMethod("func_147121_ag"); + } + rightClickMouse.setAccessible(true); + rightClickMouse.invoke(Minecraft.getMinecraft()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void interactWithEntity(Entity entity) { + PlayerControllerMP playerControllerMP = Minecraft.getMinecraft().playerController; + playerControllerMP.interactWithEntitySendPacket(Minecraft.getMinecraft().thePlayer, entity); + } + + + private static boolean isInSection3() { + int x = Minecraft.getMinecraft().thePlayer.getPosition().getX(); + int z = Minecraft.getMinecraft().thePlayer.getPosition().getZ(); + return x < 218 && z > 251 && x > 196 && z < 319; + } +} diff --git a/src/main/java/rosegoldaddons/features/BlockBreakAura.java b/src/main/java/rosegoldaddons/features/BlockBreakAura.java index e8b7219..528ccc1 100644 --- a/src/main/java/rosegoldaddons/features/BlockBreakAura.java +++ b/src/main/java/rosegoldaddons/features/BlockBreakAura.java @@ -65,7 +65,7 @@ public class BlockBreakAura { } private BlockPos closestGemstone() { - int r = 4; + int r = 5; BlockPos playerPos = Minecraft.getMinecraft().thePlayer.getPosition(); playerPos.add(0, 1, 0); Vec3 playerVec = Minecraft.getMinecraft().thePlayer.getPositionVector(); diff --git a/src/main/java/rosegoldaddons/features/BloodTriggerBot.java b/src/main/java/rosegoldaddons/features/BloodTriggerBot.java index 88ce213..41d1f90 100644 --- a/src/main/java/rosegoldaddons/features/BloodTriggerBot.java +++ b/src/main/java/rosegoldaddons/features/BloodTriggerBot.java @@ -22,7 +22,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; public class BloodTriggerBot { - private static String[] names = {"Revoker", "Psycho", "Reaper", "Cannibal", "Mute", "Ooze", "Putrid", "Freak", "Leech", "Tear", "Parasite", "Flamer", "Skull", "Mr. Dead", "Vader", "Frost", "Walker", "WanderingSoul"}; + private static String[] names = {"Bonzo", "Revoker", "Psycho", "Reaper", "Cannibal", "Mute", "Ooze", "Putrid", "Freak", "Leech", "Tear", "Parasite", "Flamer", "Skull", "Mr. Dead", "Vader", "Frost", "Walker", "WanderingSoul", "Shadow Assassin", "Lost Adventurer", "Livid", "Professor"}; private static ArrayList<Entity> bloodMobs = null; private Thread thread; @@ -34,7 +34,7 @@ public class BloodTriggerBot { thread = new Thread(() -> { try { for (Entity entity : bloodMobs) { - if (isLookingAtBloodMob(entity.getEntityBoundingBox(), event)) { + if (isLookingAtAABB(entity.getEntityBoundingBox(), event)) { click(); Thread.sleep(100); } @@ -47,10 +47,11 @@ public class BloodTriggerBot { } } - private static boolean isLookingAtBloodMob(AxisAlignedBB aabb, RenderWorldLastEvent event) { + private static boolean isLookingAtAABB(AxisAlignedBB aabb, RenderWorldLastEvent event) { Vec3 position = new Vec3(Minecraft.getMinecraft().thePlayer.posX, (Minecraft.getMinecraft().thePlayer.posY + Minecraft.getMinecraft().thePlayer.getEyeHeight()), Minecraft.getMinecraft().thePlayer.posZ); Vec3 look = Minecraft.getMinecraft().thePlayer.getLook(event.partialTicks); - for (int i = 0; i < 30; i++) { + look = scaleVec(look, 0.5F); + for (int i = 0; i < 64; i++) { if (aabb.minX <= position.xCoord && aabb.maxX >= position.xCoord && aabb.minY <= position.yCoord && aabb.maxY >= position.yCoord && aabb.minZ <= position.zCoord && aabb.maxZ >= position.zCoord) { return true; } @@ -77,6 +78,10 @@ public class BloodTriggerBot { return bloodMobs; } + private static Vec3 scaleVec(Vec3 vec, float f) { + return new Vec3(vec.xCoord * (double)f, vec.yCoord * (double)f, vec.zCoord * (double)f); + } + public static void click() { try { Method clickMouse; diff --git a/src/main/java/rosegoldaddons/features/CustomItemMacro.java b/src/main/java/rosegoldaddons/features/CustomItemMacro.java index 57c650f..3133cb8 100644 --- a/src/main/java/rosegoldaddons/features/CustomItemMacro.java +++ b/src/main/java/rosegoldaddons/features/CustomItemMacro.java @@ -10,7 +10,6 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import rosegoldaddons.Main; import rosegoldaddons.commands.UseCooldown; -import rosegoldaddons.commands.WartSetup; import java.lang.reflect.Method; @@ -26,9 +25,8 @@ public class CustomItemMacro { try { milis++; int prevItem = Minecraft.getMinecraft().thePlayer.inventory.currentItem; - for (String i : UseCooldown.items.keySet()) { - //Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(Math.floor(UseCooldown.items.get(i)/1000) + " " + milis)); - if (milis % Math.floor(UseCooldown.items.get(i)/100) == 0) { + for (String i : UseCooldown.RCitems.keySet()) { + if (milis % Math.floor(UseCooldown.RCitems.get(i)/100) == 0) { int slot = findItemInHotbar(i); if (slot != -1) { Minecraft.getMinecraft().thePlayer.inventory.currentItem = slot; @@ -37,6 +35,16 @@ public class CustomItemMacro { } } } + for (String i : UseCooldown.LCitems.keySet()) { + if (milis % Math.floor(UseCooldown.LCitems.get(i)/100) == 0) { + int slot = findItemInHotbar(i); + if (slot != -1) { + Minecraft.getMinecraft().thePlayer.inventory.currentItem = slot; + Thread.sleep(100); + click(); + } + } + } Minecraft.getMinecraft().thePlayer.inventory.currentItem = prevItem; Thread.sleep(100); } catch (Exception e) { @@ -62,6 +70,21 @@ public class CustomItemMacro { } } + public static void click() { + try { + Method clickMouse; + try { + clickMouse = Minecraft.class.getDeclaredMethod("func_147116_af"); + } catch (NoSuchMethodException e) { + clickMouse = Minecraft.class.getDeclaredMethod("clickMouse"); + } + clickMouse.setAccessible(true); + clickMouse.invoke(Minecraft.getMinecraft()); + } catch (Exception e) { + e.printStackTrace(); + } + } + private static int findItemInHotbar(String name) { InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; for (int i = 0; i < 9; i++) { diff --git a/src/main/java/rosegoldaddons/features/EntityReach.java b/src/main/java/rosegoldaddons/features/EntityReach.java new file mode 100644 index 0000000..9db81f1 --- /dev/null +++ b/src/main/java/rosegoldaddons/features/EntityReach.java @@ -0,0 +1,125 @@ +package rosegoldaddons.features; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityOtherPlayerMP; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.Entity; +import net.minecraft.entity.boss.EntityWither; +import net.minecraft.entity.item.EntityArmorStand; +import net.minecraft.item.Item; +import net.minecraft.item.ItemSkull; +import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.C02PacketUseEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.event.RenderLivingEvent; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; +import rosegoldaddons.Main; +import rosegoldaddons.events.ClickEvent; +import rosegoldaddons.utils.ChatUtils; +import rosegoldaddons.utils.RenderUtils; + +import java.awt.*; +import java.util.ArrayList; + +public class EntityReach { + private Thread thread; + private static Entity toInteract; + + @SubscribeEvent + public void onInteract(PlayerInteractEvent event) { + if (!Main.configFile.entityReach) return; + if (event.action == PlayerInteractEvent.Action.RIGHT_CLICK_AIR) { + if (toInteract != null) { + if (toInteract instanceof EntityArmorStand) { + interactWithEntity2(toInteract); + } + interactWithEntity(toInteract); + toInteract = null; + } + } + } + + @SubscribeEvent + public void renderWorld(RenderWorldLastEvent event) { + if (!Main.configFile.entityReach) return; + ArrayList<Entity> entities = getAllEntitiesInRange(); + for (Entity entity : entities) { + if (isLookingAtAABB(entity.getEntityBoundingBox(), event)) { + toInteract = entity; + return; + } + } + if (!Main.configFile.sticky) { + toInteract = null; + } + } + + @SubscribeEvent + public void renderWorld2(RenderWorldLastEvent event) { + if (!Main.configFile.entityReach) return; + if (toInteract != null) { + RenderUtils.drawEntityBox(toInteract, Color.RED, true, event.partialTicks); + } + } + + /*@SubscribeEvent + public void onInteract(ClickEvent.Right event) { + MovingObjectPosition objectMouseOver = Minecraft.getMinecraft().objectMouseOver; + if (objectMouseOver != null) { + ChatUtils.sendMessage(""+objectMouseOver.entityHit); + } + }*/ + + private static boolean isLookingAtAABB(AxisAlignedBB aabb, RenderWorldLastEvent event) { + Vec3 position = new Vec3(Minecraft.getMinecraft().thePlayer.posX, (Minecraft.getMinecraft().thePlayer.posY + Minecraft.getMinecraft().thePlayer.getEyeHeight()), Minecraft.getMinecraft().thePlayer.posZ); + Vec3 look = Minecraft.getMinecraft().thePlayer.getLook(event.partialTicks); + look = scaleVec(look, 0.2F); + for (int i = 0; i < 200; i++) { + if (aabb.minX <= position.xCoord && aabb.maxX >= position.xCoord && aabb.minY <= position.yCoord && aabb.maxY >= position.yCoord && aabb.minZ <= position.zCoord && aabb.maxZ >= position.zCoord) { + return true; + } + position = position.add(look); + } + + return false; + } + + private static ArrayList<Entity> getAllEntitiesInRange() { + ArrayList<Entity> entities = new ArrayList<>(); + Vec3 playerPos = Minecraft.getMinecraft().thePlayer.getPositionVector(); + playerPos.add(new Vec3(0, 1, 0)); + for (Entity entity1 : (Minecraft.getMinecraft().theWorld.loadedEntityList)) { + if (playerPos.distanceTo(entity1.getPositionVector()) < 30 && !(entity1 instanceof EntityPlayerSP)) { + entities.add(entity1); + } + } + return entities; + } + + private static void interactWithEntity(Entity entity) { + PlayerControllerMP playerControllerMP = Minecraft.getMinecraft().playerController; + playerControllerMP.interactWithEntitySendPacket(Minecraft.getMinecraft().thePlayer, entity); + } + + private static void interactWithEntity2(Entity entity) { + PlayerControllerMP playerControllerMP = Minecraft.getMinecraft().playerController; + MovingObjectPosition mop = new MovingObjectPosition(entity); + playerControllerMP.isPlayerRightClickingOnEntity(Minecraft.getMinecraft().thePlayer, entity, mop); + } + + + private static Vec3 scaleVec(Vec3 vec, float f) { + return new Vec3(vec.xCoord * (double) f, vec.yCoord * (double) f, vec.zCoord * (double) f); + } + +} + + diff --git a/src/main/java/rosegoldaddons/features/ForagingIslandMacro.java b/src/main/java/rosegoldaddons/features/ForagingIslandMacro.java index 3dc301e..ecf314b 100644 --- a/src/main/java/rosegoldaddons/features/ForagingIslandMacro.java +++ b/src/main/java/rosegoldaddons/features/ForagingIslandMacro.java @@ -16,6 +16,7 @@ import rosegoldaddons.Main; import rosegoldaddons.utils.ChatUtils; import rosegoldaddons.utils.RenderUtils; import rosegoldaddons.utils.RotationUtils; +import scala.actors.threadpool.helpers.ThreadHelpers; import java.awt.*; import java.lang.reflect.Method; @@ -24,6 +25,7 @@ import java.util.Random; public class ForagingIslandMacro { private Thread thread; + private String[] cum = {"wtf??", "hello?", "hi?", "uhhhhhh", "what the", "??????"}; @SubscribeEvent public void renderWorld(RenderWorldLastEvent event) { @@ -34,6 +36,9 @@ public class ForagingIslandMacro { BlockPos furthestDirt = furthestEmptyDirt(); //Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("furthest dirt "+furthestDirt)); int sapling = findItemInHotbar("Jungle Sapling"); + if(sapling == -1) { + sapling = findItemInHotbar("Oak Sapling"); + } int bonemeal = findItemInHotbar("Bone Meal"); int treecap = findItemInHotbar("Treecapitator"); int rod = findItemInHotbar("Rod"); @@ -76,19 +81,25 @@ public class ForagingIslandMacro { RotationUtils.facePos(new Vec3(dirt.getX() + 0.5, dirt.getY(), dirt.getZ() + 0.5)); if (bonemeal != -1 && treecap != -1) { Minecraft.getMinecraft().thePlayer.inventory.currentItem = bonemeal; - Thread.sleep(200); + Random rand = new Random(); + int toAdd = 0; + if(Main.configFile.randomizeForaging) { + toAdd = rand.nextInt(20); + } + ChatUtils.sendMessage("extra delay: "+toAdd+"%"); + Thread.sleep(Math.round(150*(1+(toAdd/100)))); rightClick(); rightClick(); Minecraft.getMinecraft().thePlayer.inventory.currentItem = treecap; - Thread.sleep(150); + Thread.sleep(Math.round(Main.configFile.treecapDelay*(1+(toAdd/100)))); KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindAttack.getKeyCode(), true); - Thread.sleep(100); + Thread.sleep(Math.round(150*(1+(toAdd/100)))); KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindAttack.getKeyCode(), false); - Thread.sleep(25); + Thread.sleep(Math.round(25*(1+(toAdd/100)))); Minecraft.getMinecraft().thePlayer.inventory.currentItem = rod; - Thread.sleep(200); + Thread.sleep(Math.round(Main.configFile.prerodDelay*(1+(toAdd/100)))); rightClick(); - Thread.sleep((2000 - Main.configFile.monkeyLevel * 10L)); + Thread.sleep(Math.round(Main.configFile.postrodDelay*(1+(toAdd/100)))); } } } @@ -104,9 +115,25 @@ public class ForagingIslandMacro { @SubscribeEvent public void renderWorld2(RenderWorldLastEvent event) { if (!Main.forageOnIsland) return; - BlockPos furthestDirt = furthestEmptyDirt(); - if (furthestDirt != null) { - RenderUtils.drawBlockBox(furthestDirt, Color.RED, true, event.partialTicks); + BlockPos e = closestDirt(); + if(e == null) { + Main.forageOnIsland = false; + ChatUtils.sendMessage("§cNo dirt in range of player"); + ChatUtils.sendMessage("§cForaging Macro Deactivated"); + if(Main.configFile.forageantisus) { + int rand = new Random().nextInt(cum.length); + int rand2 = new Random().nextInt(5000); + new Thread(() -> { + try { + Thread.sleep(rand2); + Minecraft.getMinecraft().thePlayer.sendChatMessage(cum[rand]); + Thread.sleep(rand2*2); + Minecraft.getMinecraft().getNetHandler().getNetworkManager().closeChannel(new ChatComponentText("Antisus activated lets hope you didnt get banned")); + } catch (Exception exception) { + exception.printStackTrace(); + } + }).start(); + } } } diff --git a/src/main/java/rosegoldaddons/features/ItemFrameAura.java b/src/main/java/rosegoldaddons/features/ItemFrameAura.java deleted file mode 100644 index 973bd39..0000000 --- a/src/main/java/rosegoldaddons/features/ItemFrameAura.java +++ /dev/null @@ -1,414 +0,0 @@ -package rosegoldaddons.features; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.PlayerControllerMP; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItemFrame; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IChatComponent; -import net.minecraft.util.MovingObjectPosition; -import net.minecraftforge.client.event.RenderWorldLastEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import rosegoldaddons.Main; -import rosegoldaddons.utils.ChatUtils; - -import java.lang.reflect.Method; -import java.util.ArrayList; - -public class ItemFrameAura { - private static ArrayList<Entity> itemFrames = new ArrayList<Entity>(); - private static boolean clicking = false; - private static ArrayList<Entity> clicked = new ArrayList<Entity>(); - private Thread thread; - - public static void rightClick() { - try { - Method rightClickMouse = null; - try { - rightClickMouse = Minecraft.class.getDeclaredMethod("rightClickMouse"); - } catch (NoSuchMethodException e) { - rightClickMouse = Minecraft.class.getDeclaredMethod("func_147121_ag"); - } - rightClickMouse.setAccessible(true); - rightClickMouse.invoke(Minecraft.getMinecraft()); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @SubscribeEvent - public void onTick(TickEvent.PlayerTickEvent event) { - if (!Main.legitToggle) return; - if (thread == null || !thread.isAlive()) { - thread = new Thread(() -> { - try { - BlockPos topLeft = new BlockPos(196, 125, 278); - ArrayList<Entity> redWools = new ArrayList<Entity>(); - ArrayList<Entity> greenWools = new ArrayList<Entity>(); - - itemFrames.forEach(itemFrame -> { - ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); - if (itemStack != null) { - String itemString = itemStack.toString(); - if (itemString.contains("cloth@14")) { - redWools.add(itemFrame); - } else if (itemString.contains("cloth@5")) { - greenWools.add(itemFrame); - } - } - }); - String patternName = getPattern(redWools, greenWools, topLeft); - MovingObjectPosition objectMouseOver = Minecraft.getMinecraft().objectMouseOver; - if (objectMouseOver != null && objectMouseOver.entityHit != null) { - Entity entity = objectMouseOver.entityHit; - if (entity instanceof EntityItemFrame) { - Entity itemFrame = entity; - ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); - if (itemStack != null) { - String itemString = itemStack.toString(); - if (itemString.contains("arrow@0")) { - int endRotationAmount = howMuchToClick(patternName, itemFrame, topLeft, true); - int currRotationAmount = ((EntityItemFrame) itemFrame).getRotation(); - int toClick = 0; - if (currRotationAmount < endRotationAmount) { - toClick = endRotationAmount - currRotationAmount; - } else if (currRotationAmount > endRotationAmount) { - currRotationAmount = currRotationAmount - 8; - toClick = endRotationAmount - currRotationAmount; - } - ChatUtils.sendMessage("" + toClick); - for (int i = 0; i < toClick; i++) { - //Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("clicked")); - rightClick(); - Thread.sleep(Main.configFile.auraDelay); - } - Thread.sleep(200); - } - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - }, "Legit Mode"); - thread.start(); - } - } - - @SubscribeEvent - public void renderWorld(RenderWorldLastEvent event) { - itemFrames.clear(); - for (Entity entity1 : (Minecraft.getMinecraft().theWorld.loadedEntityList)) { - if (entity1 instanceof EntityItemFrame) { - itemFrames.add(entity1); - } - } - } - - private static void interactWithEntity(Entity entity) { - PlayerControllerMP playerControllerMP = Minecraft.getMinecraft().playerController; - playerControllerMP.interactWithEntitySendPacket(Minecraft.getMinecraft().thePlayer, entity); - } - - public static void mainAura() { - BlockPos topLeft = new BlockPos(196, 125, 278); - ArrayList<Entity> redWools = new ArrayList<Entity>(); - ArrayList<Entity> greenWools = new ArrayList<Entity>(); - - itemFrames.forEach(itemFrame -> { - ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); - if (itemStack != null) { - String itemString = itemStack.toString(); - if (itemString.contains("cloth@14")) { - redWools.add(itemFrame); - } else if (itemString.contains("cloth@5")) { - greenWools.add(itemFrame); - } - } - }); - - String patternName = getPattern(redWools, greenWools, topLeft); - ChatUtils.sendMessage(patternName); - clickPatternAura(patternName, topLeft); - } - - private static void clickPatternAura(String patternName, BlockPos topLeft) { - new Thread(() -> { - itemFrames.forEach(itemFrame -> { - ItemStack itemStack = ((EntityItemFrame) itemFrame).getDisplayedItem(); - if (itemStack != null) { - String itemString = itemStack.toString(); - if (itemString.contains("arrow@0")) { - int endRotationAmount = howMuchToClick(patternName, itemFrame, topLeft, false); - int currRotationAmount = ((EntityItemFrame) itemFrame).getRotation(); - int toClick = 0; - if (currRotationAmount < endRotationAmount) { - toClick = endRotationAmount - currRotationAmount; - } else if (currRotationAmount > endRotationAmount) { - currRotationAmount = currRotationAmount - 8; - toClick = endRotationAmount - currRotationAmount; - } - for (int i = 0; i < toClick; i++) { - interactWithEntity(itemFrame); - } - } - } - }); - }).start(); - } - - private static int howMuchToClick(String patternName, Entity entity, BlockPos topLeft, boolean legitMode) { - //prepare to see top tier code right here boys - int y = entity.getPosition().getY(); - int z = entity.getPosition().getZ(); - int relativeY = topLeft.getY() - y; - int relativeX = topLeft.getZ() - z; //intentional - - //shit tier code!! i didn't know how to use hashmaps when i made this :) - if (patternName == "legs") { - if (relativeY == 0) { - if (relativeX == 3 || relativeX == 2) { - return 5; - } else if (relativeX == 1) { - return 3; - } - } - if (relativeY == 1 || relativeY == 2 || relativeY == 3) { - if (relativeX == 1) { - return 3; - } else if (relativeX == 3) { - return 7; - } - } - if (relativeY == 4) { - if (relativeX == 1) { - if (legitMode) return 5; - return 4; - } - if (relativeX == 3) { - return 7; - } - } - } - if (patternName == "lines") { - if (relativeY == 4 && relativeX == 2) { - if (legitMode) return 5; - return 4; - } - return 5; - } - if (patternName == "S") { - if (relativeY == 0) { - if (relativeX == 4) { - return 3; - } - if (relativeX < 4) { - return 1; - } - } - if (relativeY == 1) { - if (relativeX == 2) { - return 7; - } - if (relativeX == 4) { - return 3; - } - } - if (relativeY == 3) { - if (relativeX == 0) { - return 7; - } - if (relativeX == 2) { - if (legitMode) return 3; - return 2; - } - } - if (relativeY == 4) { - if (relativeX == 0) { - return 7; - } - if (relativeX > 0) { - return 5; - } - } - } - if (patternName == "W") { - if (relativeY == 1 || relativeY == 2) { - return 3; - } - if (relativeY == 3) { - if (relativeX == 0 || relativeX == 4) { - return 3; - } - if (relativeX == 2) { - if (legitMode) return 7; - return 6; - } - } - if (relativeY == 4) { - if (relativeX < 2) { - return 1; - } - if (relativeX == 2) { - return 7; - } - if (relativeX > 2) { - return 5; - } - } - } - if (patternName == "spiral") { - if (relativeY == 0) { - if (relativeX == 0) { - return 3; - } - return 5; - } - if (relativeY == 3 && relativeX == 2) { - if (legitMode) return 7; - return 6; - } - if (relativeY < 4) { - if (relativeX == 0) { - return 3; - } - if (relativeX == 2 || relativeX == 4) { - return 7; - } - } - if (relativeY == 4) { - if (relativeX == 2) { - return 7; - } - return 1; - } - } - if (patternName == "zigzag") { - if (relativeY == 3) { - if (relativeX == 2) { - if (legitMode) return 5; - return 4; - } - } - if (relativeY == 1 || relativeY == 3 || relativeX == 3) { - return 5; - } - if (relativeX == 2) { - if (relativeY == 0) { - return 3; - } - if (relativeY == 2 || relativeY == 4) { - return 7; - } - } - } - if (patternName == "N") { - if (relativeY == 3 && relativeX == 2) { - if (legitMode) return 3; - return 2; - } - if (relativeY == 0) { - if (relativeX == 2) { - return 3; - } - return 5; - } - if (relativeY < 4) { - if (relativeX == 0 || relativeX == 4) { - return 7; - } - if (relativeX == 2) { - return 3; - } - } - if (relativeY == 4) { - if (relativeX > 0) { - return 5; - } - if (relativeX == 0) { - return 7; - } - } - } - if (patternName == "bottleneck") { - if (relativeY == 3 && relativeX == 1) { - if (legitMode) return 7; - return 6; - } - if (relativeY == 0) { - if (relativeX < 2) { - return 1; - } - if (relativeX > 2) { - return 5; - } - } - if (relativeY == 1 || relativeY == 3) { - return 7; - } - if (relativeY == 2) { - if (relativeX == 0 || relativeX == 4) { - return 7; - } - if (relativeX == 1) { - return 5; - } - if (relativeX == 3) { - return 1; - } - } - } - - return 0; - } - - private static String getPattern(ArrayList<Entity> redWools, ArrayList<Entity> greenWools, BlockPos topleft) { - if (redWools.size() == 1) { - if (greenWools.size() == 1) { - Entity ry1 = (Entity) redWools.toArray()[0]; - Entity gy1 = (Entity) greenWools.toArray()[0]; - BlockPos redPos1 = ry1.getPosition(); - BlockPos greenPos1 = gy1.getPosition(); - //Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("red 1: "+redPos1)); - int relativeR1 = topleft.getY() - redPos1.getY(); - int relativeG1 = topleft.getY() - greenPos1.getY(); - if (relativeG1 == 4 && relativeR1 == 4) { - return "legs"; - } - if (relativeG1 == 4 && relativeR1 == 0) { - return "N"; - } - if (relativeG1 == 4 && relativeR1 == 2) { - return "spiral"; - } - } else if (greenWools.size() == 2) { - Entity ry1 = (Entity) redWools.toArray()[0]; - BlockPos redPos1 = ry1.getPosition(); - int relativeR1 = topleft.getY() - redPos1.getY(); - if (relativeR1 == 2) { - return "W"; - } - return "bottleneck"; - } - - } else if (redWools.size() == 2) { - Entity ry1 = (Entity) redWools.toArray()[0]; - Entity ry2 = (Entity) redWools.toArray()[0]; - BlockPos redPos1 = ry1.getPosition(); - BlockPos redPos2 = ry2.getPosition(); - int relativeR1 = topleft.getY() - redPos1.getY(); - int relativeR2 = topleft.getY() - redPos2.getY(); - if (greenWools.size() > 1) return "zigzag"; - return "S"; - - } else if (redWools.size() == 3) { - return "lines"; - } - - return "Unrecognized"; - } -} diff --git a/src/main/java/rosegoldaddons/features/WartMacro.java b/src/main/java/rosegoldaddons/features/WartMacro.java deleted file mode 100644 index b96f25b..0000000 --- a/src/main/java/rosegoldaddons/features/WartMacro.java +++ /dev/null @@ -1,147 +0,0 @@ -package rosegoldaddons.features; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.init.Blocks; -import net.minecraft.util.*; -import net.minecraftforge.client.event.RenderWorldLastEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import rosegoldaddons.Main; -import rosegoldaddons.commands.WartSetup; -import rosegoldaddons.utils.ChatUtils; -import rosegoldaddons.utils.RenderUtils; - -import java.awt.*; -import java.util.ArrayList; - -public class WartMacro { - private boolean breaking = false; - private boolean walking = false; - private double savex = -999; - private double savez = -999; - private Thread thread; - private Thread thread2; - - @SubscribeEvent - public void move(TickEvent.ClientTickEvent event) { - if (!Main.wartToggle || Minecraft.getMinecraft().currentScreen != null) { - if (walking) { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindForward.getKeyCode(), false); - walking = false; - } - return; - } - if (thread == null || !thread.isAlive()) { - thread = new Thread(() -> { - try { - //if (event.phase.toString().equals("START")) { - if (!walking) { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindForward.getKeyCode(), true); - walking = true; - } - float prevYaw = Minecraft.getMinecraft().thePlayer.rotationYaw; - float nextYaw = -1; - if (WartSetup.cardinal.equals("east")) { - if (Minecraft.getMinecraft().thePlayer.getPosition().getZ() == WartSetup.wartEnd) { - nextYaw = 230; - } else if (Minecraft.getMinecraft().thePlayer.getPosition().getZ() == -WartSetup.wartEnd) { - nextYaw = 310; - } - } else if (WartSetup.cardinal.equals("north")) { - if (Minecraft.getMinecraft().thePlayer.getPosition().getX() == WartSetup.wartEnd) { - nextYaw = 140; - } else if (Minecraft.getMinecraft().thePlayer.getPosition().getX() == -WartSetup.wartEnd) { - nextYaw = 220; - } - } else if (WartSetup.cardinal.equals("west")) { - if (Minecraft.getMinecraft().thePlayer.getPosition().getZ() == WartSetup.wartEnd) { - nextYaw = 130; - } else if (Minecraft.getMinecraft().thePlayer.getPosition().getZ() == -WartSetup.wartEnd) { - nextYaw = 50; - } - } else if (WartSetup.cardinal.equals("south")) { - if (Minecraft.getMinecraft().thePlayer.getPosition().getX() == WartSetup.wartEnd) { - nextYaw = 40; - } else if (Minecraft.getMinecraft().thePlayer.getPosition().getX() == -WartSetup.wartEnd) { - nextYaw = 320; - } - } - if(nextYaw != -1) { - for (int i = 0; i < 50; i++) { - Minecraft.getMinecraft().thePlayer.rotationYaw += (nextYaw - prevYaw) / 50; - Thread.sleep(10); - } - } - //} - } catch (Exception e) { - e.printStackTrace(); - } - }, "Wart Rotation"); - thread.start(); - } - } - - - @SubscribeEvent - public void click(TickEvent.ClientTickEvent event) { - if (!Main.wartToggle || Minecraft.getMinecraft().currentScreen != null) { - if (breaking) { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindAttack.getKeyCode(), false); - breaking = false; - } - return; - } - if (event.phase.toString().equals("START")) { - MovingObjectPosition objectMouseOver = Minecraft.getMinecraft().objectMouseOver; - if (objectMouseOver != null && objectMouseOver.typeOfHit.toString() == "BLOCK") { - BlockPos pos = objectMouseOver.getBlockPos(); - Block gem = Minecraft.getMinecraft().theWorld.getBlockState(pos).getBlock(); - if (gem == Blocks.nether_wart) { - if (!breaking) { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindAttack.getKeyCode(), true); - breaking = true; - } - } else { - if (breaking) { - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindAttack.getKeyCode(), false); - breaking = false; - } - } - } - } - } - - @SubscribeEvent - public void antiStuck(TickEvent.ClientTickEvent event) { - if (!Main.wartToggle || Minecraft.getMinecraft().currentScreen != null) return; - if (event.phase.toString().equals("START")) { - if (thread2 == null || !thread2.isAlive()) { - thread2 = new Thread(() -> { - try { - Thread.sleep(1500); - double xdiff = Math.abs(savex - Minecraft.getMinecraft().thePlayer.posX); - double zdiff = Math.abs(savez - Minecraft.getMinecraft().thePlayer.posZ); - if(xdiff < 2 && zdiff < 2) { - ChatUtils.sendMessage("stuck detected."); - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindLeft.getKeyCode(), true); - Thread.sleep(500); - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindLeft.getKeyCode(), false); - Thread.sleep(1000); - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindRight.getKeyCode(), true); - Thread.sleep(500); - KeyBinding.setKeyBindState(Minecraft.getMinecraft().gameSettings.keyBindRight.getKeyCode(), false); - } - savex = Minecraft.getMinecraft().thePlayer.posX; - savez = Minecraft.getMinecraft().thePlayer.posZ; - } catch (InterruptedException e) { - e.printStackTrace(); - } - }, "Anti Stuck"); - thread2.start(); - } - } - } -} diff --git a/src/main/java/rosegoldaddons/mixins/MixinMinecraft.java b/src/main/java/rosegoldaddons/mixins/MixinMinecraft.java new file mode 100644 index 0000000..e8426ad --- /dev/null +++ b/src/main/java/rosegoldaddons/mixins/MixinMinecraft.java @@ -0,0 +1,27 @@ +package rosegoldaddons.mixins; + +import net.minecraft.client.Minecraft; +import net.minecraftforge.common.MinecraftForge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import rosegoldaddons.events.ClickEvent; + +@Mixin(Minecraft.class) +public class MixinMinecraft { + @Inject(method = "rightClickMouse", at = @At("HEAD"), cancellable = true) + public void rightClickEvent(CallbackInfo ci) { + if(MinecraftForge.EVENT_BUS.post(new ClickEvent.Right())) ci.cancel(); + } + + @Inject(method = "clickMouse", at = @At("HEAD"), cancellable = true) + public void leftClickEvent(CallbackInfo ci) { + if(MinecraftForge.EVENT_BUS.post(new ClickEvent.Left())) ci.cancel(); + } + + @Inject(method = "middleClickMouse", at = @At("HEAD"), cancellable = true) + public void middleClickEvent(CallbackInfo ci) { + if(MinecraftForge.EVENT_BUS.post(new ClickEvent.Middle())) ci.cancel(); + } +} diff --git a/src/main/java/rosegoldaddons/utils/OpenSkyblockGui.java b/src/main/java/rosegoldaddons/utils/OpenSkyblockGui.java index 6eed707..51ba356 100644 --- a/src/main/java/rosegoldaddons/utils/OpenSkyblockGui.java +++ b/src/main/java/rosegoldaddons/utils/OpenSkyblockGui.java @@ -11,14 +11,19 @@ import net.minecraftforge.client.event.GuiScreenEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import rosegoldaddons.commands.Backpack; import rosegoldaddons.commands.LobbySwap; +import rosegoldaddons.commands.Rosepet; import java.util.List; +import java.util.Locale; public class OpenSkyblockGui { int windowId; + int windowId2; + int windowClicks = 0; boolean openingWardrobe = false; boolean lobbySwapping = false; boolean openingBP = false; + boolean openingPets = false; @SubscribeEvent public void guiDraw(GuiScreenEvent.BackgroundDrawnEvent event) { @@ -147,8 +152,48 @@ public class OpenSkyblockGui { }).start(); } + @SubscribeEvent + public void guiDraw4(GuiScreenEvent.BackgroundDrawnEvent event) { + if (!Rosepet.openPetS || openingPets) return; + new Thread(() -> { + try { + openingPets = true; + if (event.gui instanceof GuiChest) { + Container container = ((GuiChest) event.gui).inventorySlots; + if (container instanceof ContainerChest) { + String chestName = ((ContainerChest) container).getLowerChestInventory().getDisplayName().getUnformattedText(); + List<Slot> invSlots = container.inventorySlots; + if (chestName.contains("Pets")) { + if (!Rosepet.name.equals("")) { + int i; + for (i = 0; i < invSlots.size(); i++) { + if (!invSlots.get(i).getHasStack()) continue; + + if (StringUtils.stripControlCodes(invSlots.get(i).getStack().getDisplayName()).toLowerCase().contains(Rosepet.name.toLowerCase())) { + clickSlot(invSlots.get(i)); + Rosepet.openPetS = false; + } + } + } + } + } + } + openingPets = false; + } catch (Exception e) { + e.printStackTrace(); + } + }).start(); + } + private void clickSlot(Slot slot) { windowId = Minecraft.getMinecraft().thePlayer.openContainer.windowId; - Minecraft.getMinecraft().playerController.windowClick(windowId, slot.slotNumber, 0, 0, Minecraft.getMinecraft().thePlayer); + Minecraft.getMinecraft().playerController.windowClick(windowId, slot.slotNumber, 2, 0, Minecraft.getMinecraft().thePlayer); + } + + private void clickSlot2(Slot slot) { + if(windowClicks == 0) + windowId2 = Minecraft.getMinecraft().thePlayer.openContainer.windowId; + Minecraft.getMinecraft().playerController.windowClick(windowId + windowClicks, slot.slotNumber, 2, 0, Minecraft.getMinecraft().thePlayer); + windowClicks++; } } diff --git a/src/main/java/rosegoldaddons/utils/RenderUtils.java b/src/main/java/rosegoldaddons/utils/RenderUtils.java index 5d3e2f2..cfd7d1d 100644 --- a/src/main/java/rosegoldaddons/utils/RenderUtils.java +++ b/src/main/java/rosegoldaddons/utils/RenderUtils.java @@ -679,4 +679,17 @@ public class RenderUtils { tessellator.draw(); } + public static void enableChams() { + GL11.glEnable(32823); + GlStateManager.enablePolygonOffset(); + GlStateManager.doPolygonOffset(1.0F, -1000000.0F); + } + + public static void disableChams() { + GL11.glDisable(32823); + GlStateManager.doPolygonOffset(1.0F, 1000000.0F); + GlStateManager.disablePolygonOffset(); + } + + }
\ No newline at end of file diff --git a/src/main/resources/mixins.rosegoldaddons.json b/src/main/resources/mixins.rosegoldaddons.json index b58372e..4636ab6 100644 --- a/src/main/resources/mixins.rosegoldaddons.json +++ b/src/main/resources/mixins.rosegoldaddons.json @@ -7,6 +7,7 @@ "MixinNetworkManager" ], "client": [ + "MixinMinecraft", "MixinRendererLivingEntity" ] } |