Skip to content

Commit

Permalink
Use world UID as key for last trigger map
Browse files Browse the repository at this point in the history
  • Loading branch information
froobynooby committed Dec 22, 2024
1 parent 01c11b1 commit ff0a23d
Showing 1 changed file with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class TriggerCheckTask implements Runnable {
private final FarmController farmController;
private final ExecutorService executorService;
private final Map<World, Map<Trigger, Set<ActionProfile>>> worldTriggerProfilesMap;
private final Map<World, Map<Trigger, Integer>> worldLastTriggerCount = new HashMap<>();
private final Map<UUID, Map<Trigger, Integer>> worldLastTriggerCount = new HashMap<>();

public TriggerCheckTask(FarmControl farmControl, FarmController farmController, Map<World, Map<Trigger, Set<ActionProfile>>> worldTriggerProfilesMap) {
this.farmControl = farmControl;
Expand All @@ -38,7 +38,7 @@ public TriggerCheckTask(FarmControl farmControl, FarmController farmController,
public void run() {
CycleTracker cycleTracker = farmController.getCycleHistoryManager().startCycleTracker(worldTriggerProfilesMap.keySet());
for (World world : worldTriggerProfilesMap.keySet()) {
worldLastTriggerCount.putIfAbsent(world, new HashMap<>());
worldLastTriggerCount.putIfAbsent(world.getUID(), new HashMap<>());
Map<Trigger, Set<ActionProfile>> triggerProfilesMap = worldTriggerProfilesMap.get(world);
Map<Trigger, Set<ActionProfile>> profilesToRun = new HashMap<>();
Map<Trigger, UntriggerStrategy> untriggerStrategyMap = new HashMap<>();
Expand All @@ -49,14 +49,14 @@ public void run() {
if (triggerStatus == Trigger.TriggerStatus.TRIGGERED) {
triggeredTriggers.add(trigger);
profilesToRun.computeIfAbsent(trigger, t -> new HashSet<>()).addAll(triggerProfilesMap.get(trigger));
worldLastTriggerCount.get(world).put(trigger, 0);
worldLastTriggerCount.get(world.getUID()).put(trigger, 0);
} else if (triggerStatus == Trigger.TriggerStatus.UNTRIGGERED) {
untriggerStrategyMap.put(trigger, trigger.getUntriggerStrategy(world));
worldLastTriggerCount.get(world).compute(trigger, (t, v) -> v == null ? 1 : (v + 1));
worldLastTriggerCount.get(world.getUID()).compute(trigger, (t, v) -> v == null ? 1 : (v + 1));
}
}

untriggerStrategyMap.entrySet().removeIf(entry -> worldLastTriggerCount.get(world).getOrDefault(entry.getKey(), 0) <= entry.getValue().getMinimumCyclesBeforeUndo());
untriggerStrategyMap.entrySet().removeIf(entry -> worldLastTriggerCount.get(world.getUID()).getOrDefault(entry.getKey(), 0) <= entry.getValue().getMinimumCyclesBeforeUndo());
CompletableFuture<List<SnapshotEntity>> completableFuture = CompletableFuture.completedFuture(null);
if (!profilesToRun.isEmpty() || !untriggerStrategyMap.isEmpty()) {
completableFuture = farmControl.getHookManager().getEntityGetterHook().getSnapshotEntities(world, FarmController.ENTITY_CLASSES);
Expand Down

0 comments on commit ff0a23d

Please sign in to comment.