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

61 lines
1.8 KiB
Java
Raw Normal View History

2017-01-30 01:43:34 +01:00
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;
2017-04-01 01:20:27 +02:00
import tc.oc.pgm.map.MapModuleFactory;
2017-01-30 01:43:34 +01:00
import tc.oc.pgm.xml.InvalidXMLException;
2017-04-01 01:20:27 +02:00
import javax.inject.Inject;
import javax.inject.Provider;
2017-01-30 01:43:34 +01:00
2017-04-01 01:20:27 +02:00
public class BlitzModule implements MapModule {
2017-01-30 01:43:34 +01:00
2017-04-01 01:20:27 +02:00
private final BlitzProperties properties;
2017-01-30 01:43:34 +01:00
2017-04-01 01:20:27 +02:00
public BlitzModule(BlitzProperties properties) {
this.properties = properties;
}
public boolean active() {
return !properties.empty();
2017-01-30 01:43:34 +01:00
}
@Override
public Set<MapDoc.Gamemode> getGamemodes(MapModuleContext context) {
2017-04-01 01:20:27 +02:00
return active() ? Collections.singleton(MapDoc.Gamemode.blitz) : Collections.emptySet();
2017-01-30 01:43:34 +01:00
}
@Override
public BaseComponent getGameName(MapModuleContext context) {
2017-04-01 01:20:27 +02:00
if(!active()) {
return null;
} else if(!properties.multipleLives()) {
2017-01-30 01:43:34 +01:00
return new TranslatableComponent("match.scoreboard.playersRemaining.title");
2017-04-01 01:20:27 +02:00
} else if(properties.teams.isEmpty()) {
2017-01-30 01:43:34 +01:00
return new TranslatableComponent("match.scoreboard.livesRemaining.title");
} else {
return new TranslatableComponent("match.scoreboard.blitz.title");
}
}
2017-04-01 01:20:27 +02:00
public static class Factory extends MapModuleFactory<BlitzModule> {
2017-01-30 01:43:34 +01:00
2017-04-01 01:20:27 +02:00
@Inject Provider<BlitzProperties> propertiesProvider;
2017-01-30 01:43:34 +01:00
2017-04-01 01:20:27 +02:00
@Override
public BlitzModule parse(MapModuleContext context, Logger logger, Document doc) throws InvalidXMLException {
return new BlitzModule(propertiesProvider.get());
2017-01-30 01:43:34 +01:00
}
}
2017-04-01 01:20:27 +02:00
2017-01-30 01:43:34 +01:00
}