public void Initialize(DalamudPluginInterface pluginInterface) { Interface = pluginInterface ?? throw new ArgumentNullException(nameof(pluginInterface), "DalamudPluginInterface cannot be null"); Configuration = pluginInterface.GetPluginConfig() as YesAlreadyConfiguration ?? new YesAlreadyConfiguration(); Interface.CommandManager.AddHandler(Command, new CommandInfo(OnChatCommand) { HelpMessage = "Open a window to edit various settings.", ShowInHelp = true }); Address = new PluginAddressResolver(); Address.Setup(pluginInterface.TargetModuleScanner); PluginUi = new PluginUI(this); Click.Initialize(pluginInterface); AddonSelectYesNoOnSetupHook = new(Address.AddonSelectYesNoOnSetupAddress, new OnSetupDelegate(AddonSelectYesNoOnSetupDetour), this); AddonSelectYesNoOnSetupHook.Enable(); AddonSalvageDialogOnSetupHook = new(Address.AddonSalvageDialongOnSetupAddress, new OnSetupDelegate(AddonSalvageDialogOnSetupDetour), this); AddonSalvageDialogOnSetupHook.Enable(); AddonMaterializeDialogOnSetupHook = new(Address.AddonMaterializeDialongOnSetupAddress, new OnSetupDelegate(AddonMaterializeDialogOnSetupDetour), this); AddonMaterializeDialogOnSetupHook.Enable(); AddonItemInspectionResultOnSetupHook = new(Address.AddonItemInspectionResultOnSetupAddress, new OnSetupDelegate(AddonItemInspectionResultOnSetupDetour), this); AddonItemInspectionResultOnSetupHook.Enable(); AddonRetainerTaskAskOnSetupHook = new(Address.AddonRetainerTaskAskOnSetupAddress, new OnSetupDelegate(AddonRetainerTaskAskOnSetupDetour), this); AddonRetainerTaskAskOnSetupHook.Enable(); AddonRetainerTaskResultOnSetupHook = new(Address.AddonRetainerTaskResultOnSetupAddress, new OnSetupDelegate(AddonRetainerTaskResultOnSetupDetour), this); AddonRetainerTaskResultOnSetupHook.Enable(); }