Version 2.02.18 of PAMGuard includes a more flexible plugin loader which can more easily be used with multiple different plugin types. This has been implemented in the AnalogDevicesManager to make it easy to incorporate new, and possible very platform specific, analog sensor inputs. This project can be used as an example of how to make your own AnalogDevicePlugin and also to understand how you can easily make plugins of other types for other modules.
To use this for other new plugin types, you need to define a new Interface that extends CommonPluginInterface with the new interface having a function to create whatever class will be used by PAMGuard with whatever arguments are needed in the call to it's constructor. You then add a PluginLoader in the constructor of the module that will use the plugin(s) and loop through any discovered plugin interfaces to create the required classes. Look in this project, and in AnalogDevicesManager for examples of how this all works.