I find there is a difference between multiple recommend and just one recommend (similar to unrecommend).
Using the save function before or after the BuildListener may result in a difference in the final Status.
multiple recommend
Quickbuild.getInstance(BuildManager.class).save(build);
for (BuildListener listener: PluginManager.instance.getExtensions(BuildListener.class))
listener.buildRecommended();
just one recommend
for (BuildListener listener: PluginManager.instance.getExtensions(BuildListener.class))
listener.buildRecommended();
Quickbuild.getInstance(BuildManager.class).save(build);
Please correct logic and synchronized in all function