aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-08-10 06:24:28 -0400
committerGitHub <noreply@github.com>2024-08-10 12:24:28 +0200
commita08fa7cd7c3354aeefb85495517a35f9a4716bac (patch)
tree3e275a1237b181724c15805424d96bb1c49c3783 /src/main/java
parent8cfd59bbf6c71d1de6ed35ad36b2abd801eddb71 (diff)
downloadSkyblocker-a08fa7cd7c3354aeefb85495517a35f9a4716bac.tar.gz
Skyblocker-a08fa7cd7c3354aeefb85495517a35f9a4716bac.tar.bz2
Skyblocker-a08fa7cd7c3354aeefb85495517a35f9a4716bac.zip
Fix visitor helper readding visitors after you accept/deny them (#907)
Fixes #903
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
index 7dd332e0..0e81c575 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java
@@ -47,17 +47,20 @@ public class VisitorHelper {
private static final int ITEM_INDENT = 20;
private static final int LINE_SPACING = 3;
+ private static boolean shouldProcessVisitorItems = true;
+
public static void init() {
ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
String title = screen.getTitle().getString();
if (SkyblockerConfigManager.get().farming.garden.visitorHelper && screen instanceof HandledScreen<?> handledScreen && (Utils.getLocationRaw().equals("garden") && !title.contains("Logbook") || title.startsWith("Bazaar"))) {
ScreenEvents.afterRender(screen).register((screen_, context, mouseX, mouseY, delta) -> renderScreen(title, context, client.textRenderer, handledScreen.getScreenHandler(), mouseX, mouseY));
+ ScreenEvents.remove(screen).register(screen_ -> shouldProcessVisitorItems = true);
}
});
}
public static void renderScreen(String title, DrawContext context, TextRenderer textRenderer, ScreenHandler handler, int mouseX, int mouseY) {
- if (handler.getCursorStack() == ItemStack.EMPTY) processVisitorItem(title, handler);
+ if (handler.getCursorStack() == ItemStack.EMPTY && shouldProcessVisitorItems) processVisitorItem(title, handler);
drawScreenItems(context, textRenderer, mouseX, mouseY);
}
@@ -94,8 +97,9 @@ public class VisitorHelper {
}
public static void onSlotClick(Slot slot, int slotId, String title, ItemStack visitorHeadStack) {
- if (slotId == 29 || slotId == 13 || slotId == 33) {
+ if ((slotId == 29 || slotId == 13 || slotId == 33) && slot.hasStack() && ItemUtils.getLoreLineIf(slot.getStack(), s -> s.equals("Click to give!") || s.equals("Click to refuse!")) != null) {
itemMap.remove(new ObjectObjectImmutablePair<>(title, getTextureOrNull(visitorHeadStack)));
+ shouldProcessVisitorItems = false;
}
}