aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoseGoldIsntGay <yoavkau@gmail.com>2021-11-22 09:12:31 +0200
committerRoseGoldIsntGay <yoavkau@gmail.com>2021-11-22 09:12:31 +0200
commit19de3c3ee0582f25d8e127492d791f81a410b70a (patch)
tree5ac734875a7da4fc6ffd9521f880d6292c909ed7 /src
parent9ec7ca5e828f33122818a51215bbec5e68a84db2 (diff)
downloadRGA-19de3c3ee0582f25d8e127492d791f81a410b70a.tar.gz
RGA-19de3c3ee0582f25d8e127492d791f81a410b70a.tar.bz2
RGA-19de3c3ee0582f25d8e127492d791f81a410b70a.zip
2.3.0
Diffstat (limited to 'src')
-rw-r--r--src/main/java/rosegoldaddons/Config.java70
-rw-r--r--src/main/java/rosegoldaddons/Main.java136
-rw-r--r--src/main/java/rosegoldaddons/commands/AllEntities.java (renamed from src/main/java/rosegoldaddons/commands/WartSetup.java)38
-rw-r--r--src/main/java/rosegoldaddons/commands/Rosedrobe.java1
-rw-r--r--src/main/java/rosegoldaddons/commands/Rosepet.java65
-rw-r--r--src/main/java/rosegoldaddons/commands/UseCooldown.java105
-rw-r--r--src/main/java/rosegoldaddons/events/ClickEvent.java20
-rw-r--r--src/main/java/rosegoldaddons/features/AutoArrowAlign.java333
-rw-r--r--src/main/java/rosegoldaddons/features/BlockBreakAura.java2
-rw-r--r--src/main/java/rosegoldaddons/features/BloodTriggerBot.java13
-rw-r--r--src/main/java/rosegoldaddons/features/CustomItemMacro.java31
-rw-r--r--src/main/java/rosegoldaddons/features/EntityReach.java125
-rw-r--r--src/main/java/rosegoldaddons/features/ForagingIslandMacro.java45
-rw-r--r--src/main/java/rosegoldaddons/features/ItemFrameAura.java414
-rw-r--r--src/main/java/rosegoldaddons/features/WartMacro.java147
-rw-r--r--src/main/java/rosegoldaddons/mixins/MixinMinecraft.java27
-rw-r--r--src/main/java/rosegoldaddons/utils/OpenSkyblockGui.java47
-rw-r--r--src/main/java/rosegoldaddons/utils/RenderUtils.java13
-rw-r--r--src/main/resources/mixins.rosegoldaddons.json1
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);
+ }
+ 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"
]
}