diff --git a/generate_docs.py b/generate_docs.py new file mode 100644 index 0000000..3bcd084 --- /dev/null +++ b/generate_docs.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 +import re +import os +from pathlib import Path +from collections import defaultdict + +# Read the index.d.ts file +with open('/Users/serverbp/Documents/Luna/Development/ShyyTAUI/node_modules/moons-ta-client/dist/index.d.ts', 'r') as f: + content = f.read() + +# Define the output directory +output_dir = Path('/Users/serverbp/Documents/Luna/Development/ShyyTAUI/src/lib/taDocs') + +# Extract all enum definitions +enum_pattern = r'declare enum (\w+) \{([^}]+)\}' +enum_matches = re.finditer(enum_pattern, content, re.DOTALL) + +enums = {} +for match in enum_matches: + enum_name = match.group(1) + enum_body = match.group(2) + enums[enum_name] = enum_body.strip() + +# Extract all interface definitions +interface_pattern = r'interface (\w+) \{([^}]*(?:\{[^}]*\}[^}]*)*)\}' +interface_matches = re.finditer(interface_pattern, content, re.DOTALL) + +interfaces = {} +for match in interface_matches: + interface_name = match.group(1) + interface_body = match.group(2) + + # Skip $Type classes + if interface_name.endswith('$Type'): + continue + + interfaces[interface_name] = interface_body.strip() + +# Extract all types referenced in interfaces +referenced_types = defaultdict(set) + +def extract_types_from_interface(interface_name, body): + # Find all type references in format: type?: SomeType or type: SomeType or property: Type[] etc + # This regex captures type names (capitalized words, can have underscores) + type_pattern = r'(?::\s*|(?:Promise<))(\w+(?:_\w+)*)' + + for match in re.finditer(type_pattern, body): + type_name = match.group(1) + # Skip built-in types + if type_name not in ['string', 'number', 'boolean', 'any', 'void', 'never', 'unknown', 'object', 'Promise', 'IBinaryReader', 'IBinaryWriter', 'BinaryReadOptions', 'BinaryWriteOptions', 'PartialMessage', 'MessageType', 'Extract', 'Record', 'K']: + referenced_types[interface_name].add(type_name) + +for name, body in interfaces.items(): + extract_types_from_interface(name, body) + +# Function to extract the full definition from the file (with comments) +def get_full_definition(name, is_enum=False): + if is_enum: + pattern = f'((?://.*\n)*declare enum {re.escape(name)} \\{{.*?\\}})' + else: + pattern = f'((?://.*\n)*interface {re.escape(name)} \\{{(?:.*?)*?\\}})' + + match = re.search(pattern, content, re.DOTALL) + if match: + return match.group(1).strip() + return None + +# Create enum documentation files +for enum_name in sorted(enums.keys()): + full_def = get_full_definition(enum_name, is_enum=True) + if not full_def: + full_def = f"declare enum {enum_name} {{{enums[enum_name]}}}" + + # Extract referenced types from enum + refs = [] + for match in re.finditer(r'(\w+(?:_\w+)*)', full_def): + type_name = match.group(1) + if type_name in enums or type_name in interfaces: + refs.append(type_name) + + refs = list(set(refs)) + refs = [r for r in refs if r != enum_name] + refs.sort() + + # Create markdown content + md_content = f"# {enum_name}\n\n```ts\n{full_def}\n```\n" + + # Add references + if refs: + md_content += "\n## References\n" + for ref in refs: + if ref in enums: + md_content += f"- For `{ref}` please find documentation at [Enums -> {ref}](/documentation#Enums/5-{ref}).\n" + elif ref in interfaces: + md_content += f"- For `{ref}` please find documentation at [Models -> {ref}](/documentation#Models/4-{ref}).\n" + + # Write file + file_path = output_dir / f"5-{enum_name}.md" + with open(file_path, 'w') as f: + f.write(md_content) + print(f"✓ Created {file_path.name}") + +# Create interface documentation files +for interface_name in sorted(interfaces.keys()): + full_def = get_full_definition(interface_name, is_enum=False) + if not full_def: + full_def = f"interface {interface_name} {{{interfaces[interface_name]}}}" + + # Create markdown content + md_content = f"# {interface_name}\n\n```ts\n{full_def}\n```\n" + + # Add references + refs = list(referenced_types.get(interface_name, set())) + refs.sort() + + if refs: + md_content += "\n## References\n" + for ref in refs: + if ref in enums: + md_content += f"- For `{ref}` please find documentation at [Enums -> {ref}](/documentation#Enums/5-{ref}).\n" + elif ref in interfaces: + md_content += f"- For `{ref}` please find documentation at [Models -> {ref}](/documentation#Models/4-{ref}).\n" + + # Write file + file_path = output_dir / f"4-{interface_name}.md" + with open(file_path, 'w') as f: + f.write(md_content) + print(f"✓ Created {file_path.name}") + +print(f"\nProcessed {len(enums)} enums and {len(interfaces)} interfaces") diff --git a/src/app.html b/src/app.html index 399294d..d74fee1 100644 --- a/src/app.html +++ b/src/app.html @@ -2,6 +2,7 @@ + diff --git a/src/lib/taDocs/0-TODO b/src/lib/taDocs/0-TODO index 0fe1eb7..8003e31 100644 --- a/src/lib/taDocs/0-TODO +++ b/src/lib/taDocs/0-TODO @@ -1,6 +1,6 @@ still left: - all the base client methods, -- all the modals +- all the Models - all the enums - all the evnts(listeners) - further docs on streamsync diff --git a/src/lib/taDocs/2-stateManager-getMatch.md b/src/lib/taDocs/2-stateManager-getMatch.md index 59d9103..1c94613 100644 --- a/src/lib/taDocs/2-stateManager-getMatch.md +++ b/src/lib/taDocs/2-stateManager-getMatch.md @@ -34,7 +34,7 @@ interface Match { } ``` -For the definition of a Map please look at the [Modals -> Map page](/documentation#Modals/4-Map) +For the definition of a Map please look at the [Models -> Map page](/documentation#Models/4-Map) A direct implementation: ```ts diff --git a/src/lib/taDocs/2-stateManager-getMatches.md b/src/lib/taDocs/2-stateManager-getMatches.md index c67c8f6..c034548 100644 --- a/src/lib/taDocs/2-stateManager-getMatches.md +++ b/src/lib/taDocs/2-stateManager-getMatches.md @@ -34,4 +34,4 @@ interface Match { } ``` -For the definition of a Map please look at the [Modals -> Map page](/documentation#Modals/4-Map) \ No newline at end of file +For the definition of a Map please look at the [Models -> Map page](/documentation#Models/4-Map) \ No newline at end of file diff --git a/src/lib/taDocs/2-stateManager-getQualifiers.md b/src/lib/taDocs/2-stateManager-getQualifiers.md index e495043..3e5b860 100644 --- a/src/lib/taDocs/2-stateManager-getQualifiers.md +++ b/src/lib/taDocs/2-stateManager-getQualifiers.md @@ -57,7 +57,7 @@ interface QualifierEvent {
info
- Good to know: For the sake of simplification, the type of infoChannel has been substituted. Find the documentation on the original type here: Modals -> Channel + Good to know: For the sake of simplification, the type of infoChannel has been substituted. Find the documentation on the original type here: Models -> Channel
diff --git a/src/lib/taDocs/2-stateManager-getTournament.md b/src/lib/taDocs/2-stateManager-getTournament.md index 26861a3..1a8e290 100644 --- a/src/lib/taDocs/2-stateManager-getTournament.md +++ b/src/lib/taDocs/2-stateManager-getTournament.md @@ -42,11 +42,11 @@ interface Tournament { } ``` -- For the definition of a Tournament_TournamentSettings please look at the [Modals -> Tournament_TournamentSettings page](/documentation#Modals/4-Tournament_TournamentSettings) -- For the definition of a User please look at the [Modals -> User page](/documentation#Modals/4-User) -- For the definition of a Match please look at the [Modals -> Match page](/documentation#Modals/4-Match) -- For the definition of a QualifierEvent please look at the [Modals -> QualifierEvent page](/documentation#Modals/4-QualifierEvent) -- For the definition of a CoreServer please look at the [Modals -> CoreServer page](/documentation#Modals/4-CoreServer) +- For the definition of a Tournament_TournamentSettings please look at the [Models -> Tournament_TournamentSettings page](/documentation#Models/4-Tournament_TournamentSettings) +- For the definition of a User please look at the [Models -> User page](/documentation#Models/4-User) +- For the definition of a Match please look at the [Models -> Match page](/documentation#Models/4-Match) +- For the definition of a QualifierEvent please look at the [Models -> QualifierEvent page](/documentation#Models/4-QualifierEvent) +- For the definition of a CoreServer please look at the [Models -> CoreServer page](/documentation#Models/4-CoreServer) A direct implementation: ```ts diff --git a/src/lib/taDocs/2-stateManager-getTournaments.md b/src/lib/taDocs/2-stateManager-getTournaments.md index 06d3ad7..48bf202 100644 --- a/src/lib/taDocs/2-stateManager-getTournaments.md +++ b/src/lib/taDocs/2-stateManager-getTournaments.md @@ -41,11 +41,11 @@ interface Tournament { } ``` -- For the definition of a Tournament_TournamentSettings please look at the [Modals -> Tournament_TournamentSettings page](/documentation#Modals/4-Tournament_TournamentSettings) -- For the definition of a User please look at the [Modals -> User page](/documentation#Modals/4-User) -- For the definition of a Match please look at the [Modals -> Match page](/documentation#Modals/4-Match) -- For the definition of a QualifierEvent please look at the [Modals -> QualifierEvent page](/documentation#Modals/4-QualifierEvent) -- For the definition of a CoreServer please look at the [Modals -> CoreServer page](/documentation#Modals/4-CoreServer) +- For the definition of a Tournament_TournamentSettings please look at the [Models -> Tournament_TournamentSettings page](/documentation#Models/4-Tournament_TournamentSettings) +- For the definition of a User please look at the [Models -> User page](/documentation#Models/4-User) +- For the definition of a Match please look at the [Models -> Match page](/documentation#Models/4-Match) +- For the definition of a QualifierEvent please look at the [Models -> QualifierEvent page](/documentation#Models/4-QualifierEvent) +- For the definition of a CoreServer please look at the [Models -> CoreServer page](/documentation#Models/4-CoreServer) A direct implementation: ```ts diff --git a/src/lib/taDocs/2-stateManager-getUser.md b/src/lib/taDocs/2-stateManager-getUser.md index d1a69ff..093550f 100644 --- a/src/lib/taDocs/2-stateManager-getUser.md +++ b/src/lib/taDocs/2-stateManager-getUser.md @@ -77,8 +77,8 @@ interface User { - For the definition of a User_ClientTypes please look at the [Enums -> User_ClientTypes page](/documentation#Enums/5-User_ClientTypes) - For the definition of a User_PlayStates please look at the [Enums -> User_PlayStates page](/documentation#Enums/5-User_PlayStates) - For the definition of a User_DownloadStates please look at the [Enums -> User_DownloadStates page](/documentation#Enums/5-User_DownloadStates) -- For the definition of a User_Point please look at the [Modals -> User_Point page](/documentation#Modals/4-User_Point) -- For the definition of a User_DiscordInfo please look at the [Modals -> User_DiscordInfo page](/documentation#Modals/4-User_DiscordInfo) +- For the definition of a User_Point please look at the [Models -> User_Point page](/documentation#Models/4-User_Point) +- For the definition of a User_DiscordInfo please look at the [Models -> User_DiscordInfo page](/documentation#Models/4-User_DiscordInfo) - For the definition of a Permissions please look at the [Enums -> Permissions page](/documentation#Enums/5-Permissions) A direct implementation: diff --git a/src/lib/taDocs/2-stateManager-getUsers.md b/src/lib/taDocs/2-stateManager-getUsers.md index d4e4085..92aed71 100644 --- a/src/lib/taDocs/2-stateManager-getUsers.md +++ b/src/lib/taDocs/2-stateManager-getUsers.md @@ -77,8 +77,8 @@ interface User { - For the definition of a User_ClientTypes please look at the [Enums -> User_ClientTypes page](/documentation#Enums/5-User_ClientTypes) - For the definition of a User_PlayStates please look at the [Enums -> User_PlayStates page](/documentation#Enums/5-User_PlayStates) - For the definition of a User_DownloadStates please look at the [Enums -> User_DownloadStates page](/documentation#Enums/5-User_DownloadStates) -- For the definition of a User_Point please look at the [Modals -> User_Point page](/documentation#Modals/4-User_Point) -- For the definition of a User_DiscordInfo please look at the [Modals -> User_DiscordInfo page](/documentation#Modals/4-User_DiscordInfo) +- For the definition of a User_Point please look at the [Models -> User_Point page](/documentation#Models/4-User_Point) +- For the definition of a User_DiscordInfo please look at the [Models -> User_DiscordInfo page](/documentation#Models/4-User_DiscordInfo) - For the definition of a Permissions please look at the [Enums -> Permissions page](/documentation#Enums/5-Permissions)
diff --git a/src/lib/taDocs/2-stateManager-handlePacket.md b/src/lib/taDocs/2-stateManager-handlePacket.md index 529cc92..71f11e5 100644 --- a/src/lib/taDocs/2-stateManager-handlePacket.md +++ b/src/lib/taDocs/2-stateManager-handlePacket.md @@ -6,6 +6,6 @@ This method should NOT be used, as it is already handled, just exists. await taClient.stateManager.handlePacket(packet: Packet); ``` -For the definition of a `Packet` please refer to [Modals -> Packet](/documentation#Modals/Packet) +For the definition of a `Packet` please refer to [Models -> Packet](/documentation#Models/Packet) I will not proide further documentation for this method, as it should NOT be used. Every way you could use it exists with another method. \ No newline at end of file diff --git a/src/lib/taDocs/3-client-addAuthorizedUser.md b/src/lib/taDocs/3-client-addAuthorizedUser.md index 8142519..539d4ee 100644 --- a/src/lib/taDocs/3-client-addAuthorizedUser.md +++ b/src/lib/taDocs/3-client-addAuthorizedUser.md @@ -21,6 +21,7 @@ const response: Response = taClient.addAuthorizedUser(tournamentGuid, userDiscor The `response` variable from above will actually be a 'mashup' of two types. Firstly, the standard `Response` type. Secondly the `Response_AddAuthorizedUser`. Find the custom response object below. +## Standard Response: ```js { details: { @@ -31,8 +32,8 @@ The `response` variable from above will actually be a 'mashup' of two types. Fir type: Response_ResponseType } ``` -- For `Response` please find documentation at [Modals -> Response](/documentation#Modals/4-Response) -- For `Response_AddAuthorizedUser` please find documentation at [Modals -> Response_AddAuthorizedUser](/documentation#Modals/4-Response_AddAuthorizedUser). +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) +- For `Response_AddAuthorizedUser` please find documentation at [Models -> Response_AddAuthorizedUser](/documentation#Models/4-Response_AddAuthorizedUser).
info diff --git a/src/lib/taDocs/3-client-addQualifierMaps.md b/src/lib/taDocs/3-client-addQualifierMaps.md index bb98140..5014e62 100644 --- a/src/lib/taDocs/3-client-addQualifierMaps.md +++ b/src/lib/taDocs/3-client-addQualifierMaps.md @@ -19,8 +19,8 @@ async function addQualifierMaps(tournamentId: string, qualifierId: string, maps: ```ts const response: Response = taClient.addQualifierMaps(tournamentGuid, qualifierEventGuid, [map1, map2]); ``` -- For the `Map` modal please find documentation at [Modals -> Response](/documentation#Modals/4-Map) -- For `Response` please find documentation at [Modals -> Response](/documentation#Modals/4-Response) +- For the `Map` modal please find documentation at [Models -> Map](/documentation#Models/4-Map) +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response)
info @@ -31,11 +31,12 @@ const response: Response = taClient.addQualifierMaps(tournamentGuid, qualifierEv A the following properties for the maps may be left empty or as a placeholder value: - `map.guid`: may be left as `""` -- `map.gameplayParameters.playerSettings`: may be left as an empty [PlayerSpecificSettings](/documentation#Modals/4-PlayerSpecificSettings) object +- `map.gameplayParameters.playerSettings`: may be left as an empty [PlayerSpecificSettings](/documentation#Models/4-PlayerSpecificSettings) object - for qualifier maps `map.disableCustomNotesOnStream` and `map.useSync` will not have any effect on gameplay, hence they can be left as a boolean value such as `false` If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) +## Standard Response: ```js { details: { @@ -46,7 +47,7 @@ If you have not yet, please read [Client -> Introduction to the Client](/documen type: Response_ResponseType } ``` -- For `Request_AddQualifierMaps` please find documentation at [Modals -> Request_AddQualifierMaps](/documentation#Modals/4-Request_AddQualifierMaps). +- For `Request_AddQualifierMaps` please find documentation at [Models -> Request_AddQualifierMaps](/documentation#Models/4-Request_AddQualifierMaps). ```ts // this method is called when the user submits the AddOrEditMapModal.svelte form @@ -55,7 +56,7 @@ async function handleMapAdded(event: CustomEvent) { await client.addQualifierMaps(tournamentGuid, qualifierGuid, [event.detail.map]); // a local method to just "refresh" the data on the page for reactivity fetchQualifierData(); - // a horrible example of how to use confirmations and modals + // a horrible example of how to use confirmations and Models // show the popup for "Successfully added the map!" modalMessage = `Successfully added the map!`; modalIcon = 'check'; diff --git a/src/lib/taDocs/3-client-addTournamentPool.md b/src/lib/taDocs/3-client-addTournamentPool.md index 4a51139..f2d8d65 100644 --- a/src/lib/taDocs/3-client-addTournamentPool.md +++ b/src/lib/taDocs/3-client-addTournamentPool.md @@ -19,8 +19,8 @@ async function addTournamentPool(tournamentId: string, name: string, image: Uint ```ts const response: Response = taClient.addTournamentPool(tournamentGuid, "Testing Map Pool", convertUrlToUnit8Array('https://png.com/pngPlaceholder'), maps: [map1, map2]); ``` -- For the `Map` modal please find documentation at [Modals -> Response](/documentation#Modals/4-Map) -- For `Response` please find documentation at [Modals -> Response](/documentation#Modals/4-Response) +- For the `Map` modal please find documentation at [Models -> Map](/documentation#Models/4-Map) +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response)
info @@ -31,42 +31,56 @@ const response: Response = taClient.addTournamentPool(tournamentGuid, "Testing M A the following properties for the maps may be left empty or as a placeholder value. Do note that these are only from the `maps` array, since not all properties must be defined for the `maps`: - `map.guid`: may be left as `""` -- `map.gameplayParameters.playerSettings`: may be left as an empty [PlayerSpecificSettings](/documentation#Modals/4-PlayerSpecificSettings) object +- `map.gameplayParameters.playerSettings`: may be left as an empty [PlayerSpecificSettings](/documentation#Models/4-PlayerSpecificSettings) object - `map.attempts` and `map.showScoreboard` will not have any effect on gameplay, hence they can be left as a placeholder value such as `0` and `false` If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) +## Standard Response: ```js { details: { - addTournamentPool: Response_UpdateQualifierEvent, - oneofKind: 'addQualifierMaps' + updateTournament: Response_UpdateTournament, + oneofKind: 'updateTournament' }, respondingToPacketId: 'packet-guid-uuidv4', type: Response_ResponseType } ``` -- For `Response_UpdateQualifierEvent` please find documentation at [Modals -> Request_AddQualifierMaps](/documentation#Modals/4-Request_AddQualifierMaps). +- For `Response_UpdateTournament` please find documentation at [Models -> Response_UpdateTournament](/documentation#Models/4-Response_UpdateTournament). ```ts -// this method is called when the user submits the AddOrEditMapModal.svelte form -async function handleMapAdded(event: CustomEvent) { - // add the single map that the user configured. This includes all settings and data for the map. - await client.addQualifierMaps(tournamentGuid, qualifierGuid, [event.detail.map]); - // a local method to just "refresh" the data on the page for reactivity - fetchQualifierData(); - // a horrible example of how to use confirmations and modals - // show the popup for "Successfully added the map!" - modalMessage = `Successfully added the map!`; - modalIcon = 'check'; - modalButtons = []; - modalAutoClose = 1; - showGenericModal = true; -} +// Method called when we have set the image and name of th enew map pool in the popup. +async function handleMapPoolCreated(event: CustomEvent) { + const newMapPool = event.detail; + // Add the new map pool with no maps inside + let createMapPoolResponse = await client.addTournamentPool(tournamentGuid, newMapPool.name, newMapPool.image, []); + // Check if the request did not succeeded + if(createMapPoolResponse.type !== Response_ResponseType.Success) { + error = "Failed to create the new map pool! Please refresh this page!"; + } else { + // Handle images for map pools + let mapPoolImage; + try { + mapPoolImage = bufferToImageUrl(newMapPool.image); + } catch (error) { + mapPoolImage = "/talogo.png" + } + // Add map pool to my own custom way of representing map pools + mapPools = [...mapPools, { + name: newMapPool.name, + image: mapPoolImage, + guid: newMapPool.guid, + color: generateRandomHexColor() + }]; + + showSuccessfullySaved = true; + } + } ```
info
- Example: This is a direct example from ShyyTAUI. It comes from the page where users edit qualifiers. + Example: This is a direct example from ShyyTAUI. It comes from the page where users edit map pools.
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-addTournamentPoolMaps.md b/src/lib/taDocs/3-client-addTournamentPoolMaps.md new file mode 100644 index 0000000..ff84a34 --- /dev/null +++ b/src/lib/taDocs/3-client-addTournamentPoolMaps.md @@ -0,0 +1,73 @@ +# The taClient.addTournamentPoolMaps() method +This documents the `taClient.addTournamentPoolMaps()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function addTournamentPoolMaps(tournamentId: string, poolId: string, maps: Map[]): Promise { + // backend logic +} +``` +`tournamentId` refers to the guid of the tournament and poolId refers to the guid of the map pool. +## General usage: +```ts +const response: Response = taClient.addTournamentPoolMaps(tournamentGuid, poolGuid, [map1, map2]); +``` +- For the `Map` modal please find documentation at [Models -> Map](/documentation#Models/4-Map) +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +
+ info +
+ Note: Some parameters do not actually have to be provided, but for a complete object to exist you must give it some placeholder value. +
+
+ +A the following properties for the maps may be left empty or as a placeholder value. Do note that these are only from the `maps` array, since not all properties must be defined for the `maps`: +- `map.guid`: may be left as `""` (overwritten by backend) +- `map.gameplayParameters.playerSettings`: may be left as an empty [PlayerSpecificSettings](/documentation#Models/4-PlayerSpecificSettings) object +- `map.attempts` and `map.showScoreboard` will not have any effect on gameplay, hence they can be left as a placeholder value such as `0` and `false`. Please keep in mind that `map.attempts` only influences qualifiers. If you intend to load maps from a map pool for qualifiers this may be critical to define, however for the match room it has no effect. + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateTournament: Response_UpdateTournament, + oneofKind: 'updateTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateTournament` please find documentation at [Models -> Response_UpdateTournament](/documentation#Models/4-Response_UpdateTournament). + +An implmentation example: +```ts +// Method called when we click "+ Add Map" in the edit / add modal on the map pools page +async function handleMapAdded(event: CustomEvent) { + // Add the map passed on from the modal + await client.addTournamentPoolMaps(tournamentGuid, poolGuid, [event.detail.map]); + // Re-fetch the data from the state + fetchMapPoolData(); + // Show success + showSuccessNotification = true; + setTimeout(() => { + showSuccessNotification = false; + }, 2500); + successMessage = "Map successfully added!"; +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the page where users edit map pools. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-addTournamentRole.md b/src/lib/taDocs/3-client-addTournamentRole.md new file mode 100644 index 0000000..646c195 --- /dev/null +++ b/src/lib/taDocs/3-client-addTournamentRole.md @@ -0,0 +1,93 @@ +# The taClient.addTournamentRole() method +This documents the `taClient.addTournamentRole()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function addTournamentRole(tournamentId: string, role: Role): Promise { + // backend logic +} +``` +`tournamentId` refers to the guid of the tournament. +## General usage: +```ts +const response: Response = taClient.addTournamentRole(tournamentGuid, { + guid: '', + name: '', + tounamentId: 'uuidv4', + roleId: '', + permissions: ['', ''] +}); +``` +- For the `Role` modal please find documentation at [Models -> Role](/documentation#Models/4-Role) +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +
+ info +
+ Note: Some parameters do not actually have to be provided, but for a complete object to exist you must give it some placeholder value. +
+
+ +A the following properties for the role may be left empty or as a placeholder value. +- `role.guid`: may be left as `""` (overwritten by backend) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateTournament: Response_UpdateTournament, + oneofKind: 'updateTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateTournament` please find documentation at [Models -> Response_UpdateTournament](/documentation#Models/4-Response_UpdateTournament). + +An implmentation example: +```ts +// Method called when we click "+ Add Role" in the edit / add modal on the settings page +async function handleAddRole(event: CustomEvent) { + // Get data from popup + const roleData = event.detail; + + // Construct Role object + let role: Role = { + name: roleData.name, + roleId: roleData.roleId, + permissions: roleData.permissions, + tournamentId: tournamentGuid, + guid: '' + } + // Debug log to show what role we are adding + console.log('Adding role:', role); + + try { + // Add the role + let addRoleResult = await client.addTournamentRole(tournamentGuid, role); + console.log("result", addRoleResult) + // If the request succeeds then add it to the roles locally + if (addRoleResult.type === Response_ResponseType.Success) { + tournamentRoles = [...tournamentRoles, role]; + } + } catch (err) { + console.error('Error adding role:', err); + error = "Failed to add role, please view console, screenshot it and send it to serverbp or matrikmoon on Discord."; + } +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the settings page of tournaments. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-addTournamentTeam.md b/src/lib/taDocs/3-client-addTournamentTeam.md new file mode 100644 index 0000000..db4aad5 --- /dev/null +++ b/src/lib/taDocs/3-client-addTournamentTeam.md @@ -0,0 +1,82 @@ +# The taClient.addTournamentTeam() method +This documents the `taClient.addTournamentTeam()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function addTournamentTeam(tournamentId: string, name: string, image: Unit8Array): Promise { + // backend logic +} +``` +`tournamentId` refers to the guid of the tournament. +## General usage: +```ts +const response: Response = taClient.addTournamentTeam(tournamentGuid, "teamName", teamImageUnit8Array); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateTournament: Response_UpdateTournament, + oneofKind: 'updateTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateTournament` please find documentation at [Models -> Response_UpdateTournament](/documentation#Models/4-Response_UpdateTournament). + +An implmentation example: +```ts +// Method called when the "Add New Team" button is pressed +async function createTeam() { + // Construct new team object + const newTeam: TATeam = { + guid: uuidv4(), + name: newTeamName, + image: teamImageBuffer || new Uint8Array(1) + }; + + console.log(newTeam); + // Add the new team + let createTeamResponse = await client.addTournamentTeam(tournamentGuid, newTeam.name, newTeam.image); + // Handle error + if(createTeamResponse.type !== Response_ResponseType.Success) { + error = "Failed to create the new team! Please refresh this page!"; + } else { + // Handle image + let teamImage; + try { + teamImage = bufferToImageUrl(teamImageBuffer || new Uint8Array(1)); + } catch (error) { + teamImage = "/talogo.png" + } + // Add the team locally + teams = [...teams, { + name: newTeam.name, + image: teamImage, + guid: newTeam.guid, + color: generateRandomHexColor() + }]; + } + + // Close the popup + closeTeamPopup(); +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the teams page of tournaments. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-addUserToMatch.md b/src/lib/taDocs/3-client-addUserToMatch.md new file mode 100644 index 0000000..b5f80e7 --- /dev/null +++ b/src/lib/taDocs/3-client-addUserToMatch.md @@ -0,0 +1,56 @@ +# The taClient.addUserToMatch() method +This documents the `taClient.addUserToMatch()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function addUserToMatch(tournamentId: string, matchId: string, userId: string): Promise { + // backend logic +} +``` +`tournamentId` refers to the guid of the tournament, matchId is the guid of the match, and userId is the guid of the user. +## General usage: +```ts +const response: Response = taClient.addUserToMatch(tournamentGuid, matchGuid, userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateMatch: Response_UpdateMatch, + oneofKind: 'updateMatch' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateMatch` please find documentation at [Models -> Response_UpdateMatch](/documentation#Models/4-Response_UpdateMatch). + +An implmentation example: +```ts +// This method is called when we want to add ourselves to a match in order ro receive live score updates etc. +async function addSelfToMatch() { + // If we are not in the match already + if(!match?.associatedUsers.includes(client.stateManager.getSelfGuid())) { + // Add ourselves to the match + const response = await client.addUserToMatch(tournamentGuid, matchGuid, client.stateManager.getSelfGuid()); + console.log("Added Self to match!", response); + } +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the matches page of tournaments. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-allFunctions.md b/src/lib/taDocs/3-client-allFunctions.md index d583faa..8ec9618 100644 --- a/src/lib/taDocs/3-client-allFunctions.md +++ b/src/lib/taDocs/3-client-allFunctions.md @@ -21,6 +21,8 @@ The table below shows all of the functions of the taClient. From this point onwa |deleteMatch()|Delete a match.|True| |deleteQualifierEvent()|Delete a qualifier event.|True| |deleteTournament()|Delete a tournament.|True| +|disableBlueNotes()|Toggle blue notes on/off for specified players. Warning: This toggles, not disables permanently.|False| +|disableRedNotes()|Toggle red notes on/off for specified players. Warning: This toggles, not disables permanently.|False| |disconnect()|Disconnect from the Core Server.|True| |emit()|Emit a custom packet. This is used for new feature testing and will not be discussed|True| |flipColors()|Flip the colours of the players in the match. This was used in JJ25, and has just been left in.|True| @@ -46,6 +48,7 @@ The table below shows all of the functions of the taClient. From this point onwa |removeTournamentRole()|Remove a role from a tournament.|True| |removeTournamentTeam()|Remove a team from a tournament.|True| |removeUserFromMatch()|Remove a user from a match.|True| +|refundAttempts()|Refund qualifier attempts for a specific map and platform.|True| |returnToMenu()|Return the speciied players to the menu.|False| |revokeBotToken()|Revoke a bot token. This will revoke the access of a bot token.|True| |sendResponse()|Send a custom response to the TA Core Server. Do not use this unless you know exactly what you are doing.|True| @@ -63,13 +66,18 @@ The table below shows all of the functions of the taClient. From this point onwa |setTournamentEnableTeams()|Set whether the teams feature is enabled.|True| |setTournamentImage()|Set the image of the tournament.|True| |setTournamentName()|Set the name of the tournament.|True| +|setTournamentPoolImage()|Set the image of an already existing map pool in a tournament.|True| |setTournamentPoolName()|Set the name of an already existing map pool in a tournament.|True| +|setTournamentRoleName()|Set the name of a tournament role.|True| +|setTournamentRolePermissions()|Set the permissions for a tournament role.|True| |setTournamentScoreUpdateFrequency()|Set the score update frequency for a tournament. This is usualy 30 frames.|True| |setTournamentShowQualifierButton()|Set whether the qualifier button is shown in the tournament menu in game.|True| |setTournamentShowTournamentButton()|Set whether the tournament button is shown in the tournament menu in game.|True| |setTournamentTeamImage()|Set the image of an already existing team in a tournament.|True| |setTournamentTeamName()|Set the name of an already existing team in a tournament.|True| -|showLoadedImage()|**STREAMSYNC MORE DOCS REQUIRED** Show the loaded image that is currently used for streamsync.|True| +|showColor()|Display a color on the game client for specified players. Used with StreamSync.|False| +|showLoadedImage()|Show or hide a previously loaded image for StreamSync.|False| +|showPrompt()|Show a custom prompt to the users.|True| |showPrompt()|Show a custom prompt to the users.|True| |stateManager|This is the state manager. Find further documentation, as it is a vital component.|False| |updateQualifierMap()|Update the settings of an already existing qualifier map. |True| diff --git a/src/lib/taDocs/3-client-connect.md b/src/lib/taDocs/3-client-connect.md new file mode 100644 index 0000000..d043cdc --- /dev/null +++ b/src/lib/taDocs/3-client-connect.md @@ -0,0 +1,58 @@ +# The taClient.conect() method +This documents the `taClient.conect()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function conect(serverAddress: string, port: string): Promise { + // backend logic +} +``` +## General usage: +```ts +const response: Response = taClient.conect('server.tournamentassistant.net', '8676'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + connect: Response_Connect, + oneofKind: 'connect' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_Connect` please find documentation at [Models -> Response_Connect](/documentation#Models/4-Response_Connect). + +An implmentation example: +```ts +// Check for the client being already connected +if(!client.isConnected) { + // Connect to the TA server + const connectResult = await client.connect($TAServerUrl, $TAServerPort); + + // Verify that the connection was successful + if (connectResult.details.oneofKind === "connect" && connectResult.type === Response_ResponseType.Fail) { + authError = connectResult.details.connect.message; + loading = false; + return; + } +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the tournament list page. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-createMatch.md b/src/lib/taDocs/3-client-createMatch.md new file mode 100644 index 0000000..5246318 --- /dev/null +++ b/src/lib/taDocs/3-client-createMatch.md @@ -0,0 +1,69 @@ +# The taClient.createMatch() method +This documents the `taClient.createMatch()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function createMatch(tournamentId: string, match: Match): Promise { + // backend logic +} +``` +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match) +## General usage: +```ts +const response: Response = taClient.createMatch(tournamentGuid { + guid: "sumyUUIDv4", + leader: 'myUUIDv4', + associatedUsers: ['string', 'array', 'of', 'player', 'guids'] +}); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + createMatch: Response_CreateMatch, + oneofKind: 'createMatch' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_CreateMatch` please find documentation at [Models -> Response_CreateMatch](/documentation#Models/4-Response_CreateMatch). + +An implmentation example: +```ts +// Method called when players are selected for mtch creation and the button is pressed +async function createMatch() { + // Send the request + const response = await client.createMatch(tournament!.guid, { + // dummy placeholder uuidv4 + guid: '00000000-0000-4000-00000000', + // Set self as the leader. This is the user guid. + leader: client.stateManager.getSelfGuid(), + // An array of the user guids who you want to add. !!NOT PLATFORM ID-S. GUIDS.!! + associatedUsers: $selectedPlayerGuids + }); + + console.log("Match created! Response: ", response); + + const newMatch = (response as any).details.createMatch.match; + + goto(`/tournaments/${tournamentGuid}/matches/${newMatch.guid}`); +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the tournament matches page. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-createQualifierEvent.md b/src/lib/taDocs/3-client-createQualifierEvent.md new file mode 100644 index 0000000..056f970 --- /dev/null +++ b/src/lib/taDocs/3-client-createQualifierEvent.md @@ -0,0 +1,89 @@ +# The taClient.createQualifierEvent() method +This documents the `taClient.createQualifierEvent()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function createQualifierEvent(tournamentId: string, name: string, infoChannelId: string, maps: Map[], flags: QualifierEvent_EventSettings, sort: QualifierEvent_LeaderboardSort, qualifierImage: Uint8Array): Promise { + // backend logic +} +``` +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map) +- For `QualifierEvent_EventSettings` please find documentation at [Enums -> QualifierEvent_EventSettings](/documentation#Enums/5-QualifierEvent_EventSettings) +- For `QualifierEvent_LeaderboardSort` please find documentation at [Enums -> QualifierEvent_LeaderboardSort](/documentation#MEnums/5-QualifierEvent_LeaderboardSort) +## General usage: +```ts +const response: Response = taClient.createQualifierEvent(tournamentGuid, "New Qualifier name", 'discord snowflake or empty string', emptyMapsArray, flags, leaderboardSort, qualifierImageBuffer || new Uint8Array(1)); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + createQualifierEvent: Response_CreateQualifierEvent, + oneofKind: 'createQualifierEvent' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_CreateQualifierEvent` please find documentation at [Models -> Response_CreateQualifierEvent](/documentation#Models/4-Response_CreateQualifierEvent). + +An implmentation example: +```ts +// Called when all the details for a new qualifier event have been provided +async function createQualifier() { + // Create a new local object for a qualifier event + const newQualifier: QualifierEvent = { + guid: uuidv4(), + name: newQualifierName, + // image: qualifierImageBuffer || new Uint8Array(1), + image: "", + qualifierMaps: [], + infoChannel: { + id: "", + name: "" + }, + flags: 0, + sort: 0 + }; + + // Create the event using the client + let createQualifierResponse = await client.createQualifierEvent( + tournamentGuid, // Tournament GUID + newQualifier.name, // Qualifier name + newQualifier.infoChannel!.id, // Discord Channel ID for live feeds + [], // Intial qualifier maps + 0, // Flags (flags are really QualifierEvent_EventSettings, so 0 is None) + 0, // Sort (0 is modifiedScore. FInd type QualifierEvent_LeaderboardSort for further details) + qualifierImageBuffer || new Uint8Array(1) + ); + console.log("newQual", createQualifierResponse); + + // Add the event to the other qualifier events + qualifiers = [ + ...qualifiers, + { + ...(createQualifierResponse as any).details.createQualifierEvent.qualifier, + maps: [] + } + ]; + + closeQualifierPopup(); +} +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the tournament qualifiers page. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-createTournament.md b/src/lib/taDocs/3-client-createTournament.md new file mode 100644 index 0000000..113011d --- /dev/null +++ b/src/lib/taDocs/3-client-createTournament.md @@ -0,0 +1,152 @@ +# The taClient.createTournament() method +This documents the `taClient.createTournament()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function createTournament( + serverAddress: string, + serverName: string, + serverPort: string, + serverWebsocketPort: string, + name: string, + tournamentImage?: Uint8Array, + enableTeams?: boolean, + enablePools?: boolean, + showTournamentButton?: boolean, + showQualifierButton?: boolean, + roles?: Role[], + teams?: Tournament_TournamentSettings_Team[], + scoreUpdateFrequency?: number, + bannedMods?: string[], + pools?: Tournament_TournamentSettings_Pool[], + allowUnauthorizedView?: boolean +): Promise { + // backend logic +} +``` + +## Parameters: +- **`serverAddress`** (string): The core server address/hostname +- **`serverName`** (string): The name of the core server +- **`serverPort`** (string): The core server port number +- **`serverWebsocketPort`** (string): The server WebSocket port number +- **`name`** (string): The name of the tournament +- **`tournamentImage`** (Uint8Array): The image for the tournament as a Uint8Array (binary data) +- **`enableTeams`** (boolean, optional): Whether to enable team functionality in this tournament +- **`enablePools`** (boolean, optional): Whether to enable pool functionality in this tournament +- **`showTournamentButton`** (boolean, optional): Whether to show the tournament button in the UI +- **`showQualifierButton`** (boolean, optional): Whether to show the qualifier button in the UI +- **`roles`** (Role[], optional): Array of roles to create for the tournament +- **`teams`** (Tournament_TournamentSettings_Team[], optional): Array of teams to create for the tournament +- **`scoreUpdateFrequency`** (number, optional): How frequently (in milliseconds) to update scores +- **`bannedMods`** (string[], optional): Array of mod IDs that are banned in this tournament +- **`pools`** (Tournament_TournamentSettings_Pool[], optional): Array of pools to create for the tournament +- **`allowUnauthorizedView`** (boolean, optional): Whether to allow unauthorized users to view the tournament + +## General usage: +```ts +const response: Response = await taClient.createTournament( + 'server.tournamentassistant.net', + 'Main Server', + '8675', + '8676', + 'New Tournament', + tournamentImageBuffer, + true, // enableTeams + true, // enablePools + true, // showTournamentButton + true, // showQualifierButton + [], // Leave default roles + [], // no teams + 30, // scoreUpdateFrequency (every scoreUpdateFrequency frames, the players will send score data) + ['IntroSkip', 'SongChartVisualizer'], + [], // Empty pools + false // Keep the tournament hidden +); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + createTournament: Response_CreateTournament, + oneofKind: 'createTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_CreateTournament` please find documentation at [Models -> Response_CreateTournament](/documentation#Models/4-Response_CreateTournament). + +
+ info +
+ Note: The Uint8Array for the tournament image should be obtained from file input. If no image is provided, you can pass an empty Uint8Array or a default placeholder image. +
+
+ +An implmentation example: +```ts +// Create the tournament object +let tournament: Tournament = { + guid: uuidv4(), + users: [], + matches: [], + qualifiers: [], + settings: { + tournamentName: newTournamentName.trim(), + // tournamentImage: new Uint8Array([1]), // Default placeholder + tournamentImage: "", + enableTeams: false, + enablePools: false, + showTournamentButton: true, + showQualifierButton: true, + teams: [], + scoreUpdateFrequency: 30, + bannedMods: [], + pools: [], + allowUnauthorizedView: true, + roles: [], + myPermissions: [] + }, + server: { + name: `${$TAServerUrl}:${$TAServerPort}`, + address: $TAServerUrl, + port: $TAServerPlayerPort, + websocketPort: $TAServerPort + } +}; + +// Create the tournament +const response = await client.createTournament( + tournament.server!.address, + tournament.server!.name, + tournament.server!.port.toString(), + tournament.server!.websocketPort.toString(), + tournament.settings!.tournamentName, + await convertImageToUint8Array(newTournamentImage), + false, + false, + true, + true, +); +console.log("Tournament created:", response); + +const responseTournament = (response.details as any).createTournament.tournament; +``` +
+ info +
+ Example: This is a direct example from ShyyTAUI. It comes from the tournaments page. +
+
\ No newline at end of file diff --git a/src/lib/taDocs/3-client-delayTestFinished.md b/src/lib/taDocs/3-client-delayTestFinished.md new file mode 100644 index 0000000..9728cfd --- /dev/null +++ b/src/lib/taDocs/3-client-delayTestFinished.md @@ -0,0 +1,37 @@ +# The taClient.delayTestFinished() method +This documents the `taClient.delayTestFinished()` method. + +
+ warning +
+ Streamsync: This method is used in streamsync. Since I am still discovering the best way to do streamsync I am not comfortable providing guidance on a "correct" appliance. Standard docs are provided below, but nothing extensive. This will be added later once streamsync is a thing in ShyyTAUI too. +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function delayTestFinished(tournamentId: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **`tournamentId`** (string): The GUID of the tournament +- **`userIds`** (string[]): An array of user GUIDs who have completed their delay test + +## General usage: +```ts +taClient.delayTestFinished(tournamentGuid, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the signal directly to the specified users. + +
+ info +
+ Note: This is a synchronous method used to signal that specified players have completed a delay test and are ready to proceed with the tournament match. +
+
diff --git a/src/lib/taDocs/3-client-deleteMatch.md b/src/lib/taDocs/3-client-deleteMatch.md new file mode 100644 index 0000000..d7ed12a --- /dev/null +++ b/src/lib/taDocs/3-client-deleteMatch.md @@ -0,0 +1,80 @@ +# The taClient.deleteMatch() method +This documents the `taClient.deleteMatch()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function deleteMatch(tournamentId: string, matchId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **`tournamentId`** (string): The GUID of the tournament containing the match to delete +- **`matchId`** (string): The GUID of the match to delete + +## General usage: +```ts +const response: Response = taClient.deleteMatch(tournamentGuid, matchGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + deleteMatch: Response_DeleteMatch, + oneofKind: 'deleteMatch' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_DeleteMatch` please find documentation at [Models -> Response_DeleteMatch](/documentation#Models/4-Response_DeleteMatch). + +
+ warning +
+ Note: Deleting a match will not pull the players from from the map they are playing. Neither will removing them from the match. It also will not stop realtimeScores from being sent to clients that have already subscribed to it, however it will prevent new subscriptions from going through. A songFinished event also will not be triggered. +
+
+ +A direct implementation: +```ts +// In a method triggered when the "End Match" button is clicked +if(endMatch) { + if (isAnyPlayerPlaying) { + showExitMatchModal = true; + modalMessage = `Players are currently in-game. Exiting will close the match for all players. Continue?`; + modalIcon = 'warning'; + modalButtons = [ + { + text: `Close (NO)`, + type: 'primary', + action: () => showBackToMenuModal = false, + icon: 'close' + }, + { + text: `Yes (YES)`, + type: 'secondary', + action: async() => await confirmExitMatch(), + icon: 'backspace' + } + ]; + } else { + // Remove outselves from the match + await removeSelfFromMatch(); + // Delete the match + await client.deleteMatch(tournamentGuid, matchGuid); + // Navigate back to the page where people see the matches overview + goto(`/tournaments/${tournamentGuid}`); + } +} diff --git a/src/lib/taDocs/3-client-deleteQualifierEvent.md b/src/lib/taDocs/3-client-deleteQualifierEvent.md new file mode 100644 index 0000000..f25fdbb --- /dev/null +++ b/src/lib/taDocs/3-client-deleteQualifierEvent.md @@ -0,0 +1,48 @@ +# The taClient.deleteQualifierEvent() method +This documents the `taClient.deleteQualifierEvent()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function deleteQualifierEvent(tournamentId: string, qualifierId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **`tournamentId`** (string): The GUID of the tournament containing the qualifier event +- **`qualifierId`** (string): The GUID of the qualifier event to delete + +## General usage: +```ts +const response: Response = taClient.deleteQualifierEvent(tournamentGuid, qualifierGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + deleteQualifierEvent: Response_DeleteQualifierEvent, + oneofKind: 'deleteQualifierEvent' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_DeleteQualifierEvent` please find documentation at [Models -> Response_DeleteQualifierEvent](/documentation#Models/4-Response_DeleteQualifierEvent). + +
+ info +
+ Note: Deleting a qualifier event will permanently remove it from the tournament and all associated leaderboard data. +
+
diff --git a/src/lib/taDocs/3-client-deleteTournament.md b/src/lib/taDocs/3-client-deleteTournament.md new file mode 100644 index 0000000..b7b4cdd --- /dev/null +++ b/src/lib/taDocs/3-client-deleteTournament.md @@ -0,0 +1,47 @@ +# The taClient.deleteTournament() method +This documents the `taClient.deleteTournament()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function deleteTournament(tournamentId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament to delete + +## General usage: +```ts +const response: Response = taClient.deleteTournament(tournamentGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + deleteTournament: Response_DeleteTournament, + oneofKind: 'deleteTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_DeleteTournament` please find documentation at [Models -> Response_DeleteTournament](/documentation#Models/4-Response_DeleteTournament). + +
+ warning +
+ Warning: Deleting a tournament will permanently remove it and all associated data including matches, qualifier events, teams, and leaderboard data. This action cannot be undone. +
+
diff --git a/src/lib/taDocs/3-client-disableBlueNotes.md b/src/lib/taDocs/3-client-disableBlueNotes.md new file mode 100644 index 0000000..d638f98 --- /dev/null +++ b/src/lib/taDocs/3-client-disableBlueNotes.md @@ -0,0 +1,44 @@ +# The taClient.disableBlueNotes() method +This documents the `taClient.disableBlueNotes()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function disableBlueNotes(tournamentId: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs for whom blue notes should be disabled + +## General usage: +```ts +taClient.disableBlueNotes(tournamentGuid, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the disable command directly to the specified users. + +
+ warning +
+ Warning: This method TOGGLES blue notes rather than disabling them. Calling this method once will disable blue notes, but calling it again will re-enable them. It does not permanently disable blue notes - it switches the state each time it's called. +
+
+ +
+ info +
+ Note: This is a synchronous method that toggles blue notes in the game client for specified players. This can be used for accessibility or gameplay modification purposes. +
+
diff --git a/src/lib/taDocs/3-client-disableRedNotes.md b/src/lib/taDocs/3-client-disableRedNotes.md new file mode 100644 index 0000000..32c3c1e --- /dev/null +++ b/src/lib/taDocs/3-client-disableRedNotes.md @@ -0,0 +1,44 @@ +# The taClient.disableRedNotes() method +This documents the `taClient.disableRedNotes()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function disableRedNotes(tournamentId: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs for whom red notes should be disabled + +## General usage: +```ts +taClient.disableRedNotes(tournamentGuid, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the disable command directly to the specified users. + +
+ warning +
+ Warning: This method TOGGLES red notes rather than disabling them. Calling this method once will disable red notes, but calling it again will re-enable them. It does not permanently disable red notes - it switches the state each time it's called. +
+
+ +
+ info +
+ Note: This is a synchronous method that toggles red notes in the game client for specified players. This can be used for accessibility or gameplay modification purposes. +
+
diff --git a/src/lib/taDocs/3-client-disconnect.md b/src/lib/taDocs/3-client-disconnect.md new file mode 100644 index 0000000..0937d89 --- /dev/null +++ b/src/lib/taDocs/3-client-disconnect.md @@ -0,0 +1,44 @@ +# The taClient.disconnect() method +This documents the `taClient.disconnect()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function disconnect(): Promise { + // backend logic +} +``` + +## General usage: +```ts +const response: Response = taClient.disconnect(); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + disconnect: Response_Disconnect, + oneofKind: 'disconnect' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_Disconnect` please find documentation at [Models -> Response_Disconnect](/documentation#Models/4-Response_Disconnect). + +
+ info +
+ Best Practice: Always call disconnect() when your application is shutting down or when the user logs out. This ensures that all event listeners are properly cleaned up and the connection is gracefully terminated. +
+
diff --git a/src/lib/taDocs/3-client-flipColors.md b/src/lib/taDocs/3-client-flipColors.md new file mode 100644 index 0000000..01d61a7 --- /dev/null +++ b/src/lib/taDocs/3-client-flipColors.md @@ -0,0 +1,37 @@ +# The taClient.flipColors() method +This documents the `taClient.flipColors()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function flipColors(tournamentId: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs whose colors should be flipped + +## General usage: +```ts +taClient.flipColors(tournamentGuid, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the flip command directly to the specified users. + +
+ info +
+ Note: This is a synchronous method that flips the color assignment of players in a tournament. It was utilized during the JJ25 tournament and remains available for legacy compatibility. +
+
diff --git a/src/lib/taDocs/3-client-flipHands.md b/src/lib/taDocs/3-client-flipHands.md new file mode 100644 index 0000000..efb334b --- /dev/null +++ b/src/lib/taDocs/3-client-flipHands.md @@ -0,0 +1,37 @@ +# The taClient.flipHands() method +This documents the `taClient.flipHands()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function flipHands(tournamentId: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs whose hand orientation should be flipped + +## General usage: +```ts +taClient.flipHands(tournamentGuid, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the flip command directly to the specified users. + +
+ info +
+ Note: This is a synchronous method that toggles the hand orientation (left-handed/right-handed mode) for specified players. This is useful for accommodating players who need to switch their preferred hand orientation during a tournament. +
+
diff --git a/src/lib/taDocs/3-client-generateBotToken.md b/src/lib/taDocs/3-client-generateBotToken.md new file mode 100644 index 0000000..5896f9d --- /dev/null +++ b/src/lib/taDocs/3-client-generateBotToken.md @@ -0,0 +1,47 @@ +# The taClient.generateBotToken() method +This documents the `taClient.generateBotToken()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function generateBotToken(userId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **userId** (string): The GUID of the user for which to generate a bot token + +## General usage: +```ts +const response: Response = taClient.generateBotToken(userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + generateBotToken: Response_GenerateBotToken, + oneofKind: 'generateBotToken' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_GenerateBotToken` please find documentation at [Models -> Response_GenerateBotToken](/documentation#Models/4-Response_GenerateBotToken). + +
+ info +
+ Use Case: Bot tokens are often used for creating overlays, stream integrations, or automated tools that need to authenticate as a specific user without requiring interactive login. The generated JWT can be used to authenticate API requests on behalf of that user. +
+
diff --git a/src/lib/taDocs/3-client-getAuthorizedUsers.md b/src/lib/taDocs/3-client-getAuthorizedUsers.md new file mode 100644 index 0000000..0f3f31c --- /dev/null +++ b/src/lib/taDocs/3-client-getAuthorizedUsers.md @@ -0,0 +1,47 @@ +# The taClient.getAuthorizedUsers() method +This documents the `taClient.getAuthorizedUsers()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function getAuthorizedUsers(tournamentId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament for which to retrieve authorized users + +## General usage: +```ts +const response: Response = taClient.getAuthorizedUsers(tournamentGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + getAuthorizedUsers: Response_GetAuthorizedUsers, + oneofKind: 'getAuthorizedUsers' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_GetAuthorizedUsers` please find documentation at [Models -> Response_GetAuthorizedUsers](/documentation#Models/4-Response_GetAuthorizedUsers). + +
+ info +
+ Note: This method returns a list of users who have been authorized to access the tournament with various role permissions (admin, viewer, etc.). +
+
diff --git a/src/lib/taDocs/3-client-getBotTokensForUser.md b/src/lib/taDocs/3-client-getBotTokensForUser.md new file mode 100644 index 0000000..9063154 --- /dev/null +++ b/src/lib/taDocs/3-client-getBotTokensForUser.md @@ -0,0 +1,47 @@ +# The taClient.getBotTokensForUser() method +This documents the `taClient.getBotTokensForUser()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function getBotTokensForUser(userId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **userId** (string): The GUID of the user whose bot tokens should be retrieved + +## General usage: +```ts +const response: Response = taClient.getBotTokensForUser(userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + getBotTokensForUser: Response_GetBotTokensForUser, + oneofKind: 'getBotTokensForUser' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_GetBotTokensForUser` please find documentation at [Models -> Response_GetBotTokensForUser](/documentation#Models/4-Response_GetBotTokensForUser). + +
+ info +
+ Note: This method retrieves the bot token metadata for a user but does not return the JWT itself. To view the actual JWT, you would need to use the response from `generateBotToken()`. +
+
diff --git a/src/lib/taDocs/3-client-getDiscordInfo.md b/src/lib/taDocs/3-client-getDiscordInfo.md new file mode 100644 index 0000000..b83e6b5 --- /dev/null +++ b/src/lib/taDocs/3-client-getDiscordInfo.md @@ -0,0 +1,48 @@ +# The taClient.getDiscordInfo() method +This documents the `taClient.getDiscordInfo()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function getDiscordInfo(tournamentId: string, discordId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **discordId** (string): The Discord ID of the user whose Discord information should be retrieved + +## General usage: +```ts +const response: Response = await taClient.getDiscordInfo(tournamentGuid, '1234567890'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + getDiscordInfo: Response_GetDiscordInfo, + oneofKind: 'getDiscordInfo' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_GetDiscordInfo` please find documentation at [Models -> Response_GetDiscordInfo](/documentation#Models/4-Response_GetDiscordInfo). + +
+ info +
+ Note: This method retrieves Discord-related information for a user, such as their Discord ID, username, and other linked Discord account details. +
+
diff --git a/src/lib/taDocs/3-client-getLeaderboard.md b/src/lib/taDocs/3-client-getLeaderboard.md new file mode 100644 index 0000000..da0e3e5 --- /dev/null +++ b/src/lib/taDocs/3-client-getLeaderboard.md @@ -0,0 +1,48 @@ +# The taClient.getLeaderboard() method +This documents the `taClient.getLeaderboard()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function getLeaderboard(qualifierId: string, mapId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **mapId** (string): The GUID of the map within the qualifier for which to retrieve the leaderboard + +## General usage: +```ts +const response: Response = taClient.getLeaderboard(qualifierGuid, mapGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + getLeaderboard: Response_GetLeaderboard, + oneofKind: 'getLeaderboard' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_GetLeaderboard` please find documentation at [Models -> Response_GetLeaderboard](/documentation#Models/4-Response_GetLeaderboard). + +
+ info +
+ Note: This method retrieves the complete leaderboard for a specific map within a qualifier event, including all player scores sorted according to the leaderboard sort settings. +
+
diff --git a/src/lib/taDocs/3-client-intro.md b/src/lib/taDocs/3-client-intro.md index b1efc3b..5c084af 100644 --- a/src/lib/taDocs/3-client-intro.md +++ b/src/lib/taDocs/3-client-intro.md @@ -15,7 +15,7 @@ There are a couple of important notes for client responses. Since most client re type: Response_ResponseType } ``` -For the definition of the `Response_ResponseType` look at the [Modals -> Response_ResponseType](/documentation#Modals/4-Response_ResponseType). +For the definition of the `Response_ResponseType` look at the [Enums -> Response_ResponseType](/documentation#Enums/5-Response_ResponseType). Generally for responses `details.packetType` will contain the actual data of the response. In order to retreive data from the response in TypeScript, we have to use the `as any` syntax. ```ts diff --git a/src/lib/taDocs/3-client-isConnected.md b/src/lib/taDocs/3-client-isConnected.md new file mode 100644 index 0000000..f9edb4b --- /dev/null +++ b/src/lib/taDocs/3-client-isConnected.md @@ -0,0 +1,46 @@ +# The taClient.isConnected() method +This documents the `taClient.isConnected()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has no input parameters. The function could easily be defined as: +```ts +function isConnected(): boolean { + // backend logic +} +``` + +## General usage: +```ts +const isConnected: boolean = taClient.isConnected(); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns a boolean value: +- **true**: The client is currently connected to a TA Core Server +- **false**: The client is not currently connected to a TA Core Server + +## Example usage: +```ts +// Check if the client is connected before performing operations +if (taClient.isConnected()) { + // Perform operations that require a connection + const response = await taClient.createMatch(tournamentGuid, matchData); +} else { + console.log("Not connected to the TA server"); +} +``` + +
+ info +
+ Best Practice: Always check if the client is connected before attempting to perform operations that require a server connection. +
+
diff --git a/src/lib/taDocs/3-client-isConnecting.md b/src/lib/taDocs/3-client-isConnecting.md new file mode 100644 index 0000000..b107243 --- /dev/null +++ b/src/lib/taDocs/3-client-isConnecting.md @@ -0,0 +1,48 @@ +# The taClient.isConnecting() method +This documents the `taClient.isConnecting()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has no input parameters. The function could easily be defined as: +```ts +function isConnecting(): boolean { + // backend logic +} +``` + +## General usage: +```ts +const isConnecting: boolean = taClient.isConnecting(); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns a boolean value: +- **true**: The client is currently in the process of connecting to a TA Core Server +- **false**: The client is not currently attempting to connect + +## Example usage: +```ts +// Show a loading indicator while the client is attempting to connect +if (taClient.isConnecting()) { + // Display connection in progress message or spinner + console.log("Attempting to connect to the TA server..."); +} else if (taClient.isConnected()) { + console.log("Successfully connected"); +} else { + console.log("Not connected and not attempting to connect"); +} +``` + +
+ info +
+ Note: This method is useful for displaying connection status in UI elements such as spinners or status indicators. +
+
diff --git a/src/lib/taDocs/3-client-joinTournament.md b/src/lib/taDocs/3-client-joinTournament.md new file mode 100644 index 0000000..980dea3 --- /dev/null +++ b/src/lib/taDocs/3-client-joinTournament.md @@ -0,0 +1,48 @@ +# The taClient.joinTournament() method +This documents the `taClient.joinTournament()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function joinTournament(tournamentId: string, userId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament to join +- **userId** (string): The GUID of the user who is joining the tournament + +## General usage: +```ts +const response: Response = taClient.joinTournament(tournamentGuid, userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + joinTournament: Response_JoinTournament, + oneofKind: 'joinTournament' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_JoinTournament` please find documentation at [Models -> Response_JoinTournament](/documentation#Models/4-Response_JoinTournament). + +
+ info +
+ Note: This method allows a user to officially join a tournament. Once joined, the user becomes a participant and their participation is recorded on the server. +
+
diff --git a/src/lib/taDocs/3-client-loadImage.md b/src/lib/taDocs/3-client-loadImage.md new file mode 100644 index 0000000..f609758 --- /dev/null +++ b/src/lib/taDocs/3-client-loadImage.md @@ -0,0 +1,51 @@ +# The taClient.loadImage() method +This documents the `taClient.loadImage()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function loadImage(tournamentId: string, bitmap: Uint8Array, userIds: string[]): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **bitmap** (Uint8Array): The image data as a Uint8Array (binary bitmap data) +- **userIds** (string[]): An array of user GUIDs for whom the image should be loaded + +## General usage: +```ts +const responses: ResponseFromUser[] = await taClient.loadImage(tournamentGuid, imageBuffer, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +The method returns an array of `ResponseFromUser` objects, each containing: +```js +{ + userId: 'user-guid-1', + response: { + details: { + loadImage: Response_LoadImage, + oneofKind: 'loadImage' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType + } +} +``` + +
+ info +
+ Note: This method is used in conjunction with StreamSync and related overlay systems to load custom images for display. After loading the image, you can call `showLoadedImage()` to display it. +
+
diff --git a/src/lib/taDocs/3-client-loadSong.md b/src/lib/taDocs/3-client-loadSong.md new file mode 100644 index 0000000..4359b4a --- /dev/null +++ b/src/lib/taDocs/3-client-loadSong.md @@ -0,0 +1,49 @@ +# The taClient.loadSong() method +This documents the `taClient.loadSong()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function loadSong(tournamentId: string, levelId: string, userIds: string[], timeout?: number): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **levelId** (string): The level ID/hash of the song to load +- **userIds** (string[]): An array of user GUIDs for whom the song should be loaded +- **timeout** (number, optional): The timeout in milliseconds for loading the song + +## General usage: +```ts +const responses: ResponseFromUser[] = await taClient.loadSong(tournamentGuid, 'levelHash123', [userGuid1, userGuid2], 5000); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +The method returns an array of `ResponseFromUser` objects, each containing: +```js +{ + userId: 'user-guid-1', + response: { + type: Response_ResponseType, + respondingToPacketId: 'packet-guid-uuidv4', + details: { ... } + } +} +``` + +
+ info +
+ Note: This method prepares a song for the specified players in a tournament. The method returns a response from each user indicating whether the song was successfully loaded on their client. +
+
diff --git a/src/lib/taDocs/3-client-on.md b/src/lib/taDocs/3-client-on.md new file mode 100644 index 0000000..c2cda7c --- /dev/null +++ b/src/lib/taDocs/3-client-on.md @@ -0,0 +1,66 @@ +# The taClient.on() method +This documents the `taClient.on()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function on(eventName: string, callback: (data: any) => void): Promise { + // backend logic +} +``` + +## Parameters: +- **eventName** (string): The name of the event to listen for (e.g., 'realtimeScore', 'songFinished') +- **callback** (function): A callback function that will be invoked whenever the event is triggered. The callback receives the event data as a parameter. + +## General usage: +```ts +taClient.on('realtimeScore', (scoreData) => { + console.log('Score update:', scoreData); +}); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Common Events: +- **realtimeScore**: Fired when a player's score is updated in real-time during a match +- **songFinished**: Fired when a player finishes playing a song +- **matchCreated**: Fired when a new match is created +- **matchDeleted**: Fired when a match is deleted +- And many others - refer to the Events documentation for a complete list + +## Example usage: +```ts +// Listen for real-time score updates +taClient.on('realtimeScore', (scoreData) => { + console.log('Player score updated:', scoreData); + // Update your UI with the new score +}); + +// Listen for song completion +taClient.on('songFinished', (finishData) => { + console.log('Song finished:', finishData); + // Perform actions when a song finishes +}); +``` + +
+ info +
+ Note: Event listeners remain active until explicitly removed with `removeListener()`. This is the standard way to subscribe to real-time events that are not stored in the state manager. +
+
+ +## Important: +```ts +// When your component or application is destroyed, +// remember to remove the listener to prevent memory leaks +taClient.removeListener('realtimeScore', callbackFunction); +``` +- For more information on removing listeners, see [Client -> removeListener](/documentation#Client/3-client-removeListener) diff --git a/src/lib/taDocs/3-client-once.md b/src/lib/taDocs/3-client-once.md new file mode 100644 index 0000000..39e7b41 --- /dev/null +++ b/src/lib/taDocs/3-client-once.md @@ -0,0 +1,68 @@ +# The taClient.once() method +This documents the `taClient.once()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function once(eventName: string, callback: (data: any) => void): Promise { + // backend logic +} +``` + +## Parameters: +- **eventName** (string): The name of the event to listen for +- **callback** (function): A callback function that will be invoked exactly once when the event is triggered. The callback receives the event data as a parameter. + +## General usage: +```ts +taClient.once('matchCreated', (matchData) => { + console.log('Match was created:', matchData); +}); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Key Differences from on(): +- **on()**: Listener persists and fires every time the event occurs +- **once()**: Listener automatically removes itself after the first occurrence + +## Example usage: +```ts +// Listen for a match creation event - will only fire once +taClient.once('matchCreated', (matchData) => { + console.log('New match created:', matchData); + // This callback will only run one time +}); + +// Alternatively, wait for a specific tournament update +taClient.once('tournamentUpdated', (tournamentData) => { + console.log('Tournament was updated:', tournamentData); +}); +``` + +
+ info +
+ Use Case: Use `once()` when you want to respond to a specific one-time event without having to manually manage listener cleanup. +
+
+ +## Comparison: +```ts +// Using on() - fires multiple times +taClient.on('realtimeScore', (data) => { + updateUI(data); +}); + +// Using once() - fires only the first time +taClient.once('matchStarted', (data) => { + console.log('Match started for the first time'); + // This runs only once +}); +``` diff --git a/src/lib/taDocs/3-client-playSong.md b/src/lib/taDocs/3-client-playSong.md new file mode 100644 index 0000000..7215f0c --- /dev/null +++ b/src/lib/taDocs/3-client-playSong.md @@ -0,0 +1,56 @@ +# The taClient.playSong() method +This documents the `taClient.playSong()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function playSong(tournamentId: string, gameplayParameters: GameplayParameters, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **gameplayParameters** (GameplayParameters): An object containing gameplay settings including the beatmap information, modifiers, and difficulty settings +- **userIds** (string[]): An array of user GUIDs for whom the song should be played + +## General usage: +```ts +const gameplayParams: GameplayParameters = { + levelId: 'levelHash123', + difficulty: 'Expert', + modifiers: ['HD', 'FL'] // optional modifiers +}; +taClient.playSong(tournamentGuid, gameplayParams, [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response object. It sends the play command directly to the specified users. + +
+ info +
+ Note: This is a synchronous method that sends the signal to play a song to the specified players in a tournament. You must have previously loaded the song using `loadSong()` before calling this method. +
+
+ +## Typical workflow: +```ts +// 1. Load the song for specific players +const responses = await taClient.loadSong(tournamentGuid, 'levelHash123', [userGuid1, userGuid2]); + +// 2. Once loaded, play the song for those players (synchronous - no await needed) +const gameplayParams: GameplayParameters = { + levelId: 'levelHash123', + difficulty: 'Expert' +}; +taClient.playSong(tournamentGuid, gameplayParams, [userGuid1, userGuid2]); +``` diff --git a/src/lib/taDocs/3-client-refundAttempts.md b/src/lib/taDocs/3-client-refundAttempts.md new file mode 100644 index 0000000..598564e --- /dev/null +++ b/src/lib/taDocs/3-client-refundAttempts.md @@ -0,0 +1,59 @@ +# The taClient.refundAttempts() method +This documents the `taClient.refundAttempts()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function refundAttempts(tournamentId: string, qualifierId: string, mapId: string, platformId: string, count: number): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **qualifierId** (string): The GUID of the qualifier event +- **mapId** (string): The GUID of the map for which attempts should be refunded +- **platformId** (string): The platform ID (typically the user or platform identifier) +- **count** (number): The number of attempts to refund + +## General usage: +```ts +const responses: ResponseFromUser[] = await taClient.refundAttempts( + tournamentGuid, + qualifierGuid, + mapGuid, + platformId, + 3 // Refund 3 attempts +); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +The method returns an array of `ResponseFromUser` objects, each containing: +```js +{ + userId: 'user-guid-1', + response: { + details: { + refundAttempts: Response_RefundAttempts, + oneofKind: 'refundAttempts' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType + } +} +``` + +
+ info +
+ Note: This method refunds attempts for a specific map in a qualifier event. This is useful for correcting mistakes or providing second chances to players who experienced technical issues. +
+
diff --git a/src/lib/taDocs/3-client-removeAuthorizedUser.md b/src/lib/taDocs/3-client-removeAuthorizedUser.md new file mode 100644 index 0000000..8dcd163 --- /dev/null +++ b/src/lib/taDocs/3-client-removeAuthorizedUser.md @@ -0,0 +1,48 @@ +# The taClient.removeAuthorizedUser() method +This documents the `taClient.removeAuthorizedUser()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeAuthorizedUser(tournamentId: string, discordId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **discordId** (string): The Discord ID of the user to remove from authorized users + +## General usage: +```ts +const response: Response = taClient.removeAuthorizedUser(tournamentGuid, userDiscordId); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeAuthorizedUser: Response_RemoveAuthorizedUser, + oneofKind: 'removeAuthorizedUser' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveAuthorizedUser` please find documentation at [Models -> Response_RemoveAuthorizedUser](/documentation#Models/4-Response_RemoveAuthorizedUser). + +
+ info +
+ Note: This method revokes all permissions for a user on a tournament, effectively removing them from the authorized users list. +
+
diff --git a/src/lib/taDocs/3-client-removeListener.md b/src/lib/taDocs/3-client-removeListener.md new file mode 100644 index 0000000..6fd46bb --- /dev/null +++ b/src/lib/taDocs/3-client-removeListener.md @@ -0,0 +1,89 @@ +# The taClient.removeListener() method +This documents the `taClient.removeListener()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeListener(eventName: string, callback: (data: any) => void): Promise { + // backend logic +} +``` + +## Parameters: +- **eventName** (string): The name of the event to stop listening for +- **callback** (function): The exact callback function that was previously registered with `on()` or `once()` + +## General usage: +```ts +const handleScoreUpdate = (scoreData) => { + console.log('Score updated:', scoreData); +}; + +// Add listener +taClient.on('realtimeScore', handleScoreUpdate); + +// ... later, remove the listener +taClient.removeListener('realtimeScore', handleScoreUpdate); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Important Note: +The callback function passed to `removeListener()` must be the **exact same function reference** that was passed to `on()` or `once()`. This is why it's important to store your callback functions in variables rather than using inline arrow functions. + +## Example - Correct Usage: +```ts +// Store the callback in a variable +const handleRealtimeScore = (scoreData) => { + console.log('Score update:', scoreData); +}; + +// onMount +taClient.on('realtimeScore', handleRealtimeScore); + +// When cleaning up (e.g., on component destroy) +taClient.removeListener('realtimeScore', handleRealtimeScore); +``` + +## Example - Incorrect Usage: +```ts +// DON'T do this - the callback won't be removed! +taClient.on('realtimeScore', (scoreData) => { + console.log('Score update:', scoreData); +}); + +// This won't work because it's a different function reference +taClient.removeListener('realtimeScore', (scoreData) => { + console.log('Score update:', scoreData); +}); +``` + +
+ warning +
+ Best Practice: Always remove listeners when your component is destroyed or when you no longer need them. Failing to do so can cause memory leaks, especially in single-page applications. +
+
+ +## Typical Svelte onDestroy pattern: +```ts +import { onDestroy } from 'svelte'; + +const handleScoreUpdate = (scoreData) => { + // Handle the update +}; + +onMount(() => { + taClient.on('realtimeScore', handleScoreUpdate); +}); + +onDestroy(() => { + taClient.removeListener('realtimeScore', handleScoreUpdate); +}); +``` diff --git a/src/lib/taDocs/3-client-removeQualifierMap.md b/src/lib/taDocs/3-client-removeQualifierMap.md new file mode 100644 index 0000000..abe9eec --- /dev/null +++ b/src/lib/taDocs/3-client-removeQualifierMap.md @@ -0,0 +1,48 @@ +# The taClient.removeQualifierMap() method +This documents the `taClient.removeQualifierMap()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeQualifierMap(qualifierId: string, mapId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **mapId** (string): The GUID of the map to remove from the qualifier + +## General usage: +```ts +const response: Response = taClient.removeQualifierMap(qualifierGuid, mapGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeQualifierMap: Response_RemoveQualifierMap, + oneofKind: 'removeQualifierMap' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveQualifierMap` please find documentation at [Models -> Response_RemoveQualifierMap](/documentation#Models/4-Response_RemoveQualifierMap). + +
+ info +
+ Note: This method removes a specific map from a qualifier event. The leaderboard and scores for this map will be retained but the map will no longer be part of the qualifier. +
+
diff --git a/src/lib/taDocs/3-client-removeTournamentPool.md b/src/lib/taDocs/3-client-removeTournamentPool.md new file mode 100644 index 0000000..6c16970 --- /dev/null +++ b/src/lib/taDocs/3-client-removeTournamentPool.md @@ -0,0 +1,48 @@ +# The taClient.removeTournamentPool() method +This documents the `taClient.removeTournamentPool()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeTournamentPool(tournamentId: string, poolId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **poolId** (string): The GUID of the map pool to remove + +## General usage: +```ts +const response: Response = taClient.removeTournamentPool(tournamentGuid, poolGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeTournamentPool: Response_RemoveTournamentPool, + oneofKind: 'removeTournamentPool' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveTournamentPool` please find documentation at [Models -> Response_RemoveTournamentPool](/documentation#Models/4-Response_RemoveTournamentPool). + +
+ info +
+ Note: Removing a map pool will delete the pool and all its associated maps from the tournament. +
+
diff --git a/src/lib/taDocs/3-client-removeTournamentPoolMap.md b/src/lib/taDocs/3-client-removeTournamentPoolMap.md new file mode 100644 index 0000000..0fcd813 --- /dev/null +++ b/src/lib/taDocs/3-client-removeTournamentPoolMap.md @@ -0,0 +1,49 @@ +# The taClient.removeTournamentPoolMap() method +This documents the `taClient.removeTournamentPoolMap()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeTournamentPoolMap(tournamentId: string, poolId: string, mapId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **poolId** (string): The GUID of the map pool +- **mapId** (string): The GUID of the map to remove from the pool + +## General usage: +```ts +const response: Response = taClient.removeTournamentPoolMap(tournamentGuid, poolGuid, mapGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeTournamentPoolMap: Response_RemoveTournamentPoolMap, + oneofKind: 'removeTournamentPoolMap' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveTournamentPoolMap` please find documentation at [Models -> Response_RemoveTournamentPoolMap](/documentation#Models/4-Response_RemoveTournamentPoolMap). + +
+ info +
+ Note: This method removes a specific map from an existing map pool. The pool itself remains intact. +
+
diff --git a/src/lib/taDocs/3-client-removeTournamentRole.md b/src/lib/taDocs/3-client-removeTournamentRole.md new file mode 100644 index 0000000..c602c1a --- /dev/null +++ b/src/lib/taDocs/3-client-removeTournamentRole.md @@ -0,0 +1,48 @@ +# The taClient.removeTournamentRole() method +This documents the `taClient.removeTournamentRole()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeTournamentRole(tournamentId: string, roleId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **roleId** (string): The ID of the role to remove + +## General usage: +```ts +const response: Response = taClient.removeTournamentRole(tournamentGuid, roleId); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeTournamentRole: Response_RemoveTournamentRole, + oneofKind: 'removeTournamentRole' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveTournamentRole` please find documentation at [Models -> Response_RemoveTournamentRole](/documentation#Models/4-Response_RemoveTournamentRole). + +
+ info +
+ Note: Removing a tournament role will delete the role definition from the tournament. Any users assigned to this role will have their role assignment removed. +
+
diff --git a/src/lib/taDocs/3-client-removeTournamentTeam.md b/src/lib/taDocs/3-client-removeTournamentTeam.md new file mode 100644 index 0000000..5a79d1f --- /dev/null +++ b/src/lib/taDocs/3-client-removeTournamentTeam.md @@ -0,0 +1,48 @@ +# The taClient.removeTournamentTeam() method +This documents the `taClient.removeTournamentTeam()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeTournamentTeam(tournamentId: string, teamId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **teamId** (string): The GUID of the team to remove + +## General usage: +```ts +const response: Response = taClient.removeTournamentTeam(tournamentGuid, teamGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeTournamentTeam: Response_RemoveTournamentTeam, + oneofKind: 'removeTournamentTeam' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveTournamentTeam` please find documentation at [Models -> Response_RemoveTournamentTeam](/documentation#Models/4-Response_RemoveTournamentTeam). + +
+ info +
+ Note: Removing a tournament team will delete the team from the tournament. Any players assigned to this team will have their team assignment removed. +
+
diff --git a/src/lib/taDocs/3-client-removeUserFromMatch.md b/src/lib/taDocs/3-client-removeUserFromMatch.md new file mode 100644 index 0000000..a74400e --- /dev/null +++ b/src/lib/taDocs/3-client-removeUserFromMatch.md @@ -0,0 +1,48 @@ +# The taClient.removeUserFromMatch() method +This documents the `taClient.removeUserFromMatch()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function removeUserFromMatch(matchId: string, userId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **matchId** (string): The GUID of the match +- **userId** (string): The GUID of the user to remove from the match + +## General usage: +```ts +const response: Response = taClient.removeUserFromMatch(matchGuid, userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + removeUserFromMatch: Response_RemoveUserFromMatch, + oneofKind: 'removeUserFromMatch' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RemoveUserFromMatch` please find documentation at [Models -> Response_RemoveUserFromMatch](/documentation#Models/4-Response_RemoveUserFromMatch). + +
+ info +
+ Note: This method removes a user from a match. If the user is the match leader and there are other players, the leader role may be transferred to another player. +
+
diff --git a/src/lib/taDocs/3-client-returnToMenu.md b/src/lib/taDocs/3-client-returnToMenu.md new file mode 100644 index 0000000..cf0c944 --- /dev/null +++ b/src/lib/taDocs/3-client-returnToMenu.md @@ -0,0 +1,46 @@ +# The taClient.returnToMenu() method +This documents the `taClient.returnToMenu()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function returnToMenu(...userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **userIds** (string[]): Variable arguments containing the GUIDs of users who should return to the menu + +## General usage: +```ts +taClient.returnToMenu(userGuid1, userGuid2, userGuid3); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` and does not return a response. + +## Example usage: +```ts +// Send all players back to the main menu +const playerGuids = ['guid1', 'guid2', 'guid3']; +taClient.returnToMenu(...playerGuids); + +// Or send a single player back +taClient.returnToMenu(userGuid); +``` + +
+ info +
+ Note: This method immediately sends the specified players back to the menu in the game client, interrupting any ongoing gameplay. +
+
diff --git a/src/lib/taDocs/3-client-revokeBotToken.md b/src/lib/taDocs/3-client-revokeBotToken.md new file mode 100644 index 0000000..2756b1c --- /dev/null +++ b/src/lib/taDocs/3-client-revokeBotToken.md @@ -0,0 +1,47 @@ +# The taClient.revokeBotToken() method +This documents the `taClient.revokeBotToken()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function revokeBotToken(tokenId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tokenId** (string): The ID of the bot token to revoke + +## General usage: +```ts +const response: Response = taClient.revokeBotToken(tokenId); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + revokeBotToken: Response_RevokeBotToken, + oneofKind: 'revokeBotToken' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_RevokeBotToken` please find documentation at [Models -> Response_RevokeBotToken](/documentation#Models/4-Response_RevokeBotToken). + +
+ warning +
+ Warning: Revoking a bot token will immediately invalidate it. Any integrations or tools using this token will cease to function until a new token is generated. +
+
diff --git a/src/lib/taDocs/3-client-sendResponse.md b/src/lib/taDocs/3-client-sendResponse.md new file mode 100644 index 0000000..432bcfa --- /dev/null +++ b/src/lib/taDocs/3-client-sendResponse.md @@ -0,0 +1,41 @@ +# The taClient.sendResponse() method +This documents the `taClient.sendResponse()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function sendResponse(response: Response): Promise { + // backend logic +} +``` + +## Parameters: +- **response** (Response): A Response object to send to the TA Core Server +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +## General usage: +```ts +await taClient.sendResponse(customResponseObject); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +
+ warning +
+ Warning: Do not use this method unless you know exactly what you are doing. This method is intended for advanced use cases and new feature testing only. Sending malformed or incorrect responses can disrupt tournament operations. +
+
+ +
+ info +
+ Advanced: This method is used for custom packet handling and should only be used by developers who understand the Tournament Assistant protocol. +
+
diff --git a/src/lib/taDocs/3-client-setAuthToken.md b/src/lib/taDocs/3-client-setAuthToken.md new file mode 100644 index 0000000..a8d0c2f --- /dev/null +++ b/src/lib/taDocs/3-client-setAuthToken.md @@ -0,0 +1,47 @@ +# The taClient.setAuthToken() method +This documents the `taClient.setAuthToken()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setAuthToken(token: string): Promise { + // backend logic +} +``` + +## Parameters: +- **token** (string): The authentication JWT token to set for the client + +## General usage: +```ts +const response: Response = taClient.setAuthToken(jwtToken); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setAuthToken: Response_SetAuthToken, + oneofKind: 'setAuthToken' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetAuthToken` please find documentation at [Models -> Response_SetAuthToken](/documentation#Models/4-Response_SetAuthToken). + +
+ info +
+ Note: The authentication token is typically obtained through Discord OAuth authentication. It is required for most operations on the server. +
+
diff --git a/src/lib/taDocs/3-client-setMatchLeader.md b/src/lib/taDocs/3-client-setMatchLeader.md new file mode 100644 index 0000000..6a58bf5 --- /dev/null +++ b/src/lib/taDocs/3-client-setMatchLeader.md @@ -0,0 +1,48 @@ +# The taClient.setMatchLeader() method +This documents the `taClient.setMatchLeader()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setMatchLeader(matchId: string, userId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **matchId** (string): The GUID of the match +- **userId** (string): The GUID of the user who should become the new match leader + +## General usage: +```ts +const response: Response = taClient.setMatchLeader(matchGuid, userGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setMatchLeader: Response_SetMatchLeader, + oneofKind: 'setMatchLeader' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetMatchLeader` please find documentation at [Models -> Response_SetMatchLeader](/documentation#Models/4-Response_SetMatchLeader). + +
+ info +
+ Note: The match leader is typically the coordinator who manages the match. Only a user who is already part of the match can be set as the leader. +
+
diff --git a/src/lib/taDocs/3-client-setMatchMap.md b/src/lib/taDocs/3-client-setMatchMap.md new file mode 100644 index 0000000..4f9576c --- /dev/null +++ b/src/lib/taDocs/3-client-setMatchMap.md @@ -0,0 +1,48 @@ +# The taClient.setMatchMap() method +This documents the `taClient.setMatchMap()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setMatchMap(matchId: string, mapId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **matchId** (string): The GUID of the match +- **mapId** (string): The GUID of the map (song) to set for the match + +## General usage: +```ts +const response: Response = taClient.setMatchMap(matchGuid, mapGuid); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setMatchMap: Response_SetMatchMap, + oneofKind: 'setMatchMap' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetMatchMap` please find documentation at [Models -> Response_SetMatchMap](/documentation#Models/4-Response_SetMatchMap). + +
+ info +
+ Note: Setting the match map will load the map for all players in the match, preparing them to play the specified song. +
+
diff --git a/src/lib/taDocs/3-client-setQualifierFlags.md b/src/lib/taDocs/3-client-setQualifierFlags.md new file mode 100644 index 0000000..feab5d2 --- /dev/null +++ b/src/lib/taDocs/3-client-setQualifierFlags.md @@ -0,0 +1,49 @@ +# The taClient.setQualifierFlags() method +This documents the `taClient.setQualifierFlags()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setQualifierFlags(qualifierId: string, flags: number): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **flags** (number): The flags/settings for the qualifier event (of type `QualifierEvent_EventSettings`) + +## General usage: +```ts +const response: Response = taClient.setQualifierFlags(qualifierGuid, flags); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) +- For `QualifierEvent_EventSettings` please find documentation at [Enums -> QualifierEvent_EventSettings](/documentation#Enums/5-QualifierEvent_EventSettings) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setQualifierFlags: Response_SetQualifierFlags, + oneofKind: 'setQualifierFlags' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetQualifierFlags` please find documentation at [Models -> Response_SetQualifierFlags](/documentation#Models/4-Response_SetQualifierFlags). + +
+ info +
+ Note: The flags parameter controls various settings and behaviors of the qualifier event. Refer to the QualifierEvent_EventSettings enum for the available flag values. +
+
diff --git a/src/lib/taDocs/3-client-setQualifierImage.md b/src/lib/taDocs/3-client-setQualifierImage.md new file mode 100644 index 0000000..58d3354 --- /dev/null +++ b/src/lib/taDocs/3-client-setQualifierImage.md @@ -0,0 +1,48 @@ +# The taClient.setQualifierImage() method +This documents the `taClient.setQualifierImage()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setQualifierImage(qualifierId: string, image: Uint8Array): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **image** (Uint8Array): The image for the qualifier as a Uint8Array (binary data) + +## General usage: +```ts +const response: Response = taClient.setQualifierImage(qualifierGuid, imageBuffer); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setQualifierImage: Response_SetQualifierImage, + oneofKind: 'setQualifierImage' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetQualifierImage` please find documentation at [Models -> Response_SetQualifierImage](/documentation#Models/4-Response_SetQualifierImage). + +
+ info +
+ Note: The image will be displayed in the tournament menu and on qualifier-related UI elements. The Uint8Array should be obtained from file input or image processing. +
+
diff --git a/src/lib/taDocs/3-client-setQualifierInfoChannel.md b/src/lib/taDocs/3-client-setQualifierInfoChannel.md new file mode 100644 index 0000000..569349f --- /dev/null +++ b/src/lib/taDocs/3-client-setQualifierInfoChannel.md @@ -0,0 +1,48 @@ +# The taClient.setQualifierInfoChannel() method +This documents the `taClient.setQualifierInfoChannel()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setQualifierInfoChannel(qualifierId: string, discordChannelId: string): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **discordChannelId** (string): The Discord channel ID where qualifier scores and updates will be sent + +## General usage: +```ts +const response: Response = taClient.setQualifierInfoChannel(qualifierGuid, discordChannelId); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setQualifierInfoChannel: Response_SetQualifierInfoChannel, + oneofKind: 'setQualifierInfoChannel' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetQualifierInfoChannel` please find documentation at [Models -> Response_SetQualifierInfoChannel](/documentation#Models/4-Response_SetQualifierInfoChannel). + +
+ info +
+ Note: The Tournament Assistant bot will post qualifying scores and updates to the specified Discord channel. This allows for easy monitoring of qualifier progress by server members. +
+
diff --git a/src/lib/taDocs/3-client-setQualifierLeaderboardSort.md b/src/lib/taDocs/3-client-setQualifierLeaderboardSort.md new file mode 100644 index 0000000..0ce3d68 --- /dev/null +++ b/src/lib/taDocs/3-client-setQualifierLeaderboardSort.md @@ -0,0 +1,49 @@ +# The taClient.setQualifierLeaderboardSort() method +This documents the `taClient.setQualifierLeaderboardSort()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setQualifierLeaderboardSort(qualifierId: string, sortType: QualifierEvent_LeaderboardSort): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **sortType** (QualifierEvent_LeaderboardSort): The sorting method for the leaderboard (e.g., modifiedScore, sumScore, bestScore) + +## General usage: +```ts +const response: Response = taClient.setQualifierLeaderboardSort(qualifierGuid, sortType); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) +- For `QualifierEvent_LeaderboardSort` please find documentation at [Enums -> QualifierEvent_LeaderboardSort](/documentation#Enums/5-QualifierEvent_LeaderboardSort) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setQualifierLeaderboardSort: Response_SetQualifierLeaderboardSort, + oneofKind: 'setQualifierLeaderboardSort' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetQualifierLeaderboardSort` please find documentation at [Models -> Response_SetQualifierLeaderboardSort](/documentation#Models/4-Response_SetQualifierLeaderboardSort). + +
+ info +
+ Note: The leaderboard sort type determines how player scores are ranked and displayed. Different sort types can emphasize consistency versus peak performance. +
+
diff --git a/src/lib/taDocs/3-client-setQualifierName.md b/src/lib/taDocs/3-client-setQualifierName.md new file mode 100644 index 0000000..f1acd0e --- /dev/null +++ b/src/lib/taDocs/3-client-setQualifierName.md @@ -0,0 +1,48 @@ +# The taClient.setQualifierName() method +This documents the `taClient.setQualifierName()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setQualifierName(qualifierId: string, name: string): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **name** (string): The new name for the qualifier event + +## General usage: +```ts +const response: Response = taClient.setQualifierName(qualifierGuid, 'New Qualifier Name'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setQualifierName: Response_SetQualifierName, + oneofKind: 'setQualifierName' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetQualifierName` please find documentation at [Models -> Response_SetQualifierName](/documentation#Models/4-Response_SetQualifierName). + +
+ info +
+ Note: The qualifier name is displayed in the tournament menu and in all UI elements related to the qualifier event. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentAllowUnauthorizedView.md b/src/lib/taDocs/3-client-setTournamentAllowUnauthorizedView.md new file mode 100644 index 0000000..a948508 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentAllowUnauthorizedView.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentAllowUnauthorizedView() method +This documents the `taClient.setTournamentAllowUnauthorizedView()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentAllowUnauthorizedView(tournamentId: string, allow: boolean): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **allow** (boolean): Whether to allow unauthorized users to view the tournament + +## General usage: +```ts +const response: Response = taClient.setTournamentAllowUnauthorizedView(tournamentGuid, true); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentAllowUnauthorizedView: Response_SetTournamentAllowUnauthorizedView, + oneofKind: 'setTournamentAllowUnauthorizedView' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentAllowUnauthorizedView` please find documentation at [Models -> Response_SetTournamentAllowUnauthorizedView](/documentation#Models/4-Response_SetTournamentAllowUnauthorizedView). + +
+ info +
+ Note: When enabled, users without the view permission can still access and view tournament information. When disabled, only authorized users can view the tournament. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentBannedMods.md b/src/lib/taDocs/3-client-setTournamentBannedMods.md new file mode 100644 index 0000000..1ba2f85 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentBannedMods.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentBannedMods() method +This documents the `taClient.setTournamentBannedMods()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentBannedMods(tournamentId: string, bannedMods: string[]): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **bannedMods** (string[]): An array of mod names to ban from the tournament + +## General usage: +```ts +const response: Response = taClient.setTournamentBannedMods(tournamentGuid, ['Mod1', 'Mod2']); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentBannedMods: Response_SetTournamentBannedMods, + oneofKind: 'setTournamentBannedMods' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentBannedMods` please find documentation at [Models -> Response_SetTournamentBannedMods](/documentation#Models/4-Response_SetTournamentBannedMods). + +
+ info +
+ Note: Banned mods cannot be used during tournament matches. This helps enforce tournament rules and fairness. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentEnablePools.md b/src/lib/taDocs/3-client-setTournamentEnablePools.md new file mode 100644 index 0000000..34021bf --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentEnablePools.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentEnablePools() method +This documents the `taClient.setTournamentEnablePools()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentEnablePools(tournamentId: string, enable: boolean): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **enable** (boolean): Whether to enable the map pools feature for the tournament + +## General usage: +```ts +const response: Response = taClient.setTournamentEnablePools(tournamentGuid, true); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentEnablePools: Response_SetTournamentEnablePools, + oneofKind: 'setTournamentEnablePools' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentEnablePools` please find documentation at [Models -> Response_SetTournamentEnablePools](/documentation#Models/4-Response_SetTournamentEnablePools). + +
+ info +
+ Note: When enabled, tournament organizers can create and manage map pools. When disabled, the map pools feature is hidden and unavailable. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentEnableTeams.md b/src/lib/taDocs/3-client-setTournamentEnableTeams.md new file mode 100644 index 0000000..4e9d6d4 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentEnableTeams.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentEnableTeams() method +This documents the `taClient.setTournamentEnableTeams()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentEnableTeams(tournamentId: string, enable: boolean): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **enable** (boolean): Whether to enable the teams feature for the tournament + +## General usage: +```ts +const response: Response = taClient.setTournamentEnableTeams(tournamentGuid, true); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentEnableTeams: Response_SetTournamentEnableTeams, + oneofKind: 'setTournamentEnableTeams' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentEnableTeams` please find documentation at [Models -> Response_SetTournamentEnableTeams](/documentation#Models/4-Response_SetTournamentEnableTeams). + +
+ info +
+ Note: When enabled, tournament organizers can create teams and assign players to them. When disabled, the teams feature is hidden and unavailable. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentImage.md b/src/lib/taDocs/3-client-setTournamentImage.md new file mode 100644 index 0000000..a38cddd --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentImage.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentImage() method +This documents the `taClient.setTournamentImage()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentImage(tournamentId: string, image: Uint8Array): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **image** (Uint8Array): The image for the tournament as a Uint8Array (binary data) + +## General usage: +```ts +const response: Response = taClient.setTournamentImage(tournamentGuid, imageBuffer); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentImage: Response_SetTournamentImage, + oneofKind: 'setTournamentImage' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentImage` please find documentation at [Models -> Response_SetTournamentImage](/documentation#Models/4-Response_SetTournamentImage). + +
+ info +
+ Note: The tournament image will be displayed in the tournament menu and on tournament-related UI elements. The Uint8Array should be obtained from file input or image processing. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentName.md b/src/lib/taDocs/3-client-setTournamentName.md new file mode 100644 index 0000000..b525ad0 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentName.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentName() method +This documents the `taClient.setTournamentName()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentName(tournamentId: string, name: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **name** (string): The new name for the tournament + +## General usage: +```ts +const response: Response = taClient.setTournamentName(tournamentGuid, 'New Tournament Name'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentName: Response_SetTournamentName, + oneofKind: 'setTournamentName' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentName` please find documentation at [Models -> Response_SetTournamentName](/documentation#Models/4-Response_SetTournamentName). + +
+ info +
+ Note: The tournament name is displayed throughout the application in tournament menus and information pages. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentPoolImage.md b/src/lib/taDocs/3-client-setTournamentPoolImage.md new file mode 100644 index 0000000..df0c92b --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentPoolImage.md @@ -0,0 +1,51 @@ +# The taClient.setTournamentPoolImage() method +This documents the `taClient.setTournamentPoolImage()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentPoolImage(tournamentId: string, poolId: string, image: Uint8Array): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **poolId** (string): The GUID of the pool for which to set the image +- **image** (Uint8Array): The image data as a Uint8Array (binary bitmap data) + +## General usage: +```ts +const response: Response = await taClient.setTournamentPoolImage( + tournamentGuid, + poolGuid, + imageBuffer +); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentPoolImage: Request_SetTournamentPoolImage, + oneofKind: 'setTournamentPoolImage' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` + +
+ info +
+ Note: This method sets the image associated with a tournament pool. The image will be displayed in the tournament interface to visually identify the pool. The Uint8Array should contain the binary image data obtained from file input or image processing. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentPoolName.md b/src/lib/taDocs/3-client-setTournamentPoolName.md new file mode 100644 index 0000000..86a142d --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentPoolName.md @@ -0,0 +1,49 @@ +# The taClient.setTournamentPoolName() method +This documents the `taClient.setTournamentPoolName()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentPoolName(tournamentId: string, poolId: string, name: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **poolId** (string): The GUID of the map pool +- **name** (string): The new name for the map pool + +## General usage: +```ts +const response: Response = taClient.setTournamentPoolName(tournamentGuid, poolGuid, 'Round 1 Pool'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentPoolName: Response_SetTournamentPoolName, + oneofKind: 'setTournamentPoolName' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentPoolName` please find documentation at [Models -> Response_SetTournamentPoolName](/documentation#Models/4-Response_SetTournamentPoolName). + +
+ info +
+ Note: The map pool name is used to identify the pool in tournament management interfaces. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentRoleName.md b/src/lib/taDocs/3-client-setTournamentRoleName.md new file mode 100644 index 0000000..69e7b4b --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentRoleName.md @@ -0,0 +1,51 @@ +# The taClient.setTournamentRoleName() method +This documents the `taClient.setTournamentRoleName()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentRoleName(tournamentId: string, roleId: string, roleName: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **roleId** (string): The GUID of the role to rename +- **roleName** (string): The new name for the role + +## General usage: +```ts +const response: Response = await taClient.setTournamentRoleName( + tournamentGuid, + roleGuid, + 'Tournament Organizer' +); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentRoleName: Request_SetTournamentRoleName, + oneofKind: 'setTournamentRoleName' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` + +
+ info +
+ Note: This method updates the display name of a tournament role. Role names are used to identify different permission levels and responsibilities within a tournament (e.g., "Administrator", "Referee", "Commentator"). +
+
diff --git a/src/lib/taDocs/3-client-setTournamentRolePermissions.md b/src/lib/taDocs/3-client-setTournamentRolePermissions.md new file mode 100644 index 0000000..19b30b0 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentRolePermissions.md @@ -0,0 +1,51 @@ +# The taClient.setTournamentRolePermissions() method +This documents the `taClient.setTournamentRolePermissions()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentRolePermissions(tournamentId: string, roleId: string, permissions: string[]): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **roleId** (string): The GUID of the role for which to set permissions +- **permissions** (string[]): An array of permission strings that define what actions this role can perform + +## General usage: +```ts +const response: Response = await taClient.setTournamentRolePermissions( + tournamentGuid, + roleGuid, + ['create_matches', 'edit_matches', 'view_results', 'manage_teams'] +); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentRolePermissions: Request_SetTournamentRolePermissions, + oneofKind: 'setTournamentRolePermissions' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` + +
+ info +
+ Note: This method sets the permissions for a tournament role, controlling what actions users with that role can perform in the tournament (e.g., creating matches, managing teams, viewing results). +
+
diff --git a/src/lib/taDocs/3-client-setTournamentScoreUpdateFrequency.md b/src/lib/taDocs/3-client-setTournamentScoreUpdateFrequency.md new file mode 100644 index 0000000..68fa353 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentScoreUpdateFrequency.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentScoreUpdateFrequency() method +This documents the `taClient.setTournamentScoreUpdateFrequency()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentScoreUpdateFrequency(tournamentId: string, frequency: number): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **frequency** (number): The update frequency in frames (typically 30 frames per second) + +## General usage: +```ts +const response: Response = taClient.setTournamentScoreUpdateFrequency(tournamentGuid, 30); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentScoreUpdateFrequency: Response_SetTournamentScoreUpdateFrequency, + oneofKind: 'setTournamentScoreUpdateFrequency' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentScoreUpdateFrequency` please find documentation at [Models -> Response_SetTournamentScoreUpdateFrequency](/documentation#Models/4-Response_SetTournamentScoreUpdateFrequency). + +
+ info +
+ Note: The score update frequency determines how often score updates are sent from the game clients to the server. A higher number means more frequent updates. The typical value is 30 frames per second. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentShowQualifierButton.md b/src/lib/taDocs/3-client-setTournamentShowQualifierButton.md new file mode 100644 index 0000000..f8be178 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentShowQualifierButton.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentShowQualifierButton() method +This documents the `taClient.setTournamentShowQualifierButton()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentShowQualifierButton(tournamentId: string, show: boolean): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **show** (boolean): Whether to show the qualifier button in the tournament menu + +## General usage: +```ts +const response: Response = taClient.setTournamentShowQualifierButton(tournamentGuid, true); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentShowQualifierButton: Response_SetTournamentShowQualifierButton, + oneofKind: 'setTournamentShowQualifierButton' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentShowQualifierButton` please find documentation at [Models -> Response_SetTournamentShowQualifierButton](/documentation#Models/4-Response_SetTournamentShowQualifierButton). + +
+ info +
+ Note: When enabled, players will see a qualifier button in the tournament menu within the game. When disabled, the qualifier button is hidden. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentShowTournamentButton.md b/src/lib/taDocs/3-client-setTournamentShowTournamentButton.md new file mode 100644 index 0000000..aba3843 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentShowTournamentButton.md @@ -0,0 +1,48 @@ +# The taClient.setTournamentShowTournamentButton() method +This documents the `taClient.setTournamentShowTournamentButton()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentShowTournamentButton(tournamentId: string, show: boolean): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **show** (boolean): Whether to show the tournament button in the tournament menu + +## General usage: +```ts +const response: Response = taClient.setTournamentShowTournamentButton(tournamentGuid, true); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentShowTournamentButton: Response_SetTournamentShowTournamentButton, + oneofKind: 'setTournamentShowTournamentButton' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentShowTournamentButton` please find documentation at [Models -> Response_SetTournamentShowTournamentButton](/documentation#Models/4-Response_SetTournamentShowTournamentButton). + +
+ info +
+ Note: When enabled, players will see a tournament button in the tournament menu within the game. When disabled, the tournament button is hidden. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentTeamImage.md b/src/lib/taDocs/3-client-setTournamentTeamImage.md new file mode 100644 index 0000000..68d7547 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentTeamImage.md @@ -0,0 +1,49 @@ +# The taClient.setTournamentTeamImage() method +This documents the `taClient.setTournamentTeamImage()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentTeamImage(tournamentId: string, teamId: string, image: Uint8Array): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **teamId** (string): The GUID of the team +- **image** (Uint8Array): The image for the team as a Uint8Array (binary data) + +## General usage: +```ts +const response: Response = taClient.setTournamentTeamImage(tournamentGuid, teamGuid, imageBuffer); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentTeamImage: Response_SetTournamentTeamImage, + oneofKind: 'setTournamentTeamImage' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentTeamImage` please find documentation at [Models -> Response_SetTournamentTeamImage](/documentation#Models/4-Response_SetTournamentTeamImage). + +
+ info +
+ Note: The team image is displayed in the tournament menu and on team-related UI elements. The Uint8Array should be obtained from file input or image processing. +
+
diff --git a/src/lib/taDocs/3-client-setTournamentTeamName.md b/src/lib/taDocs/3-client-setTournamentTeamName.md new file mode 100644 index 0000000..c7f2a35 --- /dev/null +++ b/src/lib/taDocs/3-client-setTournamentTeamName.md @@ -0,0 +1,49 @@ +# The taClient.setTournamentTeamName() method +This documents the `taClient.setTournamentTeamName()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function setTournamentTeamName(tournamentId: string, teamId: string, name: string): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **teamId** (string): The GUID of the team +- **name** (string): The new name for the team + +## General usage: +```ts +const response: Response = taClient.setTournamentTeamName(tournamentGuid, teamGuid, 'New Team Name'); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + setTournamentTeamName: Response_SetTournamentTeamName, + oneofKind: 'setTournamentTeamName' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_SetTournamentTeamName` please find documentation at [Models -> Response_SetTournamentTeamName](/documentation#Models/4-Response_SetTournamentTeamName). + +
+ info +
+ Note: The team name is displayed in the tournament menu and on team-related UI elements. +
+
diff --git a/src/lib/taDocs/3-client-showColor.md b/src/lib/taDocs/3-client-showColor.md new file mode 100644 index 0000000..d060688 --- /dev/null +++ b/src/lib/taDocs/3-client-showColor.md @@ -0,0 +1,38 @@ +# The taClient.showColor() method +This documents the `taClient.showColor()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function showColor(tournamentId: string, color: string, userIds: string[]): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **color** (string): The color to display (typically as a hex color code like "#FF0000" or color name) +- **userIds** (string[]): An array of user GUIDs for whom the color should be displayed + +## General usage: +```ts +taClient.showColor(tournamentGuid, "#FF0000", [userGuid1, userGuid2]); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response. It sends the display command directly to the specified users. + +
+ info +
+ Note: This is a synchronous method that displays a color on the game client for specified players. This is typically used with StreamSync for overlay visualization of player colors or status indicators. +
+
diff --git a/src/lib/taDocs/3-client-showLoadedImage.md b/src/lib/taDocs/3-client-showLoadedImage.md new file mode 100644 index 0000000..a0245b1 --- /dev/null +++ b/src/lib/taDocs/3-client-showLoadedImage.md @@ -0,0 +1,51 @@ +# The taClient.showLoadedImage() method +This documents the `taClient.showLoadedImage()` method. + +
+ info +
+ Synchronous: This is a synchronous method that does not require await +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +function showLoadedImage(tournamentId: string, userIds: string[], show?: boolean): void { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs to show the image to +- **show** (boolean, optional): Whether to show (true) or hide (false) the image. Defaults to true + +## General usage: +```ts +// Show the loaded image to players +taClient.showLoadedImage(tournamentGuid, [userGuid1, userGuid2], true); + +// Or hide the image +taClient.showLoadedImage(tournamentGuid, [userGuid1, userGuid2], false); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Return Value: +This method returns `void` - it does not return a response object. It sends the display command directly to the specified users. + +
+ info +
+ Note: This is a synchronous method that displays a previously loaded image using `loadImage()`. This is typically used with StreamSync and overlay systems. +
+
+ +## Typical workflow: +```ts +// 1. Load the image +await taClient.loadImage(imageBuffer, userGuid1, userGuid2); + +// 2. Display the loaded image for 5 seconds +const response = await taClient.showLoadedImage(5000, userGuid1, userGuid2); +``` diff --git a/src/lib/taDocs/3-client-showPrompt.md b/src/lib/taDocs/3-client-showPrompt.md new file mode 100644 index 0000000..ddf8227 --- /dev/null +++ b/src/lib/taDocs/3-client-showPrompt.md @@ -0,0 +1,67 @@ +# The taClient.showPrompt() method +This documents the `taClient.showPrompt()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function showPrompt(tournamentId: string, userIds: string[], titleText: string, bodyText: string, canClose: boolean, options: Request_ShowPrompt_PromptOption[], timer?: number): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **userIds** (string[]): An array of user GUIDs to show the prompt to +- **titleText** (string): The title text of the prompt +- **bodyText** (string): The body/message content of the prompt +- **canClose** (boolean): Whether users can manually close the prompt +- **options** (Request_ShowPrompt_PromptOption[]): An array of prompt options/buttons for user selection +- **timer** (number, optional): Optional timer in milliseconds for auto-dismissal of the prompt + +## General usage: +```ts +const options = [ + { text: 'Ready', value: '1' }, + { text: 'Not Ready', value: '0' } +]; +const responses: ResponseFromUser[] = await taClient.showPrompt( + tournamentGuid, + [userGuid1, userGuid2], + 'Attention', + 'Please wait for the next match', + true, + options, + 5000 // 5 second timeout +); +``` + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +The method returns an array of `ResponseFromUser` objects, each containing: +```js +{ + userId: 'user-guid-1', + response: { + details: { + showPrompt: Response_ShowPrompt, + oneofKind: 'showPrompt' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType + } +} +``` + +
+ info +
+ Use Case: This method is useful for sending notifications or important messages to players during a tournament, such as announcements or match preparations. +
+
diff --git a/src/lib/taDocs/3-client-updateQualifierMap.md b/src/lib/taDocs/3-client-updateQualifierMap.md new file mode 100644 index 0000000..b57998b --- /dev/null +++ b/src/lib/taDocs/3-client-updateQualifierMap.md @@ -0,0 +1,50 @@ +# The taClient.updateQualifierMap() method +This documents the `taClient.updateQualifierMap()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function updateQualifierMap(qualifierId: string, mapId: string, updatedMap: Map): Promise { + // backend logic +} +``` + +## Parameters: +- **qualifierId** (string): The GUID of the qualifier event +- **mapId** (string): The GUID of the map to update +- **updatedMap** (Map): The updated map object with new settings +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map) + +## General usage: +```ts +const response: Response = taClient.updateQualifierMap(qualifierGuid, mapGuid, updatedMapObject); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateQualifierMap: Response_UpdateQualifierMap, + oneofKind: 'updateQualifierMap' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateQualifierMap` please find documentation at [Models -> Response_UpdateQualifierMap](/documentation#Models/4-Response_UpdateQualifierMap). + +
+ info +
+ Note: This method allows you to update the settings of an existing map within a qualifier event, such as modifiers or difficulty adjustments. +
+
diff --git a/src/lib/taDocs/3-client-updateTournamentPoolMap.md b/src/lib/taDocs/3-client-updateTournamentPoolMap.md new file mode 100644 index 0000000..d01ad31 --- /dev/null +++ b/src/lib/taDocs/3-client-updateTournamentPoolMap.md @@ -0,0 +1,51 @@ +# The taClient.updateTournamentPoolMap() method +This documents the `taClient.updateTournamentPoolMap()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function updateTournamentPoolMap(tournamentId: string, poolId: string, mapId: string, updatedMap: Map): Promise { + // backend logic +} +``` + +## Parameters: +- **tournamentId** (string): The GUID of the tournament +- **poolId** (string): The GUID of the map pool +- **mapId** (string): The GUID of the map to update +- **updatedMap** (Map): The updated map object with new settings +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map) + +## General usage: +```ts +const response: Response = taClient.updateTournamentPoolMap(tournamentGuid, poolGuid, mapGuid, updatedMapObject); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateTournamentPoolMap: Response_UpdateTournamentPoolMap, + oneofKind: 'updateTournamentPoolMap' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateTournamentPoolMap` please find documentation at [Models -> Response_UpdateTournamentPoolMap](/documentation#Models/4-Response_UpdateTournamentPoolMap). + +
+ info +
+ Note: This method allows you to update the settings of an existing map within a tournament map pool, such as modifiers or difficulty adjustments. +
+
diff --git a/src/lib/taDocs/3-client-updateUser.md b/src/lib/taDocs/3-client-updateUser.md new file mode 100644 index 0000000..dae5425 --- /dev/null +++ b/src/lib/taDocs/3-client-updateUser.md @@ -0,0 +1,49 @@ +# The taClient.updateUser() method +This documents the `taClient.updateUser()` method. + +
+ info +
+ Async: This is a method you would want to use await with +
+
+ +This method has input parameters. The function could easily be defined as: +```ts +async function updateUser(userId: string, userData: User): Promise { + // backend logic +} +``` + +## Parameters: +- **userId** (string): The GUID of the user to update +- **userData** (User): The updated user object with new information +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User) + +## General usage: +```ts +const response: Response = taClient.updateUser(userGuid, updatedUserObject); +``` +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response) + +If you have not yet, please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) + +## Standard Response: +```js +{ + details: { + updateUser: Response_UpdateUser, + oneofKind: 'updateUser' + }, + respondingToPacketId: 'packet-guid-uuidv4', + type: Response_ResponseType +} +``` +- For `Response_UpdateUser` please find documentation at [Models -> Response_UpdateUser](/documentation#Models/4-Response_UpdateUser). + +
+ info +
+ Note: This method allows you to update user information, potentially including Discord ID associations and other user-related data. +
+
diff --git a/src/lib/taDocs/4-Acknowledgement.md b/src/lib/taDocs/4-Acknowledgement.md new file mode 100644 index 0000000..a49348f --- /dev/null +++ b/src/lib/taDocs/4-Acknowledgement.md @@ -0,0 +1,22 @@ +# Acknowledgement + +```ts +/** + * ---- Backbone ---- // + * + * @generated from protobuf message proto.packets.Acknowledgement + */ +interface Acknowledgement { + /** + * @generated from protobuf field: string packet_id = 1; + */ + packetId: string; + /** + * @generated from protobuf field: proto.packets.Acknowledgement.AcknowledgementType type = 2; + */ + type: Acknowledgement_AcknowledgementType; +} +``` + +## References +- For `Acknowledgement_AcknowledgementType` please find documentation at [Enums -> Acknowledgement_AcknowledgementType](/documentation#Enums/5-Acknowledgement_AcknowledgementType). diff --git a/src/lib/taDocs/4-Beatmap.md b/src/lib/taDocs/4-Beatmap.md new file mode 100644 index 0000000..9fe1cca --- /dev/null +++ b/src/lib/taDocs/4-Beatmap.md @@ -0,0 +1,25 @@ +# Beatmap + +```ts +interface Beatmap { + /** + * @generated from protobuf field: string name = 1; + */ + name: string; + /** + * @generated from protobuf field: string level_id = 2; + */ + levelId: string; + /** + * @generated from protobuf field: proto.models.Characteristic characteristic = 3; + */ + characteristic?: Characteristic; + /** + * @generated from protobuf field: int32 difficulty = 4; + */ + difficulty: number; +} +``` + +## References +- For `Characteristic` please find documentation at [Models -> Characteristic](/documentation#Models/4-Characteristic). diff --git a/src/lib/taDocs/4-Channel.md b/src/lib/taDocs/4-Channel.md new file mode 100644 index 0000000..39415c1 --- /dev/null +++ b/src/lib/taDocs/4-Channel.md @@ -0,0 +1,14 @@ +# Channel + +```ts +interface Channel { + /** + * @generated from protobuf field: string id = 1; + */ + id: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; +} +``` diff --git a/src/lib/taDocs/4-Characteristic.md b/src/lib/taDocs/4-Characteristic.md new file mode 100644 index 0000000..04b92db --- /dev/null +++ b/src/lib/taDocs/4-Characteristic.md @@ -0,0 +1,16 @@ +# Characteristic + +```ts +interface Characteristic { + /** + * @generated from protobuf field: string serialized_name = 1; + */ + serializedName: string; + /** + * @generated from protobuf field: repeated int32 difficulties = 2; + */ + difficulties: number[]; +} +``` + +- `serializedName` is usually either `Standard`, or `Lawless`. Nowever characteristic names exist for no lights and a few other like 90, 180, and 360 degree maps. \ No newline at end of file diff --git a/src/lib/taDocs/4-Command.md b/src/lib/taDocs/4-Command.md new file mode 100644 index 0000000..5b996c3 --- /dev/null +++ b/src/lib/taDocs/4-Command.md @@ -0,0 +1,28 @@ +# Command + +```ts +/** + * ---- Commands (DO something!) ---- // + * + * @generated from protobuf message proto.packets.Command + */ +interface Command { + /** + * @generated from protobuf field: string tournament_id = 11; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 12; + */ + forwardTo: string[]; + /** + * @generated from protobuf oneof: type + */ + type: { + oneofKind: "oneOfKind"; + /** + * @generated from protobuf field: bool oneOfKind = 2; + */ + oneOfKind: any; + } +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Command_ModifyGameplay.md b/src/lib/taDocs/4-Command_ModifyGameplay.md new file mode 100644 index 0000000..3a7a5d5 --- /dev/null +++ b/src/lib/taDocs/4-Command_ModifyGameplay.md @@ -0,0 +1,16 @@ +# Command_ModifyGameplay + +```ts +/** + * @generated from protobuf message proto.packets.Command.ModifyGameplay + */ +interface Command_ModifyGameplay { + /** + * @generated from protobuf field: proto.packets.Command.ModifyGameplay.Modifier modifier = 1; + */ + modifier: Command_ModifyGameplay_Modifier; +} +``` + +## References +- For `Command_ModifyGameplay_Modifier` please find documentation at [Enums -> Command_ModifyGameplay_Modifier](/documentation#Enums/5-Command_ModifyGameplay_Modifier). diff --git a/src/lib/taDocs/4-Command_PlaySong.md b/src/lib/taDocs/4-Command_PlaySong.md new file mode 100644 index 0000000..c6e6a81 --- /dev/null +++ b/src/lib/taDocs/4-Command_PlaySong.md @@ -0,0 +1,16 @@ +# Command_PlaySong + +```ts +/** + * @generated from protobuf message proto.packets.Command.PlaySong + */ +interface Command_PlaySong { + /** + * @generated from protobuf field: proto.models.GameplayParameters gameplay_parameters = 1; + */ + gameplayParameters?: GameplayParameters; +} +``` + +## References +- For `GameplayParameters` please find documentation at [Models -> GameplayParameters](/documentation#Models/4-GameplayParameters). diff --git a/src/lib/taDocs/4-Command_ShowColorForStreamSync.md b/src/lib/taDocs/4-Command_ShowColorForStreamSync.md new file mode 100644 index 0000000..e0beb15 --- /dev/null +++ b/src/lib/taDocs/4-Command_ShowColorForStreamSync.md @@ -0,0 +1,13 @@ +# Command_ShowColorForStreamSync + +```ts +/** + * @generated from protobuf message proto.packets.Command.ShowColorForStreamSync + */ +interface Command_ShowColorForStreamSync { + /** + * @generated from protobuf field: string color = 1; + */ + color: string; +} +``` diff --git a/src/lib/taDocs/4-CoreServer.md b/src/lib/taDocs/4-CoreServer.md new file mode 100644 index 0000000..b072013 --- /dev/null +++ b/src/lib/taDocs/4-CoreServer.md @@ -0,0 +1,22 @@ +# CoreServer + +```ts +interface CoreServer { + /** + * @generated from protobuf field: string name = 1; + */ + name: string; + /** + * @generated from protobuf field: string address = 2; + */ + address: string; + /** + * @generated from protobuf field: int32 port = 3; + */ + port: number; + /** + * @generated from protobuf field: int32 websocket_port = 4; + */ + websocketPort: number; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-DiscordUser.md b/src/lib/taDocs/4-DiscordUser.md new file mode 100644 index 0000000..50083f6 --- /dev/null +++ b/src/lib/taDocs/4-DiscordUser.md @@ -0,0 +1,14 @@ +# DiscordUser + +```ts +interface DiscordUser { + /** + * @generated from protobuf field: string id = 1; + */ + id: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; +} +``` diff --git a/src/lib/taDocs/4-Event.md b/src/lib/taDocs/4-Event.md new file mode 100644 index 0000000..2a435d7 --- /dev/null +++ b/src/lib/taDocs/4-Event.md @@ -0,0 +1,18 @@ +# Event + +```ts +interface Event { + /** + * @generated from protobuf oneof: changed_object + */ + changedObject: { + oneofKind: "oneOfKind"; + /** + * @generated from protobuf field: proto.packets.Event.oneOfKind oneOfKind = 1; + */ + oneOfKind: any; + } +} +``` + +Again, this is not something you will really be seeing any of during development unless you are handling protobuf for yourself, in which case you are better off in the proto models repo. diff --git a/src/lib/taDocs/4-Event_MatchCreated.md b/src/lib/taDocs/4-Event_MatchCreated.md new file mode 100644 index 0000000..c2e9ea1 --- /dev/null +++ b/src/lib/taDocs/4-Event_MatchCreated.md @@ -0,0 +1,17 @@ +# Event_MatchCreated + +```ts +interface Event_MatchCreated { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Event_MatchDeleted.md b/src/lib/taDocs/4-Event_MatchDeleted.md new file mode 100644 index 0000000..13b4db8 --- /dev/null +++ b/src/lib/taDocs/4-Event_MatchDeleted.md @@ -0,0 +1,17 @@ +# Event_MatchDeleted + +```ts +interface Event_MatchDeleted { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Event_MatchUpdated.md b/src/lib/taDocs/4-Event_MatchUpdated.md new file mode 100644 index 0000000..c6afa2e --- /dev/null +++ b/src/lib/taDocs/4-Event_MatchUpdated.md @@ -0,0 +1,17 @@ +# Event_MatchUpdated + +```ts +interface Event_MatchUpdated { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Event_QualifierCreated.md b/src/lib/taDocs/4-Event_QualifierCreated.md new file mode 100644 index 0000000..9cb78a4 --- /dev/null +++ b/src/lib/taDocs/4-Event_QualifierCreated.md @@ -0,0 +1,17 @@ +# Event_QualifierCreated + +```ts +interface Event_QualifierCreated { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Event_QualifierDeleted.md b/src/lib/taDocs/4-Event_QualifierDeleted.md new file mode 100644 index 0000000..02b4a87 --- /dev/null +++ b/src/lib/taDocs/4-Event_QualifierDeleted.md @@ -0,0 +1,17 @@ +# Event_QualifierDeleted + +```ts +interface Event_QualifierDeleted { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Event_QualifierUpdated.md b/src/lib/taDocs/4-Event_QualifierUpdated.md new file mode 100644 index 0000000..e285eb9 --- /dev/null +++ b/src/lib/taDocs/4-Event_QualifierUpdated.md @@ -0,0 +1,17 @@ +# Event_QualifierUpdated + +```ts +interface Event_QualifierUpdated { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Event_ServerAdded.md b/src/lib/taDocs/4-Event_ServerAdded.md new file mode 100644 index 0000000..d621ee1 --- /dev/null +++ b/src/lib/taDocs/4-Event_ServerAdded.md @@ -0,0 +1,13 @@ +# Event_ServerAdded + +```ts +interface Event_ServerAdded { + /** + * @generated from protobuf field: proto.models.CoreServer server = 1; + */ + server?: CoreServer; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). diff --git a/src/lib/taDocs/4-Event_ServerDeleted.md b/src/lib/taDocs/4-Event_ServerDeleted.md new file mode 100644 index 0000000..020849d --- /dev/null +++ b/src/lib/taDocs/4-Event_ServerDeleted.md @@ -0,0 +1,13 @@ +# Event_ServerDeleted + +```ts +interface Event_ServerDeleted { + /** + * @generated from protobuf field: proto.models.CoreServer server = 1; + */ + server?: CoreServer; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). diff --git a/src/lib/taDocs/4-Event_TournamentCreated.md b/src/lib/taDocs/4-Event_TournamentCreated.md new file mode 100644 index 0000000..7d10cc3 --- /dev/null +++ b/src/lib/taDocs/4-Event_TournamentCreated.md @@ -0,0 +1,13 @@ +# Event_TournamentCreated + +```ts +interface Event_TournamentCreated { + /** + * @generated from protobuf field: proto.models.Tournament tournament = 1; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Event_TournamentDeleted.md b/src/lib/taDocs/4-Event_TournamentDeleted.md new file mode 100644 index 0000000..846f8e3 --- /dev/null +++ b/src/lib/taDocs/4-Event_TournamentDeleted.md @@ -0,0 +1,13 @@ +# Event_TournamentDeleted + +```ts +interface Event_TournamentDeleted { + /** + * @generated from protobuf field: proto.models.Tournament tournament = 1; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Event_TournamentUpdated.md b/src/lib/taDocs/4-Event_TournamentUpdated.md new file mode 100644 index 0000000..4f27f05 --- /dev/null +++ b/src/lib/taDocs/4-Event_TournamentUpdated.md @@ -0,0 +1,13 @@ +# Event_TournamentUpdated + +```ts +interface Event_TournamentUpdated { + /** + * @generated from protobuf field: proto.models.Tournament tournament = 1; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Event_UserAdded.md b/src/lib/taDocs/4-Event_UserAdded.md new file mode 100644 index 0000000..ef44fc7 --- /dev/null +++ b/src/lib/taDocs/4-Event_UserAdded.md @@ -0,0 +1,17 @@ +# Event_UserAdded + +```ts +interface Event_UserAdded { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +``` + +## References +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-Event_UserLeft.md b/src/lib/taDocs/4-Event_UserLeft.md new file mode 100644 index 0000000..a8d4f16 --- /dev/null +++ b/src/lib/taDocs/4-Event_UserLeft.md @@ -0,0 +1,17 @@ +# Event_UserLeft + +```ts +interface Event_UserLeft { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +``` + +## References +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-Event_UserUpdated.md b/src/lib/taDocs/4-Event_UserUpdated.md new file mode 100644 index 0000000..7959e85 --- /dev/null +++ b/src/lib/taDocs/4-Event_UserUpdated.md @@ -0,0 +1,17 @@ +# Event_UserUpdated + +```ts +interface Event_UserUpdated { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +``` + +## References +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-ForwardingPacket.md b/src/lib/taDocs/4-ForwardingPacket.md new file mode 100644 index 0000000..b172755 --- /dev/null +++ b/src/lib/taDocs/4-ForwardingPacket.md @@ -0,0 +1,20 @@ +# ForwardingPacket + +```ts +/** + * @generated from protobuf message proto.packets.ForwardingPacket + */ +interface ForwardingPacket { + /** + * @generated from protobuf field: repeated string forward_to = 1; + */ + forwardTo: string[]; + /** + * @generated from protobuf field: proto.packets.Packet packet = 2; + */ + packet?: Packet; +} +``` + +## References +- For `Packet` please find documentation at [Models -> Packet](/documentation#Models/4-Packet). diff --git a/src/lib/taDocs/4-GameplayModifiers.md b/src/lib/taDocs/4-GameplayModifiers.md new file mode 100644 index 0000000..d446454 --- /dev/null +++ b/src/lib/taDocs/4-GameplayModifiers.md @@ -0,0 +1,13 @@ +# GameplayModifiers + +```ts +interface GameplayModifiers { + /** + * @generated from protobuf field: proto.models.GameplayModifiers.GameOptions options = 1; + */ + options: GameplayModifiers_GameOptions; +} +``` + +## References +- For `GameplayModifiers_GameOptions` please find documentation at [Enums -> GameplayModifiers_GameOptions](/documentation#Enums/5-GameplayModifiers_GameOptions). diff --git a/src/lib/taDocs/4-GameplayParameters.md b/src/lib/taDocs/4-GameplayParameters.md new file mode 100644 index 0000000..96b113c --- /dev/null +++ b/src/lib/taDocs/4-GameplayParameters.md @@ -0,0 +1,55 @@ +# GameplayParameters + +```ts +interface GameplayParameters { + /** + * @generated from protobuf field: proto.models.Beatmap beatmap = 1; + */ + beatmap?: Beatmap; + /** + * @generated from protobuf field: proto.models.PlayerSpecificSettings player_settings = 2; + */ + playerSettings?: PlayerSpecificSettings; + /** + * @generated from protobuf field: proto.models.GameplayModifiers gameplay_modifiers = 3; + */ + gameplayModifiers?: GameplayModifiers; + /** + * @generated from protobuf field: int32 attempts = 4; + */ + attempts: number; + /** + * @generated from protobuf field: bool show_scoreboard = 5; + */ + showScoreboard: boolean; + /** + * @generated from protobuf field: bool disable_pause = 6; + */ + disablePause: boolean; + /** + * @generated from protobuf field: bool disable_fail = 7; + */ + disableFail: boolean; + /** + * @generated from protobuf field: bool disable_scoresaber_submission = 8; + */ + disableScoresaberSubmission: boolean; + /** + * @generated from protobuf field: bool disable_custom_notes_on_stream = 9; + */ + disableCustomNotesOnStream: boolean; + /** + * @generated from protobuf field: bool use_sync = 10; + */ + useSync: boolean; + /** + * @generated from protobuf field: int32 target = 11; + */ + target: number; +} +``` + +## References +- For `Beatmap` please find documentation at [Models -> Beatmap](/documentation#Models/4-Beatmap). +- For `GameplayModifiers` please find documentation at [Models -> GameplayModifiers](/documentation#Models/4-GameplayModifiers). +- For `PlayerSpecificSettings` please find documentation at [Models -> PlayerSpecificSettings](/documentation#Models/4-PlayerSpecificSettings). diff --git a/src/lib/taDocs/4-Guild.md b/src/lib/taDocs/4-Guild.md new file mode 100644 index 0000000..61ae9df --- /dev/null +++ b/src/lib/taDocs/4-Guild.md @@ -0,0 +1,14 @@ +# Guild + +```ts +interface Guild { + /** + * @generated from protobuf field: string id = 1; + */ + id: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; +} +``` diff --git a/src/lib/taDocs/4-LeaderboardEntry.md b/src/lib/taDocs/4-LeaderboardEntry.md new file mode 100644 index 0000000..4835a2c --- /dev/null +++ b/src/lib/taDocs/4-LeaderboardEntry.md @@ -0,0 +1,66 @@ +# LeaderboardEntry + +```ts +interface LeaderboardEntry { + /** + * @generated from protobuf field: string event_id = 1; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 2; + */ + mapId: string; + /** + * @generated from protobuf field: string platform_id = 3; + */ + platformId: string; + /** + * @generated from protobuf field: string username = 4; + */ + username: string; + /** + * @generated from protobuf field: int32 multiplied_score = 5; + */ + multipliedScore: number; + /** + * @generated from protobuf field: int32 modified_score = 6; + */ + modifiedScore: number; + /** + * @generated from protobuf field: int32 max_possible_score = 7; + */ + maxPossibleScore: number; + /** + * @generated from protobuf field: double accuracy = 8; + */ + accuracy: number; + /** + * @generated from protobuf field: int32 notes_missed = 9; + */ + notesMissed: number; + /** + * @generated from protobuf field: int32 bad_cuts = 10; + */ + badCuts: number; + /** + * @generated from protobuf field: int32 good_cuts = 11; + */ + goodCuts: number; + /** + * @generated from protobuf field: int32 max_combo = 12; + */ + maxCombo: number; + /** + * @generated from protobuf field: bool full_combo = 13; + */ + fullCombo: boolean; + /** + * @generated from protobuf field: bool is_placeholder = 14; + */ + isPlaceholder: boolean; + /** + * @generated from protobuf field: string color = 15; + */ + color: string; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Map.md b/src/lib/taDocs/4-Map.md new file mode 100644 index 0000000..2918d23 --- /dev/null +++ b/src/lib/taDocs/4-Map.md @@ -0,0 +1,17 @@ +# Map + +```ts +interface Map { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: proto.models.GameplayParameters gameplay_parameters = 2; + */ + gameplayParameters?: GameplayParameters; +} +``` + +## References +- For `GameplayParameters` please find documentation at [Models -> GameplayParameters](/documentation#Models/4-GameplayParameters). diff --git a/src/lib/taDocs/4-Match.md b/src/lib/taDocs/4-Match.md new file mode 100644 index 0000000..f043cca --- /dev/null +++ b/src/lib/taDocs/4-Match.md @@ -0,0 +1,25 @@ +# Match + +```ts +interface Match { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: repeated string associated_users = 2; + */ + associatedUsers: string[]; + /** + * @generated from protobuf field: string leader = 3; + */ + leader: string; + /** + * @generated from protobuf field: proto.models.Map selected_map = 4; + */ + selectedMap?: Map; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Packet.md b/src/lib/taDocs/4-Packet.md new file mode 100644 index 0000000..0f1abe4 --- /dev/null +++ b/src/lib/taDocs/4-Packet.md @@ -0,0 +1,33 @@ +# Packet + +```ts +/** + * @generated from protobuf message proto.packets.Packet + */ +interface Packet { + /** + * @generated from protobuf field: string token = 1; + */ + token: string; + /** + * @generated from protobuf field: string id = 2; + */ + id: string; + /** + * @generated from protobuf field: string from = 3; + */ + from: string; + /** + * @generated from protobuf oneof: packet + */ + packet: { + oneofKind: "heartbeat"; + /** + * @generated from protobuf field: bool heartbeat = 11; + */ + heartbeat: boolean; + } +} +``` + +This is not something you will experience in development. Heartbeats are mostly for game clients \ No newline at end of file diff --git a/src/lib/taDocs/4-PlayerSpecificSettings.md b/src/lib/taDocs/4-PlayerSpecificSettings.md new file mode 100644 index 0000000..af73e0e --- /dev/null +++ b/src/lib/taDocs/4-PlayerSpecificSettings.md @@ -0,0 +1,43 @@ +# PlayerSpecificSettings + +```ts +interface PlayerSpecificSettings { + /** + * @generated from protobuf field: float player_height = 1; + */ + playerHeight: number; + /** + * @generated from protobuf field: float sfx_volume = 2; + */ + sfxVolume: number; + /** + * @generated from protobuf field: float saber_trail_intensity = 3; + */ + saberTrailIntensity: number; + /** + * @generated from protobuf field: float note_jump_start_beat_offset = 4; + */ + noteJumpStartBeatOffset: number; + /** + * @generated from protobuf field: float note_jump_fixed_duration = 5; + */ + noteJumpFixedDuration: number; + /** + * @generated from protobuf field: proto.models.PlayerSpecificSettings.PlayerOptions options = 6; + */ + options: PlayerSpecificSettings_PlayerOptions; + /** + * @generated from protobuf field: proto.models.PlayerSpecificSettings.NoteJumpDurationTypeSettings note_jump_duration_type_settings = 7; + */ + noteJumpDurationTypeSettings: PlayerSpecificSettings_NoteJumpDurationTypeSettings; + /** + * @generated from protobuf field: proto.models.PlayerSpecificSettings.ArcVisibilityType arc_visibility_type = 8; + */ + arcVisibilityType: PlayerSpecificSettings_ArcVisibilityType; +} +``` + +## References +- For `PlayerSpecificSettings_ArcVisibilityType` please find documentation at [Enums -> PlayerSpecificSettings_ArcVisibilityType](/documentation#Enums/5-PlayerSpecificSettings_ArcVisibilityType). +- For `PlayerSpecificSettings_NoteJumpDurationTypeSettings` please find documentation at [Enums -> PlayerSpecificSettings_NoteJumpDurationTypeSettings](/documentation#Enums/5-PlayerSpecificSettings_NoteJumpDurationTypeSettings). +- For `PlayerSpecificSettings_PlayerOptions` please find documentation at [Enums -> PlayerSpecificSettings_PlayerOptions](/documentation#Enums/5-PlayerSpecificSettings_PlayerOptions). diff --git a/src/lib/taDocs/4-Push.md b/src/lib/taDocs/4-Push.md new file mode 100644 index 0000000..43b025e --- /dev/null +++ b/src/lib/taDocs/4-Push.md @@ -0,0 +1,26 @@ +# Push + +```ts +/** + * ---- Pushes (SUBMIT something!) ---- // + * + * @generated from protobuf message proto.packets.Push + */ +interface Push { + /** + * @generated from protobuf oneof: data + */ + data: { + oneofKind: "realtimeScore"; + /** + * @generated from protobuf field: proto.models.RealtimeScore realtime_score = 1; + */ + realtimeScore: RealtimeScore; + } +} +``` + +`RealtimeScore` here is an example. It may be any of `oneOfKind` + +## References +- For `RealtimeScore` please find documentation at [Models -> RealtimeScore](/documentation#Models/4-RealtimeScore). diff --git a/src/lib/taDocs/4-Push_QualifierScoreSubmitted.md b/src/lib/taDocs/4-Push_QualifierScoreSubmitted.md new file mode 100644 index 0000000..eef1f14 --- /dev/null +++ b/src/lib/taDocs/4-Push_QualifierScoreSubmitted.md @@ -0,0 +1,30 @@ +# Push_QualifierScoreSubmitted + +```ts +/** + * @generated from protobuf message proto.packets.Push.QualifierScoreSubmitted + */ +interface Push_QualifierScoreSubmitted { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; + /** + * @generated from protobuf field: proto.models.GameplayParameters map = 3; + */ + map?: GameplayParameters; + /** + * @generated from protobuf field: proto.models.LeaderboardEntry qualifier_score = 4; + */ + qualifierScore?: LeaderboardEntry; +} +``` + +## References +- For `GameplayParameters` please find documentation at [Models -> GameplayParameters](/documentation#Models/4-GameplayParameters). +- For `LeaderboardEntry` please find documentation at [Models -> LeaderboardEntry](/documentation#Models/4-LeaderboardEntry). +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Push_SongFinished.md b/src/lib/taDocs/4-Push_SongFinished.md new file mode 100644 index 0000000..e33014f --- /dev/null +++ b/src/lib/taDocs/4-Push_SongFinished.md @@ -0,0 +1,62 @@ +# Push_SongFinished + +```ts +/** + * @generated from protobuf message proto.packets.Push.SongFinished + */ +interface Push_SongFinished { + /** + * @generated from protobuf field: proto.models.User player = 1; + */ + player?: User; + /** + * @generated from protobuf field: proto.models.Beatmap beatmap = 2; + */ + beatmap?: Beatmap; + /** + * @generated from protobuf field: proto.packets.Push.SongFinished.CompletionType type = 3; + */ + type: Push_SongFinished_CompletionType; + /** + * @generated from protobuf field: int32 score = 4; + */ + score: number; + /** + * @generated from protobuf field: int32 misses = 5; + */ + misses: number; + /** + * @generated from protobuf field: int32 bad_cuts = 6; + */ + badCuts: number; + /** + * @generated from protobuf field: int32 good_cuts = 7; + */ + goodCuts: number; + /** + * @generated from protobuf field: float end_time = 8; + */ + endTime: number; + /** + * @generated from protobuf field: string tournament_id = 9; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 10; + */ + matchId: string; + /** + * @generated from protobuf field: int32 max_score = 11; + */ + maxScore: number; + /** + * @generated from protobuf field: double accuracy = 12; + */ + accuracy: number; +} +``` + +## References +- For `Beatmap` please find documentation at [Models -> Beatmap](/documentation#Models/4-Beatmap). +- For `Push_SongFinished_CompletionType` please find documentation at [Enums -> Push_SongFinished_CompletionType](/documentation#Enums/5-Push_SongFinished_CompletionType). +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-QualifierEvent.md b/src/lib/taDocs/4-QualifierEvent.md new file mode 100644 index 0000000..c050ae5 --- /dev/null +++ b/src/lib/taDocs/4-QualifierEvent.md @@ -0,0 +1,40 @@ +# QualifierEvent + +```ts +interface QualifierEvent { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; + /** + * @generated from protobuf field: string image = 3; + */ + image: string; + /** + * @generated from protobuf field: proto.discord.Channel info_channel = 4; + */ + infoChannel?: Channel; + /** + * @generated from protobuf field: repeated proto.models.Map qualifier_maps = 5; + */ + qualifierMaps: Map[]; + /** + * @generated from protobuf field: proto.models.QualifierEvent.EventSettings flags = 6; + */ + flags: QualifierEvent_EventSettings; + /** + * @generated from protobuf field: proto.models.QualifierEvent.LeaderboardSort sort = 7; + */ + sort: QualifierEvent_LeaderboardSort; +} +``` + +## References +- For `Channel` please find documentation at [Models -> Channel](/documentation#Models/4-Channel). +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). +- For `QualifierEvent_EventSettings` please find documentation at [Enums -> QualifierEvent_EventSettings](/documentation#Enums/5-QualifierEvent_EventSettings). +- For `QualifierEvent_LeaderboardSort` please find documentation at [Enums -> QualifierEvent_LeaderboardSort](/documentation#Enums/5-QualifierEvent_LeaderboardSort). diff --git a/src/lib/taDocs/4-RealtimeScore.md b/src/lib/taDocs/4-RealtimeScore.md new file mode 100644 index 0000000..78a78e3 --- /dev/null +++ b/src/lib/taDocs/4-RealtimeScore.md @@ -0,0 +1,73 @@ +# RealtimeScore + +```ts +interface RealtimeScore { + /** + * @generated from protobuf field: string user_guid = 1; + */ + userGuid: string; + /** + * @generated from protobuf field: int32 score = 2; + */ + score: number; + /** + * @generated from protobuf field: int32 score_with_modifiers = 3; + */ + scoreWithModifiers: number; + /** + * @generated from protobuf field: int32 max_score = 4; + */ + maxScore: number; + /** + * @generated from protobuf field: int32 max_score_with_modifiers = 5; + */ + maxScoreWithModifiers: number; + /** + * @generated from protobuf field: int32 combo = 6; + */ + combo: number; + /** + * @generated from protobuf field: float player_health = 7; + */ + playerHealth: number; + /** + * @generated from protobuf field: double accuracy = 8; + */ + accuracy: number; + /** + * @generated from protobuf field: float song_position = 9; + */ + songPosition: number; + /** + * @generated from protobuf field: int32 notes_missed = 10; + */ + notesMissed: number; + /** + * @generated from protobuf field: int32 bad_cuts = 11; + */ + badCuts: number; + /** + * @generated from protobuf field: int32 bomb_hits = 12; + */ + bombHits: number; + /** + * @generated from protobuf field: int32 wall_hits = 13; + */ + wallHits: number; + /** + * @generated from protobuf field: int32 max_combo = 14; + */ + maxCombo: number; + /** + * @generated from protobuf field: proto.models.ScoreTrackerHand left_hand = 15; + */ + leftHand?: ScoreTrackerHand; + /** + * @generated from protobuf field: proto.models.ScoreTrackerHand right_hand = 16; + */ + rightHand?: ScoreTrackerHand; +} +``` + +## References +- For `ScoreTrackerHand` please find documentation at [Models -> ScoreTrackerHand](/documentation#Models/4-ScoreTrackerHand). diff --git a/src/lib/taDocs/4-Request.md b/src/lib/taDocs/4-Request.md new file mode 100644 index 0000000..68c185b --- /dev/null +++ b/src/lib/taDocs/4-Request.md @@ -0,0 +1,23 @@ +# Request + +```ts +/** + * ---- Requests (GET (or do?) something where you need a response!) ---- // + * + * @generated from protobuf message proto.packets.Request + */ +interface Request { + /** + * @generated from protobuf oneof: type + */ + type: { + oneofKind: "oneofKind"; + /** + * @generated from protobuf field: proto.packets.Request.oneofKind oneofKind = 1; + */ + oneofKind: any; + } +} +``` + +`oneofKind` is a placeholder in `oneofKind: any;`. diff --git a/src/lib/taDocs/4-Request_AddAuthorizedUser.md b/src/lib/taDocs/4-Request_AddAuthorizedUser.md new file mode 100644 index 0000000..40ca570 --- /dev/null +++ b/src/lib/taDocs/4-Request_AddAuthorizedUser.md @@ -0,0 +1,23 @@ +# Request_AddAuthorizedUser + +```ts +/** + * -- Tournament -- // + * + * @generated from protobuf message proto.packets.Request.AddAuthorizedUser + */ +interface Request_AddAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string role_ids = 3; + */ + roleIds: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_AddQualifierMaps.md b/src/lib/taDocs/4-Request_AddQualifierMaps.md new file mode 100644 index 0000000..558b9d3 --- /dev/null +++ b/src/lib/taDocs/4-Request_AddQualifierMaps.md @@ -0,0 +1,24 @@ +# Request_AddQualifierMaps + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddQualifierMaps + */ +interface Request_AddQualifierMaps { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: repeated proto.models.Map maps = 3; + */ + maps: Map[]; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Request_AddServer.md b/src/lib/taDocs/4-Request_AddServer.md new file mode 100644 index 0000000..3b398f2 --- /dev/null +++ b/src/lib/taDocs/4-Request_AddServer.md @@ -0,0 +1,22 @@ +# Request_AddServer + +```ts +/** + * -- Server -- // + * + * @generated from protobuf message proto.packets.Request.AddServer + */ +interface Request_AddServer { + /** + * @generated from protobuf field: proto.models.CoreServer server = 1; + */ + server?: CoreServer; + /** + * @generated from protobuf field: string auth_token = 2; + */ + authToken: string; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). diff --git a/src/lib/taDocs/4-Request_AddTournamentPool.md b/src/lib/taDocs/4-Request_AddTournamentPool.md new file mode 100644 index 0000000..77137ec --- /dev/null +++ b/src/lib/taDocs/4-Request_AddTournamentPool.md @@ -0,0 +1,20 @@ +# Request_AddTournamentPool + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddTournamentPool + */ +interface Request_AddTournamentPool { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Tournament.TournamentSettings.Pool pool = 2; + */ + pool?: Tournament_TournamentSettings_Pool; +} +``` + +## References +- For `Tournament_TournamentSettings_Pool` please find documentation at [Models -> Tournament_TournamentSettings_Pool](/documentation#Models/4-Tournament_TournamentSettings_Pool). diff --git a/src/lib/taDocs/4-Request_AddTournamentPoolMaps.md b/src/lib/taDocs/4-Request_AddTournamentPoolMaps.md new file mode 100644 index 0000000..cca7225 --- /dev/null +++ b/src/lib/taDocs/4-Request_AddTournamentPoolMaps.md @@ -0,0 +1,24 @@ +# Request_AddTournamentPoolMaps + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddTournamentPoolMaps + */ +interface Request_AddTournamentPoolMaps { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: repeated proto.models.Map maps = 3; + */ + maps: Map[]; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Request_AddTournamentRole.md b/src/lib/taDocs/4-Request_AddTournamentRole.md new file mode 100644 index 0000000..8a950c8 --- /dev/null +++ b/src/lib/taDocs/4-Request_AddTournamentRole.md @@ -0,0 +1,20 @@ +# Request_AddTournamentRole + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddTournamentRole + */ +interface Request_AddTournamentRole { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Role role = 2; + */ + role?: Role; +} +``` + +## References +- For `Role` please find documentation at [Models -> Role](/documentation#Models/4-Role). diff --git a/src/lib/taDocs/4-Request_AddTournamentTeam.md b/src/lib/taDocs/4-Request_AddTournamentTeam.md new file mode 100644 index 0000000..cbfa21d --- /dev/null +++ b/src/lib/taDocs/4-Request_AddTournamentTeam.md @@ -0,0 +1,20 @@ +# Request_AddTournamentTeam + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddTournamentTeam + */ +interface Request_AddTournamentTeam { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Tournament.TournamentSettings.Team team = 2; + */ + team?: Tournament_TournamentSettings_Team; +} +``` + +## References +- For `Tournament_TournamentSettings_Team` please find documentation at [Models -> Tournament_TournamentSettings_Team](/documentation#Models/4-Tournament_TournamentSettings_Team). diff --git a/src/lib/taDocs/4-Request_AddUserToMatch.md b/src/lib/taDocs/4-Request_AddUserToMatch.md new file mode 100644 index 0000000..acd52eb --- /dev/null +++ b/src/lib/taDocs/4-Request_AddUserToMatch.md @@ -0,0 +1,21 @@ +# Request_AddUserToMatch + +```ts +/** + * @generated from protobuf message proto.packets.Request.AddUserToMatch + */ +interface Request_AddUserToMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_Connect.md b/src/lib/taDocs/4-Request_Connect.md new file mode 100644 index 0000000..10ade7d --- /dev/null +++ b/src/lib/taDocs/4-Request_Connect.md @@ -0,0 +1,21 @@ +# Request_Connect + +```ts +/** + * -- Other Requests -- // + * + * @generated from protobuf message proto.packets.Request.Connect + */ +interface Request_Connect { + /** + * @generated from protobuf field: int32 client_version = 1; + */ + clientVersion: number; + /** + * @generated from protobuf field: int32 ui_version = 2; + */ + uiVersion: number; +} +``` + +## References diff --git a/src/lib/taDocs/4-Request_CreateMatch.md b/src/lib/taDocs/4-Request_CreateMatch.md new file mode 100644 index 0000000..b0b5b48 --- /dev/null +++ b/src/lib/taDocs/4-Request_CreateMatch.md @@ -0,0 +1,22 @@ +# Request_CreateMatch + +```ts +/** + * -- Match -- // + * + * @generated from protobuf message proto.packets.Request.CreateMatch + */ +interface Request_CreateMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Request_CreateQualifierEvent.md b/src/lib/taDocs/4-Request_CreateQualifierEvent.md new file mode 100644 index 0000000..7f790e3 --- /dev/null +++ b/src/lib/taDocs/4-Request_CreateQualifierEvent.md @@ -0,0 +1,22 @@ +# Request_CreateQualifierEvent + +```ts +/** + * -- Qualifiers -- // + * + * @generated from protobuf message proto.packets.Request.CreateQualifierEvent + */ +interface Request_CreateQualifierEvent { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Request_CreateTournament.md b/src/lib/taDocs/4-Request_CreateTournament.md new file mode 100644 index 0000000..2894425 --- /dev/null +++ b/src/lib/taDocs/4-Request_CreateTournament.md @@ -0,0 +1,16 @@ +# Request_CreateTournament + +```ts +/** + * @generated from protobuf message proto.packets.Request.CreateTournament + */ +interface Request_CreateTournament { + /** + * @generated from protobuf field: proto.models.Tournament tournament = 1; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Request_DeleteMatch.md b/src/lib/taDocs/4-Request_DeleteMatch.md new file mode 100644 index 0000000..1b0dc3d --- /dev/null +++ b/src/lib/taDocs/4-Request_DeleteMatch.md @@ -0,0 +1,17 @@ +# Request_DeleteMatch + +```ts +/** + * @generated from protobuf message proto.packets.Request.DeleteMatch + */ +interface Request_DeleteMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_DeleteQualifierEvent.md b/src/lib/taDocs/4-Request_DeleteQualifierEvent.md new file mode 100644 index 0000000..8bba1b3 --- /dev/null +++ b/src/lib/taDocs/4-Request_DeleteQualifierEvent.md @@ -0,0 +1,17 @@ +# Request_DeleteQualifierEvent + +```ts +/** + * @generated from protobuf message proto.packets.Request.DeleteQualifierEvent + */ +interface Request_DeleteQualifierEvent { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_DeleteTournament.md b/src/lib/taDocs/4-Request_DeleteTournament.md new file mode 100644 index 0000000..5d94c81 --- /dev/null +++ b/src/lib/taDocs/4-Request_DeleteTournament.md @@ -0,0 +1,13 @@ +# Request_DeleteTournament + +```ts +/** + * @generated from protobuf message proto.packets.Request.DeleteTournament + */ +interface Request_DeleteTournament { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_GenerateBotToken.md b/src/lib/taDocs/4-Request_GenerateBotToken.md new file mode 100644 index 0000000..b295275 --- /dev/null +++ b/src/lib/taDocs/4-Request_GenerateBotToken.md @@ -0,0 +1,13 @@ +# Request_GenerateBotToken + +```ts +/** + * @generated from protobuf message proto.packets.Request.GenerateBotToken + */ +interface Request_GenerateBotToken { + /** + * @generated from protobuf field: string username = 1; + */ + username: string; +} +``` diff --git a/src/lib/taDocs/4-Request_GetAuthorizedUsers.md b/src/lib/taDocs/4-Request_GetAuthorizedUsers.md new file mode 100644 index 0000000..b61ad6a --- /dev/null +++ b/src/lib/taDocs/4-Request_GetAuthorizedUsers.md @@ -0,0 +1,13 @@ +# Request_GetAuthorizedUsers + +```ts +/** + * @generated from protobuf message proto.packets.Request.GetAuthorizedUsers + */ +interface Request_GetAuthorizedUsers { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_GetBotTokensForUser.md b/src/lib/taDocs/4-Request_GetBotTokensForUser.md new file mode 100644 index 0000000..e1ca32c --- /dev/null +++ b/src/lib/taDocs/4-Request_GetBotTokensForUser.md @@ -0,0 +1,13 @@ +# Request_GetBotTokensForUser + +```ts +/** + * @generated from protobuf message proto.packets.Request.GetBotTokensForUser + */ +interface Request_GetBotTokensForUser { + /** + * @generated from protobuf field: string owner_discord_id = 1; + */ + ownerDiscordId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_GetDiscordInfo.md b/src/lib/taDocs/4-Request_GetDiscordInfo.md new file mode 100644 index 0000000..607af08 --- /dev/null +++ b/src/lib/taDocs/4-Request_GetDiscordInfo.md @@ -0,0 +1,17 @@ +# Request_GetDiscordInfo + +```ts +/** + * @generated from protobuf message proto.packets.Request.GetDiscordInfo + */ +interface Request_GetDiscordInfo { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_Join.md b/src/lib/taDocs/4-Request_Join.md new file mode 100644 index 0000000..9e807a0 --- /dev/null +++ b/src/lib/taDocs/4-Request_Join.md @@ -0,0 +1,23 @@ +# Request_Join + +```ts +/** + * @generated from protobuf message proto.packets.Request.Join + */ +interface Request_Join { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string password = 2; + */ + password: string; + /** + * @generated from protobuf field: repeated string mod_list = 3; + */ + modList: string[]; +} +``` + +## References diff --git a/src/lib/taDocs/4-Request_LoadSong.md b/src/lib/taDocs/4-Request_LoadSong.md new file mode 100644 index 0000000..d43de60 --- /dev/null +++ b/src/lib/taDocs/4-Request_LoadSong.md @@ -0,0 +1,27 @@ +# Request_LoadSong + +```ts +/** + * @generated from protobuf message proto.packets.Request.LoadSong + */ +interface Request_LoadSong { + /** + * @generated from protobuf field: string level_id = 1; + */ + levelId: string; + /** + * @generated from protobuf field: string custom_host_url = 2; + */ + customHostUrl: string; + /** + * @generated from protobuf field: string tournament_id = 3; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 4; + */ + forwardTo: string[]; +} +``` + +## References diff --git a/src/lib/taDocs/4-Request_PreloadImageForStreamSync.md b/src/lib/taDocs/4-Request_PreloadImageForStreamSync.md new file mode 100644 index 0000000..2130e20 --- /dev/null +++ b/src/lib/taDocs/4-Request_PreloadImageForStreamSync.md @@ -0,0 +1,31 @@ +# Request_PreloadImageForStreamSync + +```ts +/** + * @generated from protobuf message proto.packets.Request.PreloadImageForStreamSync + */ +interface Request_PreloadImageForStreamSync { + /** + * @generated from protobuf field: string file_id = 1; + */ + fileId: string; + /** + * @generated from protobuf field: bool compressed = 2; + */ + compressed: boolean; + /** + * @generated from protobuf field: bytes data = 3; + */ + data: Uint8Array; + /** + * @generated from protobuf field: string tournament_id = 4; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 5; + */ + forwardTo: string[]; +} +``` + +## References diff --git a/src/lib/taDocs/4-Request_QualifierScores.md b/src/lib/taDocs/4-Request_QualifierScores.md new file mode 100644 index 0000000..037ed3f --- /dev/null +++ b/src/lib/taDocs/4-Request_QualifierScores.md @@ -0,0 +1,21 @@ +# Request_QualifierScores + +```ts +/** + * @generated from protobuf message proto.packets.Request.QualifierScores + */ +interface Request_QualifierScores { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RefundAttempts.md b/src/lib/taDocs/4-Request_RefundAttempts.md new file mode 100644 index 0000000..9ba6dfb --- /dev/null +++ b/src/lib/taDocs/4-Request_RefundAttempts.md @@ -0,0 +1,31 @@ +# Request_RefundAttempts + +```ts +/** + * @generated from protobuf message proto.packets.Request.RefundAttempts + */ +interface Request_RefundAttempts { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; + /** + * @generated from protobuf field: string platform_id = 4; + */ + platformId: string; + /** + * @generated from protobuf field: int32 count = 5; + */ + count: number; +} +``` + +## References diff --git a/src/lib/taDocs/4-Request_RemainingAttempts.md b/src/lib/taDocs/4-Request_RemainingAttempts.md new file mode 100644 index 0000000..d354546 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemainingAttempts.md @@ -0,0 +1,21 @@ +# Request_RemainingAttempts + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemainingAttempts + */ +interface Request_RemainingAttempts { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveAuthorizedUser.md b/src/lib/taDocs/4-Request_RemoveAuthorizedUser.md new file mode 100644 index 0000000..cce6683 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveAuthorizedUser.md @@ -0,0 +1,17 @@ +# Request_RemoveAuthorizedUser + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveAuthorizedUser + */ +interface Request_RemoveAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveQualifierMap.md b/src/lib/taDocs/4-Request_RemoveQualifierMap.md new file mode 100644 index 0000000..bd50c05 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveQualifierMap.md @@ -0,0 +1,21 @@ +# Request_RemoveQualifierMap + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveQualifierMap + */ +interface Request_RemoveQualifierMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveTournamentPool.md b/src/lib/taDocs/4-Request_RemoveTournamentPool.md new file mode 100644 index 0000000..9ac9e80 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveTournamentPool.md @@ -0,0 +1,17 @@ +# Request_RemoveTournamentPool + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentPool + */ +interface Request_RemoveTournamentPool { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveTournamentPoolMap.md b/src/lib/taDocs/4-Request_RemoveTournamentPoolMap.md new file mode 100644 index 0000000..eacfe64 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveTournamentPoolMap.md @@ -0,0 +1,21 @@ +# Request_RemoveTournamentPoolMap + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentPoolMap + */ +interface Request_RemoveTournamentPoolMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveTournamentRole.md b/src/lib/taDocs/4-Request_RemoveTournamentRole.md new file mode 100644 index 0000000..0f87f1b --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveTournamentRole.md @@ -0,0 +1,17 @@ +# Request_RemoveTournamentRole + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentRole + */ +interface Request_RemoveTournamentRole { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveTournamentTeam.md b/src/lib/taDocs/4-Request_RemoveTournamentTeam.md new file mode 100644 index 0000000..b1e60c8 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveTournamentTeam.md @@ -0,0 +1,17 @@ +# Request_RemoveTournamentTeam + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentTeam + */ +interface Request_RemoveTournamentTeam { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RemoveUserFromMatch.md b/src/lib/taDocs/4-Request_RemoveUserFromMatch.md new file mode 100644 index 0000000..197d316 --- /dev/null +++ b/src/lib/taDocs/4-Request_RemoveUserFromMatch.md @@ -0,0 +1,21 @@ +# Request_RemoveUserFromMatch + +```ts +/** + * @generated from protobuf message proto.packets.Request.RemoveUserFromMatch + */ +interface Request_RemoveUserFromMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_RevokeBotToken.md b/src/lib/taDocs/4-Request_RevokeBotToken.md new file mode 100644 index 0000000..291ffd0 --- /dev/null +++ b/src/lib/taDocs/4-Request_RevokeBotToken.md @@ -0,0 +1,13 @@ +# Request_RevokeBotToken + +```ts +/** + * @generated from protobuf message proto.packets.Request.RevokeBotToken + */ +interface Request_RevokeBotToken { + /** + * @generated from protobuf field: string bot_token_guid = 1; + */ + botTokenGuid: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetMatchLeader.md b/src/lib/taDocs/4-Request_SetMatchLeader.md new file mode 100644 index 0000000..c928f82 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetMatchLeader.md @@ -0,0 +1,21 @@ +# Request_SetMatchLeader + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetMatchLeader + */ +interface Request_SetMatchLeader { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetMatchMap.md b/src/lib/taDocs/4-Request_SetMatchMap.md new file mode 100644 index 0000000..09f5ef9 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetMatchMap.md @@ -0,0 +1,24 @@ +# Request_SetMatchMap + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetMatchMap + */ +interface Request_SetMatchMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Request_SetQualifierFlags.md b/src/lib/taDocs/4-Request_SetQualifierFlags.md new file mode 100644 index 0000000..be4f6d9 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetQualifierFlags.md @@ -0,0 +1,24 @@ +# Request_SetQualifierFlags + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetQualifierFlags + */ +interface Request_SetQualifierFlags { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent.EventSettings qualifier_flags = 3; + */ + qualifierFlags: QualifierEvent_EventSettings; +} +``` + +## References +- For `QualifierEvent_EventSettings` please find documentation at [Enums -> QualifierEvent_EventSettings](/documentation#Enums/5-QualifierEvent_EventSettings). diff --git a/src/lib/taDocs/4-Request_SetQualifierImage.md b/src/lib/taDocs/4-Request_SetQualifierImage.md new file mode 100644 index 0000000..65bd335 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetQualifierImage.md @@ -0,0 +1,21 @@ +# Request_SetQualifierImage + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetQualifierImage + */ +interface Request_SetQualifierImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string qualifier_image = 3; + */ + qualifierImage: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetQualifierInfoChannel.md b/src/lib/taDocs/4-Request_SetQualifierInfoChannel.md new file mode 100644 index 0000000..22177d2 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetQualifierInfoChannel.md @@ -0,0 +1,24 @@ +# Request_SetQualifierInfoChannel + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetQualifierInfoChannel + */ +interface Request_SetQualifierInfoChannel { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.discord.Channel info_channel = 3; + */ + infoChannel?: Channel; +} +``` + +## References +- For `Channel` please find documentation at [Models -> Channel](/documentation#Models/4-Channel). diff --git a/src/lib/taDocs/4-Request_SetQualifierLeaderboardSort.md b/src/lib/taDocs/4-Request_SetQualifierLeaderboardSort.md new file mode 100644 index 0000000..c3ede21 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetQualifierLeaderboardSort.md @@ -0,0 +1,24 @@ +# Request_SetQualifierLeaderboardSort + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetQualifierLeaderboardSort + */ +interface Request_SetQualifierLeaderboardSort { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent.LeaderboardSort qualifier_leaderboard_sort = 3; + */ + qualifierLeaderboardSort: QualifierEvent_LeaderboardSort; +} +``` + +## References +- For `QualifierEvent_LeaderboardSort` please find documentation at [Enums -> QualifierEvent_LeaderboardSort](/documentation#Enums/5-QualifierEvent_LeaderboardSort). diff --git a/src/lib/taDocs/4-Request_SetQualifierName.md b/src/lib/taDocs/4-Request_SetQualifierName.md new file mode 100644 index 0000000..eb39cce --- /dev/null +++ b/src/lib/taDocs/4-Request_SetQualifierName.md @@ -0,0 +1,21 @@ +# Request_SetQualifierName + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetQualifierName + */ +interface Request_SetQualifierName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string qualifier_name = 3; + */ + qualifierName: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentAllowUnauthorizedView.md b/src/lib/taDocs/4-Request_SetTournamentAllowUnauthorizedView.md new file mode 100644 index 0000000..165ad1f --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentAllowUnauthorizedView.md @@ -0,0 +1,17 @@ +# Request_SetTournamentAllowUnauthorizedView + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentAllowUnauthorizedView + */ +interface Request_SetTournamentAllowUnauthorizedView { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool allow_unauthorized_view = 2; + */ + allowUnauthorizedView: boolean; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentBannedMods.md b/src/lib/taDocs/4-Request_SetTournamentBannedMods.md new file mode 100644 index 0000000..04bed99 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentBannedMods.md @@ -0,0 +1,17 @@ +# Request_SetTournamentBannedMods + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentBannedMods + */ +interface Request_SetTournamentBannedMods { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string banned_mods = 2; + */ + bannedMods: string[]; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentEnablePools.md b/src/lib/taDocs/4-Request_SetTournamentEnablePools.md new file mode 100644 index 0000000..e4a3f59 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentEnablePools.md @@ -0,0 +1,17 @@ +# Request_SetTournamentEnablePools + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentEnablePools + */ +interface Request_SetTournamentEnablePools { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool enable_pools = 2; + */ + enablePools: boolean; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentEnableTeams.md b/src/lib/taDocs/4-Request_SetTournamentEnableTeams.md new file mode 100644 index 0000000..6fa6300 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentEnableTeams.md @@ -0,0 +1,17 @@ +# Request_SetTournamentEnableTeams + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentEnableTeams + */ +interface Request_SetTournamentEnableTeams { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool enable_teams = 2; + */ + enableTeams: boolean; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentImage.md b/src/lib/taDocs/4-Request_SetTournamentImage.md new file mode 100644 index 0000000..e102b2e --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentImage.md @@ -0,0 +1,17 @@ +# Request_SetTournamentImage + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentImage + */ +interface Request_SetTournamentImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string tournament_image = 2; + */ + tournamentImage: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentName.md b/src/lib/taDocs/4-Request_SetTournamentName.md new file mode 100644 index 0000000..b10602a --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentName.md @@ -0,0 +1,17 @@ +# Request_SetTournamentName + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentName + */ +interface Request_SetTournamentName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string tournament_name = 2; + */ + tournamentName: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentPoolImage.md b/src/lib/taDocs/4-Request_SetTournamentPoolImage.md new file mode 100644 index 0000000..4004c74 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentPoolImage.md @@ -0,0 +1,21 @@ +# Request_SetTournamentPoolImage + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentPoolImage + */ +interface Request_SetTournamentPoolImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string pool_image = 3; + */ + poolImage: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentPoolName.md b/src/lib/taDocs/4-Request_SetTournamentPoolName.md new file mode 100644 index 0000000..e56a918 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentPoolName.md @@ -0,0 +1,21 @@ +# Request_SetTournamentPoolName + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentPoolName + */ +interface Request_SetTournamentPoolName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string pool_name = 3; + */ + poolName: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentRoleName.md b/src/lib/taDocs/4-Request_SetTournamentRoleName.md new file mode 100644 index 0000000..22b5b93 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentRoleName.md @@ -0,0 +1,21 @@ +# Request_SetTournamentRoleName + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentRoleName + */ +interface Request_SetTournamentRoleName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; + /** + * @generated from protobuf field: string role_name = 3; + */ + roleName: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentRolePermissions.md b/src/lib/taDocs/4-Request_SetTournamentRolePermissions.md new file mode 100644 index 0000000..e68299e --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentRolePermissions.md @@ -0,0 +1,21 @@ +# Request_SetTournamentRolePermissions + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentRolePermissions + */ +interface Request_SetTournamentRolePermissions { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; + /** + * @generated from protobuf field: repeated string permissions = 3; + */ + permissions: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentScoreUpdateFrequency.md b/src/lib/taDocs/4-Request_SetTournamentScoreUpdateFrequency.md new file mode 100644 index 0000000..ad73afa --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentScoreUpdateFrequency.md @@ -0,0 +1,17 @@ +# Request_SetTournamentScoreUpdateFrequency + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentScoreUpdateFrequency + */ +interface Request_SetTournamentScoreUpdateFrequency { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: int32 score_update_frequency = 2; + */ + scoreUpdateFrequency: number; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentShowQualifierButton.md b/src/lib/taDocs/4-Request_SetTournamentShowQualifierButton.md new file mode 100644 index 0000000..cedef9c --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentShowQualifierButton.md @@ -0,0 +1,17 @@ +# Request_SetTournamentShowQualifierButton + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentShowQualifierButton + */ +interface Request_SetTournamentShowQualifierButton { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool show_qualifier_button = 2; + */ + showQualifierButton: boolean; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentShowTournamentButton.md b/src/lib/taDocs/4-Request_SetTournamentShowTournamentButton.md new file mode 100644 index 0000000..439878c --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentShowTournamentButton.md @@ -0,0 +1,17 @@ +# Request_SetTournamentShowTournamentButton + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentShowTournamentButton + */ +interface Request_SetTournamentShowTournamentButton { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool show_tournament_button = 2; + */ + showTournamentButton: boolean; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_SetTournamentTeamImage.md b/src/lib/taDocs/4-Request_SetTournamentTeamImage.md new file mode 100644 index 0000000..bb2ba0c --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentTeamImage.md @@ -0,0 +1,21 @@ +# Request_SetTournamentTeamImage + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentTeamImage + */ +interface Request_SetTournamentTeamImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; + /** + * @generated from protobuf field: string team_image = 3; + */ + teamImage: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SetTournamentTeamName.md b/src/lib/taDocs/4-Request_SetTournamentTeamName.md new file mode 100644 index 0000000..fb0e762 --- /dev/null +++ b/src/lib/taDocs/4-Request_SetTournamentTeamName.md @@ -0,0 +1,21 @@ +# Request_SetTournamentTeamName + +```ts +/** + * @generated from protobuf message proto.packets.Request.SetTournamentTeamName + */ +interface Request_SetTournamentTeamName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; + /** + * @generated from protobuf field: string team_name = 3; + */ + teamName: string; +} +``` diff --git a/src/lib/taDocs/4-Request_ShowPrompt.md b/src/lib/taDocs/4-Request_ShowPrompt.md new file mode 100644 index 0000000..e2d2fbb --- /dev/null +++ b/src/lib/taDocs/4-Request_ShowPrompt.md @@ -0,0 +1,48 @@ +# Request_ShowPrompt + +```ts +/** + * @generated from protobuf message proto.packets.Request.ShowPrompt + */ +interface Request_ShowPrompt { + /** + * @generated from protobuf field: string prompt_id = 1; + */ + promptId: string; + /** + * @generated from protobuf field: string message_title = 2; + */ + messageTitle: string; + /** + * @generated from protobuf field: string message_text = 3; + */ + messageText: string; + /** + * @generated from protobuf field: int32 timeout = 4; + */ + timeout: number; + /** + * @generated from protobuf field: bool show_timer = 5; + */ + showTimer: boolean; + /** + * @generated from protobuf field: bool can_close = 6; + */ + canClose: boolean; + /** + * @generated from protobuf field: repeated proto.packets.Request.ShowPrompt.PromptOption options = 7; + */ + options: Request_ShowPrompt_PromptOption[]; + /** + * @generated from protobuf field: string tournament_id = 8; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 9; + */ + forwardTo: string[]; +} +``` + +## References +- For `Request_ShowPrompt_PromptOption` please find documentation at [Models -> Request_ShowPrompt_PromptOption](/documentation#Models/4-Request_ShowPrompt_PromptOption). diff --git a/src/lib/taDocs/4-Request_ShowPrompt_PromptOption.md b/src/lib/taDocs/4-Request_ShowPrompt_PromptOption.md new file mode 100644 index 0000000..66439ec --- /dev/null +++ b/src/lib/taDocs/4-Request_ShowPrompt_PromptOption.md @@ -0,0 +1,17 @@ +# Request_ShowPrompt_PromptOption + +```ts +/** + * @generated from protobuf message proto.packets.Request.ShowPrompt.PromptOption + */ +interface Request_ShowPrompt_PromptOption { + /** + * @generated from protobuf field: string label = 1; + */ + label: string; + /** + * @generated from protobuf field: string value = 2; + */ + value: string; +} +``` diff --git a/src/lib/taDocs/4-Request_SubmitQualifierScore.md b/src/lib/taDocs/4-Request_SubmitQualifierScore.md new file mode 100644 index 0000000..ed2ba1e --- /dev/null +++ b/src/lib/taDocs/4-Request_SubmitQualifierScore.md @@ -0,0 +1,25 @@ +# Request_SubmitQualifierScore + +```ts +/** + * @generated from protobuf message proto.packets.Request.SubmitQualifierScore + */ +interface Request_SubmitQualifierScore { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.LeaderboardEntry qualifier_score = 2; + */ + qualifierScore?: LeaderboardEntry; + /** + * @generated from protobuf field: proto.models.GameplayParameters map = 3; + */ + map?: GameplayParameters; +} +``` + +## References +- For `GameplayParameters` please find documentation at [Models -> GameplayParameters](/documentation#Models/4-GameplayParameters). +- For `LeaderboardEntry` please find documentation at [Models -> LeaderboardEntry](/documentation#Models/4-LeaderboardEntry). diff --git a/src/lib/taDocs/4-Request_UpdateAuthorizedUserRoles.md b/src/lib/taDocs/4-Request_UpdateAuthorizedUserRoles.md new file mode 100644 index 0000000..6e7eef2 --- /dev/null +++ b/src/lib/taDocs/4-Request_UpdateAuthorizedUserRoles.md @@ -0,0 +1,21 @@ +# Request_UpdateAuthorizedUserRoles + +```ts +/** + * @generated from protobuf message proto.packets.Request.UpdateAuthorizedUserRoles + */ +interface Request_UpdateAuthorizedUserRoles { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string role_ids = 3; + */ + roleIds: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Request_UpdateQualifierMap.md b/src/lib/taDocs/4-Request_UpdateQualifierMap.md new file mode 100644 index 0000000..b2e1506 --- /dev/null +++ b/src/lib/taDocs/4-Request_UpdateQualifierMap.md @@ -0,0 +1,24 @@ +# Request_UpdateQualifierMap + +```ts +/** + * @generated from protobuf message proto.packets.Request.UpdateQualifierMap + */ +interface Request_UpdateQualifierMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Request_UpdateTournamentPoolMap.md b/src/lib/taDocs/4-Request_UpdateTournamentPoolMap.md new file mode 100644 index 0000000..4017fd1 --- /dev/null +++ b/src/lib/taDocs/4-Request_UpdateTournamentPoolMap.md @@ -0,0 +1,24 @@ +# Request_UpdateTournamentPoolMap + +```ts +/** + * @generated from protobuf message proto.packets.Request.UpdateTournamentPoolMap + */ +interface Request_UpdateTournamentPoolMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Request_UpdateUser.md b/src/lib/taDocs/4-Request_UpdateUser.md new file mode 100644 index 0000000..2b7767b --- /dev/null +++ b/src/lib/taDocs/4-Request_UpdateUser.md @@ -0,0 +1,22 @@ +# Request_UpdateUser + +```ts +/** + * --- State Update Requests ---// + * + * @generated from protobuf message proto.packets.Request.UpdateUser + */ +interface Request_UpdateUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +``` + +## References +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-Response.md b/src/lib/taDocs/4-Response.md new file mode 100644 index 0000000..aef981c --- /dev/null +++ b/src/lib/taDocs/4-Response.md @@ -0,0 +1,32 @@ +# Response + +```ts +/** + * + * @generated from protobuf message proto.packets.Response + */ +interface Response { + /** + * @generated from protobuf field: proto.packets.Response.ResponseType type = 1; + */ + type: Response_ResponseType; + /** + * @generated from protobuf field: string responding_to_packet_id = 2; + */ + respondingToPacketId: string; + /** + * @generated from protobuf oneof: details + */ + details: { + oneofKind: "oneOfKindType"; + /** + * @generated from protobuf field: proto.packets.Response.oneOfKindType oneOfKindType = 3; + */ + oneOfKindType: Response_oneOfKindType; + } +} +``` +Please note that `Response_oneOfKindType` is not a real response type. It is a placeholder. Examples are it could be `oneOfKind: "updateUser";` in which case the `oneOfKindType` object would look as follows: `updateUser: Response_UpdateUser;`. Please read [Client -> Introduction to the Client](/documentation#Client/3-client-intro) if you have not yet. There is some more information on this, but the best way to get a hang of it is to use it. + +## References +- For `Response_ResponseType` please find documentation at [Enums -> Response_ResponseType](/documentation#Enums/5-Response_ResponseType). diff --git a/src/lib/taDocs/4-Response_AddAuthorizedUser.md b/src/lib/taDocs/4-Response_AddAuthorizedUser.md new file mode 100644 index 0000000..985cb98 --- /dev/null +++ b/src/lib/taDocs/4-Response_AddAuthorizedUser.md @@ -0,0 +1,23 @@ +# Response_AddAuthorizedUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.AddAuthorizedUser + */ +interface Response_AddAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +``` + +## References diff --git a/src/lib/taDocs/4-Response_AddServer.md b/src/lib/taDocs/4-Response_AddServer.md new file mode 100644 index 0000000..36680f9 --- /dev/null +++ b/src/lib/taDocs/4-Response_AddServer.md @@ -0,0 +1,20 @@ +# Response_AddServer + +```ts +/** + * @generated from protobuf message proto.packets.Response.AddServer + */ +interface Response_AddServer { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.CoreServer server = 2; + */ + server?: CoreServer; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). diff --git a/src/lib/taDocs/4-Response_Connect.md b/src/lib/taDocs/4-Response_Connect.md new file mode 100644 index 0000000..2222ee4 --- /dev/null +++ b/src/lib/taDocs/4-Response_Connect.md @@ -0,0 +1,31 @@ +# Response_Connect + +```ts +/** + * -- Other Responses --/ + * + * @generated from protobuf message proto.packets.Response.Connect + */ +interface Response_Connect { + /** + * @generated from protobuf field: proto.models.State state = 1; + */ + state?: State; + /** + * @generated from protobuf field: int32 server_version = 2; + */ + serverVersion: number; + /** + * @generated from protobuf field: string message = 3; + */ + message: string; + /** + * @generated from protobuf field: proto.packets.Response.Connect.ConnectFailReason reason = 4; + */ + reason: Response_Connect_ConnectFailReason; +} +``` + +## References +- For `Response_Connect_ConnectFailReason` please find documentation at [Enums -> Response_Connect_ConnectFailReason](/documentation#Enums/5-Response_Connect_ConnectFailReason). +- For `State` please find documentation at [Models -> State](/documentation#Models/4-State). diff --git a/src/lib/taDocs/4-Response_CreateMatch.md b/src/lib/taDocs/4-Response_CreateMatch.md new file mode 100644 index 0000000..2549d52 --- /dev/null +++ b/src/lib/taDocs/4-Response_CreateMatch.md @@ -0,0 +1,20 @@ +# Response_CreateMatch + +```ts +/** + * @generated from protobuf message proto.packets.Response.CreateMatch + */ +interface Response_CreateMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Response_CreateQualifierEvent.md b/src/lib/taDocs/4-Response_CreateQualifierEvent.md new file mode 100644 index 0000000..fe2ea83 --- /dev/null +++ b/src/lib/taDocs/4-Response_CreateQualifierEvent.md @@ -0,0 +1,20 @@ +# Response_CreateQualifierEvent + +```ts +/** + * @generated from protobuf message proto.packets.Response.CreateQualifierEvent + */ +interface Response_CreateQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Response_CreateTournament.md b/src/lib/taDocs/4-Response_CreateTournament.md new file mode 100644 index 0000000..aeea957 --- /dev/null +++ b/src/lib/taDocs/4-Response_CreateTournament.md @@ -0,0 +1,20 @@ +# Response_CreateTournament + +```ts +/** + * @generated from protobuf message proto.packets.Response.CreateTournament + */ +interface Response_CreateTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Response_DeleteMatch.md b/src/lib/taDocs/4-Response_DeleteMatch.md new file mode 100644 index 0000000..44f23c9 --- /dev/null +++ b/src/lib/taDocs/4-Response_DeleteMatch.md @@ -0,0 +1,20 @@ +# Response_DeleteMatch + +```ts +/** + * @generated from protobuf message proto.packets.Response.DeleteMatch + */ +interface Response_DeleteMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Response_DeleteQualifierEvent.md b/src/lib/taDocs/4-Response_DeleteQualifierEvent.md new file mode 100644 index 0000000..7b5516c --- /dev/null +++ b/src/lib/taDocs/4-Response_DeleteQualifierEvent.md @@ -0,0 +1,20 @@ +# Response_DeleteQualifierEvent + +```ts +/** + * @generated from protobuf message proto.packets.Response.DeleteQualifierEvent + */ +interface Response_DeleteQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Response_DeleteTournament.md b/src/lib/taDocs/4-Response_DeleteTournament.md new file mode 100644 index 0000000..57ff8d0 --- /dev/null +++ b/src/lib/taDocs/4-Response_DeleteTournament.md @@ -0,0 +1,20 @@ +# Response_DeleteTournament + +```ts +/** + * @generated from protobuf message proto.packets.Response.DeleteTournament + */ +interface Response_DeleteTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Response_GenerateBotToken.md b/src/lib/taDocs/4-Response_GenerateBotToken.md new file mode 100644 index 0000000..e266bef --- /dev/null +++ b/src/lib/taDocs/4-Response_GenerateBotToken.md @@ -0,0 +1,13 @@ +# Response_GenerateBotToken + +```ts +/** + * @generated from protobuf message proto.packets.Response.GenerateBotToken + */ +interface Response_GenerateBotToken { + /** + * @generated from protobuf field: string bot_token = 1; + */ + botToken: string; +} +``` diff --git a/src/lib/taDocs/4-Response_GetAuthorizedUsers.md b/src/lib/taDocs/4-Response_GetAuthorizedUsers.md new file mode 100644 index 0000000..276c16b --- /dev/null +++ b/src/lib/taDocs/4-Response_GetAuthorizedUsers.md @@ -0,0 +1,20 @@ +# Response_GetAuthorizedUsers + +```ts +/** + * @generated from protobuf message proto.packets.Response.GetAuthorizedUsers + */ +interface Response_GetAuthorizedUsers { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated proto.packets.Response.GetAuthorizedUsers.AuthroizedUser authorized_users = 2; + */ + authorizedUsers: Response_GetAuthorizedUsers_AuthroizedUser[]; +} +``` + +## References +- For `Response_GetAuthorizedUsers_AuthroizedUser` please find documentation at [Models -> Response_GetAuthorizedUsers_AuthroizedUser](/documentation#Models/4-Response_GetAuthorizedUsers_AuthroizedUser). diff --git a/src/lib/taDocs/4-Response_GetAuthorizedUsers_AuthroizedUser.md b/src/lib/taDocs/4-Response_GetAuthorizedUsers_AuthroizedUser.md new file mode 100644 index 0000000..6b1c1e8 --- /dev/null +++ b/src/lib/taDocs/4-Response_GetAuthorizedUsers_AuthroizedUser.md @@ -0,0 +1,27 @@ +# Response_GetAuthorizedUsers_AuthroizedUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.GetAuthorizedUsers.AuthroizedUser + */ +interface Response_GetAuthorizedUsers_AuthroizedUser { + /** + * @generated from protobuf field: string discord_id = 1; + */ + discordId: string; + /** + * @generated from protobuf field: string discord_username = 2; + */ + discordUsername: string; + /** + * @generated from protobuf field: string discord_avatar_url = 3; + */ + discordAvatarUrl: string; + /** + * @generated from protobuf field: repeated string roles = 4; + */ + roles: string[]; +} +``` + +## References diff --git a/src/lib/taDocs/4-Response_GetBotTokensForUser.md b/src/lib/taDocs/4-Response_GetBotTokensForUser.md new file mode 100644 index 0000000..b402b5b --- /dev/null +++ b/src/lib/taDocs/4-Response_GetBotTokensForUser.md @@ -0,0 +1,16 @@ +# Response_GetBotTokensForUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.GetBotTokensForUser + */ +interface Response_GetBotTokensForUser { + /** + * @generated from protobuf field: repeated proto.packets.Response.GetBotTokensForUser.BotUser bot_users = 1; + */ + botUsers: Response_GetBotTokensForUser_BotUser[]; +} +``` + +## References +- For `Response_GetBotTokensForUser_BotUser` please find documentation at [Models -> Response_GetBotTokensForUser_BotUser](/documentation#Models/4-Response_GetBotTokensForUser_BotUser). diff --git a/src/lib/taDocs/4-Response_GetBotTokensForUser_BotUser.md b/src/lib/taDocs/4-Response_GetBotTokensForUser_BotUser.md new file mode 100644 index 0000000..d4146fc --- /dev/null +++ b/src/lib/taDocs/4-Response_GetBotTokensForUser_BotUser.md @@ -0,0 +1,21 @@ +# Response_GetBotTokensForUser_BotUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.GetBotTokensForUser.BotUser + */ +interface Response_GetBotTokensForUser_BotUser { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string username = 2; + */ + username: string; + /** + * @generated from protobuf field: string owner_discord_id = 3; + */ + ownerDiscordId: string; +} +``` diff --git a/src/lib/taDocs/4-Response_GetDiscordInfo.md b/src/lib/taDocs/4-Response_GetDiscordInfo.md new file mode 100644 index 0000000..99e184e --- /dev/null +++ b/src/lib/taDocs/4-Response_GetDiscordInfo.md @@ -0,0 +1,21 @@ +# Response_GetDiscordInfo + +```ts +/** + * @generated from protobuf message proto.packets.Response.GetDiscordInfo + */ +interface Response_GetDiscordInfo { + /** + * @generated from protobuf field: string discord_id = 1; + */ + discordId: string; + /** + * @generated from protobuf field: string discord_username = 2; + */ + discordUsername: string; + /** + * @generated from protobuf field: string discord_avatar_url = 3; + */ + discordAvatarUrl: string; +} +``` diff --git a/src/lib/taDocs/4-Response_Join.md b/src/lib/taDocs/4-Response_Join.md new file mode 100644 index 0000000..7d056bf --- /dev/null +++ b/src/lib/taDocs/4-Response_Join.md @@ -0,0 +1,33 @@ +# Response_Join + +```ts +/** + * @generated from protobuf message proto.packets.Response.Join + */ +interface Response_Join { + /** + * @generated from protobuf field: proto.models.State state = 1; + */ + state?: State; + /** + * @generated from protobuf field: string self_guid = 2; + */ + selfGuid: string; + /** + * @generated from protobuf field: string tournament_id = 3; + */ + tournamentId: string; + /** + * @generated from protobuf field: string message = 4; + */ + message: string; + /** + * @generated from protobuf field: proto.packets.Response.Join.JoinFailReason reason = 5; + */ + reason: Response_Join_JoinFailReason; +} +``` + +## References +- For `Response_Join_JoinFailReason` please find documentation at [Enums -> Response_Join_JoinFailReason](/documentation#Enums/5-Response_Join_JoinFailReason). +- For `State` please find documentation at [Models -> State](/documentation#Models/4-State). diff --git a/src/lib/taDocs/4-Response_LeaderboardEntries.md b/src/lib/taDocs/4-Response_LeaderboardEntries.md new file mode 100644 index 0000000..3f4be01 --- /dev/null +++ b/src/lib/taDocs/4-Response_LeaderboardEntries.md @@ -0,0 +1,16 @@ +# Response_LeaderboardEntries + +```ts +/** + * @generated from protobuf message proto.packets.Response.LeaderboardEntries + */ +interface Response_LeaderboardEntries { + /** + * @generated from protobuf field: repeated proto.models.LeaderboardEntry scores = 1; + */ + scores: LeaderboardEntry[]; +} +``` + +## References +- For `LeaderboardEntry` please find documentation at [Models -> LeaderboardEntry](/documentation#Models/4-LeaderboardEntry). diff --git a/src/lib/taDocs/4-Response_LoadSong.md b/src/lib/taDocs/4-Response_LoadSong.md new file mode 100644 index 0000000..85a15d5 --- /dev/null +++ b/src/lib/taDocs/4-Response_LoadSong.md @@ -0,0 +1,17 @@ +# Response_LoadSong + +```ts +/** + * @generated from protobuf message proto.packets.Response.LoadSong + */ +interface Response_LoadSong { + /** + * @generated from protobuf field: string level_id = 1; + */ + levelId: string; + /** + * @generated from protobuf field: string message = 2; + */ + message: string; +} +``` diff --git a/src/lib/taDocs/4-Response_PreloadImageForStreamSync.md b/src/lib/taDocs/4-Response_PreloadImageForStreamSync.md new file mode 100644 index 0000000..0e6c12b --- /dev/null +++ b/src/lib/taDocs/4-Response_PreloadImageForStreamSync.md @@ -0,0 +1,13 @@ +# Response_PreloadImageForStreamSync + +```ts +/** + * @generated from protobuf message proto.packets.Response.PreloadImageForStreamSync + */ +interface Response_PreloadImageForStreamSync { + /** + * @generated from protobuf field: string file_id = 1; + */ + fileId: string; +} +``` diff --git a/src/lib/taDocs/4-Response_RefundAttempts.md b/src/lib/taDocs/4-Response_RefundAttempts.md new file mode 100644 index 0000000..2766809 --- /dev/null +++ b/src/lib/taDocs/4-Response_RefundAttempts.md @@ -0,0 +1,13 @@ +# Response_RefundAttempts + +```ts +/** + * @generated from protobuf message proto.packets.Response.RefundAttempts + */ +interface Response_RefundAttempts { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; +} +``` diff --git a/src/lib/taDocs/4-Response_RemainingAttempts.md b/src/lib/taDocs/4-Response_RemainingAttempts.md new file mode 100644 index 0000000..5665571 --- /dev/null +++ b/src/lib/taDocs/4-Response_RemainingAttempts.md @@ -0,0 +1,13 @@ +# Response_RemainingAttempts + +```ts +/** + * @generated from protobuf message proto.packets.Response.RemainingAttempts + */ +interface Response_RemainingAttempts { + /** + * @generated from protobuf field: int32 remaining_attempts = 1; + */ + remainingAttempts: number; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Response_RemoveAuthorizedUser.md b/src/lib/taDocs/4-Response_RemoveAuthorizedUser.md new file mode 100644 index 0000000..8cd04f3 --- /dev/null +++ b/src/lib/taDocs/4-Response_RemoveAuthorizedUser.md @@ -0,0 +1,21 @@ +# Response_RemoveAuthorizedUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.RemoveAuthorizedUser + */ +interface Response_RemoveAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Response_RevokeBotToken.md b/src/lib/taDocs/4-Response_RevokeBotToken.md new file mode 100644 index 0000000..584f3a5 --- /dev/null +++ b/src/lib/taDocs/4-Response_RevokeBotToken.md @@ -0,0 +1,13 @@ +# Response_RevokeBotToken + +```ts +/** + * @generated from protobuf message proto.packets.Response.RevokeBotToken + */ +interface Response_RevokeBotToken { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; +} +``` diff --git a/src/lib/taDocs/4-Response_ShowPrompt.md b/src/lib/taDocs/4-Response_ShowPrompt.md new file mode 100644 index 0000000..7115da7 --- /dev/null +++ b/src/lib/taDocs/4-Response_ShowPrompt.md @@ -0,0 +1,13 @@ +# Response_ShowPrompt + +```ts +/** + * @generated from protobuf message proto.packets.Response.ShowPrompt + */ +interface Response_ShowPrompt { + /** + * @generated from protobuf field: string value = 1; + */ + value: string; +} +``` diff --git a/src/lib/taDocs/4-Response_UpdateAuthorizedUser.md b/src/lib/taDocs/4-Response_UpdateAuthorizedUser.md new file mode 100644 index 0000000..27c08e9 --- /dev/null +++ b/src/lib/taDocs/4-Response_UpdateAuthorizedUser.md @@ -0,0 +1,21 @@ +# Response_UpdateAuthorizedUser + +```ts +/** + * @generated from protobuf message proto.packets.Response.UpdateAuthorizedUser + */ +interface Response_UpdateAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-Response_UpdateMatch.md b/src/lib/taDocs/4-Response_UpdateMatch.md new file mode 100644 index 0000000..fbbe3d8 --- /dev/null +++ b/src/lib/taDocs/4-Response_UpdateMatch.md @@ -0,0 +1,20 @@ +# Response_UpdateMatch + +```ts +/** + * @generated from protobuf message proto.packets.Response.UpdateMatch + */ +interface Response_UpdateMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +``` + +## References +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). diff --git a/src/lib/taDocs/4-Response_UpdateQualifierEvent.md b/src/lib/taDocs/4-Response_UpdateQualifierEvent.md new file mode 100644 index 0000000..b7c1eef --- /dev/null +++ b/src/lib/taDocs/4-Response_UpdateQualifierEvent.md @@ -0,0 +1,20 @@ +# Response_UpdateQualifierEvent + +```ts +/** + * @generated from protobuf message proto.packets.Response.UpdateQualifierEvent + */ +interface Response_UpdateQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +``` + +## References +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). diff --git a/src/lib/taDocs/4-Response_UpdateTournament.md b/src/lib/taDocs/4-Response_UpdateTournament.md new file mode 100644 index 0000000..6177aac --- /dev/null +++ b/src/lib/taDocs/4-Response_UpdateTournament.md @@ -0,0 +1,20 @@ +# Response_UpdateTournament + +```ts +/** + * @generated from protobuf message proto.packets.Response.UpdateTournament + */ +interface Response_UpdateTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +``` + +## References +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Response_UpdateUser.md b/src/lib/taDocs/4-Response_UpdateUser.md new file mode 100644 index 0000000..be12f14 --- /dev/null +++ b/src/lib/taDocs/4-Response_UpdateUser.md @@ -0,0 +1,22 @@ +# Response_UpdateUser + +```ts +/** + * --- State Update Responses ---// + * + * @generated from protobuf message proto.packets.Response.UpdateUser + */ +interface Response_UpdateUser { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +``` + +## References +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-Role.md b/src/lib/taDocs/4-Role.md new file mode 100644 index 0000000..90154bc --- /dev/null +++ b/src/lib/taDocs/4-Role.md @@ -0,0 +1,26 @@ +# Role + +```ts +interface Role { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; + /** + * @generated from protobuf field: string role_id = 3; + */ + roleId: string; + /** + * @generated from protobuf field: string tournament_id = 4; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string permissions = 5; + */ + permissions: string[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-ScoreTrackerHand.md b/src/lib/taDocs/4-ScoreTrackerHand.md new file mode 100644 index 0000000..3bc4571 --- /dev/null +++ b/src/lib/taDocs/4-ScoreTrackerHand.md @@ -0,0 +1,22 @@ +# ScoreTrackerHand + +```ts +interface ScoreTrackerHand { + /** + * @generated from protobuf field: int32 hit = 1; + */ + hit: number; + /** + * @generated from protobuf field: int32 miss = 2; + */ + miss: number; + /** + * @generated from protobuf field: int32 bad_cut = 3; + */ + badCut: number; + /** + * @generated from protobuf field: repeated float avg_cut = 4; + */ + avgCut: number[]; +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/4-State.md b/src/lib/taDocs/4-State.md new file mode 100644 index 0000000..03acdd7 --- /dev/null +++ b/src/lib/taDocs/4-State.md @@ -0,0 +1,18 @@ +# State + +```ts +interface State { + /** + * @generated from protobuf field: repeated proto.models.Tournament tournaments = 1; + */ + tournaments: Tournament[]; + /** + * @generated from protobuf field: repeated proto.models.CoreServer known_servers = 2; + */ + knownServers: CoreServer[]; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). diff --git a/src/lib/taDocs/4-Tournament.md b/src/lib/taDocs/4-Tournament.md new file mode 100644 index 0000000..69fa923 --- /dev/null +++ b/src/lib/taDocs/4-Tournament.md @@ -0,0 +1,37 @@ +# Tournament + +```ts +interface Tournament { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: proto.models.Tournament.TournamentSettings settings = 2; + */ + settings?: Tournament_TournamentSettings; + /** + * @generated from protobuf field: repeated proto.models.User users = 3; + */ + users: User[]; + /** + * @generated from protobuf field: repeated proto.models.Match matches = 4; + */ + matches: Match[]; + /** + * @generated from protobuf field: repeated proto.models.QualifierEvent qualifiers = 5; + */ + qualifiers: QualifierEvent[]; + /** + * @generated from protobuf field: proto.models.CoreServer server = 6; + */ + server?: CoreServer; +} +``` + +## References +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). +- For `Tournament_TournamentSettings` please find documentation at [Models -> Tournament_TournamentSettings](/documentation#Models/4-Tournament_TournamentSettings). +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/4-Tournament_TournamentSettings.md b/src/lib/taDocs/4-Tournament_TournamentSettings.md new file mode 100644 index 0000000..6e6778e --- /dev/null +++ b/src/lib/taDocs/4-Tournament_TournamentSettings.md @@ -0,0 +1,63 @@ +# Tournament_TournamentSettings + +```ts +interface Tournament_TournamentSettings { + /** + * @generated from protobuf field: string tournament_name = 1; + */ + tournamentName: string; + /** + * @generated from protobuf field: string tournament_image = 2; + */ + tournamentImage: string; + /** + * @generated from protobuf field: bool enable_teams = 3; + */ + enableTeams: boolean; + /** + * @generated from protobuf field: bool enable_pools = 4; + */ + enablePools: boolean; + /** + * @generated from protobuf field: repeated proto.models.Tournament.TournamentSettings.Team teams = 5; + */ + teams: Tournament_TournamentSettings_Team[]; + /** + * @generated from protobuf field: int32 score_update_frequency = 6; + */ + scoreUpdateFrequency: number; + /** + * @generated from protobuf field: repeated string banned_mods = 7; + */ + bannedMods: string[]; + /** + * @generated from protobuf field: repeated proto.models.Tournament.TournamentSettings.Pool pools = 8; + */ + pools: Tournament_TournamentSettings_Pool[]; + /** + * @generated from protobuf field: bool show_tournament_button = 9; + */ + showTournamentButton: boolean; + /** + * @generated from protobuf field: bool show_qualifier_button = 10; + */ + showQualifierButton: boolean; + /** + * @generated from protobuf field: bool allow_unauthorized_view = 11; + */ + allowUnauthorizedView: boolean; + /** + * @generated from protobuf field: repeated proto.models.Role roles = 12; + */ + roles: Role[]; + /** + * @generated from protobuf field: repeated string my_permissions = 13; + */ + myPermissions: string[]; +} +``` + +## References +- For `Role` please find documentation at [Models -> Role](/documentation#Models/4-Role). +- For `Tournament_TournamentSettings_Pool` please find documentation at [Models -> Tournament_TournamentSettings_Pool](/documentation#Models/4-Tournament_TournamentSettings_Pool). +- For `Tournament_TournamentSettings_Team` please find documentation at [Models -> Tournament_TournamentSettings_Team](/documentation#Models/4-Tournament_TournamentSettings_Team). diff --git a/src/lib/taDocs/4-Tournament_TournamentSettings_Pool.md b/src/lib/taDocs/4-Tournament_TournamentSettings_Pool.md new file mode 100644 index 0000000..b08e9ca --- /dev/null +++ b/src/lib/taDocs/4-Tournament_TournamentSettings_Pool.md @@ -0,0 +1,25 @@ +# Tournament_TournamentSettings_Pool + +```ts +interface Tournament_TournamentSettings_Pool { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; + /** + * @generated from protobuf field: string image = 3; + */ + image: string; + /** + * @generated from protobuf field: repeated proto.models.Map maps = 4; + */ + maps: Map[]; +} +``` + +## References +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). diff --git a/src/lib/taDocs/4-Tournament_TournamentSettings_Team.md b/src/lib/taDocs/4-Tournament_TournamentSettings_Team.md new file mode 100644 index 0000000..1b0efd8 --- /dev/null +++ b/src/lib/taDocs/4-Tournament_TournamentSettings_Team.md @@ -0,0 +1,18 @@ +# Tournament_TournamentSettings_Team + +```ts +interface Tournament_TournamentSettings_Team { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; + /** + * @generated from protobuf field: string image = 3; + */ + image: string; +} +``` diff --git a/src/lib/taDocs/4-User.md b/src/lib/taDocs/4-User.md new file mode 100644 index 0000000..9f35551 --- /dev/null +++ b/src/lib/taDocs/4-User.md @@ -0,0 +1,61 @@ +# User + +```ts +interface User { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string name = 2; + */ + name: string; + /** + * @generated from protobuf field: string platform_id = 3; + */ + platformId: string; + /** + * @generated from protobuf field: proto.models.User.ClientTypes client_type = 4; + */ + clientType: User_ClientTypes; + /** + * @generated from protobuf field: string team_id = 5; + */ + teamId: string; + /** + * @generated from protobuf field: proto.models.User.PlayStates play_state = 6; + */ + playState: User_PlayStates; + /** + * @generated from protobuf field: proto.models.User.DownloadStates download_state = 7; + */ + downloadState: User_DownloadStates; + /** + * @generated from protobuf field: repeated string mod_list = 8; + */ + modList: string[]; + /** + * @generated from protobuf field: proto.models.User.Point stream_screen_coordinates = 9; + */ + streamScreenCoordinates?: User_Point; + /** + * @generated from protobuf field: int64 stream_delay_ms = 10; + */ + streamDelayMs: bigint; + /** + * @generated from protobuf field: int64 stream_sync_start_ms = 11; + */ + streamSyncStartMs: bigint; + /** + * @generated from protobuf field: proto.models.User.DiscordInfo discord_info = 12; + */ + discordInfo?: User_DiscordInfo; +} +``` + +## References +- For `User_ClientTypes` please find documentation at [Enums -> User_ClientTypes](/documentation#Enums/5-User_ClientTypes). +- For `User_DiscordInfo` please find documentation at [Models -> User_DiscordInfo](/documentation#Models/4-User_DiscordInfo). +- For `User_DownloadStates` please find documentation at [Enums -> User_DownloadStates](/documentation#Enums/5-User_DownloadStates). +- For `User_PlayStates` please find documentation at [Enums -> User_PlayStates](/documentation#Enums/5-User_PlayStates). +- For `User_Point` please find documentation at [Models -> User_Point](/documentation#Models/4-User_Point). diff --git a/src/lib/taDocs/4-User_DiscordInfo.md b/src/lib/taDocs/4-User_DiscordInfo.md new file mode 100644 index 0000000..c5ec5e6 --- /dev/null +++ b/src/lib/taDocs/4-User_DiscordInfo.md @@ -0,0 +1,18 @@ +# User_DiscordInfo + +```ts +interface User_DiscordInfo { + /** + * @generated from protobuf field: string user_id = 1; + */ + userId: string; + /** + * @generated from protobuf field: string username = 2; + */ + username: string; + /** + * @generated from protobuf field: string avatar_url = 3; + */ + avatarUrl: string; +} +``` diff --git a/src/lib/taDocs/4-User_Point.md b/src/lib/taDocs/4-User_Point.md new file mode 100644 index 0000000..fd6f142 --- /dev/null +++ b/src/lib/taDocs/4-User_Point.md @@ -0,0 +1,16 @@ +# User_Point + +```ts +interface User_Point { + /** + * @generated from protobuf field: int32 x = 1; + */ + x: number; + /** + * @generated from protobuf field: int32 y = 2; + */ + y: number; +} +``` + +Semi-deprecated. This was used for streamsync back in the day, however not it is unused. \ No newline at end of file diff --git a/src/lib/taDocs/4-modals-intro.md b/src/lib/taDocs/4-modals-intro.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/lib/taDocs/4-models-intro.md b/src/lib/taDocs/4-models-intro.md new file mode 100644 index 0000000..9dbb287 --- /dev/null +++ b/src/lib/taDocs/4-models-intro.md @@ -0,0 +1,9 @@ +## Models Introduction + +There is not much to say about this section. Here is every single model(typescript interface) that is used by ProfoBuf / TournamentAssistant and the client. + +Some of these models are undocumented and have absolutely no comments. The reason for this is generally that you should not and will not come across them. Things such as `Command`s and `Push` packets exist as a model because they are used by the game client and the server, but do not have anything to do with the npm client. + +Every single schema for the entirety of the TournamentAssistant system is here without exception. Because of this you will see packet types, commands, and responses which the websocket client or RESTful API cannot even interact with. Please disregard these. + +Each model has its own page. On this page you will find at the top the model name as importable from the `moons-ta-client` package and below it the model itself represented as a typescript interface. It will include the protobuf fields aswell. If there are any references to other nested models, the references to those will be provded in a `References` section right below with hyperlinks. \ No newline at end of file diff --git a/src/lib/taDocs/5-Acknowledgement_AcknowledgementType.md b/src/lib/taDocs/5-Acknowledgement_AcknowledgementType.md new file mode 100644 index 0000000..28fe544 --- /dev/null +++ b/src/lib/taDocs/5-Acknowledgement_AcknowledgementType.md @@ -0,0 +1,13 @@ +# Acknowledgement_AcknowledgementType + +```ts +/** + * @generated from protobuf enum proto.packets.Acknowledgement.AcknowledgementType + */ +declare enum Acknowledgement_AcknowledgementType { + /** + * @generated from protobuf enum value: MessageReceived = 0; + */ + MessageReceived = 0 +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/5-Command_ModifyGameplay_Modifier.md b/src/lib/taDocs/5-Command_ModifyGameplay_Modifier.md new file mode 100644 index 0000000..dbb4f52 --- /dev/null +++ b/src/lib/taDocs/5-Command_ModifyGameplay_Modifier.md @@ -0,0 +1,25 @@ +# Command_ModifyGameplay_Modifier + +```ts +/** + * @generated from protobuf enum proto.packets.Command.ModifyGameplay.Modifier + */ +declare enum Command_ModifyGameplay_Modifier { + /** + * @generated from protobuf enum value: InvertColors = 0; + */ + InvertColors = 0, + /** + * @generated from protobuf enum value: InvertHandedness = 1; + */ + InvertHandedness = 1, + /** + * @generated from protobuf enum value: DisableBlueNotes = 2; + */ + DisableBlueNotes = 2, + /** + * @generated from protobuf enum value: DisableRedNotes = 3; + */ + DisableRedNotes = 3 +} +``` \ No newline at end of file diff --git a/src/lib/taDocs/5-GameplayModifiers_GameOptions.md b/src/lib/taDocs/5-GameplayModifiers_GameOptions.md new file mode 100644 index 0000000..5c4e63a --- /dev/null +++ b/src/lib/taDocs/5-GameplayModifiers_GameOptions.md @@ -0,0 +1,94 @@ +# GameplayModifiers_GameOptions + +```ts +declare enum GameplayModifiers_GameOptions { + /** + * @generated from protobuf enum value: None = 0; + */ + None = 0, + /** + * Negative modifiers + * + * @generated from protobuf enum value: NoFail = 1; + */ + NoFail = 1, + /** + * @generated from protobuf enum value: NoBombs = 2; + */ + NoBombs = 2, + /** + * @generated from protobuf enum value: NoArrows = 4; + */ + NoArrows = 4, + /** + * @generated from protobuf enum value: NoObstacles = 8; + */ + NoObstacles = 8, + /** + * @generated from protobuf enum value: SlowSong = 16; + */ + SlowSong = 16, + /** + * Positive Modifiers + * + * @generated from protobuf enum value: InstaFail = 32; + */ + InstaFail = 32, + /** + * @generated from protobuf enum value: FailOnClash = 64; + */ + FailOnClash = 64, + /** + * @generated from protobuf enum value: BatteryEnergy = 128; + */ + BatteryEnergy = 128, + /** + * @generated from protobuf enum value: FastNotes = 256; + */ + FastNotes = 256, + /** + * @generated from protobuf enum value: FastSong = 512; + */ + FastSong = 512, + /** + * @generated from protobuf enum value: DisappearingArrows = 1024; + */ + DisappearingArrows = 1024, + /** + * @generated from protobuf enum value: GhostNotes = 2048; + */ + GhostNotes = 2048, + /** + * 1.12.2 Additions + * + * @generated from protobuf enum value: DemoNoFail = 4096; + */ + DemoNoFail = 4096, + /** + * @generated from protobuf enum value: DemoNoObstacles = 8192; + */ + DemoNoObstacles = 8192, + /** + * @generated from protobuf enum value: StrictAngles = 16384; + */ + StrictAngles = 16384, + /** + * 1.13.4 Additions + * + * @generated from protobuf enum value: ProMode = 32768; + */ + ProMode = 32768, + /** + * @generated from protobuf enum value: ZenMode = 65536; + */ + ZenMode = 65536, + /** + * @generated from protobuf enum value: SmallCubes = 131072; + */ + SmallCubes = 131072, + /** + * @generated from protobuf enum value: SuperFastSong = 262144; + */ + SuperFastSong = 262144 +} +``` diff --git a/src/lib/taDocs/5-PlayerSpecificSettings_ArcVisibilityType.md b/src/lib/taDocs/5-PlayerSpecificSettings_ArcVisibilityType.md new file mode 100644 index 0000000..316dd37 --- /dev/null +++ b/src/lib/taDocs/5-PlayerSpecificSettings_ArcVisibilityType.md @@ -0,0 +1,22 @@ +# PlayerSpecificSettings_ArcVisibilityType + +```ts +declare enum PlayerSpecificSettings_ArcVisibilityType { + /** + * @generated from protobuf enum value: None = 0; + */ + None = 0, + /** + * @generated from protobuf enum value: Low = 1; + */ + Low = 1, + /** + * @generated from protobuf enum value: Standard = 2; + */ + Standard = 2, + /** + * @generated from protobuf enum value: High = 3; + */ + High = 3 +} +``` diff --git a/src/lib/taDocs/5-PlayerSpecificSettings_NoteJumpDurationTypeSettings.md b/src/lib/taDocs/5-PlayerSpecificSettings_NoteJumpDurationTypeSettings.md new file mode 100644 index 0000000..38e1c45 --- /dev/null +++ b/src/lib/taDocs/5-PlayerSpecificSettings_NoteJumpDurationTypeSettings.md @@ -0,0 +1,14 @@ +# PlayerSpecificSettings_NoteJumpDurationTypeSettings + +```ts +declare enum PlayerSpecificSettings_NoteJumpDurationTypeSettings { + /** + * @generated from protobuf enum value: Dynamic = 0; + */ + Dynamic = 0, + /** + * @generated from protobuf enum value: Static = 1; + */ + Static = 1 +} +``` diff --git a/src/lib/taDocs/5-PlayerSpecificSettings_PlayerOptions.md b/src/lib/taDocs/5-PlayerSpecificSettings_PlayerOptions.md new file mode 100644 index 0000000..c4999d7 --- /dev/null +++ b/src/lib/taDocs/5-PlayerSpecificSettings_PlayerOptions.md @@ -0,0 +1,54 @@ +# PlayerSpecificSettings_PlayerOptions + +```ts +declare enum PlayerSpecificSettings_PlayerOptions { + /** + * @generated from protobuf enum value: NoPlayerOptions = 0; + */ + NoPlayerOptions = 0, + /** + * @generated from protobuf enum value: LeftHanded = 1; + */ + LeftHanded = 1, + /** + * @generated from protobuf enum value: StaticLights = 2; + */ + StaticLights = 2, + /** + * @generated from protobuf enum value: NoHud = 4; + */ + NoHud = 4, + /** + * @generated from protobuf enum value: AdvancedHud = 8; + */ + AdvancedHud = 8, + /** + * @generated from protobuf enum value: ReduceDebris = 16; + */ + ReduceDebris = 16, + /** + * @generated from protobuf enum value: AutoPlayerHeight = 32; + */ + AutoPlayerHeight = 32, + /** + * @generated from protobuf enum value: NoFailEffects = 64; + */ + NoFailEffects = 64, + /** + * @generated from protobuf enum value: AutoRestart = 128; + */ + AutoRestart = 128, + /** + * @generated from protobuf enum value: HideNoteSpawnEffect = 256; + */ + HideNoteSpawnEffect = 256, + /** + * @generated from protobuf enum value: AdaptiveSfx = 512; + */ + AdaptiveSfx = 512, + /** + * @generated from protobuf enum value: ArcsHapticFeedback = 1024; + */ + ArcsHapticFeedback = 1024 +} +``` diff --git a/src/lib/taDocs/5-Push_SongFinished_CompletionType.md b/src/lib/taDocs/5-Push_SongFinished_CompletionType.md new file mode 100644 index 0000000..ef8ce2b --- /dev/null +++ b/src/lib/taDocs/5-Push_SongFinished_CompletionType.md @@ -0,0 +1,2981 @@ +# Push_SongFinished_CompletionType + +```ts +// + * + * @generated from protobuf message proto.packets.Response + */ +interface Response { + /** + * @generated from protobuf field: proto.packets.Response.ResponseType type = 1; + */ + type: Response_ResponseType; + /** + * @generated from protobuf field: string responding_to_packet_id = 2; + */ + respondingToPacketId: string; + /** + * @generated from protobuf oneof: details + */ + details: { + oneofKind: "updateUser"; + /** + * @generated from protobuf field: proto.packets.Response.UpdateUser update_user = 3; + */ + updateUser: Response_UpdateUser; + } | { + oneofKind: "createMatch"; + /** + * @generated from protobuf field: proto.packets.Response.CreateMatch create_match = 4; + */ + createMatch: Response_CreateMatch; + } | { + oneofKind: "updateMatch"; + /** + * @generated from protobuf field: proto.packets.Response.UpdateMatch update_match = 5; + */ + updateMatch: Response_UpdateMatch; + } | { + oneofKind: "deleteMatch"; + /** + * @generated from protobuf field: proto.packets.Response.DeleteMatch delete_match = 6; + */ + deleteMatch: Response_DeleteMatch; + } | { + oneofKind: "createQualifierEvent"; + /** + * @generated from protobuf field: proto.packets.Response.CreateQualifierEvent create_qualifier_event = 7; + */ + createQualifierEvent: Response_CreateQualifierEvent; + } | { + oneofKind: "updateQualifierEvent"; + /** + * @generated from protobuf field: proto.packets.Response.UpdateQualifierEvent update_qualifier_event = 8; + */ + updateQualifierEvent: Response_UpdateQualifierEvent; + } | { + oneofKind: "deleteQualifierEvent"; + /** + * @generated from protobuf field: proto.packets.Response.DeleteQualifierEvent delete_qualifier_event = 9; + */ + deleteQualifierEvent: Response_DeleteQualifierEvent; + } | { + oneofKind: "addAuthorizedUser"; + /** + * @generated from protobuf field: proto.packets.Response.AddAuthorizedUser add_authorized_user = 21; + */ + addAuthorizedUser: Response_AddAuthorizedUser; + } | { + oneofKind: "updateAuthorizedUser"; + /** + * @generated from protobuf field: proto.packets.Response.UpdateAuthorizedUser update_authorized_user = 22; + */ + updateAuthorizedUser: Response_UpdateAuthorizedUser; + } | { + oneofKind: "removeAuthorizedUser"; + /** + * @generated from protobuf field: proto.packets.Response.RemoveAuthorizedUser remove_authorized_user = 23; + */ + removeAuthorizedUser: Response_RemoveAuthorizedUser; + } | { + oneofKind: "getAuthorizedUsers"; + /** + * @generated from protobuf field: proto.packets.Response.GetAuthorizedUsers get_authorized_users = 24; + */ + getAuthorizedUsers: Response_GetAuthorizedUsers; + } | { + oneofKind: "getDiscordInfo"; + /** + * @generated from protobuf field: proto.packets.Response.GetDiscordInfo get_discord_info = 25; + */ + getDiscordInfo: Response_GetDiscordInfo; + } | { + oneofKind: "createTournament"; + /** + * @generated from protobuf field: proto.packets.Response.CreateTournament create_tournament = 10; + */ + createTournament: Response_CreateTournament; + } | { + oneofKind: "updateTournament"; + /** + * @generated from protobuf field: proto.packets.Response.UpdateTournament update_tournament = 11; + */ + updateTournament: Response_UpdateTournament; + } | { + oneofKind: "deleteTournament"; + /** + * @generated from protobuf field: proto.packets.Response.DeleteTournament delete_tournament = 12; + */ + deleteTournament: Response_DeleteTournament; + } | { + oneofKind: "addServer"; + /** + * @generated from protobuf field: proto.packets.Response.AddServer add_server = 13; + */ + addServer: Response_AddServer; + } | { + oneofKind: "connect"; + /** + * @generated from protobuf field: proto.packets.Response.Connect connect = 14; + */ + connect: Response_Connect; + } | { + oneofKind: "join"; + /** + * @generated from protobuf field: proto.packets.Response.Join join = 15; + */ + join: Response_Join; + } | { + oneofKind: "leaderboardEntries"; + /** + * @generated from protobuf field: proto.packets.Response.LeaderboardEntries leaderboard_entries = 16; + */ + leaderboardEntries: Response_LeaderboardEntries; + } | { + oneofKind: "loadSong"; + /** + * @generated from protobuf field: proto.packets.Response.LoadSong load_song = 17; + */ + loadSong: Response_LoadSong; + } | { + oneofKind: "preloadImageForStreamSync"; + /** + * @generated from protobuf field: proto.packets.Response.PreloadImageForStreamSync preload_image_for_stream_sync = 18; + */ + preloadImageForStreamSync: Response_PreloadImageForStreamSync; + } | { + oneofKind: "showPrompt"; + /** + * @generated from protobuf field: proto.packets.Response.ShowPrompt show_prompt = 19; + */ + showPrompt: Response_ShowPrompt; + } | { + oneofKind: "remainingAttempts"; + /** + * @generated from protobuf field: proto.packets.Response.RemainingAttempts remaining_attempts = 20; + */ + remainingAttempts: Response_RemainingAttempts; + } | { + oneofKind: "getBotTokensForUser"; + /** + * @generated from protobuf field: proto.packets.Response.GetBotTokensForUser get_bot_tokens_for_user = 26; + */ + getBotTokensForUser: Response_GetBotTokensForUser; + } | { + oneofKind: "generateBotToken"; + /** + * @generated from protobuf field: proto.packets.Response.GenerateBotToken generate_bot_token = 27; + */ + generateBotToken: Response_GenerateBotToken; + } | { + oneofKind: "revokeBotToken"; + /** + * @generated from protobuf field: proto.packets.Response.RevokeBotToken revoke_bot_token = 28; + */ + revokeBotToken: Response_RevokeBotToken; + } | { + oneofKind: "refundAttempts"; + /** + * @generated from protobuf field: proto.packets.Response.RefundAttempts refund_attempts = 29; + */ + refundAttempts: Response_RefundAttempts; + } | { + oneofKind: undefined; + }; +} +/** + * @generated MessageType for protobuf message proto.packets.Response + */ +declare const Response: Response$Type; +declare class Response_UpdateUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_UpdateUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_UpdateUser): Response_UpdateUser; + internalBinaryWrite(message: Response_UpdateUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * --- State Update Responses ---// + * + * @generated from protobuf message proto.packets.Response.UpdateUser + */ +interface Response_UpdateUser { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.UpdateUser + */ +declare const Response_UpdateUser: Response_UpdateUser$Type; +declare class Response_CreateMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_CreateMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_CreateMatch): Response_CreateMatch; + internalBinaryWrite(message: Response_CreateMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.CreateMatch + */ +interface Response_CreateMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.CreateMatch + */ +declare const Response_CreateMatch: Response_CreateMatch$Type; +declare class Response_UpdateMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_UpdateMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_UpdateMatch): Response_UpdateMatch; + internalBinaryWrite(message: Response_UpdateMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.UpdateMatch + */ +interface Response_UpdateMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.UpdateMatch + */ +declare const Response_UpdateMatch: Response_UpdateMatch$Type; +declare class Response_DeleteMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_DeleteMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_DeleteMatch): Response_DeleteMatch; + internalBinaryWrite(message: Response_DeleteMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.DeleteMatch + */ +interface Response_DeleteMatch { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.DeleteMatch + */ +declare const Response_DeleteMatch: Response_DeleteMatch$Type; +declare class Response_CreateQualifierEvent$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_CreateQualifierEvent; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_CreateQualifierEvent): Response_CreateQualifierEvent; + internalBinaryWrite(message: Response_CreateQualifierEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.CreateQualifierEvent + */ +interface Response_CreateQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.CreateQualifierEvent + */ +declare const Response_CreateQualifierEvent: Response_CreateQualifierEvent$Type; +declare class Response_UpdateQualifierEvent$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_UpdateQualifierEvent; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_UpdateQualifierEvent): Response_UpdateQualifierEvent; + internalBinaryWrite(message: Response_UpdateQualifierEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.UpdateQualifierEvent + */ +interface Response_UpdateQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.UpdateQualifierEvent + */ +declare const Response_UpdateQualifierEvent: Response_UpdateQualifierEvent$Type; +declare class Response_DeleteQualifierEvent$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_DeleteQualifierEvent; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_DeleteQualifierEvent): Response_DeleteQualifierEvent; + internalBinaryWrite(message: Response_DeleteQualifierEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.DeleteQualifierEvent + */ +interface Response_DeleteQualifierEvent { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent qualifier = 2; + */ + qualifier?: QualifierEvent; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.DeleteQualifierEvent + */ +declare const Response_DeleteQualifierEvent: Response_DeleteQualifierEvent$Type; +declare class Response_AddAuthorizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_AddAuthorizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_AddAuthorizedUser): Response_AddAuthorizedUser; + internalBinaryWrite(message: Response_AddAuthorizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.AddAuthorizedUser + */ +interface Response_AddAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.AddAuthorizedUser + */ +declare const Response_AddAuthorizedUser: Response_AddAuthorizedUser$Type; +declare class Response_UpdateAuthorizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_UpdateAuthorizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_UpdateAuthorizedUser): Response_UpdateAuthorizedUser; + internalBinaryWrite(message: Response_UpdateAuthorizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.UpdateAuthorizedUser + */ +interface Response_UpdateAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.UpdateAuthorizedUser + */ +declare const Response_UpdateAuthorizedUser: Response_UpdateAuthorizedUser$Type; +declare class Response_RemoveAuthorizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_RemoveAuthorizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_RemoveAuthorizedUser): Response_RemoveAuthorizedUser; + internalBinaryWrite(message: Response_RemoveAuthorizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.RemoveAuthorizedUser + */ +interface Response_RemoveAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string roles = 3; + */ + roles: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.RemoveAuthorizedUser + */ +declare const Response_RemoveAuthorizedUser: Response_RemoveAuthorizedUser$Type; +declare class Response_GetAuthorizedUsers$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GetAuthorizedUsers; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GetAuthorizedUsers): Response_GetAuthorizedUsers; + internalBinaryWrite(message: Response_GetAuthorizedUsers, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GetAuthorizedUsers + */ +interface Response_GetAuthorizedUsers { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated proto.packets.Response.GetAuthorizedUsers.AuthroizedUser authorized_users = 2; + */ + authorizedUsers: Response_GetAuthorizedUsers_AuthroizedUser[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GetAuthorizedUsers + */ +declare const Response_GetAuthorizedUsers: Response_GetAuthorizedUsers$Type; +declare class Response_GetAuthorizedUsers_AuthroizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GetAuthorizedUsers_AuthroizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GetAuthorizedUsers_AuthroizedUser): Response_GetAuthorizedUsers_AuthroizedUser; + internalBinaryWrite(message: Response_GetAuthorizedUsers_AuthroizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GetAuthorizedUsers.AuthroizedUser + */ +interface Response_GetAuthorizedUsers_AuthroizedUser { + /** + * @generated from protobuf field: string discord_id = 1; + */ + discordId: string; + /** + * @generated from protobuf field: string discord_username = 2; + */ + discordUsername: string; + /** + * @generated from protobuf field: string discord_avatar_url = 3; + */ + discordAvatarUrl: string; + /** + * @generated from protobuf field: repeated string roles = 4; + */ + roles: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GetAuthorizedUsers.AuthroizedUser + */ +declare const Response_GetAuthorizedUsers_AuthroizedUser: Response_GetAuthorizedUsers_AuthroizedUser$Type; +declare class Response_GetDiscordInfo$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GetDiscordInfo; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GetDiscordInfo): Response_GetDiscordInfo; + internalBinaryWrite(message: Response_GetDiscordInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GetDiscordInfo + */ +interface Response_GetDiscordInfo { + /** + * @generated from protobuf field: string discord_id = 1; + */ + discordId: string; + /** + * @generated from protobuf field: string discord_username = 2; + */ + discordUsername: string; + /** + * @generated from protobuf field: string discord_avatar_url = 3; + */ + discordAvatarUrl: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GetDiscordInfo + */ +declare const Response_GetDiscordInfo: Response_GetDiscordInfo$Type; +declare class Response_CreateTournament$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_CreateTournament; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_CreateTournament): Response_CreateTournament; + internalBinaryWrite(message: Response_CreateTournament, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.CreateTournament + */ +interface Response_CreateTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.CreateTournament + */ +declare const Response_CreateTournament: Response_CreateTournament$Type; +declare class Response_UpdateTournament$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_UpdateTournament; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_UpdateTournament): Response_UpdateTournament; + internalBinaryWrite(message: Response_UpdateTournament, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.UpdateTournament + */ +interface Response_UpdateTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.UpdateTournament + */ +declare const Response_UpdateTournament: Response_UpdateTournament$Type; +declare class Response_DeleteTournament$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_DeleteTournament; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_DeleteTournament): Response_DeleteTournament; + internalBinaryWrite(message: Response_DeleteTournament, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.DeleteTournament + */ +interface Response_DeleteTournament { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.Tournament tournament = 2; + */ + tournament?: Tournament; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.DeleteTournament + */ +declare const Response_DeleteTournament: Response_DeleteTournament$Type; +declare class Response_AddServer$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_AddServer; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_AddServer): Response_AddServer; + internalBinaryWrite(message: Response_AddServer, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.AddServer + */ +interface Response_AddServer { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; + /** + * @generated from protobuf field: proto.models.CoreServer server = 2; + */ + server?: CoreServer; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.AddServer + */ +declare const Response_AddServer: Response_AddServer$Type; +declare class Response_Connect$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_Connect; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_Connect): Response_Connect; + internalBinaryWrite(message: Response_Connect, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Other Responses --/ + * + * @generated from protobuf message proto.packets.Response.Connect + */ +interface Response_Connect { + /** + * @generated from protobuf field: proto.models.State state = 1; + */ + state?: State; + /** + * @generated from protobuf field: int32 server_version = 2; + */ + serverVersion: number; + /** + * @generated from protobuf field: string message = 3; + */ + message: string; + /** + * @generated from protobuf field: proto.packets.Response.Connect.ConnectFailReason reason = 4; + */ + reason: Response_Connect_ConnectFailReason; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.Connect + */ +declare const Response_Connect: Response_Connect$Type; +declare class Response_Join$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_Join; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_Join): Response_Join; + internalBinaryWrite(message: Response_Join, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.Join + */ +interface Response_Join { + /** + * @generated from protobuf field: proto.models.State state = 1; + */ + state?: State; + /** + * @generated from protobuf field: string self_guid = 2; + */ + selfGuid: string; + /** + * @generated from protobuf field: string tournament_id = 3; + */ + tournamentId: string; + /** + * @generated from protobuf field: string message = 4; + */ + message: string; + /** + * @generated from protobuf field: proto.packets.Response.Join.JoinFailReason reason = 5; + */ + reason: Response_Join_JoinFailReason; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.Join + */ +declare const Response_Join: Response_Join$Type; +declare class Response_LeaderboardEntries$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_LeaderboardEntries; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_LeaderboardEntries): Response_LeaderboardEntries; + internalBinaryWrite(message: Response_LeaderboardEntries, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.LeaderboardEntries + */ +interface Response_LeaderboardEntries { + /** + * @generated from protobuf field: repeated proto.models.LeaderboardEntry scores = 1; + */ + scores: LeaderboardEntry[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.LeaderboardEntries + */ +declare const Response_LeaderboardEntries: Response_LeaderboardEntries$Type; +declare class Response_LoadSong$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_LoadSong; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_LoadSong): Response_LoadSong; + internalBinaryWrite(message: Response_LoadSong, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.LoadSong + */ +interface Response_LoadSong { + /** + * @generated from protobuf field: string level_id = 1; + */ + levelId: string; + /** + * @generated from protobuf field: string message = 2; + */ + message: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.LoadSong + */ +declare const Response_LoadSong: Response_LoadSong$Type; +declare class Response_PreloadImageForStreamSync$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_PreloadImageForStreamSync; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_PreloadImageForStreamSync): Response_PreloadImageForStreamSync; + internalBinaryWrite(message: Response_PreloadImageForStreamSync, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.PreloadImageForStreamSync + */ +interface Response_PreloadImageForStreamSync { + /** + * @generated from protobuf field: string file_id = 1; + */ + fileId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.PreloadImageForStreamSync + */ +declare const Response_PreloadImageForStreamSync: Response_PreloadImageForStreamSync$Type; +declare class Response_ShowPrompt$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_ShowPrompt; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_ShowPrompt): Response_ShowPrompt; + internalBinaryWrite(message: Response_ShowPrompt, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.ShowPrompt + */ +interface Response_ShowPrompt { + /** + * @generated from protobuf field: string value = 1; + */ + value: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.ShowPrompt + */ +declare const Response_ShowPrompt: Response_ShowPrompt$Type; +declare class Response_RemainingAttempts$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_RemainingAttempts; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_RemainingAttempts): Response_RemainingAttempts; + internalBinaryWrite(message: Response_RemainingAttempts, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.RemainingAttempts + */ +interface Response_RemainingAttempts { + /** + * @generated from protobuf field: int32 remaining_attempts = 1; + */ + remainingAttempts: number; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.RemainingAttempts + */ +declare const Response_RemainingAttempts: Response_RemainingAttempts$Type; +declare class Response_GetBotTokensForUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GetBotTokensForUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GetBotTokensForUser): Response_GetBotTokensForUser; + internalBinaryWrite(message: Response_GetBotTokensForUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GetBotTokensForUser + */ +interface Response_GetBotTokensForUser { + /** + * @generated from protobuf field: repeated proto.packets.Response.GetBotTokensForUser.BotUser bot_users = 1; + */ + botUsers: Response_GetBotTokensForUser_BotUser[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GetBotTokensForUser + */ +declare const Response_GetBotTokensForUser: Response_GetBotTokensForUser$Type; +declare class Response_GetBotTokensForUser_BotUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GetBotTokensForUser_BotUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GetBotTokensForUser_BotUser): Response_GetBotTokensForUser_BotUser; + internalBinaryWrite(message: Response_GetBotTokensForUser_BotUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GetBotTokensForUser.BotUser + */ +interface Response_GetBotTokensForUser_BotUser { + /** + * @generated from protobuf field: string guid = 1; + */ + guid: string; + /** + * @generated from protobuf field: string username = 2; + */ + username: string; + /** + * @generated from protobuf field: string owner_discord_id = 3; + */ + ownerDiscordId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GetBotTokensForUser.BotUser + */ +declare const Response_GetBotTokensForUser_BotUser: Response_GetBotTokensForUser_BotUser$Type; +declare class Response_GenerateBotToken$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_GenerateBotToken; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_GenerateBotToken): Response_GenerateBotToken; + internalBinaryWrite(message: Response_GenerateBotToken, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.GenerateBotToken + */ +interface Response_GenerateBotToken { + /** + * @generated from protobuf field: string bot_token = 1; + */ + botToken: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.GenerateBotToken + */ +declare const Response_GenerateBotToken: Response_GenerateBotToken$Type; +declare class Response_RevokeBotToken$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_RevokeBotToken; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_RevokeBotToken): Response_RevokeBotToken; + internalBinaryWrite(message: Response_RevokeBotToken, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.RevokeBotToken + */ +interface Response_RevokeBotToken { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.RevokeBotToken + */ +declare const Response_RevokeBotToken: Response_RevokeBotToken$Type; +declare class Response_RefundAttempts$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Response_RefundAttempts; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Response_RefundAttempts): Response_RefundAttempts; + internalBinaryWrite(message: Response_RefundAttempts, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Response.RefundAttempts + */ +interface Response_RefundAttempts { + /** + * @generated from protobuf field: string message = 1; + */ + message: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Response.RefundAttempts + */ +declare const Response_RefundAttempts: Response_RefundAttempts$Type; + +declare class Request$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request): Request; + internalBinaryWrite(message: Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * ---- Requests (GET (or do?) something where you need a response!) ---- // + * + * @generated from protobuf message proto.packets.Request + */ +interface Request { + /** + * @generated from protobuf oneof: type + */ + type: { + oneofKind: "updateUser"; + /** + * @generated from protobuf field: proto.packets.Request.UpdateUser update_user = 1; + */ + updateUser: Request_UpdateUser; + } | { + oneofKind: "createMatch"; + /** + * @generated from protobuf field: proto.packets.Request.CreateMatch create_match = 2; + */ + createMatch: Request_CreateMatch; + } | { + oneofKind: "addUserToMatch"; + /** + * @generated from protobuf field: proto.packets.Request.AddUserToMatch add_user_to_match = 3; + */ + addUserToMatch: Request_AddUserToMatch; + } | { + oneofKind: "removeUserFromMatch"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveUserFromMatch remove_user_from_match = 4; + */ + removeUserFromMatch: Request_RemoveUserFromMatch; + } | { + oneofKind: "setMatchLeader"; + /** + * @generated from protobuf field: proto.packets.Request.SetMatchLeader set_match_leader = 5; + */ + setMatchLeader: Request_SetMatchLeader; + } | { + oneofKind: "setMatchMap"; + /** + * @generated from protobuf field: proto.packets.Request.SetMatchMap set_match_map = 6; + */ + setMatchMap: Request_SetMatchMap; + } | { + oneofKind: "deleteMatch"; + /** + * @generated from protobuf field: proto.packets.Request.DeleteMatch delete_match = 7; + */ + deleteMatch: Request_DeleteMatch; + } | { + oneofKind: "createQualifierEvent"; + /** + * @generated from protobuf field: proto.packets.Request.CreateQualifierEvent create_qualifier_event = 8; + */ + createQualifierEvent: Request_CreateQualifierEvent; + } | { + oneofKind: "setQualifierName"; + /** + * @generated from protobuf field: proto.packets.Request.SetQualifierName set_qualifier_name = 9; + */ + setQualifierName: Request_SetQualifierName; + } | { + oneofKind: "setQualifierInfoChannel"; + /** + * @generated from protobuf field: proto.packets.Request.SetQualifierInfoChannel set_qualifier_info_channel = 10; + */ + setQualifierInfoChannel: Request_SetQualifierInfoChannel; + } | { + oneofKind: "setQualifierImage"; + /** + * @generated from protobuf field: proto.packets.Request.SetQualifierImage set_qualifier_image = 11; + */ + setQualifierImage: Request_SetQualifierImage; + } | { + oneofKind: "setQualifierFlags"; + /** + * @generated from protobuf field: proto.packets.Request.SetQualifierFlags set_qualifier_flags = 12; + */ + setQualifierFlags: Request_SetQualifierFlags; + } | { + oneofKind: "setQualifierLeaderboardSort"; + /** + * @generated from protobuf field: proto.packets.Request.SetQualifierLeaderboardSort set_qualifier_leaderboard_sort = 13; + */ + setQualifierLeaderboardSort: Request_SetQualifierLeaderboardSort; + } | { + oneofKind: "addQualifierMaps"; + /** + * @generated from protobuf field: proto.packets.Request.AddQualifierMaps add_qualifier_maps = 14; + */ + addQualifierMaps: Request_AddQualifierMaps; + } | { + oneofKind: "updateQualifierMap"; + /** + * @generated from protobuf field: proto.packets.Request.UpdateQualifierMap update_qualifier_map = 15; + */ + updateQualifierMap: Request_UpdateQualifierMap; + } | { + oneofKind: "removeQualifierMap"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveQualifierMap remove_qualifier_map = 16; + */ + removeQualifierMap: Request_RemoveQualifierMap; + } | { + oneofKind: "deleteQualifierEvent"; + /** + * @generated from protobuf field: proto.packets.Request.DeleteQualifierEvent delete_qualifier_event = 17; + */ + deleteQualifierEvent: Request_DeleteQualifierEvent; + } | { + oneofKind: "addAuthorizedUser"; + /** + * @generated from protobuf field: proto.packets.Request.AddAuthorizedUser add_authorized_user = 48; + */ + addAuthorizedUser: Request_AddAuthorizedUser; + } | { + oneofKind: "updateAuthorizedUserRoles"; + /** + * @generated from protobuf field: proto.packets.Request.UpdateAuthorizedUserRoles update_authorized_user_roles = 49; + */ + updateAuthorizedUserRoles: Request_UpdateAuthorizedUserRoles; + } | { + oneofKind: "removeAuthorizedUser"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveAuthorizedUser remove_authorized_user = 51; + */ + removeAuthorizedUser: Request_RemoveAuthorizedUser; + } | { + oneofKind: "getAuthorizedUsers"; + /** + * @generated from protobuf field: proto.packets.Request.GetAuthorizedUsers get_authorized_users = 52; + */ + getAuthorizedUsers: Request_GetAuthorizedUsers; + } | { + oneofKind: "getDiscordInfo"; + /** + * @generated from protobuf field: proto.packets.Request.GetDiscordInfo get_discord_info = 53; + */ + getDiscordInfo: Request_GetDiscordInfo; + } | { + oneofKind: "createTournament"; + /** + * @generated from protobuf field: proto.packets.Request.CreateTournament create_tournament = 18; + */ + createTournament: Request_CreateTournament; + } | { + oneofKind: "setTournamentName"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentName set_tournament_name = 19; + */ + setTournamentName: Request_SetTournamentName; + } | { + oneofKind: "setTournamentImage"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentImage set_tournament_image = 20; + */ + setTournamentImage: Request_SetTournamentImage; + } | { + oneofKind: "setTournamentEnableTeams"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentEnableTeams set_tournament_enable_teams = 21; + */ + setTournamentEnableTeams: Request_SetTournamentEnableTeams; + } | { + oneofKind: "setTournamentEnablePools"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentEnablePools set_tournament_enable_pools = 44; + */ + setTournamentEnablePools: Request_SetTournamentEnablePools; + } | { + oneofKind: "setTournamentShowTournamentButton"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentShowTournamentButton set_tournament_show_tournament_button = 45; + */ + setTournamentShowTournamentButton: Request_SetTournamentShowTournamentButton; + } | { + oneofKind: "setTournamentShowQualifierButton"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentShowQualifierButton set_tournament_show_qualifier_button = 46; + */ + setTournamentShowQualifierButton: Request_SetTournamentShowQualifierButton; + } | { + oneofKind: "setTournamentAllowUnauthorizedView"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentAllowUnauthorizedView set_tournament_allow_unauthorized_view = 54; + */ + setTournamentAllowUnauthorizedView: Request_SetTournamentAllowUnauthorizedView; + } | { + oneofKind: "setTournamentScoreUpdateFrequency"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentScoreUpdateFrequency set_tournament_score_update_frequency = 47; + */ + setTournamentScoreUpdateFrequency: Request_SetTournamentScoreUpdateFrequency; + } | { + oneofKind: "setTournamentBannedMods"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentBannedMods set_tournament_banned_mods = 23; + */ + setTournamentBannedMods: Request_SetTournamentBannedMods; + } | { + oneofKind: "addTournamentTeam"; + /** + * @generated from protobuf field: proto.packets.Request.AddTournamentTeam add_tournament_team = 24; + */ + addTournamentTeam: Request_AddTournamentTeam; + } | { + oneofKind: "setTournamentTeamName"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentTeamName set_tournament_team_name = 25; + */ + setTournamentTeamName: Request_SetTournamentTeamName; + } | { + oneofKind: "setTournamentTeamImage"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentTeamImage set_tournament_team_image = 26; + */ + setTournamentTeamImage: Request_SetTournamentTeamImage; + } | { + oneofKind: "removeTournamentTeam"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveTournamentTeam remove_tournament_team = 27; + */ + removeTournamentTeam: Request_RemoveTournamentTeam; + } | { + oneofKind: "addTournamentPool"; + /** + * @generated from protobuf field: proto.packets.Request.AddTournamentPool add_tournament_pool = 28; + */ + addTournamentPool: Request_AddTournamentPool; + } | { + oneofKind: "setTournamentPoolName"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentPoolName set_tournament_pool_name = 29; + */ + setTournamentPoolName: Request_SetTournamentPoolName; + } | { + oneofKind: "setTournamentPoolImage"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentPoolImage set_tournament_pool_image = 63; + */ + setTournamentPoolImage: Request_SetTournamentPoolImage; + } | { + oneofKind: "addTournamentPoolMaps"; + /** + * @generated from protobuf field: proto.packets.Request.AddTournamentPoolMaps add_tournament_pool_maps = 30; + */ + addTournamentPoolMaps: Request_AddTournamentPoolMaps; + } | { + oneofKind: "updateTournamentPoolMap"; + /** + * @generated from protobuf field: proto.packets.Request.UpdateTournamentPoolMap update_tournament_pool_map = 31; + */ + updateTournamentPoolMap: Request_UpdateTournamentPoolMap; + } | { + oneofKind: "removeTournamentPoolMap"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveTournamentPoolMap remove_tournament_pool_map = 32; + */ + removeTournamentPoolMap: Request_RemoveTournamentPoolMap; + } | { + oneofKind: "removeTournamentPool"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveTournamentPool remove_tournament_pool = 33; + */ + removeTournamentPool: Request_RemoveTournamentPool; + } | { + oneofKind: "deleteTournament"; + /** + * @generated from protobuf field: proto.packets.Request.DeleteTournament delete_tournament = 34; + */ + deleteTournament: Request_DeleteTournament; + } | { + oneofKind: "addServer"; + /** + * @generated from protobuf field: proto.packets.Request.AddServer add_server = 35; + */ + addServer: Request_AddServer; + } | { + oneofKind: "connect"; + /** + * @generated from protobuf field: proto.packets.Request.Connect connect = 36; + */ + connect: Request_Connect; + } | { + oneofKind: "join"; + /** + * @generated from protobuf field: proto.packets.Request.Join join = 37; + */ + join: Request_Join; + } | { + oneofKind: "qualifierScores"; + /** + * @generated from protobuf field: proto.packets.Request.QualifierScores qualifier_scores = 38; + */ + qualifierScores: Request_QualifierScores; + } | { + oneofKind: "submitQualifierScore"; + /** + * @generated from protobuf field: proto.packets.Request.SubmitQualifierScore submit_qualifier_score = 39; + */ + submitQualifierScore: Request_SubmitQualifierScore; + } | { + oneofKind: "loadSong"; + /** + * @generated from protobuf field: proto.packets.Request.LoadSong load_song = 40; + */ + loadSong: Request_LoadSong; + } | { + oneofKind: "preloadImageForStreamSync"; + /** + * @generated from protobuf field: proto.packets.Request.PreloadImageForStreamSync preload_image_for_stream_sync = 41; + */ + preloadImageForStreamSync: Request_PreloadImageForStreamSync; + } | { + oneofKind: "showPrompt"; + /** + * @generated from protobuf field: proto.packets.Request.ShowPrompt show_prompt = 42; + */ + showPrompt: Request_ShowPrompt; + } | { + oneofKind: "remainingAttempts"; + /** + * @generated from protobuf field: proto.packets.Request.RemainingAttempts remaining_attempts = 43; + */ + remainingAttempts: Request_RemainingAttempts; + } | { + oneofKind: "getBotTokensForUser"; + /** + * @generated from protobuf field: proto.packets.Request.GetBotTokensForUser get_bot_tokens_for_user = 55; + */ + getBotTokensForUser: Request_GetBotTokensForUser; + } | { + oneofKind: "generateBotToken"; + /** + * @generated from protobuf field: proto.packets.Request.GenerateBotToken generate_bot_token = 56; + */ + generateBotToken: Request_GenerateBotToken; + } | { + oneofKind: "revokeBotToken"; + /** + * @generated from protobuf field: proto.packets.Request.RevokeBotToken revoke_bot_token = 57; + */ + revokeBotToken: Request_RevokeBotToken; + } | { + oneofKind: "refundAttempts"; + /** + * @generated from protobuf field: proto.packets.Request.RefundAttempts refund_attempts = 58; + */ + refundAttempts: Request_RefundAttempts; + } | { + oneofKind: "addTournamentRole"; + /** + * @generated from protobuf field: proto.packets.Request.AddTournamentRole add_tournament_role = 59; + */ + addTournamentRole: Request_AddTournamentRole; + } | { + oneofKind: "setTournamentRoleName"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentRoleName set_tournament_role_name = 60; + */ + setTournamentRoleName: Request_SetTournamentRoleName; + } | { + oneofKind: "setTournamentRolePermissions"; + /** + * @generated from protobuf field: proto.packets.Request.SetTournamentRolePermissions set_tournament_role_permissions = 61; + */ + setTournamentRolePermissions: Request_SetTournamentRolePermissions; + } | { + oneofKind: "removeTournamentRole"; + /** + * @generated from protobuf field: proto.packets.Request.RemoveTournamentRole remove_tournament_role = 62; + */ + removeTournamentRole: Request_RemoveTournamentRole; + } | { + oneofKind: undefined; + }; +} +/** + * @generated MessageType for protobuf message proto.packets.Request + */ +declare const Request: Request$Type; +declare class Request_UpdateUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_UpdateUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_UpdateUser): Request_UpdateUser; + internalBinaryWrite(message: Request_UpdateUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * --- State Update Requests ---// + * + * @generated from protobuf message proto.packets.Request.UpdateUser + */ +interface Request_UpdateUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.User user = 2; + */ + user?: User; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.UpdateUser + */ +declare const Request_UpdateUser: Request_UpdateUser$Type; +declare class Request_CreateMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_CreateMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_CreateMatch): Request_CreateMatch; + internalBinaryWrite(message: Request_CreateMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Match -- // + * + * @generated from protobuf message proto.packets.Request.CreateMatch + */ +interface Request_CreateMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Match match = 2; + */ + match?: Match; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.CreateMatch + */ +declare const Request_CreateMatch: Request_CreateMatch$Type; +declare class Request_AddUserToMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddUserToMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddUserToMatch): Request_AddUserToMatch; + internalBinaryWrite(message: Request_AddUserToMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddUserToMatch + */ +interface Request_AddUserToMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddUserToMatch + */ +declare const Request_AddUserToMatch: Request_AddUserToMatch$Type; +declare class Request_RemoveUserFromMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveUserFromMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveUserFromMatch): Request_RemoveUserFromMatch; + internalBinaryWrite(message: Request_RemoveUserFromMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveUserFromMatch + */ +interface Request_RemoveUserFromMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveUserFromMatch + */ +declare const Request_RemoveUserFromMatch: Request_RemoveUserFromMatch$Type; +declare class Request_SetMatchLeader$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetMatchLeader; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetMatchLeader): Request_SetMatchLeader; + internalBinaryWrite(message: Request_SetMatchLeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetMatchLeader + */ +interface Request_SetMatchLeader { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: string user_id = 3; + */ + userId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetMatchLeader + */ +declare const Request_SetMatchLeader: Request_SetMatchLeader$Type; +declare class Request_SetMatchMap$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetMatchMap; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetMatchMap): Request_SetMatchMap; + internalBinaryWrite(message: Request_SetMatchMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetMatchMap + */ +interface Request_SetMatchMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetMatchMap + */ +declare const Request_SetMatchMap: Request_SetMatchMap$Type; +declare class Request_DeleteMatch$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_DeleteMatch; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_DeleteMatch): Request_DeleteMatch; + internalBinaryWrite(message: Request_DeleteMatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.DeleteMatch + */ +interface Request_DeleteMatch { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string match_id = 2; + */ + matchId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.DeleteMatch + */ +declare const Request_DeleteMatch: Request_DeleteMatch$Type; +declare class Request_CreateQualifierEvent$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_CreateQualifierEvent; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_CreateQualifierEvent): Request_CreateQualifierEvent; + internalBinaryWrite(message: Request_CreateQualifierEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Qualifiers -- // + * + * @generated from protobuf message proto.packets.Request.CreateQualifierEvent + */ +interface Request_CreateQualifierEvent { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent event = 2; + */ + event?: QualifierEvent; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.CreateQualifierEvent + */ +declare const Request_CreateQualifierEvent: Request_CreateQualifierEvent$Type; +declare class Request_SetQualifierName$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetQualifierName; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetQualifierName): Request_SetQualifierName; + internalBinaryWrite(message: Request_SetQualifierName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetQualifierName + */ +interface Request_SetQualifierName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string qualifier_name = 3; + */ + qualifierName: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetQualifierName + */ +declare const Request_SetQualifierName: Request_SetQualifierName$Type; +declare class Request_SetQualifierImage$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetQualifierImage; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetQualifierImage): Request_SetQualifierImage; + internalBinaryWrite(message: Request_SetQualifierImage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetQualifierImage + */ +interface Request_SetQualifierImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string qualifier_image = 3; + */ + qualifierImage: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetQualifierImage + */ +declare const Request_SetQualifierImage: Request_SetQualifierImage$Type; +declare class Request_SetQualifierInfoChannel$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetQualifierInfoChannel; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetQualifierInfoChannel): Request_SetQualifierInfoChannel; + internalBinaryWrite(message: Request_SetQualifierInfoChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetQualifierInfoChannel + */ +interface Request_SetQualifierInfoChannel { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.discord.Channel info_channel = 3; + */ + infoChannel?: Channel; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetQualifierInfoChannel + */ +declare const Request_SetQualifierInfoChannel: Request_SetQualifierInfoChannel$Type; +declare class Request_SetQualifierFlags$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetQualifierFlags; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetQualifierFlags): Request_SetQualifierFlags; + internalBinaryWrite(message: Request_SetQualifierFlags, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetQualifierFlags + */ +interface Request_SetQualifierFlags { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent.EventSettings qualifier_flags = 3; + */ + qualifierFlags: QualifierEvent_EventSettings; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetQualifierFlags + */ +declare const Request_SetQualifierFlags: Request_SetQualifierFlags$Type; +declare class Request_SetQualifierLeaderboardSort$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetQualifierLeaderboardSort; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetQualifierLeaderboardSort): Request_SetQualifierLeaderboardSort; + internalBinaryWrite(message: Request_SetQualifierLeaderboardSort, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetQualifierLeaderboardSort + */ +interface Request_SetQualifierLeaderboardSort { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.QualifierEvent.LeaderboardSort qualifier_leaderboard_sort = 3; + */ + qualifierLeaderboardSort: QualifierEvent_LeaderboardSort; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetQualifierLeaderboardSort + */ +declare const Request_SetQualifierLeaderboardSort: Request_SetQualifierLeaderboardSort$Type; +declare class Request_AddQualifierMaps$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddQualifierMaps; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddQualifierMaps): Request_AddQualifierMaps; + internalBinaryWrite(message: Request_AddQualifierMaps, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddQualifierMaps + */ +interface Request_AddQualifierMaps { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: repeated proto.models.Map maps = 3; + */ + maps: Map[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddQualifierMaps + */ +declare const Request_AddQualifierMaps: Request_AddQualifierMaps$Type; +declare class Request_UpdateQualifierMap$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_UpdateQualifierMap; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_UpdateQualifierMap): Request_UpdateQualifierMap; + internalBinaryWrite(message: Request_UpdateQualifierMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.UpdateQualifierMap + */ +interface Request_UpdateQualifierMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.UpdateQualifierMap + */ +declare const Request_UpdateQualifierMap: Request_UpdateQualifierMap$Type; +declare class Request_RemoveQualifierMap$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveQualifierMap; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveQualifierMap): Request_RemoveQualifierMap; + internalBinaryWrite(message: Request_RemoveQualifierMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveQualifierMap + */ +interface Request_RemoveQualifierMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveQualifierMap + */ +declare const Request_RemoveQualifierMap: Request_RemoveQualifierMap$Type; +declare class Request_DeleteQualifierEvent$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_DeleteQualifierEvent; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_DeleteQualifierEvent): Request_DeleteQualifierEvent; + internalBinaryWrite(message: Request_DeleteQualifierEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.DeleteQualifierEvent + */ +interface Request_DeleteQualifierEvent { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string qualifier_id = 2; + */ + qualifierId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.DeleteQualifierEvent + */ +declare const Request_DeleteQualifierEvent: Request_DeleteQualifierEvent$Type; +declare class Request_AddAuthorizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddAuthorizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddAuthorizedUser): Request_AddAuthorizedUser; + internalBinaryWrite(message: Request_AddAuthorizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Tournament -- // + * + * @generated from protobuf message proto.packets.Request.AddAuthorizedUser + */ +interface Request_AddAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string role_ids = 3; + */ + roleIds: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddAuthorizedUser + */ +declare const Request_AddAuthorizedUser: Request_AddAuthorizedUser$Type; +declare class Request_UpdateAuthorizedUserRoles$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_UpdateAuthorizedUserRoles; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_UpdateAuthorizedUserRoles): Request_UpdateAuthorizedUserRoles; + internalBinaryWrite(message: Request_UpdateAuthorizedUserRoles, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.UpdateAuthorizedUserRoles + */ +interface Request_UpdateAuthorizedUserRoles { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; + /** + * @generated from protobuf field: repeated string role_ids = 3; + */ + roleIds: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.UpdateAuthorizedUserRoles + */ +declare const Request_UpdateAuthorizedUserRoles: Request_UpdateAuthorizedUserRoles$Type; +declare class Request_RemoveAuthorizedUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveAuthorizedUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveAuthorizedUser): Request_RemoveAuthorizedUser; + internalBinaryWrite(message: Request_RemoveAuthorizedUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveAuthorizedUser + */ +interface Request_RemoveAuthorizedUser { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveAuthorizedUser + */ +declare const Request_RemoveAuthorizedUser: Request_RemoveAuthorizedUser$Type; +declare class Request_GetAuthorizedUsers$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_GetAuthorizedUsers; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_GetAuthorizedUsers): Request_GetAuthorizedUsers; + internalBinaryWrite(message: Request_GetAuthorizedUsers, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.GetAuthorizedUsers + */ +interface Request_GetAuthorizedUsers { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.GetAuthorizedUsers + */ +declare const Request_GetAuthorizedUsers: Request_GetAuthorizedUsers$Type; +declare class Request_GetDiscordInfo$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_GetDiscordInfo; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_GetDiscordInfo): Request_GetDiscordInfo; + internalBinaryWrite(message: Request_GetDiscordInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.GetDiscordInfo + */ +interface Request_GetDiscordInfo { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string discord_id = 2; + */ + discordId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.GetDiscordInfo + */ +declare const Request_GetDiscordInfo: Request_GetDiscordInfo$Type; +declare class Request_CreateTournament$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_CreateTournament; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_CreateTournament): Request_CreateTournament; + internalBinaryWrite(message: Request_CreateTournament, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.CreateTournament + */ +interface Request_CreateTournament { + /** + * @generated from protobuf field: proto.models.Tournament tournament = 1; + */ + tournament?: Tournament; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.CreateTournament + */ +declare const Request_CreateTournament: Request_CreateTournament$Type; +declare class Request_SetTournamentName$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentName; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentName): Request_SetTournamentName; + internalBinaryWrite(message: Request_SetTournamentName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentName + */ +interface Request_SetTournamentName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string tournament_name = 2; + */ + tournamentName: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentName + */ +declare const Request_SetTournamentName: Request_SetTournamentName$Type; +declare class Request_SetTournamentImage$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentImage; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentImage): Request_SetTournamentImage; + internalBinaryWrite(message: Request_SetTournamentImage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentImage + */ +interface Request_SetTournamentImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string tournament_image = 2; + */ + tournamentImage: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentImage + */ +declare const Request_SetTournamentImage: Request_SetTournamentImage$Type; +declare class Request_SetTournamentEnableTeams$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentEnableTeams; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentEnableTeams): Request_SetTournamentEnableTeams; + internalBinaryWrite(message: Request_SetTournamentEnableTeams, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentEnableTeams + */ +interface Request_SetTournamentEnableTeams { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool enable_teams = 2; + */ + enableTeams: boolean; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentEnableTeams + */ +declare const Request_SetTournamentEnableTeams: Request_SetTournamentEnableTeams$Type; +declare class Request_SetTournamentEnablePools$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentEnablePools; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentEnablePools): Request_SetTournamentEnablePools; + internalBinaryWrite(message: Request_SetTournamentEnablePools, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentEnablePools + */ +interface Request_SetTournamentEnablePools { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool enable_pools = 2; + */ + enablePools: boolean; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentEnablePools + */ +declare const Request_SetTournamentEnablePools: Request_SetTournamentEnablePools$Type; +declare class Request_SetTournamentShowTournamentButton$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentShowTournamentButton; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentShowTournamentButton): Request_SetTournamentShowTournamentButton; + internalBinaryWrite(message: Request_SetTournamentShowTournamentButton, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentShowTournamentButton + */ +interface Request_SetTournamentShowTournamentButton { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool show_tournament_button = 2; + */ + showTournamentButton: boolean; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentShowTournamentButton + */ +declare const Request_SetTournamentShowTournamentButton: Request_SetTournamentShowTournamentButton$Type; +declare class Request_SetTournamentShowQualifierButton$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentShowQualifierButton; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentShowQualifierButton): Request_SetTournamentShowQualifierButton; + internalBinaryWrite(message: Request_SetTournamentShowQualifierButton, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentShowQualifierButton + */ +interface Request_SetTournamentShowQualifierButton { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool show_qualifier_button = 2; + */ + showQualifierButton: boolean; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentShowQualifierButton + */ +declare const Request_SetTournamentShowQualifierButton: Request_SetTournamentShowQualifierButton$Type; +declare class Request_SetTournamentAllowUnauthorizedView$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentAllowUnauthorizedView; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentAllowUnauthorizedView): Request_SetTournamentAllowUnauthorizedView; + internalBinaryWrite(message: Request_SetTournamentAllowUnauthorizedView, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentAllowUnauthorizedView + */ +interface Request_SetTournamentAllowUnauthorizedView { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: bool allow_unauthorized_view = 2; + */ + allowUnauthorizedView: boolean; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentAllowUnauthorizedView + */ +declare const Request_SetTournamentAllowUnauthorizedView: Request_SetTournamentAllowUnauthorizedView$Type; +declare class Request_SetTournamentScoreUpdateFrequency$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentScoreUpdateFrequency; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentScoreUpdateFrequency): Request_SetTournamentScoreUpdateFrequency; + internalBinaryWrite(message: Request_SetTournamentScoreUpdateFrequency, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentScoreUpdateFrequency + */ +interface Request_SetTournamentScoreUpdateFrequency { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: int32 score_update_frequency = 2; + */ + scoreUpdateFrequency: number; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentScoreUpdateFrequency + */ +declare const Request_SetTournamentScoreUpdateFrequency: Request_SetTournamentScoreUpdateFrequency$Type; +declare class Request_SetTournamentBannedMods$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentBannedMods; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentBannedMods): Request_SetTournamentBannedMods; + internalBinaryWrite(message: Request_SetTournamentBannedMods, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentBannedMods + */ +interface Request_SetTournamentBannedMods { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string banned_mods = 2; + */ + bannedMods: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentBannedMods + */ +declare const Request_SetTournamentBannedMods: Request_SetTournamentBannedMods$Type; +declare class Request_AddTournamentTeam$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddTournamentTeam; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddTournamentTeam): Request_AddTournamentTeam; + internalBinaryWrite(message: Request_AddTournamentTeam, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddTournamentTeam + */ +interface Request_AddTournamentTeam { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Tournament.TournamentSettings.Team team = 2; + */ + team?: Tournament_TournamentSettings_Team; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddTournamentTeam + */ +declare const Request_AddTournamentTeam: Request_AddTournamentTeam$Type; +declare class Request_SetTournamentTeamName$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentTeamName; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentTeamName): Request_SetTournamentTeamName; + internalBinaryWrite(message: Request_SetTournamentTeamName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentTeamName + */ +interface Request_SetTournamentTeamName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; + /** + * @generated from protobuf field: string team_name = 3; + */ + teamName: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentTeamName + */ +declare const Request_SetTournamentTeamName: Request_SetTournamentTeamName$Type; +declare class Request_SetTournamentTeamImage$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentTeamImage; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentTeamImage): Request_SetTournamentTeamImage; + internalBinaryWrite(message: Request_SetTournamentTeamImage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentTeamImage + */ +interface Request_SetTournamentTeamImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; + /** + * @generated from protobuf field: string team_image = 3; + */ + teamImage: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentTeamImage + */ +declare const Request_SetTournamentTeamImage: Request_SetTournamentTeamImage$Type; +declare class Request_RemoveTournamentTeam$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveTournamentTeam; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveTournamentTeam): Request_RemoveTournamentTeam; + internalBinaryWrite(message: Request_RemoveTournamentTeam, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentTeam + */ +interface Request_RemoveTournamentTeam { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string team_id = 2; + */ + teamId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveTournamentTeam + */ +declare const Request_RemoveTournamentTeam: Request_RemoveTournamentTeam$Type; +declare class Request_AddTournamentPool$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddTournamentPool; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddTournamentPool): Request_AddTournamentPool; + internalBinaryWrite(message: Request_AddTournamentPool, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddTournamentPool + */ +interface Request_AddTournamentPool { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Tournament.TournamentSettings.Pool pool = 2; + */ + pool?: Tournament_TournamentSettings_Pool; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddTournamentPool + */ +declare const Request_AddTournamentPool: Request_AddTournamentPool$Type; +declare class Request_SetTournamentPoolName$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentPoolName; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentPoolName): Request_SetTournamentPoolName; + internalBinaryWrite(message: Request_SetTournamentPoolName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentPoolName + */ +interface Request_SetTournamentPoolName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string pool_name = 3; + */ + poolName: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentPoolName + */ +declare const Request_SetTournamentPoolName: Request_SetTournamentPoolName$Type; +declare class Request_SetTournamentPoolImage$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentPoolImage; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentPoolImage): Request_SetTournamentPoolImage; + internalBinaryWrite(message: Request_SetTournamentPoolImage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentPoolImage + */ +interface Request_SetTournamentPoolImage { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string pool_image = 3; + */ + poolImage: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentPoolImage + */ +declare const Request_SetTournamentPoolImage: Request_SetTournamentPoolImage$Type; +declare class Request_AddTournamentPoolMaps$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddTournamentPoolMaps; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddTournamentPoolMaps): Request_AddTournamentPoolMaps; + internalBinaryWrite(message: Request_AddTournamentPoolMaps, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddTournamentPoolMaps + */ +interface Request_AddTournamentPoolMaps { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: repeated proto.models.Map maps = 3; + */ + maps: Map[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddTournamentPoolMaps + */ +declare const Request_AddTournamentPoolMaps: Request_AddTournamentPoolMaps$Type; +declare class Request_UpdateTournamentPoolMap$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_UpdateTournamentPoolMap; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_UpdateTournamentPoolMap): Request_UpdateTournamentPoolMap; + internalBinaryWrite(message: Request_UpdateTournamentPoolMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.UpdateTournamentPoolMap + */ +interface Request_UpdateTournamentPoolMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: proto.models.Map map = 3; + */ + map?: Map; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.UpdateTournamentPoolMap + */ +declare const Request_UpdateTournamentPoolMap: Request_UpdateTournamentPoolMap$Type; +declare class Request_RemoveTournamentPoolMap$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveTournamentPoolMap; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveTournamentPoolMap): Request_RemoveTournamentPoolMap; + internalBinaryWrite(message: Request_RemoveTournamentPoolMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentPoolMap + */ +interface Request_RemoveTournamentPoolMap { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveTournamentPoolMap + */ +declare const Request_RemoveTournamentPoolMap: Request_RemoveTournamentPoolMap$Type; +declare class Request_RemoveTournamentPool$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveTournamentPool; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveTournamentPool): Request_RemoveTournamentPool; + internalBinaryWrite(message: Request_RemoveTournamentPool, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentPool + */ +interface Request_RemoveTournamentPool { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string pool_id = 2; + */ + poolId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveTournamentPool + */ +declare const Request_RemoveTournamentPool: Request_RemoveTournamentPool$Type; +declare class Request_AddTournamentRole$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddTournamentRole; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddTournamentRole): Request_AddTournamentRole; + internalBinaryWrite(message: Request_AddTournamentRole, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.AddTournamentRole + */ +interface Request_AddTournamentRole { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.Role role = 2; + */ + role?: Role; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddTournamentRole + */ +declare const Request_AddTournamentRole: Request_AddTournamentRole$Type; +declare class Request_SetTournamentRoleName$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentRoleName; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentRoleName): Request_SetTournamentRoleName; + internalBinaryWrite(message: Request_SetTournamentRoleName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentRoleName + */ +interface Request_SetTournamentRoleName { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; + /** + * @generated from protobuf field: string role_name = 3; + */ + roleName: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentRoleName + */ +declare const Request_SetTournamentRoleName: Request_SetTournamentRoleName$Type; +declare class Request_SetTournamentRolePermissions$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SetTournamentRolePermissions; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SetTournamentRolePermissions): Request_SetTournamentRolePermissions; + internalBinaryWrite(message: Request_SetTournamentRolePermissions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SetTournamentRolePermissions + */ +interface Request_SetTournamentRolePermissions { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; + /** + * @generated from protobuf field: repeated string permissions = 3; + */ + permissions: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SetTournamentRolePermissions + */ +declare const Request_SetTournamentRolePermissions: Request_SetTournamentRolePermissions$Type; +declare class Request_RemoveTournamentRole$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemoveTournamentRole; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemoveTournamentRole): Request_RemoveTournamentRole; + internalBinaryWrite(message: Request_RemoveTournamentRole, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemoveTournamentRole + */ +interface Request_RemoveTournamentRole { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string role_id = 2; + */ + roleId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemoveTournamentRole + */ +declare const Request_RemoveTournamentRole: Request_RemoveTournamentRole$Type; +declare class Request_DeleteTournament$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_DeleteTournament; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_DeleteTournament): Request_DeleteTournament; + internalBinaryWrite(message: Request_DeleteTournament, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.DeleteTournament + */ +interface Request_DeleteTournament { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.DeleteTournament + */ +declare const Request_DeleteTournament: Request_DeleteTournament$Type; +declare class Request_AddServer$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_AddServer; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_AddServer): Request_AddServer; + internalBinaryWrite(message: Request_AddServer, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Server -- // + * + * @generated from protobuf message proto.packets.Request.AddServer + */ +interface Request_AddServer { + /** + * @generated from protobuf field: proto.models.CoreServer server = 1; + */ + server?: CoreServer; + /** + * @generated from protobuf field: string auth_token = 2; + */ + authToken: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.AddServer + */ +declare const Request_AddServer: Request_AddServer$Type; +declare class Request_Connect$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_Connect; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_Connect): Request_Connect; + internalBinaryWrite(message: Request_Connect, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * -- Other Requests -- // + * + * @generated from protobuf message proto.packets.Request.Connect + */ +interface Request_Connect { + /** + * @generated from protobuf field: int32 client_version = 1; + */ + clientVersion: number; + /** + * @generated from protobuf field: int32 ui_version = 2; + */ + uiVersion: number; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.Connect + */ +declare const Request_Connect: Request_Connect$Type; +declare class Request_Join$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_Join; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_Join): Request_Join; + internalBinaryWrite(message: Request_Join, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.Join + */ +interface Request_Join { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string password = 2; + */ + password: string; + /** + * @generated from protobuf field: repeated string mod_list = 3; + */ + modList: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.Join + */ +declare const Request_Join: Request_Join$Type; +declare class Request_QualifierScores$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_QualifierScores; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_QualifierScores): Request_QualifierScores; + internalBinaryWrite(message: Request_QualifierScores, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.QualifierScores + */ +interface Request_QualifierScores { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.QualifierScores + */ +declare const Request_QualifierScores: Request_QualifierScores$Type; +declare class Request_SubmitQualifierScore$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_SubmitQualifierScore; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_SubmitQualifierScore): Request_SubmitQualifierScore; + internalBinaryWrite(message: Request_SubmitQualifierScore, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.SubmitQualifierScore + */ +interface Request_SubmitQualifierScore { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: proto.models.LeaderboardEntry qualifier_score = 2; + */ + qualifierScore?: LeaderboardEntry; + /** + * @generated from protobuf field: proto.models.GameplayParameters map = 3; + */ + map?: GameplayParameters; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.SubmitQualifierScore + */ +declare const Request_SubmitQualifierScore: Request_SubmitQualifierScore$Type; +declare class Request_LoadSong$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_LoadSong; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_LoadSong): Request_LoadSong; + internalBinaryWrite(message: Request_LoadSong, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.LoadSong + */ +interface Request_LoadSong { + /** + * @generated from protobuf field: string level_id = 1; + */ + levelId: string; + /** + * @generated from protobuf field: string custom_host_url = 2; + */ + customHostUrl: string; + /** + * @generated from protobuf field: string tournament_id = 3; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 4; + */ + forwardTo: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.LoadSong + */ +declare const Request_LoadSong: Request_LoadSong$Type; +declare class Request_PreloadImageForStreamSync$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_PreloadImageForStreamSync; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_PreloadImageForStreamSync): Request_PreloadImageForStreamSync; + internalBinaryWrite(message: Request_PreloadImageForStreamSync, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.PreloadImageForStreamSync + */ +interface Request_PreloadImageForStreamSync { + /** + * @generated from protobuf field: string file_id = 1; + */ + fileId: string; + /** + * @generated from protobuf field: bool compressed = 2; + */ + compressed: boolean; + /** + * @generated from protobuf field: bytes data = 3; + */ + data: Uint8Array; + /** + * @generated from protobuf field: string tournament_id = 4; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 5; + */ + forwardTo: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.PreloadImageForStreamSync + */ +declare const Request_PreloadImageForStreamSync: Request_PreloadImageForStreamSync$Type; +declare class Request_ShowPrompt$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_ShowPrompt; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_ShowPrompt): Request_ShowPrompt; + internalBinaryWrite(message: Request_ShowPrompt, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.ShowPrompt + */ +interface Request_ShowPrompt { + /** + * @generated from protobuf field: string prompt_id = 1; + */ + promptId: string; + /** + * @generated from protobuf field: string message_title = 2; + */ + messageTitle: string; + /** + * @generated from protobuf field: string message_text = 3; + */ + messageText: string; + /** + * @generated from protobuf field: int32 timeout = 4; + */ + timeout: number; + /** + * @generated from protobuf field: bool show_timer = 5; + */ + showTimer: boolean; + /** + * @generated from protobuf field: bool can_close = 6; + */ + canClose: boolean; + /** + * @generated from protobuf field: repeated proto.packets.Request.ShowPrompt.PromptOption options = 7; + */ + options: Request_ShowPrompt_PromptOption[]; + /** + * @generated from protobuf field: string tournament_id = 8; + */ + tournamentId: string; + /** + * @generated from protobuf field: repeated string forward_to = 9; + */ + forwardTo: string[]; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.ShowPrompt + */ +declare const Request_ShowPrompt: Request_ShowPrompt$Type; +declare class Request_ShowPrompt_PromptOption$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_ShowPrompt_PromptOption; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_ShowPrompt_PromptOption): Request_ShowPrompt_PromptOption; + internalBinaryWrite(message: Request_ShowPrompt_PromptOption, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.ShowPrompt.PromptOption + */ +interface Request_ShowPrompt_PromptOption { + /** + * @generated from protobuf field: string label = 1; + */ + label: string; + /** + * @generated from protobuf field: string value = 2; + */ + value: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.ShowPrompt.PromptOption + */ +declare const Request_ShowPrompt_PromptOption: Request_ShowPrompt_PromptOption$Type; +declare class Request_RemainingAttempts$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RemainingAttempts; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RemainingAttempts): Request_RemainingAttempts; + internalBinaryWrite(message: Request_RemainingAttempts, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RemainingAttempts + */ +interface Request_RemainingAttempts { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RemainingAttempts + */ +declare const Request_RemainingAttempts: Request_RemainingAttempts$Type; +declare class Request_GetBotTokensForUser$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_GetBotTokensForUser; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_GetBotTokensForUser): Request_GetBotTokensForUser; + internalBinaryWrite(message: Request_GetBotTokensForUser, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.GetBotTokensForUser + */ +interface Request_GetBotTokensForUser { + /** + * @generated from protobuf field: string owner_discord_id = 1; + */ + ownerDiscordId: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.GetBotTokensForUser + */ +declare const Request_GetBotTokensForUser: Request_GetBotTokensForUser$Type; +declare class Request_GenerateBotToken$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_GenerateBotToken; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_GenerateBotToken): Request_GenerateBotToken; + internalBinaryWrite(message: Request_GenerateBotToken, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.GenerateBotToken + */ +interface Request_GenerateBotToken { + /** + * @generated from protobuf field: string username = 1; + */ + username: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.GenerateBotToken + */ +declare const Request_GenerateBotToken: Request_GenerateBotToken$Type; +declare class Request_RevokeBotToken$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RevokeBotToken; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RevokeBotToken): Request_RevokeBotToken; + internalBinaryWrite(message: Request_RevokeBotToken, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RevokeBotToken + */ +interface Request_RevokeBotToken { + /** + * @generated from protobuf field: string bot_token_guid = 1; + */ + botTokenGuid: string; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RevokeBotToken + */ +declare const Request_RevokeBotToken: Request_RevokeBotToken$Type; +declare class Request_RefundAttempts$Type extends MessageType { + constructor(); + create(value?: PartialMessage): Request_RefundAttempts; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request_RefundAttempts): Request_RefundAttempts; + internalBinaryWrite(message: Request_RefundAttempts, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated from protobuf message proto.packets.Request.RefundAttempts + */ +interface Request_RefundAttempts { + /** + * @generated from protobuf field: string tournament_id = 1; + */ + tournamentId: string; + /** + * @generated from protobuf field: string event_id = 2; + */ + eventId: string; + /** + * @generated from protobuf field: string map_id = 3; + */ + mapId: string; + /** + * @generated from protobuf field: string platform_id = 4; + */ + platformId: string; + /** + * @generated from protobuf field: int32 count = 5; + */ + count: number; +} +/** + * @generated MessageType for protobuf message proto.packets.Request.RefundAttempts + */ +declare const Request_RefundAttempts: Request_RefundAttempts$Type; + +/** + * @generated from protobuf enum proto.packets.Push.SongFinished.CompletionType + */ +declare enum Push_SongFinished_CompletionType { + /** + * @generated from protobuf enum value: Passed = 0; + */ + Passed = 0, + /** + * @generated from protobuf enum value: Failed = 1; + */ + Failed = 1, + /** + * @generated from protobuf enum value: Quit = 2; + */ + Quit = 2 +} +``` + +## References +- For `Channel` please find documentation at [Models -> Channel](/documentation#Models/4-Channel). +- For `CoreServer` please find documentation at [Models -> CoreServer](/documentation#Models/4-CoreServer). +- For `GameplayParameters` please find documentation at [Models -> GameplayParameters](/documentation#Models/4-GameplayParameters). +- For `LeaderboardEntry` please find documentation at [Models -> LeaderboardEntry](/documentation#Models/4-LeaderboardEntry). +- For `Map` please find documentation at [Models -> Map](/documentation#Models/4-Map). +- For `Match` please find documentation at [Models -> Match](/documentation#Models/4-Match). +- For `Push` please find documentation at [Models -> Push](/documentation#Models/4-Push). +- For `QualifierEvent` please find documentation at [Models -> QualifierEvent](/documentation#Models/4-QualifierEvent). +- For `QualifierEvent_EventSettings` please find documentation at [Enums -> QualifierEvent_EventSettings](/documentation#Enums/5-QualifierEvent_EventSettings). +- For `QualifierEvent_LeaderboardSort` please find documentation at [Enums -> QualifierEvent_LeaderboardSort](/documentation#Enums/5-QualifierEvent_LeaderboardSort). +- For `Request` please find documentation at [Models -> Request](/documentation#Models/4-Request). +- For `Request_AddAuthorizedUser` please find documentation at [Models -> Request_AddAuthorizedUser](/documentation#Models/4-Request_AddAuthorizedUser). +- For `Request_AddQualifierMaps` please find documentation at [Models -> Request_AddQualifierMaps](/documentation#Models/4-Request_AddQualifierMaps). +- For `Request_AddServer` please find documentation at [Models -> Request_AddServer](/documentation#Models/4-Request_AddServer). +- For `Request_AddTournamentPool` please find documentation at [Models -> Request_AddTournamentPool](/documentation#Models/4-Request_AddTournamentPool). +- For `Request_AddTournamentPoolMaps` please find documentation at [Models -> Request_AddTournamentPoolMaps](/documentation#Models/4-Request_AddTournamentPoolMaps). +- For `Request_AddTournamentRole` please find documentation at [Models -> Request_AddTournamentRole](/documentation#Models/4-Request_AddTournamentRole). +- For `Request_AddTournamentTeam` please find documentation at [Models -> Request_AddTournamentTeam](/documentation#Models/4-Request_AddTournamentTeam). +- For `Request_AddUserToMatch` please find documentation at [Models -> Request_AddUserToMatch](/documentation#Models/4-Request_AddUserToMatch). +- For `Request_Connect` please find documentation at [Models -> Request_Connect](/documentation#Models/4-Request_Connect). +- For `Request_CreateMatch` please find documentation at [Models -> Request_CreateMatch](/documentation#Models/4-Request_CreateMatch). +- For `Request_CreateQualifierEvent` please find documentation at [Models -> Request_CreateQualifierEvent](/documentation#Models/4-Request_CreateQualifierEvent). +- For `Request_CreateTournament` please find documentation at [Models -> Request_CreateTournament](/documentation#Models/4-Request_CreateTournament). +- For `Request_DeleteMatch` please find documentation at [Models -> Request_DeleteMatch](/documentation#Models/4-Request_DeleteMatch). +- For `Request_DeleteQualifierEvent` please find documentation at [Models -> Request_DeleteQualifierEvent](/documentation#Models/4-Request_DeleteQualifierEvent). +- For `Request_DeleteTournament` please find documentation at [Models -> Request_DeleteTournament](/documentation#Models/4-Request_DeleteTournament). +- For `Request_GenerateBotToken` please find documentation at [Models -> Request_GenerateBotToken](/documentation#Models/4-Request_GenerateBotToken). +- For `Request_GetAuthorizedUsers` please find documentation at [Models -> Request_GetAuthorizedUsers](/documentation#Models/4-Request_GetAuthorizedUsers). +- For `Request_GetBotTokensForUser` please find documentation at [Models -> Request_GetBotTokensForUser](/documentation#Models/4-Request_GetBotTokensForUser). +- For `Request_GetDiscordInfo` please find documentation at [Models -> Request_GetDiscordInfo](/documentation#Models/4-Request_GetDiscordInfo). +- For `Request_Join` please find documentation at [Models -> Request_Join](/documentation#Models/4-Request_Join). +- For `Request_LoadSong` please find documentation at [Models -> Request_LoadSong](/documentation#Models/4-Request_LoadSong). +- For `Request_PreloadImageForStreamSync` please find documentation at [Models -> Request_PreloadImageForStreamSync](/documentation#Models/4-Request_PreloadImageForStreamSync). +- For `Request_QualifierScores` please find documentation at [Models -> Request_QualifierScores](/documentation#Models/4-Request_QualifierScores). +- For `Request_RefundAttempts` please find documentation at [Models -> Request_RefundAttempts](/documentation#Models/4-Request_RefundAttempts). +- For `Request_RemainingAttempts` please find documentation at [Models -> Request_RemainingAttempts](/documentation#Models/4-Request_RemainingAttempts). +- For `Request_RemoveAuthorizedUser` please find documentation at [Models -> Request_RemoveAuthorizedUser](/documentation#Models/4-Request_RemoveAuthorizedUser). +- For `Request_RemoveQualifierMap` please find documentation at [Models -> Request_RemoveQualifierMap](/documentation#Models/4-Request_RemoveQualifierMap). +- For `Request_RemoveTournamentPool` please find documentation at [Models -> Request_RemoveTournamentPool](/documentation#Models/4-Request_RemoveTournamentPool). +- For `Request_RemoveTournamentPoolMap` please find documentation at [Models -> Request_RemoveTournamentPoolMap](/documentation#Models/4-Request_RemoveTournamentPoolMap). +- For `Request_RemoveTournamentRole` please find documentation at [Models -> Request_RemoveTournamentRole](/documentation#Models/4-Request_RemoveTournamentRole). +- For `Request_RemoveTournamentTeam` please find documentation at [Models -> Request_RemoveTournamentTeam](/documentation#Models/4-Request_RemoveTournamentTeam). +- For `Request_RemoveUserFromMatch` please find documentation at [Models -> Request_RemoveUserFromMatch](/documentation#Models/4-Request_RemoveUserFromMatch). +- For `Request_RevokeBotToken` please find documentation at [Models -> Request_RevokeBotToken](/documentation#Models/4-Request_RevokeBotToken). +- For `Request_SetMatchLeader` please find documentation at [Models -> Request_SetMatchLeader](/documentation#Models/4-Request_SetMatchLeader). +- For `Request_SetMatchMap` please find documentation at [Models -> Request_SetMatchMap](/documentation#Models/4-Request_SetMatchMap). +- For `Request_SetQualifierFlags` please find documentation at [Models -> Request_SetQualifierFlags](/documentation#Models/4-Request_SetQualifierFlags). +- For `Request_SetQualifierImage` please find documentation at [Models -> Request_SetQualifierImage](/documentation#Models/4-Request_SetQualifierImage). +- For `Request_SetQualifierInfoChannel` please find documentation at [Models -> Request_SetQualifierInfoChannel](/documentation#Models/4-Request_SetQualifierInfoChannel). +- For `Request_SetQualifierLeaderboardSort` please find documentation at [Models -> Request_SetQualifierLeaderboardSort](/documentation#Models/4-Request_SetQualifierLeaderboardSort). +- For `Request_SetQualifierName` please find documentation at [Models -> Request_SetQualifierName](/documentation#Models/4-Request_SetQualifierName). +- For `Request_SetTournamentAllowUnauthorizedView` please find documentation at [Models -> Request_SetTournamentAllowUnauthorizedView](/documentation#Models/4-Request_SetTournamentAllowUnauthorizedView). +- For `Request_SetTournamentBannedMods` please find documentation at [Models -> Request_SetTournamentBannedMods](/documentation#Models/4-Request_SetTournamentBannedMods). +- For `Request_SetTournamentEnablePools` please find documentation at [Models -> Request_SetTournamentEnablePools](/documentation#Models/4-Request_SetTournamentEnablePools). +- For `Request_SetTournamentEnableTeams` please find documentation at [Models -> Request_SetTournamentEnableTeams](/documentation#Models/4-Request_SetTournamentEnableTeams). +- For `Request_SetTournamentImage` please find documentation at [Models -> Request_SetTournamentImage](/documentation#Models/4-Request_SetTournamentImage). +- For `Request_SetTournamentName` please find documentation at [Models -> Request_SetTournamentName](/documentation#Models/4-Request_SetTournamentName). +- For `Request_SetTournamentPoolImage` please find documentation at [Models -> Request_SetTournamentPoolImage](/documentation#Models/4-Request_SetTournamentPoolImage). +- For `Request_SetTournamentPoolName` please find documentation at [Models -> Request_SetTournamentPoolName](/documentation#Models/4-Request_SetTournamentPoolName). +- For `Request_SetTournamentRoleName` please find documentation at [Models -> Request_SetTournamentRoleName](/documentation#Models/4-Request_SetTournamentRoleName). +- For `Request_SetTournamentRolePermissions` please find documentation at [Models -> Request_SetTournamentRolePermissions](/documentation#Models/4-Request_SetTournamentRolePermissions). +- For `Request_SetTournamentScoreUpdateFrequency` please find documentation at [Models -> Request_SetTournamentScoreUpdateFrequency](/documentation#Models/4-Request_SetTournamentScoreUpdateFrequency). +- For `Request_SetTournamentShowQualifierButton` please find documentation at [Models -> Request_SetTournamentShowQualifierButton](/documentation#Models/4-Request_SetTournamentShowQualifierButton). +- For `Request_SetTournamentShowTournamentButton` please find documentation at [Models -> Request_SetTournamentShowTournamentButton](/documentation#Models/4-Request_SetTournamentShowTournamentButton). +- For `Request_SetTournamentTeamImage` please find documentation at [Models -> Request_SetTournamentTeamImage](/documentation#Models/4-Request_SetTournamentTeamImage). +- For `Request_SetTournamentTeamName` please find documentation at [Models -> Request_SetTournamentTeamName](/documentation#Models/4-Request_SetTournamentTeamName). +- For `Request_ShowPrompt` please find documentation at [Models -> Request_ShowPrompt](/documentation#Models/4-Request_ShowPrompt). +- For `Request_ShowPrompt_PromptOption` please find documentation at [Models -> Request_ShowPrompt_PromptOption](/documentation#Models/4-Request_ShowPrompt_PromptOption). +- For `Request_SubmitQualifierScore` please find documentation at [Models -> Request_SubmitQualifierScore](/documentation#Models/4-Request_SubmitQualifierScore). +- For `Request_UpdateAuthorizedUserRoles` please find documentation at [Models -> Request_UpdateAuthorizedUserRoles](/documentation#Models/4-Request_UpdateAuthorizedUserRoles). +- For `Request_UpdateQualifierMap` please find documentation at [Models -> Request_UpdateQualifierMap](/documentation#Models/4-Request_UpdateQualifierMap). +- For `Request_UpdateTournamentPoolMap` please find documentation at [Models -> Request_UpdateTournamentPoolMap](/documentation#Models/4-Request_UpdateTournamentPoolMap). +- For `Request_UpdateUser` please find documentation at [Models -> Request_UpdateUser](/documentation#Models/4-Request_UpdateUser). +- For `Response` please find documentation at [Models -> Response](/documentation#Models/4-Response). +- For `Response_AddAuthorizedUser` please find documentation at [Models -> Response_AddAuthorizedUser](/documentation#Models/4-Response_AddAuthorizedUser). +- For `Response_AddServer` please find documentation at [Models -> Response_AddServer](/documentation#Models/4-Response_AddServer). +- For `Response_Connect` please find documentation at [Models -> Response_Connect](/documentation#Models/4-Response_Connect). +- For `Response_Connect_ConnectFailReason` please find documentation at [Enums -> Response_Connect_ConnectFailReason](/documentation#Enums/5-Response_Connect_ConnectFailReason). +- For `Response_CreateMatch` please find documentation at [Models -> Response_CreateMatch](/documentation#Models/4-Response_CreateMatch). +- For `Response_CreateQualifierEvent` please find documentation at [Models -> Response_CreateQualifierEvent](/documentation#Models/4-Response_CreateQualifierEvent). +- For `Response_CreateTournament` please find documentation at [Models -> Response_CreateTournament](/documentation#Models/4-Response_CreateTournament). +- For `Response_DeleteMatch` please find documentation at [Models -> Response_DeleteMatch](/documentation#Models/4-Response_DeleteMatch). +- For `Response_DeleteQualifierEvent` please find documentation at [Models -> Response_DeleteQualifierEvent](/documentation#Models/4-Response_DeleteQualifierEvent). +- For `Response_DeleteTournament` please find documentation at [Models -> Response_DeleteTournament](/documentation#Models/4-Response_DeleteTournament). +- For `Response_GenerateBotToken` please find documentation at [Models -> Response_GenerateBotToken](/documentation#Models/4-Response_GenerateBotToken). +- For `Response_GetAuthorizedUsers` please find documentation at [Models -> Response_GetAuthorizedUsers](/documentation#Models/4-Response_GetAuthorizedUsers). +- For `Response_GetAuthorizedUsers_AuthroizedUser` please find documentation at [Models -> Response_GetAuthorizedUsers_AuthroizedUser](/documentation#Models/4-Response_GetAuthorizedUsers_AuthroizedUser). +- For `Response_GetBotTokensForUser` please find documentation at [Models -> Response_GetBotTokensForUser](/documentation#Models/4-Response_GetBotTokensForUser). +- For `Response_GetBotTokensForUser_BotUser` please find documentation at [Models -> Response_GetBotTokensForUser_BotUser](/documentation#Models/4-Response_GetBotTokensForUser_BotUser). +- For `Response_GetDiscordInfo` please find documentation at [Models -> Response_GetDiscordInfo](/documentation#Models/4-Response_GetDiscordInfo). +- For `Response_Join` please find documentation at [Models -> Response_Join](/documentation#Models/4-Response_Join). +- For `Response_Join_JoinFailReason` please find documentation at [Enums -> Response_Join_JoinFailReason](/documentation#Enums/5-Response_Join_JoinFailReason). +- For `Response_LeaderboardEntries` please find documentation at [Models -> Response_LeaderboardEntries](/documentation#Models/4-Response_LeaderboardEntries). +- For `Response_LoadSong` please find documentation at [Models -> Response_LoadSong](/documentation#Models/4-Response_LoadSong). +- For `Response_PreloadImageForStreamSync` please find documentation at [Models -> Response_PreloadImageForStreamSync](/documentation#Models/4-Response_PreloadImageForStreamSync). +- For `Response_RefundAttempts` please find documentation at [Models -> Response_RefundAttempts](/documentation#Models/4-Response_RefundAttempts). +- For `Response_RemainingAttempts` please find documentation at [Models -> Response_RemainingAttempts](/documentation#Models/4-Response_RemainingAttempts). +- For `Response_RemoveAuthorizedUser` please find documentation at [Models -> Response_RemoveAuthorizedUser](/documentation#Models/4-Response_RemoveAuthorizedUser). +- For `Response_ResponseType` please find documentation at [Enums -> Response_ResponseType](/documentation#Enums/5-Response_ResponseType). +- For `Response_RevokeBotToken` please find documentation at [Models -> Response_RevokeBotToken](/documentation#Models/4-Response_RevokeBotToken). +- For `Response_ShowPrompt` please find documentation at [Models -> Response_ShowPrompt](/documentation#Models/4-Response_ShowPrompt). +- For `Response_UpdateAuthorizedUser` please find documentation at [Models -> Response_UpdateAuthorizedUser](/documentation#Models/4-Response_UpdateAuthorizedUser). +- For `Response_UpdateMatch` please find documentation at [Models -> Response_UpdateMatch](/documentation#Models/4-Response_UpdateMatch). +- For `Response_UpdateQualifierEvent` please find documentation at [Models -> Response_UpdateQualifierEvent](/documentation#Models/4-Response_UpdateQualifierEvent). +- For `Response_UpdateTournament` please find documentation at [Models -> Response_UpdateTournament](/documentation#Models/4-Response_UpdateTournament). +- For `Response_UpdateUser` please find documentation at [Models -> Response_UpdateUser](/documentation#Models/4-Response_UpdateUser). +- For `Role` please find documentation at [Models -> Role](/documentation#Models/4-Role). +- For `State` please find documentation at [Models -> State](/documentation#Models/4-State). +- For `Tournament` please find documentation at [Models -> Tournament](/documentation#Models/4-Tournament). +- For `Tournament_TournamentSettings_Pool` please find documentation at [Models -> Tournament_TournamentSettings_Pool](/documentation#Models/4-Tournament_TournamentSettings_Pool). +- For `Tournament_TournamentSettings_Team` please find documentation at [Models -> Tournament_TournamentSettings_Team](/documentation#Models/4-Tournament_TournamentSettings_Team). +- For `User` please find documentation at [Models -> User](/documentation#Models/4-User). diff --git a/src/lib/taDocs/5-QualifierEvent_EventSettings.md b/src/lib/taDocs/5-QualifierEvent_EventSettings.md new file mode 100644 index 0000000..ea00821 --- /dev/null +++ b/src/lib/taDocs/5-QualifierEvent_EventSettings.md @@ -0,0 +1,26 @@ +# QualifierEvent_EventSettings + +```ts +declare enum QualifierEvent_EventSettings { + /** + * @generated from protobuf enum value: None = 0; + */ + None = 0, + /** + * @generated from protobuf enum value: HideScoresFromPlayers = 1; + */ + HideScoresFromPlayers = 1, + /** + * @generated from protobuf enum value: DisableScoresaberSubmission = 2; + */ + DisableScoresaberSubmission = 2, + /** + * @generated from protobuf enum value: EnableDiscordScoreFeed = 4; + */ + EnableDiscordScoreFeed = 4, + /** + * @generated from protobuf enum value: EnableDiscordLeaderboard = 8; + */ + EnableDiscordLeaderboard = 8 +} +``` diff --git a/src/lib/taDocs/5-QualifierEvent_LeaderboardSort.md b/src/lib/taDocs/5-QualifierEvent_LeaderboardSort.md new file mode 100644 index 0000000..f6b9e6c --- /dev/null +++ b/src/lib/taDocs/5-QualifierEvent_LeaderboardSort.md @@ -0,0 +1,66 @@ +# QualifierEvent_LeaderboardSort + +```ts +declare enum QualifierEvent_LeaderboardSort { + /** + * @generated from protobuf enum value: ModifiedScore = 0; + */ + ModifiedScore = 0, + /** + * @generated from protobuf enum value: ModifiedScoreAscending = 1; + */ + ModifiedScoreAscending = 1, + /** + * @generated from protobuf enum value: ModifiedScoreTarget = 2; + */ + ModifiedScoreTarget = 2, + /** + * @generated from protobuf enum value: NotesMissed = 3; + */ + NotesMissed = 3, + /** + * @generated from protobuf enum value: NotesMissedAscending = 4; + */ + NotesMissedAscending = 4, + /** + * @generated from protobuf enum value: NotesMissedTarget = 5; + */ + NotesMissedTarget = 5, + /** + * @generated from protobuf enum value: BadCuts = 6; + */ + BadCuts = 6, + /** + * @generated from protobuf enum value: BadCutsAscending = 7; + */ + BadCutsAscending = 7, + /** + * @generated from protobuf enum value: BadCutsTarget = 8; + */ + BadCutsTarget = 8, + /** + * @generated from protobuf enum value: MaxCombo = 9; + */ + MaxCombo = 9, + /** + * @generated from protobuf enum value: MaxComboAscending = 10; + */ + MaxComboAscending = 10, + /** + * @generated from protobuf enum value: MaxComboTarget = 11; + */ + MaxComboTarget = 11, + /** + * @generated from protobuf enum value: GoodCuts = 12; + */ + GoodCuts = 12, + /** + * @generated from protobuf enum value: GoodCutsAscending = 13; + */ + GoodCutsAscending = 13, + /** + * @generated from protobuf enum value: GoodCutsTarget = 14; + */ + GoodCutsTarget = 14 +} +``` diff --git a/src/lib/taDocs/5-Response_Connect_ConnectFailReason.md b/src/lib/taDocs/5-Response_Connect_ConnectFailReason.md new file mode 100644 index 0000000..d3f6967 --- /dev/null +++ b/src/lib/taDocs/5-Response_Connect_ConnectFailReason.md @@ -0,0 +1,10 @@ +# Response_Connect_ConnectFailReason + +```ts +declare enum Response_Connect_ConnectFailReason { + /** + * @generated from protobuf enum value: IncorrectVersion = 0; + */ + IncorrectVersion = 0 +} +``` diff --git a/src/lib/taDocs/5-Response_Join_JoinFailReason.md b/src/lib/taDocs/5-Response_Join_JoinFailReason.md new file mode 100644 index 0000000..09dfa36 --- /dev/null +++ b/src/lib/taDocs/5-Response_Join_JoinFailReason.md @@ -0,0 +1,10 @@ +# Response_Join_JoinFailReason + +```ts +declare enum Response_Join_JoinFailReason { + /** + * @generated from protobuf enum value: IncorrectPassword = 0; + */ + IncorrectPassword = 0 +} +``` diff --git a/src/lib/taDocs/5-Response_ResponseType.md b/src/lib/taDocs/5-Response_ResponseType.md new file mode 100644 index 0000000..cc5c3ee --- /dev/null +++ b/src/lib/taDocs/5-Response_ResponseType.md @@ -0,0 +1,14 @@ +# Response_ResponseType + +```ts +declare enum Response_ResponseType { + /** + * @generated from protobuf enum value: Fail = 0; + */ + Fail = 0, + /** + * @generated from protobuf enum value: Success = 1; + */ + Success = 1 +} +``` diff --git a/src/lib/taDocs/5-User_ClientTypes.md b/src/lib/taDocs/5-User_ClientTypes.md new file mode 100644 index 0000000..08767c8 --- /dev/null +++ b/src/lib/taDocs/5-User_ClientTypes.md @@ -0,0 +1,18 @@ +# User_ClientTypes + +```ts +declare enum User_ClientTypes { + /** + * @generated from protobuf enum value: Player = 0; + */ + Player = 0, + /** + * @generated from protobuf enum value: WebsocketConnection = 1; + */ + WebsocketConnection = 1, + /** + * @generated from protobuf enum value: RESTConnection = 2; + */ + RESTConnection = 2 +} +``` diff --git a/src/lib/taDocs/5-User_DownloadStates.md b/src/lib/taDocs/5-User_DownloadStates.md new file mode 100644 index 0000000..31e2edf --- /dev/null +++ b/src/lib/taDocs/5-User_DownloadStates.md @@ -0,0 +1,22 @@ +# User_DownloadStates + +```ts +declare enum User_DownloadStates { + /** + * @generated from protobuf enum value: None = 0; + */ + None = 0, + /** + * @generated from protobuf enum value: Downloading = 1; + */ + Downloading = 1, + /** + * @generated from protobuf enum value: Downloaded = 2; + */ + Downloaded = 2, + /** + * @generated from protobuf enum value: DownloadError = 3; + */ + DownloadError = 3 +} +``` diff --git a/src/lib/taDocs/5-User_PlayStates.md b/src/lib/taDocs/5-User_PlayStates.md new file mode 100644 index 0000000..4127817 --- /dev/null +++ b/src/lib/taDocs/5-User_PlayStates.md @@ -0,0 +1,18 @@ +# User_PlayStates + +```ts +declare enum User_PlayStates { + /** + * @generated from protobuf enum value: InMenu = 0; + */ + InMenu = 0, + /** + * @generated from protobuf enum value: WaitingForCoordinator = 1; + */ + WaitingForCoordinator = 1, + /** + * @generated from protobuf enum value: InGame = 2; + */ + InGame = 2 +} +``` diff --git a/src/lib/taDocs/5-enums-bitwise.md b/src/lib/taDocs/5-enums-bitwise.md new file mode 100644 index 0000000..0906475 --- /dev/null +++ b/src/lib/taDocs/5-enums-bitwise.md @@ -0,0 +1,171 @@ +# Understanding Bitwise Enums + +Bitwise enums are a special type of enum used in this library where multiple values can be combined together using bitwise operations. Unlike regular enums where you can only have one value at a time, bitwise enums allow you to "stack" multiple flags together. + +## How Bitwise Enums Work + +Each enum value is assigned a power of 2 (1, 2, 4, 8, 16, 32, 64, etc.), which means each value occupies a single bit in a binary number. This allows multiple values to be combined into a single number. + +### Bitwise Operators + +To work with bitwise enums, you use these operators: + +- **OR operator (`|`)**: Combines flags together + ```ts + const combined = Flag1 | Flag2 | Flag4; + ``` + +- **AND operator (`&`)**: Checks if a specific flag is set + ```ts + const hasFlag = (combined & Flag1) !== 0; // true if Flag1 is set + ``` + +- **XOR operator (`^`)**: Toggles a flag on/off + ```ts + const toggled = combined ^ Flag1; + ``` + +## Real Example: GameplayModifiers_GameOptions + +The `GameplayModifiers_GameOptions` enum is a bitwise enum that represents different modifiers that can be applied to a game. + +### The Enum Structure + +```ts +declare enum GameplayModifiers_GameOptions { + None = 0, // No modifiers + NoFail = 1, // 2^0 + NoBombs = 2, // 2^1 + NoArrows = 4, // 2^2 + NoObstacles = 8, // 2^3 + SlowSong = 16, // 2^4 + InstaFail = 32, // 2^5 + FailOnClash = 64, // 2^6 + BatteryEnergy = 128, // 2^7 + FastNotes = 256, // 2^8 + FastSong = 512, // 2^9 + DisappearingArrows = 1024, // 2^10 + GhostNotes = 2048, // 2^11 + // ... and more +} +``` + +### Combining Multiple Modifiers + +You can combine multiple modifiers using the OR operator: + +```ts +// Enable NoFail and SlowSong together +const modifiers = GameplayModifiers_GameOptions.NoFail | GameplayModifiers_GameOptions.SlowSong; +// Result: 1 | 16 = 17 + +// Enable NoFail, NoBombs, and FastSong +const moreMods = GameplayModifiers_GameOptions.NoFail | + GameplayModifiers_GameOptions.NoBombs | + GameplayModifiers_GameOptions.FastSong; +// Result: 1 | 2 | 512 = 515 +``` + +### Checking If a Specific Modifier Is Enabled + +To check if a specific modifier is enabled in your combined value, use the AND operator: + +```ts +const modifiers = 17; // This is NoFail (1) | SlowSong (16) + +// Check if NoFail is enabled +const hasNoFail = (modifiers & GameplayModifiers_GameOptions.NoFail) !== 0; +// (17 & 1) = 1, which is !== 0, so hasNoFail = true + +// Check if NoBombs is enabled +const hasNoBombs = (modifiers & GameplayModifiers_GameOptions.NoBombs) !== 0; +// (17 & 2) = 0, which is === 0, so hasNoBombs = false + +// Check if SlowSong is enabled +const hasSlowSong = (modifiers & GameplayModifiers_GameOptions.SlowSong) !== 0; +// (17 & 16) = 16, which is !== 0, so hasSlowSong = true +``` + +### Practical Pattern: Helper Functions + +It's common to create helper functions to make working with bitwise enums easier: + +```ts +// Check if a modifier is enabled +function hasModifier(modifiers: number, modifier: GameplayModifiers_GameOptions): boolean { + return (modifiers & modifier) !== 0; +} + +// Add a modifier +function addModifier(modifiers: number, modifier: GameplayModifiers_GameOptions): number { + return modifiers | modifier; +} + +// Remove a modifier +function removeModifier(modifiers: number, modifier: GameplayModifiers_GameOptions): number { + return modifiers & ~modifier; +} + +// Toggle a modifier +function toggleModifier(modifiers: number, modifier: GameplayModifiers_GameOptions): number { + return modifiers ^ modifier; +} + +// Usage: +let gameModifiers = GameplayModifiers_GameOptions.None; + +// Add NoFail +gameModifiers = addModifier(gameModifiers, GameplayModifiers_GameOptions.NoFail); + +// Check if NoFail is enabled +if (hasModifier(gameModifiers, GameplayModifiers_GameOptions.NoFail)) { + console.log("NoFail is enabled"); +} + +// Remove NoFail +gameModifiers = removeModifier(gameModifiers, GameplayModifiers_GameOptions.NoFail); + +// Toggle FastSong +gameModifiers = toggleModifier(gameModifiers, GameplayModifiers_GameOptions.FastSong); +``` + +## Common Mistakes to Avoid + +1. **Using `=` instead of `|` to combine flags** + ```ts + // ❌ Wrong - this just overwrites the value + modifiers = NoFail; // loses any other modifiers + + // ✅ Correct - use OR to add a modifier + modifiers = modifiers | NoFail; + ``` + +2. **Using `==` instead of `!== 0` to check flags** + ```ts + // ❌ Wrong - NoFail is 1, not necessarily equal to your combined value + if (modifiers == NoFail) { } + + // ✅ Correct - check if the bit is set + if ((modifiers & NoFail) !== 0) { } + ``` + +3. **Forgetting to check the result of AND operation** + ```ts + // ❌ Wrong - this checks if the result is truthy, but 0 is falsy + if (modifiers & NoFail) { } // Works when NoFail is set, but confusing + + // ✅ Correct - explicitly check against 0 + if ((modifiers & NoFail) !== 0) { } + ``` + +4. **Assuming you can iterate over all enabled flags** + ```ts + // ❌ This won't work as expected + for (const flag of modifiers) { } + + // ✅ If you need to find all enabled flags, check each one: + const enabledFlags = []; + if ((modifiers & NoFail) !== 0) enabledFlags.push(NoFail); + if ((modifiers & NoBombs) !== 0) enabledFlags.push(NoBombs); + // ... etc + ``` \ No newline at end of file diff --git a/src/lib/taDocs/4-modals-Map.md b/src/lib/taDocs/6-listeners-intro similarity index 100% rename from src/lib/taDocs/4-modals-Map.md rename to src/lib/taDocs/6-listeners-intro diff --git a/src/routes/documentation/+page.svelte b/src/routes/documentation/+page.svelte index d3b4acf..9d58555 100644 --- a/src/routes/documentation/+page.svelte +++ b/src/routes/documentation/+page.svelte @@ -125,24 +125,6 @@ { title: "UpdateUser", file: "3-client-updateUser" } ] }, - { - category: "Models", - icon: "view_in_ar", - items: [ - { title: "4-", file: "" }, - { title: "Endpoints", file: "" }, - { title: "Response Types", file: "" } - ] - }, - { - category: "Enums", - icon: "view_in_ar", - items: [ - { title: "5-", file: "" }, - { title: "Endpoints", file: "" }, - { title: "Response Types", file: "" } - ] - }, { category: "Events", icon: "view_in_ar", @@ -152,6 +134,175 @@ { title: "Response Types", file: "" } ] }, + { + category: "Models", + icon: "data_object", + items: [ + { title: "Introduction to the Models", file: "4-models-intro" }, + { title: "Acknowledgement", file: "4-Acknowledgement" }, + { title: "Beatmap", file: "4-Beatmap" }, + { title: "Channel", file: "4-Channel" }, + { title: "Characteristic", file: "4-Characteristic" }, + { title: "Command", file: "4-Command" }, + { title: "Command_ModifyGameplay", file: "4-Command_ModifyGameplay" }, + { title: "Command_PlaySong", file: "4-Command_PlaySong" }, + { title: "Command_ShowColorForStreamSync", file: "4-Command_ShowColorForStreamSync" }, + { title: "CoreServer", file: "4-CoreServer" }, + { title: "Event", file: "4-Event" }, + { title: "Event_MatchCreated", file: "4-Event_MatchCreated" }, + { title: "Event_MatchDeleted", file: "4-Event_MatchDeleted" }, + { title: "Event_MatchUpdated", file: "4-Event_MatchUpdated" }, + { title: "Event_QualifierCreated", file: "4-Event_QualifierCreated" }, + { title: "Event_QualifierDeleted", file: "4-Event_QualifierDeleted" }, + { title: "Event_QualifierUpdated", file: "4-Event_QualifierUpdated" }, + { title: "Event_ServerAdded", file: "4-Event_ServerAdded" }, + { title: "Event_ServerDeleted", file: "4-Event_ServerDeleted" }, + { title: "Event_TournamentCreated", file: "4-Event_TournamentCreated" }, + { title: "Event_TournamentDeleted", file: "4-Event_TournamentDeleted" }, + { title: "Event_TournamentUpdated", file: "4-Event_TournamentUpdated" }, + { title: "Event_UserAdded", file: "4-Event_UserAdded" }, + { title: "Event_UserLeft", file: "4-Event_UserLeft" }, + { title: "Event_UserUpdated", file: "4-Event_UserUpdated" }, + { title: "ForwardingPacket", file: "4-ForwardingPacket" }, + { title: "GameplayModifiers", file: "4-GameplayModifiers" }, + { title: "GameplayParameters", file: "4-GameplayParameters" }, + { title: "Guild", file: "4-Guild" }, + { title: "LeaderboardEntry", file: "4-LeaderboardEntry" }, + { title: "Map", file: "4-Map" }, + { title: "Match", file: "4-Match" }, + { title: "Packet", file: "4-Packet" }, + { title: "PlayerSpecificSettings", file: "4-PlayerSpecificSettings" }, + { title: "Push", file: "4-Push" }, + { title: "Push_QualifierScoreSubmitted", file: "4-Push_QualifierScoreSubmitted" }, + { title: "Push_SongFinished", file: "4-Push_SongFinished" }, + { title: "QualifierEvent", file: "4-QualifierEvent" }, + { title: "RealtimeScore", file: "4-RealtimeScore" }, + { title: "Request", file: "4-Request" }, + { title: "Request_AddAuthorizedUser", file: "4-Request_AddAuthorizedUser" }, + { title: "Request_AddQualifierMaps", file: "4-Request_AddQualifierMaps" }, + { title: "Request_AddServer", file: "4-Request_AddServer" }, + { title: "Request_AddTournamentPool", file: "4-Request_AddTournamentPool" }, + { title: "Request_AddTournamentPoolMaps", file: "4-Request_AddTournamentPoolMaps" }, + { title: "Request_AddTournamentRole", file: "4-Request_AddTournamentRole" }, + { title: "Request_AddTournamentTeam", file: "4-Request_AddTournamentTeam" }, + { title: "Request_AddUserToMatch", file: "4-Request_AddUserToMatch" }, + { title: "Request_Connect", file: "4-Request_Connect" }, + { title: "Request_CreateMatch", file: "4-Request_CreateMatch" }, + { title: "Request_CreateQualifierEvent", file: "4-Request_CreateQualifierEvent" }, + { title: "Request_CreateTournament", file: "4-Request_CreateTournament" }, + { title: "Request_DeleteMatch", file: "4-Request_DeleteMatch" }, + { title: "Request_DeleteQualifierEvent", file: "4-Request_DeleteQualifierEvent" }, + { title: "Request_DeleteTournament", file: "4-Request_DeleteTournament" }, + { title: "Request_GenerateBotToken", file: "4-Request_GenerateBotToken" }, + { title: "Request_GetAuthorizedUsers", file: "4-Request_GetAuthorizedUsers" }, + { title: "Request_GetBotTokensForUser", file: "4-Request_GetBotTokensForUser" }, + { title: "Request_GetDiscordInfo", file: "4-Request_GetDiscordInfo" }, + { title: "Request_Join", file: "4-Request_Join" }, + { title: "Request_LoadSong", file: "4-Request_LoadSong" }, + { title: "Request_PreloadImageForStreamSync", file: "4-Request_PreloadImageForStreamSync" }, + { title: "Request_QualifierScores", file: "4-Request_QualifierScores" }, + { title: "Request_RefundAttempts", file: "4-Request_RefundAttempts" }, + { title: "Request_RemainingAttempts", file: "4-Request_RemainingAttempts" }, + { title: "Request_RemoveAuthorizedUser", file: "4-Request_RemoveAuthorizedUser" }, + { title: "Request_RemoveQualifierMap", file: "4-Request_RemoveQualifierMap" }, + { title: "Request_RemoveTournamentPool", file: "4-Request_RemoveTournamentPool" }, + { title: "Request_RemoveTournamentPoolMap", file: "4-Request_RemoveTournamentPoolMap" }, + { title: "Request_RemoveTournamentRole", file: "4-Request_RemoveTournamentRole" }, + { title: "Request_RemoveTournamentTeam", file: "4-Request_RemoveTournamentTeam" }, + { title: "Request_RemoveUserFromMatch", file: "4-Request_RemoveUserFromMatch" }, + { title: "Request_RevokeBotToken", file: "4-Request_RevokeBotToken" }, + { title: "Request_SetMatchLeader", file: "4-Request_SetMatchLeader" }, + { title: "Request_SetMatchMap", file: "4-Request_SetMatchMap" }, + { title: "Request_SetQualifierFlags", file: "4-Request_SetQualifierFlags" }, + { title: "Request_SetQualifierImage", file: "4-Request_SetQualifierImage" }, + { title: "Request_SetQualifierInfoChannel", file: "4-Request_SetQualifierInfoChannel" }, + { title: "Request_SetQualifierLeaderboardSort", file: "4-Request_SetQualifierLeaderboardSort" }, + { title: "Request_SetQualifierName", file: "4-Request_SetQualifierName" }, + { title: "Request_SetTournamentAllowUnauthorizedView", file: "4-Request_SetTournamentAllowUnauthorizedView" }, + { title: "Request_SetTournamentBannedMods", file: "4-Request_SetTournamentBannedMods" }, + { title: "Request_SetTournamentEnablePools", file: "4-Request_SetTournamentEnablePools" }, + { title: "Request_SetTournamentEnableTeams", file: "4-Request_SetTournamentEnableTeams" }, + { title: "Request_SetTournamentImage", file: "4-Request_SetTournamentImage" }, + { title: "Request_SetTournamentName", file: "4-Request_SetTournamentName" }, + { title: "Request_SetTournamentPoolImage", file: "4-Request_SetTournamentPoolImage" }, + { title: "Request_SetTournamentPoolName", file: "4-Request_SetTournamentPoolName" }, + { title: "Request_SetTournamentRoleName", file: "4-Request_SetTournamentRoleName" }, + { title: "Request_SetTournamentRolePermissions", file: "4-Request_SetTournamentRolePermissions" }, + { title: "Request_SetTournamentScoreUpdateFrequency", file: "4-Request_SetTournamentScoreUpdateFrequency" }, + { title: "Request_SetTournamentShowQualifierButton", file: "4-Request_SetTournamentShowQualifierButton" }, + { title: "Request_SetTournamentShowTournamentButton", file: "4-Request_SetTournamentShowTournamentButton" }, + { title: "Request_SetTournamentTeamImage", file: "4-Request_SetTournamentTeamImage" }, + { title: "Request_SetTournamentTeamName", file: "4-Request_SetTournamentTeamName" }, + { title: "Request_ShowPrompt", file: "4-Request_ShowPrompt" }, + { title: "Request_ShowPrompt_PromptOption", file: "4-Request_ShowPrompt_PromptOption" }, + { title: "Request_SubmitQualifierScore", file: "4-Request_SubmitQualifierScore" }, + { title: "Request_UpdateAuthorizedUserRoles", file: "4-Request_UpdateAuthorizedUserRoles" }, + { title: "Request_UpdateQualifierMap", file: "4-Request_UpdateQualifierMap" }, + { title: "Request_UpdateTournamentPoolMap", file: "4-Request_UpdateTournamentPoolMap" }, + { title: "Request_UpdateUser", file: "4-Request_UpdateUser" }, + { title: "Response", file: "4-Response" }, + { title: "Response_AddAuthorizedUser", file: "4-Response_AddAuthorizedUser" }, + { title: "Response_AddServer", file: "4-Response_AddServer" }, + { title: "Response_Connect", file: "4-Response_Connect" }, + { title: "Response_CreateMatch", file: "4-Response_CreateMatch" }, + { title: "Response_CreateQualifierEvent", file: "4-Response_CreateQualifierEvent" }, + { title: "Response_CreateTournament", file: "4-Response_CreateTournament" }, + { title: "Response_DeleteMatch", file: "4-Response_DeleteMatch" }, + { title: "Response_DeleteQualifierEvent", file: "4-Response_DeleteQualifierEvent" }, + { title: "Response_DeleteTournament", file: "4-Response_DeleteTournament" }, + { title: "Response_GenerateBotToken", file: "4-Response_GenerateBotToken" }, + { title: "Response_GetAuthorizedUsers", file: "4-Response_GetAuthorizedUsers" }, + { title: "Response_GetAuthorizedUsers_AuthroizedUser", file: "4-Response_GetAuthorizedUsers_AuthroizedUser" }, + { title: "Response_GetBotTokensForUser", file: "4-Response_GetBotTokensForUser" }, + { title: "Response_GetBotTokensForUser_BotUser", file: "4-Response_GetBotTokensForUser_BotUser" }, + { title: "Response_GetDiscordInfo", file: "4-Response_GetDiscordInfo" }, + { title: "Response_Join", file: "4-Response_Join" }, + { title: "Response_LeaderboardEntries", file: "4-Response_LeaderboardEntries" }, + { title: "Response_LoadSong", file: "4-Response_LoadSong" }, + { title: "Response_PreloadImageForStreamSync", file: "4-Response_PreloadImageForStreamSync" }, + { title: "Response_RemainingAttempts", file: "4-Response_RemainingAttempts" }, + { title: "Response_RemoveAuthorizedUser", file: "4-Response_RemoveAuthorizedUser" }, + { title: "Response_RevokeBotToken", file: "4-Response_RevokeBotToken" }, + { title: "Response_ShowPrompt", file: "4-Response_ShowPrompt" }, + { title: "Response_UpdateAuthorizedUser", file: "4-Response_UpdateAuthorizedUser" }, + { title: "Response_UpdateMatch", file: "4-Response_UpdateMatch" }, + { title: "Response_UpdateQualifierEvent", file: "4-Response_UpdateQualifierEvent" }, + { title: "Response_UpdateTournament", file: "4-Response_UpdateTournament" }, + { title: "Response_UpdateUser", file: "4-Response_UpdateUser" }, + { title: "Role", file: "4-Role" }, + { title: "ScoreTrackerHand", file: "4-ScoreTrackerHand" }, + { title: "State", file: "4-State" }, + { title: "Tournament", file: "4-Tournament" }, + { title: "Tournament_TournamentSettings", file: "4-Tournament_TournamentSettings" }, + { title: "Tournament_TournamentSettings_Pool", file: "4-Tournament_TournamentSettings_Pool" }, + { title: "Tournament_TournamentSettings_Team", file: "4-Tournament_TournamentSettings_Team" }, + { title: "User", file: "4-User" }, + { title: "User_DiscordInfo", file: "4-User_DiscordInfo" }, + { title: "User_Point", file: "4-User_Point" } + ] + }, + { + category: "Enums", + icon: "category", + items: [ + { title: "Understanding Bitwise Enums", file: "5-enums-bitwise" }, + { title: "Acknowledgement_AcknowledgementType", file: "5-Acknowledgement_AcknowledgementType" }, + { title: "Command_ModifyGameplay_Modifier", file: "5-Command_ModifyGameplay_Modifier" }, + { title: "GameplayModifiers_GameOptions", file: "5-GameplayModifiers_GameOptions" }, + { title: "PlayerSpecificSettings_ArcVisibilityType", file: "5-PlayerSpecificSettings_ArcVisibilityType" }, + { title: "PlayerSpecificSettings_NoteJumpDurationTypeSettings", file: "5-PlayerSpecificSettings_NoteJumpDurationTypeSettings" }, + { title: "PlayerSpecificSettings_PlayerOptions", file: "5-PlayerSpecificSettings_PlayerOptions" }, + { title: "Push_SongFinished_CompletionType", file: "5-Push_SongFinished_CompletionType" }, + { title: "QualifierEvent_EventSettings", file: "5-QualifierEvent_EventSettings" }, + { title: "QualifierEvent_LeaderboardSort", file: "5-QualifierEvent_LeaderboardSort" }, + { title: "Response_Connect_ConnectFailReason", file: "5-Response_Connect_ConnectFailReason" }, + { title: "Response_Join_JoinFailReason", file: "5-Response_Join_JoinFailReason" }, + { title: "Response_ResponseType", file: "5-Response_ResponseType" }, + { title: "User_ClientTypes", file: "5-User_ClientTypes" }, + { title: "User_DownloadStates", file: "5-User_DownloadStates" }, + { title: "User_PlayStates", file: "5-User_PlayStates" } + ] + }, { category: "Best Practices", icon: "view_in_ar", @@ -180,6 +331,31 @@ let isMobileMenuOpen: boolean = false; let error: string | null = null; + // Scroll sidebar to active document + function scrollSidebarToActiveDoc() { + // Use setTimeout to ensure DOM has updated + setTimeout(() => { + const sidebar = document.querySelector('.sidebar'); + const activeLink = document.querySelector('.doc-link.active'); + + if (sidebar && activeLink) { + // Get the position of the active link relative to the sidebar + const activeRect = activeLink.getBoundingClientRect(); + const sidebarRect = sidebar.getBoundingClientRect(); + + // Calculate the scroll position to center the active item + const scrollTop = sidebar.scrollTop; + const targetScroll = scrollTop + (activeRect.top - sidebarRect.top) - (sidebarRect.height / 2) + (activeRect.height / 2); + + // Smooth scroll to the active item + sidebar.scrollTo({ + top: targetScroll, + behavior: 'smooth' + }); + } + }, 50); + } + // Handle hash changes function handleHashChange() { const hash = window.location.hash.slice(1); // Remove the # character @@ -208,6 +384,9 @@ } loadMarkdownContent(); + + // Scroll sidebar to active doc after content loads + scrollSidebarToActiveDoc(); } // Load markdown content @@ -248,6 +427,9 @@ currentDoc = categoryData.items[0].file; window.location.hash = `${encodeURIComponent(category)}/${encodeURIComponent(currentDoc)}`; } + + // Scroll to the active doc after category expands + scrollSidebarToActiveDoc(); } } @@ -257,6 +439,9 @@ currentDoc = doc; window.location.hash = `${encodeURIComponent(category)}/${encodeURIComponent(doc)}`; + // Scroll sidebar to active doc + scrollSidebarToActiveDoc(); + // On mobile, close the sidebar after selection if (window.innerWidth < 768) { isMobileMenuOpen = false; @@ -291,13 +476,71 @@ } // Make sure the parent pre has the language class too - const pre = block.parentElement; + const pre = block.parentElement as HTMLElement; if (pre && !pre.classList.contains(`language-${language}`)) { pre.classList.add(`language-${language}`); } - + + // Wrap the pre in a non-scrolling container so the copy button does not move with horizontal scroll + let wrapper: HTMLElement | null = pre.parentElement as HTMLElement; + const needsWrapper = !wrapper || !wrapper.classList.contains('code-block-wrapper'); + if (needsWrapper) { + wrapper = document.createElement('div'); + wrapper.className = 'code-block-wrapper'; + pre.parentElement?.insertBefore(wrapper, pre); + wrapper.appendChild(pre); + } + // Highlight the code block (window as any).Prism.highlightElement(block); + + // Add language label if missing + if (wrapper && !wrapper.querySelector('.code-lang-label')) { + const langLabel = document.createElement('span'); + const labelMap: Record = { + typescript: 'TS', + ts: 'TS', + javascript: 'JS', + js: 'JS', + json: 'JSON', + css: 'CSS', + bash: 'BASH', + shell: 'BASH', + markdown: 'MD', + md: 'MD', + html: 'HTML' + }; + langLabel.className = 'code-lang-label'; + langLabel.textContent = labelMap[language.toLowerCase?.() ?? language] ?? language.toUpperCase(); + wrapper.appendChild(langLabel); + } + + // Add copy button if it doesn't already exist on the wrapper + if (wrapper && !wrapper.querySelector('.copy-button')) { + const copyButton = document.createElement('button'); + copyButton.type = 'button'; + copyButton.className = 'copy-button'; + copyButton.setAttribute('aria-label', 'Copy code'); + copyButton.innerHTML = ''; + pre.classList.add('has-copy-button'); + + // Copy functionality + copyButton.addEventListener('click', async () => { + const codeText = block.textContent || ''; + try { + await navigator.clipboard.writeText(codeText); + // Show feedback + copyButton.innerHTML = ''; + setTimeout(() => { + copyButton.innerHTML = ''; + }, 2000); + } catch (err) { + console.error('Failed to copy code:', err); + } + }); + + wrapper.appendChild(copyButton); + } }); } } @@ -974,15 +1217,72 @@ } /* PrismJS VSCode-like Dark Theme */ + .markdown-container :global(.code-block-wrapper) { + position: relative; + } + .markdown-container :global(pre) { background-color: #1e1e1e; - padding: 1rem; + padding-top: 1.65rem; /* room for label and copy */ + padding-bottom: 1rem; + padding-left: 1rem; + padding-right: 1rem; border-radius: 0.5rem; overflow-x: auto; margin-bottom: 1.5rem; border: 1px solid var(--border-color); } + .markdown-container :global(pre.has-copy-button) { + padding-right: 3.25rem; /* Reserve space so content scroll does not push under the button */ + } + + .markdown-container :global(.copy-button) { + position: absolute; + top: 0.2rem; + right: 0.4rem; + background-color: transparent; + border: 0; + border-radius: 0.375rem; + color: white; + cursor: pointer; + padding: 0.35rem 0.45rem; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + z-index: 2; + pointer-events: auto; + } + + .markdown-container :global(.copy-button:hover) { + background-color: var(--accent-color); + } + + .markdown-container :global(.copy-button:active) { + transform: translateY(0); + } + + .markdown-container :global(.copy-button .pi) { + font-size: 1rem; + display: block; + line-height: 1; + } + + .markdown-container :global(.code-lang-label) { + position: absolute; + top: 0.25rem; + left: 0.5rem; + font-size: 0.7rem; + letter-spacing: 0.04em; + text-transform: uppercase; + color: #a0a0a0; + background: transparent; + padding: 0.15rem 0.35rem; + pointer-events: none; + user-select: none; + } + .markdown-container :global(code[class*="language-"]), .markdown-container :global(pre[class*="language-"]) { color: #d4d4d4; diff --git a/src/routes/test/+page.svelte b/src/routes/test/+page.svelte index 0fefd63..1885119 100644 --- a/src/routes/test/+page.svelte +++ b/src/routes/test/+page.svelte @@ -14,6 +14,7 @@ try { if(!client.isConnected) { const connectResult = await client.connect($TAServerUrl, $TAServerPort); + console.log(connectResult) if (connectResult.details.oneofKind === "connect" && connectResult.type === Response_ResponseType.Fail) { console.error("Failed to connect to TA Core Server", connectResult) @@ -28,15 +29,10 @@ const tournaments = client.stateManager.getTournaments(); console.log("All Tournaments?:", tournaments) - const oneTournament = client.stateManager.getTournament(tournaments[0].guid); + // ShyyTAUI + const oneTournament = client.stateManager.getTournament('1e5319ca-188c-48ae-bff5-7809d6b9cc46'); console.log("One Tournament: ", oneTournament); // const addqual = await client.addQualifierMaps(tournaments[0].guid, "0f7b58c9-6506-4b3e-9c91-864df109d766", []); - - // console.log("addqual ", addqual) - - // const addAttempts = client.refundAttempts('fdf9ccd2-74d7-4e12-b890-e7b30d285a66', 'b715a4bf-9461-4613-9086-9de55baf40c3', 'a2e7d397-8839-48dd-bd9a-3d6fa96bc22f', '76561198329760372', 1); - // console.log('refund', addAttempts) - // await client.addTournamentPool() }); \ No newline at end of file diff --git a/src/routes/tournaments/+page.svelte b/src/routes/tournaments/+page.svelte index 9b7079e..b382ec9 100644 --- a/src/routes/tournaments/+page.svelte +++ b/src/routes/tournaments/+page.svelte @@ -230,7 +230,7 @@ ); console.log("Tournament created:", response); - const responseTournament = (response.details as any).tournament; + const responseTournament = (response.details as any).createTournament.tournament; tournaments = [ ...tournaments, diff --git a/src/routes/tournaments/[tournamentguid]/teams/+page.svelte b/src/routes/tournaments/[tournamentguid]/teams/+page.svelte index 13a62ff..19ab13a 100644 --- a/src/routes/tournaments/[tournamentguid]/teams/+page.svelte +++ b/src/routes/tournaments/[tournamentguid]/teams/+page.svelte @@ -121,6 +121,7 @@ console.log(newTeam); let createTeamResponse = await client.addTournamentTeam(tournamentGuid, newTeam.name, newTeam.image); + console.log(createTeamResponse) if(createTeamResponse.type !== Response_ResponseType.Success) { error = "Failed to create the new team! Please refresh this page!"; } else {