package tc.oc.pgm.loot;
import org.bukkit.inventory.ItemStack;
import tc.oc.commons.core.inject.HybridManifest;
import tc.oc.pgm.compose.ComposableManifest;
import tc.oc.pgm.features.FeatureBinder;
import tc.oc.pgm.match.MatchScope;
import tc.oc.pgm.match.inject.MatchBinders;
import tc.oc.pgm.match.inject.MatchScoped;
import tc.oc.pgm.xml.parser.ParserBinders;
public class LootManifest extends HybridManifest implements MatchBinders, ParserBinders {
@Override
protected void configure() {
final FeatureBinder<Loot> loot = new FeatureBinder<>(binder(), Loot.class);
loot.installReflectiveParser();
loot.installRootParser();
final FeatureBinder<Filler> fill = new FeatureBinder<>(binder(), Filler.class);
fill.installReflectiveParser();
fill.installRootParser();
final FeatureBinder<Cache> cache = new FeatureBinder<>(binder(), Cache.class);
cache.installReflectiveParser();
cache.installRootParser();
install(new ComposableManifest<ItemStack>(){}); // Parser<Composition<ItemStack>>
bind(FillListener.class).in(MatchScoped.class);
matchListener(FillListener.class, MatchScope.LOADED);
}
}