From 4dfb561632e5cd880c7476a478f22eeefa269a4b Mon Sep 17 00:00:00 2001 From: Max Weber Date: Mon, 5 Oct 2020 21:32:49 -0600 Subject: [PATCH] timetracking: correctly bound Catherby patches --- .../timetracking/farming/FarmingTracker.java | 8 +++-- .../timetracking/farming/FarmingWorld.java | 29 ++++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java index c45a9309d7..16ae00c136 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTracker.java @@ -92,9 +92,13 @@ public class FarmingTracker } } - FarmingRegion region = farmingWorld.getRegions().get(location.getRegionID()); - if (region != null && region.isInBounds(location)) + for (FarmingRegion region : farmingWorld.getRegions().get(location.getRegionID())) { + if (!region.isInBounds(location)) + { + continue; + } + // Write config with new varbits // timetracking...=: String group = TimeTrackingConfig.CONFIG_GROUP + "." + client.getUsername() + "." + region.getRegionID(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java index 51a08292fb..6ba40c76b1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java @@ -25,6 +25,9 @@ */ package net.runelite.client.plugins.timetracking.farming; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; import com.google.inject.Singleton; import java.util.Collections; import java.util.Comparator; @@ -42,7 +45,7 @@ import net.runelite.client.plugins.timetracking.Tab; class FarmingWorld { @Getter - private Map regions = new HashMap<>(); + private Multimap regions = HashMultimap.create(); @Getter private Map> tabs = new HashMap<>(); @@ -83,10 +86,28 @@ class FarmingWorld new FarmingPatch("South", Varbits.FARMING_4772, PatchImplementation.ALLOTMENT), new FarmingPatch("", Varbits.FARMING_4773, PatchImplementation.FLOWER), new FarmingPatch("", Varbits.FARMING_4774, PatchImplementation.HERB) - )); + ) + { + @Override + public boolean isInBounds(WorldPoint loc) + { + if (loc.getY() < 3456) + { + return loc.getX() <= 2840 && loc.getY() > 3440; + } + return true; + } + }, 11061, 11318, 11317); add(new FarmingRegion("Catherby", 11317, new FarmingPatch("", Varbits.FARMING_4771, PatchImplementation.FRUIT_TREE) - )); + ) + { + @Override + public boolean isInBounds(WorldPoint loc) + { + return loc.getX() > 2840 || loc.getY() < 3440; + } + }); add(new FarmingRegion("Champions' Guild", 12596, new FarmingPatch("", Varbits.FARMING_4771, PatchImplementation.BUSH) @@ -255,7 +276,7 @@ class FarmingWorld )); // Finalize - this.regions = Collections.unmodifiableMap(regions); + this.regions = Multimaps.unmodifiableMultimap(regions); Map> umtabs = new TreeMap<>(); for (Map.Entry> e : tabs.entrySet()) {