package tc.oc.commons.core.plugin;
import com.google.inject.Binder;
import tc.oc.commons.core.inject.FacetBinder;
import tc.oc.minecraft.api.event.ListenerBinder;
/**
* Binds {@link PluginFacet}s into a Set<PluginFacet>
*
* final PluginFacetBinder facets = new PluginFacetBinder();
* facets.addBinding().to(Something.class);
* facets.addBinding().to(Whatever.class);
*
* etc.
*/
public class PluginFacetBinder extends FacetBinder<PluginFacet> {
private final ListenerBinder listeners;
public PluginFacetBinder(Binder binder) {
super(binder);
this.listeners = new ListenerBinder(binder);
}
@Override
public void add(Class<? extends PluginFacet> facetType) {
super.add(facetType);
listeners.bindListener().to(facetType);
}
}