1- using ECommons . ImGuiMethods ;
1+ using AutoDuty . Helpers ;
22using Dalamud . Bindings . ImGui ;
3+ using ECommons . ImGuiMethods ;
34using System . Diagnostics ;
45
56namespace AutoDuty . Windows
67{
8+ using Dalamud . Interface . Utility . Raii ;
9+ using global ::AutoDuty . IPC ;
10+ using static Dalamud . Interface . Utility . Raii . ImRaii ;
11+
712 internal static class InfoTab
813 {
914 static string infoUrl = "https://docs.google.com/spreadsheets/d/151RlpqRcCpiD_VbQn6Duf-u-S71EP7d0mx3j1PDNoNA" ;
1015 static string gitIssueUrl = "https://github.com/ffxivcode/AutoDuty/issues" ;
1116 static string punishDiscordUrl = "https://discord.com/channels/1001823907193552978/1236757595738476725" ;
12- static string ffxivcodeDiscordUrl = "https://discord.com/channels/1241050921732014090/1273374407653462017" ;
17+
1318 private static Configuration Configuration = Plugin . Configuration ;
1419
1520 public static void Draw ( )
@@ -34,9 +39,77 @@ public static void Draw()
3439 ImGui . SetCursorPosX ( ( ImGui . GetContentRegionAvail ( ) . X - ImGui . CalcTextSize ( "Punish Discord" ) . X ) / 2 ) ;
3540 if ( ImGui . Button ( "Punish Discord" ) )
3641 Process . Start ( "explorer.exe" , punishDiscordUrl ) ;
37- ImGui . SetCursorPosX ( ( ImGui . GetContentRegionAvail ( ) . X - ImGui . CalcTextSize ( "FFXIVCode Discord" ) . X ) / 2 ) ;
38- if ( ImGui . Button ( "FFXIVCode Discord" ) )
39- Process . Start ( "explorer.exe" , ffxivcodeDiscordUrl ) ;
42+
43+ ImGui . NewLine ( ) ;
44+
45+ int id = 0 ;
46+
47+ void PluginInstallLine ( ExternalPlugin plugin , string message )
48+ {
49+ bool isReady = plugin == ExternalPlugin . BossMod ?
50+ BossMod_IPCSubscriber . IsEnabled :
51+ IPCSubscriber_Common . IsReady ( plugin . GetExternalPluginData ( ) . name ) ;
52+
53+ if ( ! isReady )
54+ if ( ImGui . Button ( $ "Install##InstallExternalPlugin_{ plugin } _{ id ++ } ") )
55+ PluginInstaller . InstallPlugin ( plugin ) ;
56+
57+ ImGui . NextColumn ( ) ;
58+ ImGui . AlignTextToFramePadding ( ) ;
59+ ImGui . TextColored ( isReady ? EzColor . Green : EzColor . Red , plugin . GetExternalPluginName ( ) ) ;
60+
61+ ImGui . NextColumn ( ) ;
62+ ImGui . AlignTextToFramePadding ( ) ;
63+ ImGui . Text ( message ) ;
64+ ImGui . NextColumn ( ) ;
65+ }
66+
67+ ImGui . SetCursorPosX ( ( ImGui . GetContentRegionAvail ( ) . X - ImGui . CalcTextSize ( "Required Plugins" ) . X ) / 2 ) ;
68+ ImGui . Text ( "Required Plugins" ) ;
69+
70+ ImGui . Columns ( 3 , "PluginInstallerRequired" , false ) ;
71+ ImGui . SetColumnWidth ( 0 , 60 ) ;
72+ ImGui . SetColumnWidth ( 1 , 100 ) ;
73+
74+ PluginInstallLine ( ExternalPlugin . BossMod , "handles boss fights for you" ) ;
75+ PluginInstallLine ( ExternalPlugin . vnav , "can move you around" ) ;
76+
77+ ImGui . Columns ( 1 ) ;
78+ ImGui . NewLine ( ) ;
79+ ImGui . SetCursorPosX ( ( ImGui . GetContentRegionAvail ( ) . X - ImGui . CalcTextSize ( "Combat Plugins" ) . X ) / 2 ) ;
80+ ImGui . Text ( "Combat Plugins" ) ;
81+
82+ ImGui . Indent ( 65f ) ;
83+ ImGui . TextColored ( EzColor . Cyan , "Hotly debated, pick your favorite. You can configure it in the config" ) ;
84+ ImGui . Unindent ( 65f ) ;
85+
86+ ImGui . Columns ( 3 , "PluginInstallerCombat" , false ) ;
87+ ImGui . SetColumnWidth ( 0 , 60 ) ;
88+ ImGui . SetColumnWidth ( 1 , 100 ) ;
89+
90+ PluginInstallLine ( ExternalPlugin . BossMod , "has integrated rotations" ) ;
91+ PluginInstallLine ( ExternalPlugin . WrathCombo , "Puni.sh's dedicated rotation plugin" ) ;
92+ PluginInstallLine ( ExternalPlugin . RotationSolverReborn , "Reborn's rotation plugin" ) ;
93+
94+ ImGui . Columns ( 1 ) ;
95+ ImGui . NewLine ( ) ;
96+ ImGui . SetCursorPosX ( ( ImGui . GetContentRegionAvail ( ) . X - ImGui . CalcTextSize ( "Recommended Plugins" ) . X ) / 2 ) ;
97+ ImGui . Text ( "Recommended Plugins" ) ;
98+ ImGui . NewLine ( ) ;
99+ ImGui . Columns ( 3 , "PluginInstallerRecommended" , false ) ;
100+ ImGui . SetColumnWidth ( 0 , 60 ) ;
101+ ImGui . SetColumnWidth ( 1 , 100 ) ;
102+
103+ PluginInstallLine ( ExternalPlugin . AntiAFK , "keeps you from being marked as afk" ) ;
104+ PluginInstallLine ( ExternalPlugin . AutoRetainer , "can be triggered, does GC delivery and discarding" ) ;
105+ PluginInstallLine ( ExternalPlugin . Avarice , "is read for positionals" ) ;
106+ PluginInstallLine ( ExternalPlugin . Lifestream , "incredibly extensive teleporting" ) ;
107+ PluginInstallLine ( ExternalPlugin . Pandora , "chest looting + tankstance" ) ;
108+ PluginInstallLine ( ExternalPlugin . Gearsetter , "recommend items to equip" ) ;
109+ PluginInstallLine ( ExternalPlugin . Stylist , "recommend items to equip" ) ;
110+
111+
112+ ImGui . Columns ( 1 ) ;
40113 }
41114 }
42115}
0 commit comments