1- using System . Globalization ;
1+ using System . Collections . Generic ;
2+ using System . Globalization ;
3+ using System . Linq ;
24using AutoHook . Configurations ;
35using AutoHook . IPC ;
46using AutoHook . Resources . Localization ;
@@ -12,7 +14,6 @@ namespace AutoHook;
1214
1315public class AutoHook : IDalamudPlugin
1416{
15-
1617 /*
1718 todo: autofood (not yet)
1819 todo: Add Guides
@@ -24,7 +25,18 @@ public class AutoHook : IDalamudPlugin
2425 private const string CmdAhOn = "/ahon" ;
2526 private const string CmdAhOff = "/ahoff" ;
2627 private const string CmdAhtg = "/ahtg" ;
27-
28+ private const string CmdAhPreset = "/ahpreset" ;
29+
30+ private static readonly Dictionary < string , string > CommandHelp = new ( )
31+ {
32+ { CmdAhOff , UIStrings . Disables_AutoHook } ,
33+ { CmdAhOn , UIStrings . Enables_AutoHook } ,
34+ { CmdAhCfg , UIStrings . Opens_Config_Window } ,
35+ { CmdAh , UIStrings . Opens_Config_Window } ,
36+ { CmdAhtg , UIStrings . Toggles_AutoHook_On_Off } ,
37+ { CmdAhPreset , UIStrings . Set_preset_command }
38+ } ;
39+
2840 private static PluginUi _pluginUi = null ! ;
2941
3042 private static AutoGig _autoGig = null ! ;
@@ -50,37 +62,15 @@ public AutoHook(DalamudPluginInterface pluginInterface)
5062 UIStrings . Culture = new CultureInfo ( Service . Configuration . CurrentLanguage ) ;
5163 _pluginUi = new PluginUi ( ) ;
5264 _autoGig = new AutoGig ( ) ;
53-
54- Service . Commands . AddHandler ( CmdAhOff , new CommandInfo ( OnCommand )
55- {
56- HelpMessage = UIStrings . Disables_AutoHook
57- } ) ;
58-
59- Service . Commands . AddHandler ( CmdAhOn , new CommandInfo ( OnCommand )
60- {
61- HelpMessage = UIStrings . Enables_AutoHook
62- } ) ;
63-
64- Service . Commands . AddHandler ( CmdAhCfg , new CommandInfo ( OnCommand )
65- {
66- HelpMessage = UIStrings . Opens_Config_Window
67- } ) ;
6865
69- Service . Commands . AddHandler ( CmdAh , new CommandInfo ( OnCommand )
70- {
71- HelpMessage = UIStrings . Opens_Config_Window
72- } ) ;
73-
74- /*Service.Commands.AddHandler(CmdAh, new CommandInfo(OnCommand)
75- {
76- HelpMessage = UIStrings.Opens_Config_Window
77- });*/
78-
79- Service . Commands . AddHandler ( CmdAhtg , new CommandInfo ( OnCommand )
66+ foreach ( var ( command , help ) in CommandHelp )
8067 {
81- HelpMessage = UIStrings . Toggles_AutoHook_On_Off
82- } ) ;
83-
68+ Service . Commands . AddHandler ( command , new CommandInfo ( OnCommand )
69+ {
70+ HelpMessage = help
71+ } ) ;
72+ }
73+
8474 _hookManager = new HookingManager ( ) ;
8575
8676#if ( DEBUG )
@@ -112,7 +102,24 @@ private static void OnCommand(string command, string args)
112102 Service . Chat . Print ( UIStrings . AutoHook_Enabled ) ;
113103 Service . Configuration . PluginEnabled = true ;
114104 break ;
105+ case CmdAhPreset :
106+ SetPreset ( args ) ;
107+ break ;
108+ }
109+ }
110+
111+ private static void SetPreset ( string presetName )
112+ {
113+ var preset = Service . Configuration . HookPresets . CustomPresets . FirstOrDefault ( x => x . PresetName == presetName ) ;
114+ if ( preset == null )
115+ {
116+ Service . Chat . Print ( UIStrings . Preset_not_found ) ;
117+ return ;
115118 }
119+
120+ Service . Configuration . HookPresets . SelectedPreset = preset ;
121+ Service . Chat . Print ( @$ "{ UIStrings . Preset_set_to_ } { preset . PresetName } ") ;
122+ Service . Save ( ) ;
116123 }
117124
118125 public void Dispose ( )
@@ -125,11 +132,11 @@ public void Dispose()
125132 Service . Save ( ) ;
126133 Service . PluginInterface . UiBuilder . Draw -= Service . WindowSystem . Draw ;
127134 Service . PluginInterface . UiBuilder . OpenConfigUi -= OnOpenConfigUi ;
128- Service . Commands . RemoveHandler ( CmdAh ) ;
129- Service . Commands . RemoveHandler ( CmdAhCfg ) ;
130- Service . Commands . RemoveHandler ( CmdAhOn ) ;
131- Service . Commands . RemoveHandler ( CmdAhOff ) ;
132- Service . Commands . RemoveHandler ( CmdAhtg ) ;
135+
136+ foreach ( var ( command , _ ) in CommandHelp )
137+ {
138+ Service . Commands . RemoveHandler ( command ) ;
139+ }
133140 }
134141
135142 private static void OnOpenConfigUi ( ) => _pluginUi . Toggle ( ) ;
0 commit comments