public static void buttonMapHelper(String key, String[] inputSettings) throws InterruptedException { for (String s : inputSettings) { if (s.contains(key)) { // Error handling for improper values (too much/little text) if (s.length() == key.length() || (s.length() > key.length() + 2)) { System.out.println("[ERROR]: Improper value specified for " + key + ". " + s); return; } int i = Integer.parseInt(Character.toString(s.charAt(s.length() - 1))); boolean success = false; // Handle negative and positive. Works with no '+' sign as well if (s.charAt(s.length() - 2) == '-') { if (i <= buttonMap.get(key).lowerLimit) { AutoSetupM.type("A", AutoSetupM.controllerConfigScreenLatency); for (int j = 0; j < i; j++) { AutoSetupM.type("LEFT", AutoSetupM.controllerConfigScreenLatency); } success = true; } else { System.out.println("[ERROR]: Value is out of range for " + key + ". At -" + i); } } else { if (i <= buttonMap.get(key).upperLimit) { AutoSetupM.type("A", AutoSetupM.controllerConfigScreenLatency); for (int j = 0; j < i; j++) { AutoSetupM.type("RIGHT", AutoSetupM.controllerConfigScreenLatency); } success = true; } else { System.out.println("[ERROR]: Value is out of range for " + key + ". At " + i); } } if (success) { AutoSetupM.type("A", AutoSetupM.controllerConfigScreenLatency); } break; } } }
/** * Setup for controller from the input name screen * * @throws InterruptedException */ public static void setupController(boolean tapJump, String input) throws InterruptedException { System.out.println("[INFO]: Setting up controller..."); // If default settings, just return to input name screen if (tapJump && input == null) { AutoSetupM.type("B", 1300); return; } else { AutoSetupM.type("A", 600 + AutoSetupM.loadingScreenLatency); // 1350 if (AutoSetupM.waitForButtonConfig) { Thread.sleep(3000); } System.out.println("Now disable tap jump"); } // Turn off Tap Jump if (!tapJump) { AutoSetupM.type("LEFT", AutoSetupM.controllerConfigScreenLatency); AutoSetupM.type("A", AutoSetupM.controllerConfigScreenLatency); if (input == null) { AutoSetupM.type("UP", 150); AutoSetupM.type("A", 200); // Close "Configuration Saved" pop-up AutoSetupM.type("A", 140); // Leaves controller select (returns to input name screen) AutoSetupM.type("B", 1950); return; } else { AutoSetupM.type("RIGHT", AutoSetupM.controllerConfigScreenLatency); } } String[] inputSettings = input.split(" "); // L Button buttonMapHelper("L", inputSettings); AutoSetupM.type("DOWN", AutoSetupM.controllerConfigScreenLatency); // D-Pad Up buttonMapHelper("DU", inputSettings); AutoSetupM.type("DOWN", AutoSetupM.controllerConfigScreenLatency); // D-Pad Side buttonMapHelper("DS", inputSettings); AutoSetupM.type("DOWN", AutoSetupM.controllerConfigScreenLatency); // D-Pad Down buttonMapHelper("DD", inputSettings); AutoSetupM.type("RIGHT", AutoSetupM.controllerConfigScreenLatency); // C-Stick buttonMapHelper("C", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // B Button buttonMapHelper("B", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // A Button buttonMapHelper("A", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // X Button buttonMapHelper("X", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // Y Button buttonMapHelper("Y", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // Z Button buttonMapHelper("Z", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); // R Button buttonMapHelper("R", inputSettings); AutoSetupM.type("UP", AutoSetupM.controllerConfigScreenLatency); AutoSetupM.type("RIGHT", AutoSetupM.controllerConfigScreenLatency); AutoSetupM.type("A", 200 + AutoSetupM.controllerConfigScreenLatency); // Close "Configuration Saved" pop-up AutoSetupM.type("A", 140); // Leaves controller select (returns to input name screen) System.out.println("[INFO]: Controller configured."); AutoSetupM.type("B", 2920); }