From 7b9ec6bf2b5ee4815a1916fcf7853902b86a1042 Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sat, 19 Oct 2024 11:11:10 -0700 Subject: [PATCH 1/8] add returnee calendar manager to claim rewards --- .../darkbot/core/manager/FacadeManager.java | 6 +- .../darkbot/core/manager/GuiManager.java | 1 + .../darkbot/core/manager/ReturneeManager.java | 79 +++++++++++++++++++ .../facades/ReturneeCalendarProxy.java | 42 ++++++++++ .../objects/facades/ReturneeLoginProxy.java | 34 ++++++++ 5 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java create mode 100644 src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java create mode 100644 src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java diff --git a/src/main/java/com/github/manolo8/darkbot/core/manager/FacadeManager.java b/src/main/java/com/github/manolo8/darkbot/core/manager/FacadeManager.java index 6eb53d388..17006c49d 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/manager/FacadeManager.java +++ b/src/main/java/com/github/manolo8/darkbot/core/manager/FacadeManager.java @@ -22,8 +22,10 @@ import com.github.manolo8.darkbot.core.objects.facades.InventoryProxy; import com.github.manolo8.darkbot.core.objects.facades.LogMediator; import com.github.manolo8.darkbot.core.objects.facades.NpcEventProxy; -import com.github.manolo8.darkbot.core.objects.facades.SeassonPassMediator; import com.github.manolo8.darkbot.core.objects.facades.QuestProxy; +import com.github.manolo8.darkbot.core.objects.facades.ReturneeCalendarProxy; +import com.github.manolo8.darkbot.core.objects.facades.ReturneeLoginProxy; +import com.github.manolo8.darkbot.core.objects.facades.SeassonPassMediator; import com.github.manolo8.darkbot.core.objects.facades.SettingsProxy; import com.github.manolo8.darkbot.core.objects.facades.SlotBarsProxy; import com.github.manolo8.darkbot.core.objects.facades.SpaceMapWindowProxy; @@ -98,6 +100,8 @@ public FacadeManager(PluginAPI pluginApi) { registerProxy("QuestProxy", QuestProxy.class); registerMediator("diminish_quests", DiminishQuestMediator.class); registerMediator("seasonPass", SeassonPassMediator.class); + registerProxy("returnee_login_overview", ReturneeLoginProxy.class); + registerProxy("returnee_login_calendar", ReturneeCalendarProxy.class); npcEvents.put(EventType.GENERIC, this.npcEventProxy = registerProxy("npc_event", NpcEventProxy.class)); npcEvents.put(EventType.AGATUS, registerProxy("agatus_event", NpcEventProxy.class)); diff --git a/src/main/java/com/github/manolo8/darkbot/core/manager/GuiManager.java b/src/main/java/com/github/manolo8/darkbot/core/manager/GuiManager.java index fb9b16808..043fc74ab 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/manager/GuiManager.java +++ b/src/main/java/com/github/manolo8/darkbot/core/manager/GuiManager.java @@ -155,6 +155,7 @@ public GuiManager(Main main, PluginAPI pluginAPI, RepairManager repairManager) { register("popup_generic_icon_ok", DispatchIconOkGui.class); this.assembly = register("assembly"); + register("returnee_login", ReturneeManager.class); register("ggBuilder", GateSpinnerGui.class); register("diminish_quests", DiminishQuestGui.class); register("refinement_count"); diff --git a/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java new file mode 100644 index 000000000..c556d5d44 --- /dev/null +++ b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java @@ -0,0 +1,79 @@ +package com.github.manolo8.darkbot.core.manager; + +import com.github.manolo8.darkbot.core.objects.Gui; +import com.github.manolo8.darkbot.core.objects.facades.ReturneeCalendarProxy; +import com.github.manolo8.darkbot.core.objects.facades.ReturneeLoginProxy; +import eu.darkbot.api.managers.BotAPI; +import eu.darkbot.api.managers.ReturneeAPI; +import eu.darkbot.util.Timer; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +@RequiredArgsConstructor +public class ReturneeManager extends Gui implements ReturneeAPI { + private final ReturneeLoginProxy returneeLoginProxy; + private final ReturneeCalendarProxy returneeCalendarProxy; + private final BotAPI bot; + + private final Timer guiUsed = Timer.getRandom(19_000, 1000); + + @Override + public void update() { + super.update(); + // Last gui usage >20s ago, close gui + if (bot.isRunning() && guiUsed.isInactive()) { + this.show(false); + } + } + + @Override + public boolean show(boolean value) { + if (value) guiUsed.activate(); + return super.show(value); + } + + public boolean clickOverview() { + if (show(true)) { + this.click(320, 37); + return true; + } + return false; + } + + public boolean clickDailyLogin() { + if (show(true)) { + this.click(420, 37); + return true; + } + return false; + } + + public boolean clickClaim() { + if (show(true)) { + this.click(300, 410); + return true; + } + return false; + } + + @Override + public boolean isLoginClaimable() { + return returneeLoginProxy.isClaimable(); + } + + @Override + public List getLoginRewardList() { + return returneeLoginProxy.getRewardList(); + } + + @Override + public boolean isCalendarClaimable() { + return returneeCalendarProxy.isClaimable(); + } + + @Override + public List getCalendarRewardList() { + return returneeCalendarProxy.getCalendarList(); + } +} diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java new file mode 100644 index 000000000..4f1d1276e --- /dev/null +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java @@ -0,0 +1,42 @@ +package com.github.manolo8.darkbot.core.objects.facades; + +import com.github.manolo8.darkbot.core.itf.Updatable; +import com.github.manolo8.darkbot.core.objects.swf.FlashList; +import eu.darkbot.api.API; +import eu.darkbot.api.managers.ReturneeAPI; +import lombok.Getter; +import lombok.ToString; + +@Getter +public class ReturneeCalendarProxy extends Updatable implements API.Singleton { + private int daysClaimed = -1; + private boolean claimable = false; + private final FlashList calendarList = FlashList.ofVector(CalendarList::new); + + @Override + public void update() { + this.daysClaimed = readInt(0x30, 0x40); + this.claimable = readBoolean(0x30, 0x50, 0x20); + this.calendarList.update(readAtom(0x30, 0x58)); + } + + @Getter + @ToString + private static class CalendarList extends Auto implements ReturneeAPI.CalendarRewardList { + private String lootId; + private int amount; + private boolean claimed; + + @Override + public void update() { + this.amount = readInt(0x20); + this.lootId = readString(0x30); + this.claimed = readBoolean(0x2C); + } + + @Override + public boolean getClaimed() { + return claimed; + } + } +} diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java new file mode 100644 index 000000000..bc7ea2f39 --- /dev/null +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java @@ -0,0 +1,34 @@ +package com.github.manolo8.darkbot.core.objects.facades; + +import com.github.manolo8.darkbot.core.itf.Updatable; +import com.github.manolo8.darkbot.core.objects.swf.FlashList; +import eu.darkbot.api.API; +import eu.darkbot.api.managers.ReturneeAPI; +import lombok.Getter; +import lombok.ToString; + +@Getter +public class ReturneeLoginProxy extends Updatable implements API.Singleton{ + + private boolean claimable = false; + private final FlashList rewardList = FlashList.ofVector(RewardList::new); + + @Override + public void update() { + this.claimable = readBoolean(0x30, 0x40, 0x20); + this.rewardList.update(readAtom(0x30, 0x48)); + } + + @Getter + @ToString + private static class RewardList extends Auto implements ReturneeAPI.LoginRewardList { + private String lootId; + private double amount; + + @Override + public void update() { + this.amount = readDouble(0x70); + this.lootId = readString(0x48); + } + } +} From 5130753fe95fec3ee126b2eec5d01feb4e592600 Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:14:17 -0700 Subject: [PATCH 2/8] Update src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java Co-authored-by: Pablo Herrera --- .../darkbot/core/objects/facades/ReturneeCalendarProxy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java index 4f1d1276e..1214a1d44 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java @@ -11,7 +11,7 @@ public class ReturneeCalendarProxy extends Updatable implements API.Singleton { private int daysClaimed = -1; private boolean claimable = false; - private final FlashList calendarList = FlashList.ofVector(CalendarList::new); + private final FlashList calendarList = FlashList.ofVector(CalendarItem::new); @Override public void update() { From 16546c25e430dd7d0da3c1884619f269b05cc9de Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:15:03 -0700 Subject: [PATCH 3/8] Update ReturneeCalendarProxy.java --- .../darkbot/core/objects/facades/ReturneeCalendarProxy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java index 1214a1d44..c0339b79a 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java @@ -22,7 +22,7 @@ public void update() { @Getter @ToString - private static class CalendarList extends Auto implements ReturneeAPI.CalendarRewardList { + private static class CalendarItem extends Auto implements ReturneeAPI.CalendarRewardList { private String lootId; private int amount; private boolean claimed; From 28154035b4c986e4c9203518d64295fdb6a728de Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:15:49 -0700 Subject: [PATCH 4/8] Update ReturneeLoginProxy.java --- .../darkbot/core/objects/facades/ReturneeLoginProxy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java index bc7ea2f39..2c1d68a6c 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java @@ -11,7 +11,7 @@ public class ReturneeLoginProxy extends Updatable implements API.Singleton{ private boolean claimable = false; - private final FlashList rewardList = FlashList.ofVector(RewardList::new); + private final FlashList rewardList = FlashList.ofVector(Reward::new); @Override public void update() { @@ -21,7 +21,7 @@ public void update() { @Getter @ToString - private static class RewardList extends Auto implements ReturneeAPI.LoginRewardList { + private static class Reward extends Auto implements ReturneeAPI.LoginReward { private String lootId; private double amount; From f075f0352ea6e49940eea0e4f83f49e5446430ea Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:16:54 -0700 Subject: [PATCH 5/8] Update ReturneeManager.java --- .../github/manolo8/darkbot/core/manager/ReturneeManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java index c556d5d44..b1c617a20 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java +++ b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java @@ -63,7 +63,7 @@ public boolean isLoginClaimable() { } @Override - public List getLoginRewardList() { + public List getLoginRewardList() { return returneeLoginProxy.getRewardList(); } From 7d836b72aaf15ace9d6aad4a3d6691dfcb81a0eb Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:18:25 -0700 Subject: [PATCH 6/8] Update ReturneeManager.java --- .../github/manolo8/darkbot/core/manager/ReturneeManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java index b1c617a20..e45d9e1d8 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java +++ b/src/main/java/com/github/manolo8/darkbot/core/manager/ReturneeManager.java @@ -73,7 +73,7 @@ public boolean isCalendarClaimable() { } @Override - public List getCalendarRewardList() { + public List getCalendarRewardList() { return returneeCalendarProxy.getCalendarList(); } } From 666a3ef65f98dea7f135bd5e60c4ddf952b77dca Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:21:47 -0700 Subject: [PATCH 7/8] Update ReturneeCalendarProxy.java --- .../darkbot/core/objects/facades/ReturneeCalendarProxy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java index c0339b79a..8d5efcfc9 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeCalendarProxy.java @@ -11,7 +11,7 @@ public class ReturneeCalendarProxy extends Updatable implements API.Singleton { private int daysClaimed = -1; private boolean claimable = false; - private final FlashList calendarList = FlashList.ofVector(CalendarItem::new); + private final FlashList calendarRewardList = FlashList.ofVector(CalendarReward::new); @Override public void update() { @@ -22,7 +22,7 @@ public void update() { @Getter @ToString - private static class CalendarItem extends Auto implements ReturneeAPI.CalendarRewardList { + private static class CalendarReward extends Auto implements ReturneeAPI.CalendarReward { private String lootId; private int amount; private boolean claimed; From 27144de78190a16af578fe201d29c4a4e45d9d41 Mon Sep 17 00:00:00 2001 From: Anjesh Shrestha Date: Sun, 13 Apr 2025 01:23:27 -0700 Subject: [PATCH 8/8] Update ReturneeLoginProxy.java --- .../darkbot/core/objects/facades/ReturneeLoginProxy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java index 2c1d68a6c..34b384695 100644 --- a/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java +++ b/src/main/java/com/github/manolo8/darkbot/core/objects/facades/ReturneeLoginProxy.java @@ -11,7 +11,7 @@ public class ReturneeLoginProxy extends Updatable implements API.Singleton{ private boolean claimable = false; - private final FlashList rewardList = FlashList.ofVector(Reward::new); + private final FlashList loginRewardList = FlashList.ofVector(LoginReward::new); @Override public void update() { @@ -21,7 +21,7 @@ public void update() { @Getter @ToString - private static class Reward extends Auto implements ReturneeAPI.LoginReward { + private static class LoginReward extends Auto implements ReturneeAPI.LoginReward { private String lootId; private double amount;