diff --git a/ActionTimelineEx/Configurations/Settings.cs b/ActionTimelineEx/Configurations/Settings.cs index f989c20..36d4e76 100644 --- a/ActionTimelineEx/Configurations/Settings.cs +++ b/ActionTimelineEx/Configurations/Settings.cs @@ -109,10 +109,13 @@ public string RotationName [JsonIgnore] internal RotationsSetting? EditSetting { get; set; } = null; + private static readonly RotationsSetting EmptyHolder = new (); public RotationsSetting GetSetting(uint territoryId) { if (!_rotationHelpers.TryGetValue(territoryId, out var dict)) _rotationHelpers[territoryId] = dict = []; + if(!Player.Available) return EmptyHolder; + var job = Player.Job; if (!dict.TryGetValue(job, out var result)) dict[job] = result = new(); diff --git a/ActionTimelineEx/Helpers/RotationHelper.cs b/ActionTimelineEx/Helpers/RotationHelper.cs index 6cc5a6f..5ade97c 100644 --- a/ActionTimelineEx/Helpers/RotationHelper.cs +++ b/ActionTimelineEx/Helpers/RotationHelper.cs @@ -93,13 +93,12 @@ public static void Dispose() private static void ClientState_TerritoryChanged(ushort obj) { - Clear(); - var territory = Svc.Data.GetExcelSheet()?.GetRow(obj); if (IsTerritoryTypeValid(territory)) { RotationHelperItem._territoryId = obj; } + Clear(); } private static void DutyState_DutyWiped(object? sender, ushort e) diff --git a/ActionTimelineEx/Localization/Localization.json b/ActionTimelineEx/Localization/Localization.json index 497a68f..fbfe8e1 100644 --- a/ActionTimelineEx/Localization/Localization.json +++ b/ActionTimelineEx/Localization/Localization.json @@ -1,5 +1,5 @@ { - "ActionTimelineEx.DescriptionAboutCommand": "Opens the ActionTimelineEx configuration window.", + "ActionTimelineEx.DescriptionAboutCommand": "Opens the ActionTimelineEx configuration window.\n `/atle reset` to reset the rotation helper count.", "ActionTimeline.SettingsName.Record": "Record Data", "ActionTimeline.SettingsName.ShowTimelineOnlyInDuty": "Show Only In Duty", "ActionTimeline.SettingsName.ShowTimelineOnlyInCombat": "Show Only In Combat", diff --git a/ActionTimelineEx/Plugin.cs b/ActionTimelineEx/Plugin.cs index 5e0621b..6344a13 100644 --- a/ActionTimelineEx/Plugin.cs +++ b/ActionTimelineEx/Plugin.cs @@ -68,7 +68,7 @@ public class Plugin : IDalamudPlugin public Plugin(IDalamudPluginInterface pluginInterface) { ECommonsMain.Init(pluginInterface, this); - XIVConfigUIMain.Init(pluginInterface, "/atle", "Opens the ActionTimelineEx configuration window.", PluginCommand, typeof(Settings), typeof(DrawingSettings), typeof(GroupItem), typeof(UiString)); + XIVConfigUIMain.Init(pluginInterface, "/atle", "Opens the ActionTimelineEx configuration window.\n `/atle reset` to reset the rotation helper count.", PluginCommand, typeof(Settings), typeof(DrawingSettings), typeof(GroupItem), typeof(UiString)); XIVDrawerMain.Init(pluginInterface, "ActionTimelineExOverlay"); Svc.PluginInterface.UiBuilder.Draw += Draw; @@ -109,8 +109,13 @@ public void Dispose() GC.SuppressFinalize(this); } - public static void PluginCommand(string _) + public static void PluginCommand(string str) { + if (str == "reset") + { + RotationHelper.Clear(); + return; + } _settingsWindow.Toggle(); }