61 lines
1.8 KiB
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());
|
|
}
|
|
|
|
}
|
|
|
|
}
|