diff options
Diffstat (limited to 'src')
19 files changed, 957 insertions, 676 deletions
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); + }< |
