63 lines
1.6 KiB
Java
63 lines
1.6 KiB
Java
package tc.oc.api.docs.virtual;
|
|
|
|
import java.nio.file.Path;
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.UUID;
|
|
import javax.annotation.Nonnull;
|
|
import javax.annotation.Nullable;
|
|
|
|
import net.md_5.bungee.api.ChatColor;
|
|
import tc.oc.api.annotations.Serialize;
|
|
import tc.oc.api.docs.SemanticVersion;
|
|
import tc.oc.api.model.ModelName;
|
|
|
|
@Serialize
|
|
@Nonnull
|
|
@ModelName("Map")
|
|
public interface MapDoc extends Model {
|
|
String slug();
|
|
String name();
|
|
@Nullable String url();
|
|
@Nullable Path path();
|
|
Collection<String> images();
|
|
SemanticVersion version();
|
|
int min_players();
|
|
int max_players();
|
|
String objective();
|
|
|
|
enum Phase {
|
|
DEVELOPMENT, PRODUCTION;
|
|
public static final Phase DEFAULT = PRODUCTION;
|
|
}
|
|
Phase phase();
|
|
|
|
enum Edition {
|
|
STANDARD, RANKED, TOURNAMENT;
|
|
public static final Edition DEFAULT = STANDARD;
|
|
}
|
|
Edition edition();
|
|
|
|
enum Genre { OBJECTIVES, DEATHMATCH, OTHER }
|
|
Genre genre();
|
|
|
|
enum Gamemode { tdm, ctw, ctf, dtc, dtm, ad, koth, blitz, rage, scorebox, arcade, gs, ffa, mixed, skywars, survival }
|
|
Set<Gamemode> gamemode();
|
|
|
|
List<Team> teams();
|
|
|
|
Collection<UUID> author_uuids();
|
|
Collection<UUID> contributor_uuids();
|
|
|
|
@Serialize
|
|
interface Team extends Model {
|
|
@Nonnull String name();
|
|
|
|
// Fields below shouldn't be nullable, but data is missing in some old match documents
|
|
@Nullable Integer min_players();
|
|
@Nullable Integer max_players();
|
|
@Nullable ChatColor color();
|
|
}
|
|
}
|