"Marks the field, argument, input field or enum value as deprecated" directive @deprecated( "The reason for the deprecation" reason: String = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION "Directs the executor to include this field or fragment only when the `if` argument is true" directive @include( "Included when true." if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT "Indicates an Input Object is a OneOf Input Object." directive @oneOf on INPUT_OBJECT "Directs the executor to skip this field or fragment when the `if` argument is true." directive @skip( "Skipped when true." if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT "Exposes a URL that specifies the behaviour of this scalar." directive @specifiedBy( "The URL that specifies the behaviour of this scalar." url: String! ) on SCALAR "Internal directive used to generate some documentation elements." directive @spectaql(options: [SpectaQLOption]) on QUERY | MUTATION | SUBSCRIPTION | FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | VARIABLE_DEFINITION | SCHEMA | SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION "Collections data." type Collections { "Returns the ownership state of all cosmetics, optionally in a category and/or collection." cosmetics(category: CosmeticCategory = null, collection: String = null @spectaql(options : {key : "example", value : "Oceanic"})): [CosmeticOwnershipState!]! "The player's earned currency." currency: Currency! "A list of cosmetics the player currently has equipped." equippedCosmetics: [Cosmetic!]! "Returns the record data for all fish, optionally in a specific collection." fish(collection: String = null @spectaql(options : [{key : "example", value : "Dark Grove"}])): [FishRecord!]! } "A cosmetic." type Cosmetic { "If this cosmetic can be donated for Royal Reputation." canBeDonated: Boolean! "The category the cosmetic is in." category: CosmeticCategory! "The collection this cosmetic is in." collection: String! "If this cosmetic can be colored using Chroma Packs." colorable: Boolean! """ If this cosmetic awards bonus trophies. This will be `null` if the cosmetic does not award any trophies. """ isBonusTrophies: Boolean "The name of the cosmetic." name: String! "The rarity of the cosmetic." rarity: Rarity! """ The number of trophies this cosmetic awards. Note that this does not include the completion bonus for applying all Chroma Packs to the cosmetic. """ trophies: Int! } "The ownership state of a cosmetic." type CosmeticOwnershipState { "The Chroma Packs that have applied to this cosmetic, if it is colorable." chromaPacks: [String!] @spectaql(options : {key : "example", value : "[\"oceanic\", \"natural\"]"}) "The cosmetic in question." cosmetic: Cosmetic! "The number of Royal Reputation donations that have been made of this cosmetic, if it can be donated." donationsMade: Int "If the cosmetic is owned." owned: Boolean! } "A Crown Level and associated trophy data." type CrownLevel { "The zero-indexed evolution of the crown." evolution: Int! @deprecated(reason : "Use levelData instead.") "The fishing level data." fishingLevelData: LevelData! "The overall Crown Level." level: Int! @deprecated(reason : "Use levelData instead.") "The overall level data." levelData: LevelData! "The next level that the crown will evolve, if any." nextEvolutionLevel: Int @deprecated(reason : "Use levelData instead.") "The progress the player is making towards their next level, if any." nextLevelProgress: ProgressionData @deprecated(reason : "Use levelData instead.") "The amount of trophies the player has." trophies(category: TrophyCategory = null): TrophyData! } "A player's earned currency." type Currency { "The number of A.N.G.L.R. Tokens the player currently has." anglrTokens: Int! "The number of coins the player currently has." coins: Int! "The number of gems the player currently has." gems: Int! @deprecated(reason : "Deprecated for removal. Will always return 0 until removal.") "The number of material dust the player currently has." materialDust: Int! "The number of Royal Reputation the player currently has." royalReputation: Int! "The number of silver the player currently has." silver: Int! } "A fish." type Fish { "The time this fish can be caught." catchTime: FishCatchTime! "The climate this fish can be found in." climate: String! @spectaql(options : [{key : "example", value : "Temperate"}]) "The collection this fish can be found in." collection: String! @spectaql(options : [{key : "example", value : "Dark Grove"}]) "If this fish is elusive." elusive: Boolean! "The name of the fish." name: String! @spectaql(options : [{key : "example", value : "Midnight Tang"}]) "The rarity of the fish." rarity: Rarity! "The number of trophies awarded for catching this fish in a given weight." trophies(weight: FishWeight!): Int } "Data about a caught fish weight." type FishCaughtWeight { "When the player first caught this weight." firstCaught: Date! "The weight that was caught." weight: FishWeight! } "A record of the weight of fish that have been caught." type FishRecord { "The fish this record is for." fish: Fish! "A list of data about the weights that have been caught." weights: [FishCaughtWeight!]! } "An entry in a leaderboard." type LeaderboardEntry { """ The player who has this entry. This will be `null` if the player does not have the statistics enabled for the API. However, for Crown Level or Trophy count leaderboards, the player will not be `null`. """ player: Player "The rank for this entry." rank: Int! "The value for this entry." value: Int! } "Data relating to a level." type LevelData { "The zero-indexed evolution of the level." evolution: Int! "The overall level." level: Int! "The next level that will have an evolution, if any." nextEvolutionLevel: Int "The progress the player is making towards their next level, if any." nextLevelProgress: ProgressionData } "The status of a player's MCC+ subscription." type MCCPlusStatus { "The current evolution index for MCC+ icon." evolution: Int! "The instant they started their current streak." streakStart: DateTime! "The total number of days they have been subscribed for." totalDays: Int! } "A player's status within a party." type Party { "Whether the player is in an active party." active: Boolean! "The leader of the party, populated if the party exists." leader: Player "The members of the party, populated if the party exists." members: [Player!] } "A player who has logged in to MCC Island." type Player { """ Collections data for the player. This method is conditional on the player having the in-game "collections" API setting enabled. """ collections: Collections "The player's Crown Level and associated trophy data." crownLevel: CrownLevel! "The player's MCC+ status, if currently subscribed." mccPlusStatus: MCCPlusStatus "The ranks which the user is associated with, if any." ranks: [Rank!]! """ Social data for the player. This method is conditional on the player having the in-game "social" API setting enabled. """ social: Social """ Statistics data for the player. This method is conditional on the player having the in-game "statistics" API setting enabled. """ statistics: Statistics """ The current status of the player. This method is conditional on the player having the in-game "status" API setting enabled. """ status: Status "The player's username, if known." username: String @spectaql(options : [{key : "example", value : "LadyAgnes"}]) "The player's Minecraft UUID in dashed format." uuid: UUID! } "Data for types that track some form of progression." type ProgressionData { "The amount that can be obtained." obtainable: Int! "The amount obtained." obtained: Int! } "Available queries." type Query { """ Returns when this rotation will next rotate. If the rotation is due the exact time this method is called, this method will return the next time that it will rotate. """ nextRotation(rotation: Rotation!): DateTime! "Given a UUID, returns a Player if they have logged in to MCC Island." player(uuid: UUID!): Player """ Given a username, returns a Player object if they have logged into MCC Island with this username. This method may not return a player that has this username if they have not logged in recently enough for us to verify that the player still owns this username. """ playerByUsername(username: String! @spectaql(options : [{key : "example", value : "LadyAgnes"}])): Player """ Returns when this rotation last rotated. If the rotation is due the exact time this method is called, this method will return the current time. """ previousRotation(rotation: Rotation!): DateTime! "Returns a statistic by it's name." statistic(key: String! @spectaql(options : [{key : "example", value : "games_played"}])): Statistic "Returns a list of all known statistics." statistics: [Statistic!]! } "A server on the network." type Server { "The game associated with this server, if any." associatedGame: Game @spectaql(options : [{key : "example", value : "PARKOUR_WARRIOR"}]) "The category of the server." category: ServerCategory! @spectaql(options : [{key : "example", value : "GAME"}]) "The sub-type of the server that can hold additional information about the server." subType: String! @spectaql(options : [{key : "example", value : "daily"}]) } "Social data." type Social { "A list of the player's friends." friends: [Player!]! "The player's party." party: Party! } "A statistic." type Statistic { "If this statistic generates leaderboards." forLeaderboard: Boolean! "The key of the statistic." key: String! @spectaql(options : [{key : "example", value : "games_played"}]) """ Returns the leaderboard for this statistic in a given rotation. If this statistic does not generate leaderboards, or the statistic is not tracked for the provided rotation, this will return `null`. """ leaderboard(amount: Int! = 10, rotation: Rotation! = LIFETIME): [LeaderboardEntry!] """ The rotations for which this statistic is tracked. These are the rotations that can be used to generate leaderboards or fetch rotation values. Note that the `YEARLY` rotation never generates leaderboards, even if it is returned in this list. """ rotations: [Rotation!]! } "The result of fetching a value of a statistic." type StatisticValueResult { "The statistic." statistic: Statistic! "The value." value: Int! } "Statistic-related data." type Statistics { """ Returns the value stored for the given statistic in a rotation. The returned number will be `null` if the statistic does not track in the provided rotation, or if the statistic doesn't exist. """ rotationValue(rotation: Rotation! = LIFETIME, statisticKey: String! @spectaql(options : [{key : "example", value : "games_played"}])): Int } "A player's current status." type Status { "When the player first joined MCC Island, if known." firstJoin: DateTime "When the player most recently joined MCC Island, if known." lastJoin: DateTime "Whether the player is online or not." online: Boolean! "The player's current server, populated if they are online." server: Server } "Data on the amount of trophies a user has/can have." type TrophyData { "The amount of bonus trophies." bonus: Int! "The maximum amount of trophies that can be obtained." obtainable: Int! "The amount of trophies obtained." obtained: Int! } "Different categories of cosmetics." enum CosmeticCategory { "Accessories." ACCESSORY "Auras." AURA "Cloaks." CLOAK "Hair." HAIR "Hats." HAT "Fishing rods." ROD "Trails." TRAIL } "The time a fish can be caught in." enum FishCatchTime { "The fish can always be caught." ALWAYS "The fish can only be caught during daytime." DAY "The fish can only be caught during nighttime." NIGHT } """ The weight of a fish. Note that some weights are not used for crabs, or are only used for crabs. """ enum FishWeight { "Average." AVERAGE """ Colossal. This weight is only used for crabs. """ COLOSSAL """ Gargantuan. This weight is not used for crabs. """ GARGANTUAN "Large." LARGE """ Massive. This weight is not used for crabs. """ MASSIVE } "A game." enum Game { "Battle Box." BATTLE_BOX "Dynaball." DYNABALL "Hole in the Wall." HOLE_IN_THE_WALL "Parkour Warrior." PARKOUR_WARRIOR "Rocket Spleef." ROCKET_SPLEEF "Sky Battle." SKY_BATTLE "To Get To The Other Side (TGTTOS)." TGTTOS } "A rank." enum Rank { "The Champ rank." CHAMP "The Contestant rank." CONTESTANT "The Creator rank." CREATOR "The Grand Champ rank." GRAND_CHAMP "The Grand Champ Royale rank." GRAND_CHAMP_ROYALE "The Moderator rank." MODERATOR "The Noxcrew rank." NOXCREW } "Different tiers of rarity." enum Rarity { "Common." COMMON "Epic." EPIC "Legendary." LEGENDARY "Mythic." MYTHIC "Rare." RARE "Uncommon." UNCOMMON } """ A rotation period. Each period resets at 10AM UTC. """ enum Rotation { "A daily rotation that resets." DAILY "A lifetime rotation; a rotation period used to indicate something never rotates." LIFETIME "A monthly rotation that resets on the first day of every month." MONTHLY "A weekly rotation that resets on Tuesdays." WEEKLY "A yearly rotation that resets on the first day of every year." YEARLY } "The category of a server." enum ServerCategory { "A game server." GAME "A limbo server." LIMBO "A lobby server." LOBBY "A queue server" QUEUE } "The categories for trophies." enum TrophyCategory { "Angler trophies." ANGLER "Skill trophies." SKILL "Style trophies." STYLE } "An RFC-3339 compliant Full Date Scalar" scalar Date @specifiedBy(url : "https://tools.ietf.org/html/rfc3339") @spectaql(options : [{key : "example", value : "1996-12-19"}]) "A slightly refined version of RFC-3339 compliant DateTime Scalar" scalar DateTime @specifiedBy(url : "https://scalars.graphql.org/andimarek/date-time.html") @spectaql(options : [{key : "example", value : "1996-12-19T16:39:57-08:00"}]) "A universally unique identifier compliant UUID Scalar" scalar UUID @specifiedBy(url : "https://tools.ietf.org/html/rfc4122") @spectaql(options : [{key : "example", value : "6a085b2c-19fb-4986-b453-231aa942bbec"}]) "Internal key/value pair for documentation options." input SpectaQLOption { key: String! value: String! }