package tc.oc.pgm.match;
import javax.inject.Inject;
import tc.oc.pgm.match.inject.MatchScoped;
import tc.oc.pgm.module.ModuleContext;
public class MatchModuleContext extends ModuleContext<MatchModule, MatchScoped> {
private final Match match;
@Inject MatchModuleContext(Match match) {
this.match = match;
}
@Override
public void load() {
asCurrentScope(() -> {
super.load();
loadedModules().forEach(matchModule -> {
// It's important that we register events immediately after calling load(),
// because modules that listen for new players or parties will expect
// them to either be present at load time, or to generate an event that the
// module can catch later.
matchModule.load();
match.registerEventsAndRepeatables(matchModule);
});
});
}
}