diff --git a/README.md b/README.md index a0a7b3b..c63e715 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ main { I:AuctionHouseDelay=9 B:GUI=true I:GUI_COLOR=-65536 - I:ProfitPercentage=400 + I:MinimumProfitPercentage=400 I:ReconnectDelay=20 B:SendMessageToWebhook=true S:Webhook=Paste your webhook here diff --git a/gradle.properties b/gradle.properties index 399bf20..ca316c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_name = Lilase mod_id = lilase -mod_version = 1.0.25 +mod_version = 1.0.26 essential.defaults.loom=0 diff --git a/src/main/java/me/night0721/lilase/Lilase.java b/src/main/java/me/night0721/lilase/Lilase.java index 407b8f3..04c33a9 100644 --- a/src/main/java/me/night0721/lilase/Lilase.java +++ b/src/main/java/me/night0721/lilase/Lilase.java @@ -4,10 +4,11 @@ import cc.polyfrost.oneconfig.events.EventManager; import cc.polyfrost.oneconfig.events.event.InitializationEvent; import cc.polyfrost.oneconfig.libs.eventbus.Subscribe; import me.night0721.lilase.events.SniperFlipperEvents; -import me.night0721.lilase.features.ah.AHConfig; -import me.night0721.lilase.features.ah.AuctionHouse; +import me.night0721.lilase.config.AHConfig; +import me.night0721.lilase.features.sniper.AuctionHouse; +import me.night0721.lilase.gui.ImageRenderer; import me.night0721.lilase.utils.Clock; -import me.night0721.lilase.utils.ConfigUtils; +import me.night0721.lilase.config.ConfigUtils; import me.night0721.lilase.utils.KeyBindingManager; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiDisconnected; @@ -23,14 +24,14 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import java.io.IOException; -import static me.night0721.lilase.features.ah.AHConfig.AUCTION_HOUSE_DELAY; -import static me.night0721.lilase.features.ah.AHConfig.RECONNECT_DELAY; +import static me.night0721.lilase.config.AHConfig.AUCTION_HOUSE_DELAY; +import static me.night0721.lilase.config.AHConfig.RECONNECT_DELAY; @Mod(modid = Lilase.MODID, name = Lilase.MOD_NAME, version = Lilase.VERSION, acceptedMinecraftVersions = "[1.8.9]") public class Lilase { public static final String MOD_NAME = "Lilase"; public static final String MODID = "Lilase"; - public static final String VERSION = "1.0.25"; + public static final String VERSION = "1.0.26"; public static final Minecraft mc = Minecraft.getMinecraft(); public static AuctionHouse auctionHouse; public static AHConfig config; @@ -39,13 +40,13 @@ public class Lilase { @Mod.EventHandler public void init(FMLInitializationEvent event) { + ConfigUtils.register(); KeyBindingManager keyBindingManager = new KeyBindingManager(); MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(keyBindingManager); MinecraftForge.EVENT_BUS.register(new SniperFlipperEvents()); -// MinecraftForge.EVENT_BUS.register(new ImageRenderer()); + MinecraftForge.EVENT_BUS.register(new ImageRenderer()); EventManager.INSTANCE.register(this); - ConfigUtils.register(); auctionHouse = new AuctionHouse(); keyBindingManager.registerKeyBindings(); } diff --git a/src/main/java/me/night0721/lilase/config/AHConfig.java b/src/main/java/me/night0721/lilase/config/AHConfig.java new file mode 100644 index 0000000..0a7d6d5 --- /dev/null +++ b/src/main/java/me/night0721/lilase/config/AHConfig.java @@ -0,0 +1,88 @@ +package me.night0721.lilase.config; + +import cc.polyfrost.oneconfig.config.Config; +import cc.polyfrost.oneconfig.config.annotations.Number; +import cc.polyfrost.oneconfig.config.annotations.*; +import cc.polyfrost.oneconfig.config.core.OneColor; +import cc.polyfrost.oneconfig.config.data.Mod; +import cc.polyfrost.oneconfig.config.data.ModType; +import me.night0721.lilase.utils.Utils; + +public class AHConfig extends Config { + public AHConfig() { + super(new Mod("Lilase", ModType.UTIL_QOL), "lilase.json"); + initialize(); + addListener("SEND_MESSAGE", () -> ConfigUtils.writeBooleanConfig("main", "SendMessageToWebhook", AHConfig.SEND_MESSAGE)); + addListener("WEBHOOK", () -> ConfigUtils.writeStringConfig("main", "Webhook", AHConfig.WEBHOOK)); + addListener("RECONNECT_DELAY", () -> ConfigUtils.writeIntConfig("main", "ReconnectDelay", Math.round(AHConfig.RECONNECT_DELAY))); + addListener("AUCTION_HOUSE_DELAY", () -> ConfigUtils.writeIntConfig("main", "AuctionHouseDelay", Math.round(AHConfig.AUCTION_HOUSE_DELAY))); + addListener("BED_SPAM", () -> ConfigUtils.writeBooleanConfig("main", "BedSpam", AHConfig.BED_SPAM)); + addListener("BED_SPAM_DELAY", () -> ConfigUtils.writeIntConfig("main", "BedSpamDelay", Math.round(AHConfig.BED_SPAM_DELAY))); + addListener("ONLY_SNIPER", () -> ConfigUtils.writeBooleanConfig("main", "OnlySniper", AHConfig.ONLY_SNIPER)); + addListener("CHECK_PERCENTAGE", () -> ConfigUtils.writeBooleanConfig("main", "checkProfitPercentageBeforeBuy", AHConfig.CHECK_PERCENTAGE)); + addListener("MINIMUM_PROFIT_PERCENTAGE", () -> ConfigUtils.writeIntConfig("main", "MinimumProfitPercentage", Math.round(AHConfig.MINIMUM_PROFIT_PERCENTAGE))); + addListener("GUI", () -> ConfigUtils.writeBooleanConfig("main", "GUI", AHConfig.GUI)); + addListener("GUI_COLOR", () -> ConfigUtils.writeIntConfig("main", "GUI_COLOR", AHConfig.GUI_COLOR.getRGB())); + addListener("ITEM_1_NAME", () -> ConfigUtils.writeStringConfig("item1", "Name", AHConfig.ITEM_1_NAME)); + addListener("ITEM_1_TYPE", () -> ConfigUtils.writeStringConfig("item1", "Type", AHConfig.ITEM_1_TYPE)); + addListener("ITEM_1_PRICE", () -> ConfigUtils.writeIntConfig("item1", "Price", Math.round(AHConfig.ITEM_1_PRICE))); + addListener("ITEM_1_TIER", () -> ConfigUtils.writeStringConfig("item1", "Tier", AHConfig.ITEM_1_TIER)); + addDependency("WEBHOOK", "SEND_MESSAGE"); + addDependency("PROFIT_PERCENTAGE", "CHECK_PERCENTAGE"); + addDependency("GUI_COLOR", "GUI"); + addDependency("ITEM_1_NAME", "addItem", () -> ConfigUtils.getString("item1", "Name").equals("")); + addDependency("ITEM_1_TYPE", "addItem", () -> ConfigUtils.getString("item1", "Type").equals("")); + addDependency("ITEM_1_PRICE", "addItem", () -> ConfigUtils.getString("item1", "Price").equals("")); + addDependency("ITEM_1_TIER", "addItem", () -> ConfigUtils.getString("item1", "Tier").equals("")); + } + + @Slider(name = "Time per fetch (seconds)", min = 5, max = 15, step = 1, category = "Auction House", subcategory = "Sniper", description = "Time between each fetch of the auction house, the faster the fetch, the more likely you will snipe the item") + public static int AUCTION_HOUSE_DELAY = 8; + + @Switch(name = "Bed Spam & Skip Confirm", category = "Auction House", subcategory = "Sniper", description = "Spam the bed to buy the item just after the grace period ends and skips the confirmation of buying the item") + public static boolean BED_SPAM = true; + + @Slider(name = "Bed Spam Delay (ms)", min = 50, max = 500, step = 50, category = "Auction House", subcategory = "Sniper", description = "Delay between each bed spam") + public static int BED_SPAM_DELAY = 100; + + @Switch(name = "Only Sniper", category = "Auction House", subcategory = "Sniper", description = "Only snipe items, stop auto resell") + public static boolean ONLY_SNIPER = false; + + @Button(name = "Add Item", text = "Click to add an item to snipe", subcategory = "Items", category = "Auction House") + public static void addItem() { + Utils.debugLog("[AHConfig] Add Item Button Clicked"); + } + + @Text(name = "Discord Webhook", placeholder = "URL", category = "Auction House", subcategory = "Webhook", description = "Discord webhook to send messages to") + public static String WEBHOOK = ""; + + @Switch(name = "Send message to webhook", category = "Auction House", subcategory = "Webhook", description = "Send a message to the webhook when an item is bought") + public static boolean SEND_MESSAGE = true; + + @Number(name = "Reconnect Delay", min = 5, max = 20, category = "Failsafe", description = "Delay between each reconnect attempt to the server") + public static int RECONNECT_DELAY = 20; + + @Switch(name = "Check Profit Percentage Before Buying", category = "Flipper", description = "Check the profit percentage before buying the item, if the profit percentage is too low, it will not buy the item") + public static boolean CHECK_PERCENTAGE = false; + + @Number(name = "Minimum Profit Percentage", min = 100, max = 5000, step = 50, category = "Flipper", description = "Profit percentage to check before buying the item, if the profit percentage is too low, it will not buy the item") + public static int MINIMUM_PROFIT_PERCENTAGE = 400; + + @Checkbox(name = "GUI", category = "GUI", description = "Enable the GUI") + public static boolean GUI = true; + + @Color(name = "GUI Color", category = "GUI") + public static OneColor GUI_COLOR = new OneColor(0, 49, 83); + + @Text(name = "Item 1 Name", placeholder = "Item Name") + public static String ITEM_1_NAME = " "; + + @Text(name = "Item 1 Type", placeholder = "Item Type") + public static String ITEM_1_TYPE = "ANY"; + + @Number(name = "Item 1 Price", min = 1, max = 1000000000) + public static int ITEM_1_PRICE = 1; + + @Text(name = "Item 1 Tier", placeholder = "Item Tier") + public static String ITEM_1_TIER = "ANY"; +} diff --git a/src/main/java/me/night0721/lilase/utils/ConfigUtils.java b/src/main/java/me/night0721/lilase/config/ConfigUtils.java similarity index 92% rename from src/main/java/me/night0721/lilase/utils/ConfigUtils.java rename to src/main/java/me/night0721/lilase/config/ConfigUtils.java index cd239bd..2d12ca9 100644 --- a/src/main/java/me/night0721/lilase/utils/ConfigUtils.java +++ b/src/main/java/me/night0721/lilase/config/ConfigUtils.java @@ -1,5 +1,6 @@ -package me.night0721.lilase.utils; +package me.night0721.lilase.config; +import me.night0721.lilase.utils.Utils; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; @@ -26,8 +27,12 @@ public class ConfigUtils { if (hasNoKey("main", "Webhook")) writeStringConfig("main", "Webhook", ""); if (hasNoKey("main", "ReconnectDelay")) writeIntConfig("main", "ReconnectDelay", 20); if (hasNoKey("main", "AuctionHouseDelay")) writeIntConfig("main", "AuctionHouseDelay", 8); - if (hasNoKey("main", "checkProfitPercentageBeforeBuy")) writeBooleanConfig("main", "checkProfitPercentageBeforeBuy", false); - if (hasNoKey("main", "ProfitPercentage")) writeIntConfig("main", "ProfitPercentage", 400); //400% + if (hasNoKey("main", "BedSpam")) writeBooleanConfig("main", "BedSpam", true); + if (hasNoKey("main", "BedSpamDelay")) writeIntConfig("main", "BedSpamDelay", 100); + if (hasNoKey("main", "OnlySniper")) writeBooleanConfig("main", "OnlySniper", false); + if (hasNoKey("main", "checkProfitPercentageBeforeBuy")) + writeBooleanConfig("main", "checkProfitPercentageBeforeBuy", false); + if (hasNoKey("main", "MinimumProfitPercentage")) writeIntConfig("main", "MinimumProfitPercentage", 400); //400% if (hasNoKey("main", "GUI")) writeBooleanConfig("main", "GUI", true); if (hasNoKey("main", "GUI_COLOR")) writeIntConfig("main", "GUI_COLOR", 0x003153); for (int i = 1; i <= 3; i++) { diff --git a/src/main/java/me/night0721/lilase/events/SniperFlipperEvents.java b/src/main/java/me/night0721/lilase/events/SniperFlipperEvents.java index e95ec43..a66a626 100644 --- a/src/main/java/me/night0721/lilase/events/SniperFlipperEvents.java +++ b/src/main/java/me/night0721/lilase/events/SniperFlipperEvents.java @@ -1,9 +1,10 @@ package me.night0721.lilase.events; import me.night0721.lilase.Lilase; -import me.night0721.lilase.features.ah.AHConfig; -import me.night0721.lilase.features.flip.Flipper; -import me.night0721.lilase.features.flip.FlipperState; +import me.night0721.lilase.config.AHConfig; +import me.night0721.lilase.config.ConfigUtils; +import me.night0721.lilase.features.flipper.Flipper; +import me.night0721.lilase.features.flipper.FlipperState; import me.night0721.lilase.gui.TextRenderer; import me.night0721.lilase.utils.*; import net.minecraft.client.Minecraft; @@ -30,11 +31,11 @@ import java.util.TimeZone; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static me.night0721.lilase.features.ah.AHConfig.GUI_COLOR; -import static me.night0721.lilase.features.ah.AHConfig.SEND_MESSAGE; -import static me.night0721.lilase.features.ah.AuctionHouse.flipper; -import static me.night0721.lilase.features.flip.Flipper.rotation; -import static me.night0721.lilase.features.flip.FlipperState.START; +import static me.night0721.lilase.config.AHConfig.GUI_COLOR; +import static me.night0721.lilase.config.AHConfig.SEND_MESSAGE; +import static me.night0721.lilase.features.flipper.Flipper.rotation; +import static me.night0721.lilase.features.flipper.FlipperState.START; +import static me.night0721.lilase.features.sniper.AuctionHouse.flipper; import static me.night0721.lilase.utils.PlayerUtils.sendPacketWithoutEvent; public class SniperFlipperEvents { @@ -42,6 +43,7 @@ public class SniperFlipperEvents { private int price; private boolean buying = false; private boolean bought = false; + private final Clock clock = new Clock(); private final Pattern auctionSoldPattern = Pattern.compile("^(.*?) bought (.*?) for ([\\d,]+) coins CLICK$"); private final Pattern boughtPattern = Pattern.compile("You purchased (\\w+(?:\\s+\\w+)*) for ([\\d,]+)\\s*(\\w+)!"); private final Pattern boughtPattern2 = Pattern.compile("You claimed (.+?) from (.+?)'s auction!"); @@ -82,7 +84,7 @@ public class SniperFlipperEvents { } catch (InterruptedException e) { throw new RuntimeException(e); } - flipper.sellItem(); + if (!AHConfig.ONLY_SNIPER) flipper.sellItem(); }).start(); } else if (message.equals("Your starting bid must be at least 10 coins!")) { InventoryUtils.clickOpenContainerSlot(13); @@ -202,18 +204,30 @@ public class SniperFlipperEvents { @SubscribeEvent(priority = EventPriority.HIGHEST) public void onInventoryRendering(GuiScreenEvent.BackgroundDrawnEvent event) { String windowName = InventoryUtils.getInventoryName(); - if ("BIN Auction View".equals(windowName)) { - ItemStack is = InventoryUtils.getStackInOpenContainerSlot(31); - if (is != null && (is.getItem() == Items.gold_nugget || (AHConfig.BED_SPAM && is.getItem() == Items.bed))) { - buying = true; - windowId = Lilase.mc.thePlayer.openContainer.windowId; - Lilase.mc.playerController.windowClick(windowId, 31, 0, 0, Lilase.mc.thePlayer); - } else if (is != null && is.getItem() == Items.potato) { - buying = false; - Lilase.mc.thePlayer.closeScreen(); - } - } if (AHConfig.BED_SPAM) { + if ("BIN Auction View".equals(windowName)) { + ItemStack is = InventoryUtils.getStackInOpenContainerSlot(31); + if (is != null) { + buying = true; + windowId = Lilase.mc.thePlayer.openContainer.windowId; + if (is.getItem() == Items.bed && clock.passed()) { + Lilase.mc.playerController.windowClick(windowId, 31, 0, 0, Lilase.mc.thePlayer); + clock.schedule(AHConfig.BED_SPAM_DELAY); + } else if (is.getItem() == Items.gold_nugget) + Lilase.mc.playerController.windowClick(windowId, 31, 0, 0, Lilase.mc.thePlayer); + else if (is.getItem() == Items.potato) { + buying = false; + Lilase.mc.thePlayer.closeScreen(); + } else { + buying = false; + Lilase.mc.thePlayer.closeScreen(); + } + } else { + System.out.println("Not gonna happen"); + buying = false; + Lilase.mc.thePlayer.closeScreen(); + } + } if (buying && "Confirm Purchase".equals(windowName)) { Lilase.mc.playerController.windowClick(windowId + 1, 11, 0, 0, Lilase.mc.thePlayer); buying = false; @@ -221,6 +235,7 @@ public class SniperFlipperEvents { } } } + @SubscribeEvent public void onPacketReceive(PacketReceivedEvent event) { if (event.packet instanceof S33PacketUpdateSign && Utils.checkInHub() && Flipper.state.equals(START)) { diff --git a/src/main/java/me/night0721/lilase/features/ah/AHConfig.java b/src/main/java/me/night0721/lilase/features/ah/AHConfig.java deleted file mode 100644 index 6004d64..0000000 --- a/src/main/java/me/night0721/lilase/features/ah/AHConfig.java +++ /dev/null @@ -1,268 +0,0 @@ -package me.night0721.lilase.features.ah; - -import cc.polyfrost.oneconfig.config.Config; -import cc.polyfrost.oneconfig.config.annotations.Number; -import cc.polyfrost.oneconfig.config.annotations.*; -import cc.polyfrost.oneconfig.config.core.OneColor; -import cc.polyfrost.oneconfig.config.data.Mod; -import cc.polyfrost.oneconfig.config.data.ModType; -import me.night0721.lilase.utils.ConfigUtils; -import me.night0721.lilase.utils.Utils; - -public class AHConfig extends Config { - public AHConfig() { - super(new Mod("Lilase", ModType.UTIL_QOL), "lilase.json"); - initialize(); - addListener("SEND_MESSAGE", () -> ConfigUtils.writeBooleanConfig("main", "SendMessageToWebhook", AHConfig.SEND_MESSAGE)); - addListener("WEBHOOK", () -> ConfigUtils.writeStringConfig("main", "Webhook", AHConfig.WEBHOOK)); - addListener("RECONNECT_DELAY", () -> ConfigUtils.writeIntConfig("main", "ReconnectDelay", Math.round(AHConfig.RECONNECT_DELAY))); - addListener("AUCTION_HOUSE_DELAY", () -> ConfigUtils.writeIntConfig("main", "AuctionHouseDelay", Math.round(AHConfig.AUCTION_HOUSE_DELAY))); - addListener("CHECK_PERCENTAGE", () -> ConfigUtils.writeBooleanConfig("main", "checkProfitPercentageBeforeBuy", AHConfig.CHECK_PERCENTAGE)); - addListener("PROFIT_PERCENTAGE", () -> ConfigUtils.writeIntConfig("main", "ProfitPercentage", Math.round(AHConfig.PROFIT_PERCENTAGE))); - addListener("GUI", () -> ConfigUtils.writeBooleanConfig("main", "GUI", AHConfig.GUI)); - addListener("GUI_COLOR", () -> ConfigUtils.writeIntConfig("main", "GUI_COLOR", AHConfig.GUI_COLOR.getRGB())); - addListener("CRABBY_COLOR", () -> ConfigUtils.writeIntConfig("main", "CRABBY_COLOR", AHConfig.CRABBY_COLOR)); - addListener("ITEM_1_NAME", () -> ConfigUtils.writeStringConfig("item1", "Name", AHConfig.ITEM_1_NAME)); - addListener("ITEM_1_TYPE", () -> ConfigUtils.writeStringConfig("item1", "Type", AHConfig.ITEM_1_TYPE)); - addListener("ITEM_1_PRICE", () -> ConfigUtils.writeIntConfig("item1", "Price", Math.round(AHConfig.ITEM_1_PRICE))); - addListener("ITEM_1_TIER", () -> ConfigUtils.writeStringConfig("item1", "Tier", AHConfig.ITEM_1_TIER)); - addListener("ITEM_2_NAME", () -> ConfigUtils.writeStringConfig("item2", "Name", AHConfig.ITEM_2_NAME)); - addListener("ITEM_2_TYPE", () -> ConfigUtils.writeStringConfig("item2", "Type", AHConfig.ITEM_2_TYPE)); - addListener("ITEM_2_PRICE", () -> ConfigUtils.writeIntConfig("item2", "Price", Math.round(AHConfig.ITEM_2_PRICE))); - addListener("ITEM_2_TIER", () -> ConfigUtils.writeStringConfig("item2", "Tier", AHConfig.ITEM_2_TIER)); - addListener("ITEM_3_NAME", () -> ConfigUtils.writeStringConfig("item3", "Name", AHConfig.ITEM_3_NAME)); - addListener("ITEM_3_TYPE", () -> ConfigUtils.writeStringConfig("item3", "Type", AHConfig.ITEM_3_TYPE)); - addListener("ITEM_3_PRICE", () -> ConfigUtils.writeIntConfig("item3", "Price", Math.round(AHConfig.ITEM_3_PRICE))); - addListener("ITEM_3_TIER", () -> ConfigUtils.writeStringConfig("item3", "Tier", AHConfig.ITEM_3_TIER)); - addListener("ITEM_4_NAME", () -> ConfigUtils.writeStringConfig("item4", "Name", AHConfig.ITEM_4_NAME)); - addListener("ITEM_4_TYPE", () -> ConfigUtils.writeStringConfig("item4", "Type", AHConfig.ITEM_4_TYPE)); - addListener("ITEM_4_PRICE", () -> ConfigUtils.writeIntConfig("item4", "Price", Math.round(AHConfig.ITEM_4_PRICE))); - addListener("ITEM_4_TIER", () -> ConfigUtils.writeStringConfig("item4", "Tier", AHConfig.ITEM_4_TIER)); - addListener("ITEM_5_NAME", () -> ConfigUtils.writeStringConfig("item5", "Name", AHConfig.ITEM_5_NAME)); - addListener("ITEM_5_TYPE", () -> ConfigUtils.writeStringConfig("item5", "Type", AHConfig.ITEM_5_TYPE)); - addListener("ITEM_5_PRICE", () -> ConfigUtils.writeIntConfig("item5", "Price", Math.round(AHConfig.ITEM_5_PRICE))); - addListener("ITEM_5_TIER", () -> ConfigUtils.writeStringConfig("item5", "Tier", AHConfig.ITEM_5_TIER)); - addListener("ITEM_6_NAME", () -> ConfigUtils.writeStringConfig("item6", "Name", AHConfig.ITEM_6_NAME)); - addListener("ITEM_6_TYPE", () -> ConfigUtils.writeStringConfig("item6", "Type", AHConfig.ITEM_6_TYPE)); - addListener("ITEM_6_PRICE", () -> ConfigUtils.writeIntConfig("item6", "Price", Math.round(AHConfig.ITEM_6_PRICE))); - addListener("ITEM_6_TIER", () -> ConfigUtils.writeStringConfig("item6", "Tier", AHConfig.ITEM_6_TIER)); - addListener("ITEM_7_NAME", () -> ConfigUtils.writeStringConfig("item7", "Name", AHConfig.ITEM_7_NAME)); - addListener("ITEM_7_TYPE", () -> ConfigUtils.writeStringConfig("item7", "Type", AHConfig.ITEM_7_TYPE)); - addListener("ITEM_7_PRICE", () -> ConfigUtils.writeIntConfig("item7", "Price", Math.round(AHConfig.ITEM_7_PRICE))); - addListener("ITEM_7_TIER", () -> ConfigUtils.writeStringConfig("item7", "Tier", AHConfig.ITEM_7_TIER)); - addListener("ITEM_8_NAME", () -> ConfigUtils.writeStringConfig("item8", "Name", AHConfig.ITEM_8_NAME)); - addListener("ITEM_8_TYPE", () -> ConfigUtils.writeStringConfig("item8", "Type", AHConfig.ITEM_8_TYPE)); - addListener("ITEM_8_PRICE", () -> ConfigUtils.writeIntConfig("item8", "Price", Math.round(AHConfig.ITEM_8_PRICE))); - addListener("ITEM_8_TIER", () -> ConfigUtils.writeStringConfig("item8", "Tier", AHConfig.ITEM_8_TIER)); - addListener("ITEM_9_NAME", () -> ConfigUtils.writeStringConfig("item9", "Name", AHConfig.ITEM_9_NAME)); - addListener("ITEM_9_TYPE", () -> ConfigUtils.writeStringConfig("item9", "Type", AHConfig.ITEM_9_TYPE)); - addListener("ITEM_9_PRICE", () -> ConfigUtils.writeIntConfig("item9", "Price", Math.round(AHConfig.ITEM_9_PRICE))); - addListener("ITEM_9_TIER", () -> ConfigUtils.writeStringConfig("item9", "Tier", AHConfig.ITEM_9_TIER)); - addListener("ITEM_10_NAME", () -> ConfigUtils.writeStringConfig("item10", "Name", AHConfig.ITEM_10_NAME)); - addListener("ITEM_10_TYPE", () -> ConfigUtils.writeStringConfig("item10", "Type", AHConfig.ITEM_10_TYPE)); - addListener("ITEM_10_PRICE", () -> ConfigUtils.writeIntConfig("item10", "Price", Math.round(AHConfig.ITEM_10_PRICE))); - addListener("ITEM_10_TIER", () -> ConfigUtils.writeStringConfig("item10", "Tier", AHConfig.ITEM_10_TIER)); - addDependency("WEBHOOK", "SEND_MESSAGE"); - addDependency("PROFIT_PERCENTAGE", "CHECK_PERCENTAGE"); - addDependency("GUI_COLOR", "GUI"); - addDependency("ITEM_1_NAME", "addItem", () -> ConfigUtils.getString("item1", "Name").equals("")); - addDependency("ITEM_1_TYPE", "addItem", () -> ConfigUtils.getString("item1", "Type").equals("")); - addDependency("ITEM_1_PRICE", "addItem", () -> ConfigUtils.getString("item1", "Price").equals("")); - addDependency("ITEM_1_TIER", "addItem", () -> ConfigUtils.getString("item1", "Tier").equals("")); - addDependency("ITEM_2_NAME", "addItem", () -> ConfigUtils.getString("item2", "Name").equals("")); - addDependency("ITEM_2_TYPE", "addItem", () -> ConfigUtils.getString("item2", "Type").equals("")); - addDependency("ITEM_2_PRICE", "addItem", () -> ConfigUtils.getString("item2", "Price").equals("")); - addDependency("ITEM_2_TIER", "addItem", () -> ConfigUtils.getString("item2", "Tier").equals("")); - addDependency("ITEM_3_NAME", "addItem", () -> ConfigUtils.getString("item3", "Name").equals("")); - addDependency("ITEM_3_TYPE", "addItem", () -> ConfigUtils.getString("item3", "Type").equals("")); - addDependency("ITEM_3_PRICE", "addItem", () -> ConfigUtils.getString("item3", "Price").equals("")); - addDependency("ITEM_3_TIER", "addItem", () -> ConfigUtils.getString("item3", "Tier").equals("")); - addDependency("ITEM_4_NAME", "addItem", () -> ConfigUtils.getString("item4", "Name").equals("")); - addDependency("ITEM_4_TYPE", "addItem", () -> ConfigUtils.getString("item4", "Type").equals("")); - addDependency("ITEM_4_PRICE", "addItem", () -> ConfigUtils.getString("item4", "Price").equals("")); - addDependency("ITEM_4_TIER", "addItem", () -> ConfigUtils.getString("item4", "Tier").equals("")); - addDependency("ITEM_5_NAME", "addItem", () -> !ConfigUtils.getString("item5", "Name").equals("")); - addDependency("ITEM_5_TYPE", "addItem", () -> !ConfigUtils.getString("item5", "Type").equals("")); - addDependency("ITEM_5_PRICE", "addItem", () -> !ConfigUtils.getString("item5", "Price").equals("")); - addDependency("ITEM_5_TIER", "addItem", () -> !ConfigUtils.getString("item5", "Tier").equals("")); - addDependency("ITEM_6_NAME", "addItem", () -> !ConfigUtils.getString("item6", "Name").equals("")); - addDependency("ITEM_6_TYPE", "addItem", () -> !ConfigUtils.getString("item6", "Type").equals("")); - addDependency("ITEM_6_PRICE", "addItem", () -> !ConfigUtils.getString("item6", "Price").equals("")); - addDependency("ITEM_6_TIER", "addItem", () -> !ConfigUtils.getString("item6", "Tier").equals("")); - addDependency("ITEM_7_NAME", "addItem", () -> !ConfigUtils.getString("item7", "Name").equals("")); - addDependency("ITEM_7_TYPE", "addItem", () -> !ConfigUtils.getString("item7", "Type").equals("")); - addDependency("ITEM_7_PRICE", "addItem", () -> !ConfigUtils.getString("item7", "Price").equals("")); - addDependency("ITEM_7_TIER", "addItem", () -> !ConfigUtils.getString("item7", "Tier").equals("")); - addDependency("ITEM_8_NAME", "addItem", () -> !ConfigUtils.getString("item8", "Name").equals("")); - addDependency("ITEM_8_TYPE", "addItem", () -> !ConfigUtils.getString("item8", "Type").equals("")); - addDependency("ITEM_8_PRICE", "addItem", () -> !ConfigUtils.getString("item8", "Price").equals("")); - addDependency("ITEM_8_TIER", "addItem", () -> !ConfigUtils.getString("item8", "Tier").equals("")); - addDependency("ITEM_9_NAME", "addItem", () -> !ConfigUtils.getString("item9", "Name").equals("")); - addDependency("ITEM_9_TYPE", "addItem", () -> !ConfigUtils.getString("item9", "Type").equals("")); - addDependency("ITEM_9_PRICE", "addItem", () -> !ConfigUtils.getString("item9", "Price").equals("")); - addDependency("ITEM_9_TIER", "addItem", () -> !ConfigUtils.getString("item9", "Tier").equals("")); - addDependency("ITEM_10_NAME", "addItem", () -> !ConfigUtils.getString("item10", "Name").equals("")); - addDependency("ITEM_10_TYPE", "addItem", () -> !ConfigUtils.getString("item10", "Type").equals("")); - addDependency("ITEM_10_PRICE", "addItem", () -> !ConfigUtils.getString("item10", "Price").equals("")); - addDependency("ITEM_10_TIER", "addItem", () -> !ConfigUtils.getString("item10", "Tier").equals("")); - } - - @Slider(name = "Time per fetch (seconds)", min = 5, max = 15, step = 1, category = "Auction House", subcategory = "Sniper", description = "Time between each fetch of the auction house, the faster the fetch, the more likely you will snipe the item") - public static int AUCTION_HOUSE_DELAY = 8; - - @Switch(name = "Bed Spam & Skip Confirm", category = "Auction House", subcategory = "Sniper", description = "Spam the bed to buy the item just after the grace period ends and skips the confirmation of buying the item") - public static boolean BED_SPAM = true; - - @Button(name = "Add Item", text = "Click to add an item to snipe", subcategory = "Items", category = "Auction House") - public static void addItem() { - Utils.debugLog("[AHConfig] Add Item Button Clicked"); - } - - @Dropdown(name = "Remove Item", category = "Auction House", subcategory = "Items", description = "Remove an item from the snipe list", options = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"}) - public static int value = 0; - - @Text(name = "Discord Webhook", placeholder = "URL", category = "Auction House", subcategory = "Webhook", description = "Discord webhook to send messages to") - public static String WEBHOOK = ""; - - @Switch(name = "Send message to webhook", category = "Auction House", subcategory = "Webhook", description = "Send a message to the webhook when an item is bought") - public static boolean SEND_MESSAGE = true; - - @Number(name = "Reconnect Delay", min = 5, max = 20, category = "Failsafe", description = "Delay between each reconnect attempt to the server") - public static int RECONNECT_DELAY = 20; - - @Switch(name = "Check Profit Percentage Before Buying", category = "Flipper", description = "Check the profit percentage before buying the item, if the profit percentage is too low, it will not buy the item") - public static boolean CHECK_PERCENTAGE = false; - - @Number(name = "ProfitPercentage", min = 100, max = 5000, step = 50, category = "Flipper", description = "Profit percentage to check before buying the item, if the profit percentage is too low, it will not buy the item") - public static int PROFIT_PERCENTAGE = 400; - - @Checkbox(name = "GUI", category = "GUI", description = "Enable the GUI") - public static boolean GUI = true; - - @Color(name = "GUI Color", category = "GUI") - public static OneColor GUI_COLOR = new OneColor(0, 49, 83); - - @Number(name = "Crabby Theme Color", min = 0, max = 7, category = "GUI") - public static int CRABBY_COLOR = 0; - - @Text(name = "Item 1 Name", placeholder = "Item Name") - public static String ITEM_1_NAME = " "; - - @Text(name = "Item 1 Type", placeholder = "Item Type") - public static String ITEM_1_TYPE = "ANY"; - - @Number(name = "Item 1 Price", min = 1, max = 1000000000) - public static int ITEM_1_PRICE = 1; - - @Text(name = "Item 1 Tier", placeholder = "Item Tier") - public static String ITEM_1_TIER = "ANY"; - - @Text(name = "Item 2 Name", placeholder = "Item Name") - public static String ITEM_2_NAME = " "; - - @Text(name = "Item 2 Type", placeholder = "Item Type") - public static String ITEM_2_TYPE = "ANY"; - - @Number(name = "Item 2 Price", min = 1, max = 1000000000) - public static int ITEM_2_PRICE = 1; - - @Text(name = "Item 2 Tier", placeholder = "Item Tier") - public static String ITEM_2_TIER = "ANY"; - - @Text(name = "Item 3 Name", placeholder = "Item Name") - public static String ITEM_3_NAME = " "; - - @Text(name = "Item 3 Type", placeholder = "Item Type") - public static String ITEM_3_TYPE = "ANY"; - - @Number(name = "Item 3 Price", min = 1, max = 1000000000) - public static int ITEM_3_PRICE = 1; - - @Text(name = "Item 3 Tier", placeholder = "Item Tier") - public static String ITEM_3_TIER = "ANY"; - - @Text(name = "Item 4 Name", placeholder = "Item Name") - public static String ITEM_4_NAME = " "; - - @Text(name = "Item 4 Type", placeholder = "Item Type") - public static String ITEM_4_TYPE = "ANY"; - - @Number(name = "Item 4 Price", min = 1, max = 1000000000) - public static int ITEM_4_PRICE = 1; - - @Text(name = "Item 4 Tier", placeholder = "Item Tier") - public static String ITEM_4_TIER = "ANY"; - - @Text(name = "Item 5 Name", placeholder = "Item Name") - public static String ITEM_5_NAME = " "; - - @Text(name = "Item 5 Type", placeholder = "Item Type") - public static String ITEM_5_TYPE = "ANY"; - - @Number(name = "Item 5 Price", min = 1, max = 1000000000) - public static int ITEM_5_PRICE = 1; - - @Text(name = "Item 5 Tier", placeholder = "Item Tier") - public static String ITEM_5_TIER = "ANY"; - - @Text(name = "Item 6 Name", placeholder = "Item Name") - public static String ITEM_6_NAME = " "; - - @Text(name = "Item 6 Type", placeholder = "Item Type") - public static String ITEM_6_TYPE = "ANY"; - - @Number(name = "Item 6 Price", min = 1, max = 1000000000) - public static int ITEM_6_PRICE = 1; - - @Text(name = "Item 6 Tier", placeholder = "Item Tier") - public static String ITEM_6_TIER = "ANY"; - - @Text(name = "Item 7 Name", placeholder = "Item Name") - public static String ITEM_7_NAME = " "; - - @Text(name = "Item 7 Type", placeholder = "Item Type") - public static String ITEM_7_TYPE = "ANY"; - - @Number(name = "Item 7 Price", min = 1, max = 1000000000) - public static int ITEM_7_PRICE = 1; - - @Text(name = "Item 7 Tier", placeholder = "Item Tier") - public static String ITEM_7_TIER = "ANY"; - - @Text(name = "Item 8 Name", placeholder = "Item Name") - public static String ITEM_8_NAME = " "; - - @Text(name = "Item 8 Type", placeholder = "Item Type") - public static String ITEM_8_TYPE = "ANY"; - - @Number(name = "Item 8 Price", min = 1, max = 1000000000) - public static int ITEM_8_PRICE = 1; - - @Text(name = "Item 8 Tier", placeholder = "Item Tier") - public static String ITEM_8_TIER = "ANY"; - - @Text(name = "Item 9 Name", placeholder = "Item Name") - public static String ITEM_9_NAME = " "; - - @Text(name = "Item 9 Type", placeholder = "Item Type") - public static String ITEM_9_TYPE = "ANY"; - - @Number(name = "Item 9 Price", min = 1, max = 1000000000) - public static int ITEM_9_PRICE = 1; - - @Text(name = "Item 9 Tier", placeholder = "Item Tier") - public static String ITEM_9_TIER = "ANY"; - - @Text(name = "Item 10 Name", placeholder = "Item Name") - public static String ITEM_10_NAME = " "; - - @Text(name = "Item 10 Type", placeholder = "Item Type") - public static String ITEM_10_TYPE = "ANY"; - - @Number(name = "Item 10 Price", min = 1, max = 1000000000) - public static int ITEM_10_PRICE = 1; - - @Text(name = "Item 10 Tier", placeholder = "Item Tier") - public static String ITEM_10_TIER = "ANY"; - -} diff --git a/src/main/java/me/night0721/lilase/features/flip/Flipper.java b/src/main/java/me/night0721/lilase/features/flipper/Flipper.java similarity index 99% rename from src/main/java/me/night0721/lilase/features/flip/Flipper.java rename to src/main/java/me/night0721/lilase/features/flipper/Flipper.java index 9931e9c..712741f 100644 --- a/src/main/java/me/night0721/lilase/features/flip/Flipper.java +++ b/src/main/java/me/night0721/lilase/features/flipper/Flipper.java @@ -1,4 +1,4 @@ -package me.night0721.lilase.features.flip; +package me.night0721.lilase.features.flipper; import com.google.gson.JsonObject; import com.google.gson.JsonParser; diff --git a/src/main/java/me/night0721/lilase/features/flip/FlipperState.java b/src/main/java/me/night0721/lilase/features/flipper/FlipperState.java similarity index 69% rename from src/main/java/me/night0721/lilase/features/flip/FlipperState.java rename to src/main/java/me/night0721/lilase/features/flipper/FlipperState.java index 6c69133..4f6af72 100644 --- a/src/main/java/me/night0721/lilase/features/flip/FlipperState.java +++ b/src/main/java/me/night0721/lilase/features/flipper/FlipperState.java @@ -1,4 +1,4 @@ -package me.night0721.lilase.features.flip; +package me.night0721.lilase.features.flipper; public enum FlipperState { WALKING_TO_FIRST_POINT, WALKING_INTO_AUCTION_HOUSE, BUYING, START, NONE diff --git a/src/main/java/me/night0721/lilase/features/ah/AuctionHouse.java b/src/main/java/me/night0721/lilase/features/sniper/AuctionHouse.java similarity index 96% rename from src/main/java/me/night0721/lilase/features/ah/AuctionHouse.java rename to src/main/java/me/night0721/lilase/features/sniper/AuctionHouse.java index 7c672ee..90f9970 100644 --- a/src/main/java/me/night0721/lilase/features/ah/AuctionHouse.java +++ b/src/main/java/me/night0721/lilase/features/sniper/AuctionHouse.java @@ -1,15 +1,13 @@ -package me.night0721.lilase.features.ah; +package me.night0721.lilase.features.sniper; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import me.night0721.lilase.Lilase; -import me.night0721.lilase.features.flip.Flipper; -import me.night0721.lilase.features.flip.FlipperState; -import me.night0721.lilase.utils.ConfigUtils; -import me.night0721.lilase.utils.DiscordWebhook; -import me.night0721.lilase.utils.UngrabUtils; -import me.night0721.lilase.utils.Utils; +import me.night0721.lilase.config.ConfigUtils; +import me.night0721.lilase.features.flipper.Flipper; +import me.night0721.lilase.features.flipper.FlipperState; +import me.night0721.lilase.utils.*; import javax.net.ssl.HttpsURLConnection; import java.awt.*; @@ -26,7 +24,7 @@ import java.util.Locale; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import static me.night0721.lilase.features.ah.AHConfig.SEND_MESSAGE; +import static me.night0721.lilase.config.AHConfig.SEND_MESSAGE; public class AuctionHouse { private Boolean open = false; @@ -83,8 +81,9 @@ public class AuctionHouse { public void getItem() throws IOException { if (!open) return; - if (!Utils.checkInHub()) { - Utils.sendMessage("Not in hub, stopping"); + Utils.checkFooter(); + if (Utils.cookie != EffectState.ON && !Utils.checkInHub()) { + Utils.sendMessage("You have no cookie but you are not in hub, stopping"); open = false; return; } diff --git a/src/main/java/me/night0721/lilase/utils/CurrentColor.java b/src/main/java/me/night0721/lilase/utils/CurrentColor.java index 07c15b2..5dc2056 100644 --- a/src/main/java/me/night0721/lilase/utils/CurrentColor.java +++ b/src/main/java/me/night0721/lilase/utils/CurrentColor.java @@ -1,7 +1,5 @@ package me.night0721.lilase.utils; -import me.night0721.lilase.features.ah.AHConfig; - import java.awt.*; /** @@ -12,7 +10,7 @@ import java.awt.*; public class CurrentColor { public static int currentColorGet(float offset) { - switch (AHConfig.CRABBY_COLOR) { + switch (0) { case 0: return getRainbow(-4000, (int) (offset * 3000)).getRGB(); case 1: @@ -33,10 +31,10 @@ public class CurrentColor { return Color.WHITE.getRGB(); } - public static float getFloatValue(float offset, int color){ + public static float getFloatValue(float offset, int color) { Color tempC = new Color(CurrentColor.currentColorGet(offset)); int tempC_ = 0; - switch (color){ + switch (color) { case 0: tempC_ = tempC.getRed(); break; @@ -50,19 +48,20 @@ public class CurrentColor { } return (((float) tempC_) / 255F); } + /** * Following method has been circulating in Minecraft Hacking Community for a while, making it impossible to trace original author. */ protected static Color getGradientOffset(final Color color1, final Color color2, double offset) { if (offset > 1.0) { final double left = offset % 1.0; - final int off = (int)offset; + final int off = (int) offset; offset = ((off % 2 == 0) ? left : (1.0 - left)); } final double inverse_percent = 1.0 - offset; - final int redPart = (int)(color1.getRed() * inverse_percent + color2.getRed() * offset); - final int greenPart = (int)(color1.getGreen() * inverse_percent + color2.getGreen() * offset); - final int bluePart = (int)(color1.getBlue() * inverse_percent + color2.getBlue() * offset); + final int redPart = (int) (color1.getRed() * inverse_percent + color2.getRed() * offset); + final int greenPart = (int) (color1.getGreen() * inverse_percent + color2.getGreen() * offset); + final int bluePart = (int) (color1.getBlue() * inverse_percent + color2.getBlue() * offset); return new Color(redPart, greenPart, bluePart); } diff --git a/src/main/java/me/night0721/lilase/utils/EffectState.java b/src/main/java/me/night0721/lilase/utils/EffectState.java new file mode 100644 index 0000000..2e493eb --- /dev/null +++ b/src/main/java/me/night0721/lilase/utils/EffectState.java @@ -0,0 +1,5 @@ +package me.night0721.lilase.utils; + +public enum EffectState { + ON, OFF, INDETERMINABLE +} diff --git a/src/main/java/me/night0721/lilase/utils/Utils.java b/src/main/java/me/night0721/lilase/utils/Utils.java index 2908001..c3c71dd 100644 --- a/src/main/java/me/night0721/lilase/utils/Utils.java +++ b/src/main/java/me/night0721/lilase/utils/Utils.java @@ -93,6 +93,3 @@ public class Utils { } } -enum EffectState { - ON, OFF, INDETERMINABLE -}