1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-16 10:19:47 +02:00
vcmi/config/schemas/lobbyProtocol/activeGameRooms.json

151 lines
3.8 KiB
JSON

{
"type" : "object",
"$schema" : "http://json-schema.org/draft-06/schema",
"title" : "Lobby protocol: activeGameRooms",
"description" : "Sent by server to initialized or update list of game rooms",
"required" : [ "type", "gameRooms" ],
"additionalProperties" : false,
"properties" : {
"type" :
{
"type" : "string",
"const" : "activeGameRooms"
},
"gameRooms" :
{
"type" : "array",
"description" : "List of currently available game rooms",
"items" :
{
"type" : "object",
"additionalProperties" : false,
"required" : [ "gameRoomID", "hostAccountID", "hostAccountDisplayName", "description", "participants", "playerLimit", "status", "ageSeconds", "mods", "version" ],
"properties" : {
"gameRoomID" :
{
"type" : "string",
"description" : "Unique ID of game room"
},
"hostAccountID" :
{
"type" : "string",
"description" : "ID of account that created and hosts this game room"
},
"hostAccountDisplayName" :
{
"type" : "string",
"description" : "Display name of account that created and hosts this game room"
},
"description" :
{
"type" : "string",
"description" : "Auto-generated description of this room"
},
"participants" :
{
"type" : "array",
"description" : "List of accounts in the room, including host",
"items" :
{
"type" : "object",
"additionalProperties" : false,
"required" : [ "accountID", "displayName" ],
"properties" : {
"accountID" :
{
"type" : "string",
"description" : "Unique ID of an account"
},
"displayName" :
{
"type" : "string",
"description" : "Display name of an account"
}
}
}
},
"invited" :
{
"type" : "array",
"description" : "List of accounts that were invited to this room",
"items" :
{
"type" : "object",
"additionalProperties" : false,
"required" : [ "accountID", "displayName" ],
"properties" : {
"accountID" :
{
"type" : "string",
"description" : "Unique ID of an account"
},
"displayName" :
{
"type" : "string",
"description" : "Display name of an account"
}
}
}
},
"mods" :
{
"type" : "array",
"description" : "List of gameplay-affecting mods active on server",
"items" : {
"type" : "object",
"additionalProperties" : false,
"required" : [ "modId", "name", "version" ],
"properties" : {
"modId" :
{
"type" : "string",
"description" : "Unique identifier of the mod"
},
"name" :
{
"type" : "string",
"description" : "Human-readable name of the mod"
},
"parent" :
{
"type" : "string",
"description" : "Unique ID of parent mod, only for submods"
},
"version" :
{
"type" : "string",
"description" : "Version of mod, as specified in mod config"
}
}
}
},
"status" :
{
"type" : "string",
"enum" : [ "idle", "public", "private", "busy", "cancelled", "closed" ],
"description" : "Current status of game room"
},
"playerLimit" :
{
"type" : "number",
"minimum" : 1,
"maximum" : 8,
"description" : "Maximum number of players that can join this room, including host"
},
"version" :
{
"type" : "string",
"description" : "Version of match server, e.g. 1.5.0"
},
"ageSeconds" :
{
"type" : "number",
"description" : "Age of this room in seconds. For example, 10 means that this room was created 10 seconds ago"
}
}
}
}
}
}