@@ -13,6 +13,7 @@ public class MCP {
1313 public static EnumMode mode = null ;
1414 public static EnumMode helpCommand = null ;
1515 public static MCPLogger logger ;
16+ public static MCPConfig config ;
1617 public static Scanner input ;
1718 private static final Ansi logo =
1819 new Ansi ()
@@ -28,6 +29,7 @@ public static void main(String[] args) {
2829 SelfCommandPrompt .runWithCMD (SelfCommandPrompt .suggestAppId (), "RetroMCP " + VERSION , args );
2930 AnsiConsole .systemInstall ();
3031 logger = new MCPLogger ();
32+ config = new MCPConfig ();
3133 input = new Scanner (System .in );
3234 logger .log ("Operating system: " + System .getProperty ("os.name" ));
3335 logger .log ("RetroMCP " + VERSION );
@@ -58,6 +60,9 @@ public static void main(String[] args) {
5860 }
5961 setParams (parsedArgs , mode );
6062 if (taskMode ) {
63+ if (mode == EnumMode .startclient || mode == EnumMode .startserver ) {
64+ config .runArgs = args ;
65+ }
6166 start ();
6267 } else if (mode == EnumMode .help ) {
6368 if (helpCommand == null ) {
@@ -88,7 +93,7 @@ public static void main(String[] args) {
8893 logger .println ("Unknown command. Type 'help' for list of available commands" );
8994 }
9095 args = new String []{};
91- MCPConfig .resetConfig ();
96+ config .resetConfig ();
9297 if (!startedWithNoParams || mode == EnumMode .exit )
9398 exit = true ;
9499 mode = null ;
@@ -106,7 +111,7 @@ private static void setParams(Map<String, Object> parsedArgs, EnumMode mode) {
106111 switch (name ) {
107112 case "client" :
108113 case "server" :
109- MCPConfig .setParameter (name , true );
114+ config .setParameter (name , true );
110115 break ;
111116 }
112117 if (mode == EnumMode .help ) {
@@ -116,20 +121,20 @@ private static void setParams(Map<String, Object> parsedArgs, EnumMode mode) {
116121 catch (IllegalArgumentException ignored ) {}
117122 }
118123 if (mode == EnumMode .setup ) {
119- MCPConfig .setParameter ("setupversion" , name );
124+ config .setParameter ("setupversion" , name );
120125 }
121126 }
122127 else if (value instanceof Integer ) {
123- MCPConfig .setParameter (name , (Integer )value );
128+ config .setParameter (name , (Integer )value );
124129 }
125130 else if (value instanceof Boolean ) {
126- MCPConfig .setParameter (name , (Boolean )value );
131+ config .setParameter (name , (Boolean )value );
127132 }
128133 else if (value instanceof String ) {
129- MCPConfig .setParameter (name , (String )value );
134+ config .setParameter (name , (String )value );
130135 }
131136 else if (value instanceof String []) {
132- MCPConfig .setParameter (name , (String [])value );
137+ config .setParameter (name , (String [])value );
133138 }
134139 }
135140 }
@@ -159,7 +164,7 @@ private static void start() {
159164 for (String error : errors ) {
160165 logger .info (" " + error .replace ("\n " , "\n " ));
161166 }
162- if (MCPConfig .debug ) e .printStackTrace ();
167+ if (config .debug ) e .printStackTrace ();
163168 else {
164169 String msg = e .getMessage ();
165170 if (msg != null ) {
@@ -186,11 +191,11 @@ private static void processTask(TaskInfo task) throws Exception {
186191
187192 private static void processMultitasks (TaskInfo task ) throws Exception {
188193 List <SideThread > threads = new ArrayList <>();
189- if (MCPConfig .onlySide < 0 || MCPConfig .onlySide == SideThread .CLIENT ) {
194+ if (config .onlySide < 0 || config .onlySide == SideThread .CLIENT ) {
190195 threads .add (new SideThread (SideThread .CLIENT , task .newTask (SideThread .CLIENT )));
191196 }
192197
193- if (MCPConfig .onlySide < 0 || MCPConfig .onlySide == SideThread .SERVER ) {
198+ if (config .onlySide < 0 || config .onlySide == SideThread .SERVER ) {
194199 threads .add (new SideThread (SideThread .SERVER , task .newTask (SideThread .SERVER )));
195200 }
196201 logger .newLine ();
0 commit comments