public JInputControllerDevice(ControllerConfig config) { this.config = config; ControllerEnvironment env = ControllerEnvironment.getDefaultEnvironment(); // Unfortunately, no existing implementation env.addControllerListener(new ControllerListener() { @Override public void controllerRemoved(ControllerEvent ev) { Controller controller = ev.getController(); logger.info("Controller disconnected: " + controller.getName()); removeController(controller); } @Override public void controllerAdded(ControllerEvent ev) { Controller controller = ev.getController(); logger.info("Controller connected: " + controller.getName()); addController(controller); } }); for (Controller c : env.getControllers()) { addController(c); } }