如何在jinput库中将ControllerListener添加到控制器。
我知道ControllerListener类是一个接口,并且在ControllerEnvironment中有一种添加侦听器的方法,但是即使我什么也没做,我该如何运行它?

最佳答案

尚无可触发ControllerListener方法的插件。创建者可能不会有任何插件,因为该项目已经很长时间没有更新,而最近的更新只是为了消除Windows 10未知的通知。

当前,您唯一的解决方案是:


控制器的poll方法返回一个布尔值。如果此布尔值
为假,则删除控制器。
编写自己的插件或修改现有插件以触发方法
在ControllerListener界面中
每隔几秒钟重建一次环境,并检查是否存在
新控制器阵列与旧控制器阵列的差异。


对于最后一个解决方案,仅调用ControllerEnvironment.getDefaultEnvironment()。getControllers()是不够的。您必须再次调用插件构造函数。由于大多数插件类都在软件包可见性上,因此您可能必须编辑原始源代码以将其公开。 DirectAndRawEnvironmentPlugin已经有一个公共构造函数。因此您可以执行以下操作:

ControllerEnvironment env = new DirectAndRawEnvironmentPlugin();
if(!env.isSupported()) {
    env = ControllerEnvironment.getDefaultEnvironment();
}

09-25 22:23