ProjectAres/PGM/src/main/java/tc/oc/pgm/blitz/BlitzModule.java

61 lines
1.8 KiB
Java

package tc.oc.pgm.blitz;
import java.util.Collections;
import java.util.Set;
import java.util.logging.Logger;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TranslatableComponent;
import org.jdom2.Document;
import tc.oc.api.docs.virtual.MapDoc;
import tc.oc.pgm.map.MapModule;
import tc.oc.pgm.map.MapModuleContext;
import tc.oc.pgm.map.MapModuleFactory;
import tc.oc.pgm.xml.InvalidXMLException;
import javax.inject.Inject;
import javax.inject.Provider;
public class BlitzModule implements MapModule {
private final BlitzProperties properties;
public BlitzModule(BlitzProperties properties) {
this.properties = properties;
}
public boolean active() {
return !properties.empty();
}
@Override
public Set<MapDoc.Gamemode> getGamemodes(MapModuleContext context) {
return active() ? Collections.singleton(MapDoc.Gamemode.blitz) : Collections.emptySet();
}
@Override
public BaseComponent getGameName(MapModuleContext context) {
if(!active()) {
return null;
} else if(!properties.multipleLives()) {
return new TranslatableComponent("match.scoreboard.playersRemaining.title");
} else if(properties.teams.isEmpty()) {
return new TranslatableComponent("match.scoreboard.livesRemaining.title");
} else {
return new TranslatableComponent("match.scoreboard.blitz.title");
}
}
public static class Factory extends MapModuleFactory<BlitzModule> {
@Inject Provider<BlitzProperties> propertiesProvider;
@Override
public BlitzModule parse(MapModuleContext context, Logger logger, Document doc) throws InvalidXMLException {
return new BlitzModule(propertiesProvider.get());
}
}
}