Skip to content

Commit 52a4fec

Browse files
Merge pull request #510 from FFXIV-CombatReborn/Fix-Diadem
Diadem Weather
2 parents cee3d0b + 6e3b369 commit 52a4fec

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

GatherBuddy/AutoGather/AutoGather.cs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,10 @@ public void DoAutoGather()
491491
{
492492
GatherBuddy.Log.Information("[AutoGather] Inventory full with collectables - starting turn-in");
493493
AutoStatus = "Turning in collectables...";
494-
GatherBuddy.CollectableManager?.Start();
494+
if (IsGathering)
495+
CloseGatheringAddons();
496+
else
497+
GatherBuddy.CollectableManager?.Start();
495498
}
496499
else
497500
{
@@ -742,17 +745,25 @@ public void DoAutoGather()
742745
var currentWeather = EnhancedCurrentWeather.GetCurrentWeatherId();
743746
var isUmbralWeather = UmbralNodes.IsUmbralWeather(currentWeather);
744747
var wasUmbralWeather = UmbralNodes.IsUmbralWeather(_lastUmbralWeather);
745-
var weatherChanged = currentWeather != _lastUmbralWeather && _lastUmbralWeather != 0;
748+
var weatherChanged = currentWeather != _lastUmbralWeather;
749+
750+
if (_lastUmbralWeather == 0)
751+
{
752+
_lastUmbralWeather = currentWeather;
753+
weatherChanged = false;
754+
}
746755

747756
var hasUmbralItems = HasUmbralItemsInActiveList();
748757
var hasNormalDiademItems = _activeItemList.Any(target => target.Gatherable != null &&
749758
!UmbralNodes.UmbralNodeData.Any(entry => entry.ItemIds.Contains(target.Gatherable.ItemId)) &&
750759
target.Location.Territory.Id is 901 or 929 or 939);
751760

752-
var requiredUmbralWeathers = _activeItemList
753-
.Where(target => target.Gatherable != null &&
754-
UmbralNodes.UmbralNodeData.Any(entry => entry.ItemIds.Contains(target.Gatherable.ItemId)))
755-
.Select(target => UmbralNodes.GetUmbralItemInfo(target.Gatherable.ItemId)?.Weather)
761+
var umbralItemsInListManager = GetActiveItemsNeedingGathering()
762+
.Where(item => UmbralNodes.UmbralNodeData.Any(entry => entry.ItemIds.Contains(item.Item.ItemId)))
763+
.ToList();
764+
765+
var requiredUmbralWeathers = umbralItemsInListManager
766+
.Select(item => UmbralNodes.GetUmbralItemInfo(item.Item.ItemId)?.Weather)
756767
.Where(w => w.HasValue)
757768
.Select(w => (uint)w.Value)
758769
.Distinct()

0 commit comments

Comments
 (0)