using Dalamud.Plugin.Services;
using Questionable.Model;
using Questionable.Windows;
+using Questionable.Windows.QuestComponents;
namespace Questionable.Controller;
private readonly IChatGui _chatGui;
private readonly QuestController _questController;
private readonly MovementController _movementController;
+ private readonly QuickAccessButtonsComponent _quickAccessButtonsComponent;
private readonly QuestRegistry _questRegistry;
private readonly ConfigWindow _configWindow;
private readonly DebugOverlay _debugOverlay;
private readonly ITargetManager _targetManager;
private readonly GameFunctions _gameFunctions;
- public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController,
- MovementController movementController, QuestRegistry questRegistry,
- ConfigWindow configWindow, DebugOverlay debugOverlay, QuestWindow questWindow,
- QuestSelectionWindow questSelectionWindow, ITargetManager targetManager, GameFunctions gameFunctions)
+ public CommandHandler(
+ ICommandManager commandManager,
+ IChatGui chatGui,
+ QuestController questController,
+ MovementController movementController,
+ QuickAccessButtonsComponent quickAccessButtonsComponent,
+ QuestRegistry questRegistry,
+ ConfigWindow configWindow,
+ DebugOverlay debugOverlay,
+ QuestWindow questWindow,
+ QuestSelectionWindow questSelectionWindow,
+ ITargetManager targetManager,
+ GameFunctions gameFunctions)
{
_commandManager = commandManager;
_chatGui = chatGui;
_questController = questController;
_movementController = movementController;
+ _quickAccessButtonsComponent = quickAccessButtonsComponent;
_questRegistry = questRegistry;
_configWindow = configWindow;
_debugOverlay = debugOverlay;
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand)
{
- HelpMessage = "Opens the Questing window"
+ HelpMessage = string.Join($"{Environment.NewLine}\t",
+ "Opens the Questing window",
+ "/qst config - opens the configuration window",
+ "/qst start - starts doing quests",
+ "/qst stop - stops doing quests",
+ "/qst reload - reload all quest data",
+ "/qst which - shows all quests starting with your selected target",
+ "/qst zone - shows all quests starting in the current zone (only includes quests with a known quest path, and currently visible unaccepted quests)")
});
}
break;
case "start":
+ _questWindow.IsOpen = true;
_questController.ExecuteNextStep(true);
break;
_questController.Stop("Stop command");
break;
+ case "reload":
+ _quickAccessButtonsComponent.Reload();
+ break;
+
case "do":
ConfigureDebugOverlay(parts.Skip(1).ToArray());
break;
_questSelectionWindow.OpenForCurrentZone();
break;
- default:
+ case "":
_questWindow.Toggle();
break;
+
+ default:
+ _chatGui.PrintError($"Unknown subcommand {parts[0]}", "Questionable");
+ break;
}
}