moons-ta-client 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/client.d.ts +22 -0
  2. package/dist/client.js +77 -0
  3. package/dist/constants.d.ts +4 -0
  4. package/{src/constants.ts → dist/constants.js} +1 -1
  5. package/dist/custom-event-emitter.d.ts +7 -0
  6. package/dist/custom-event-emitter.js +16 -0
  7. package/dist/index.d.ts +4592 -0
  8. package/dist/index.esm.js +16502 -0
  9. package/{src/index.ts → dist/index.js} +1 -1
  10. package/dist/models/commands.d.ts +116 -0
  11. package/{src/models/commands.ts → dist/models/commands.js} +17 -102
  12. package/dist/models/discord.d.ts +76 -0
  13. package/{src/models/discord.ts → dist/models/discord.js} +15 -62
  14. package/dist/models/events.d.ts +419 -0
  15. package/{src/models/events.ts → dist/models/events.js} +89 -354
  16. package/dist/models/index.js +8 -0
  17. package/dist/models/models.d.ts +1137 -0
  18. package/{src/models/models.ts → dist/models/models.js} +200 -799
  19. package/dist/models/packets.d.ts +144 -0
  20. package/{src/models/packets.ts → dist/models/packets.js} +26 -126
  21. package/dist/models/pushes.d.ts +122 -0
  22. package/{src/models/pushes.ts → dist/models/pushes.js} +24 -96
  23. package/dist/models/requests.d.ts +1694 -0
  24. package/{src/models/requests.ts → dist/models/requests.js} +323 -1469
  25. package/dist/models/responses.d.ts +799 -0
  26. package/{src/models/responses.ts → dist/models/responses.js} +161 -669
  27. package/dist/scraper.d.ts +2 -0
  28. package/dist/scraper.js +87 -0
  29. package/dist/state-manager.d.ts +50 -0
  30. package/dist/state-manager.js +196 -0
  31. package/dist/tournament-assistant-client.d.ts +114 -0
  32. package/dist/tournament-assistant-client.js +1170 -0
  33. package/package.json +8 -2
  34. package/rollup.config.mjs +0 -16
  35. package/scripts/esbuild.mjs +0 -24
  36. package/scripts/fixImports.mjs +0 -44
  37. package/src/client.ts +0 -101
  38. package/src/custom-event-emitter.ts +0 -21
  39. package/src/scraper.ts +0 -137
  40. package/src/state-manager.ts +0 -308
  41. package/src/tournament-assistant-client.ts +0 -1553
  42. package/tsconfig.json +0 -27
  43. /package/{src/models/index.ts → dist/models/index.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ import { Tournament } from "./models/models.js";
2
+ export declare function getTournaments(token: string, onProgress: (totalServers: number, succeededServers: number, failedServers: number) => void, onComplete: (tournaments: Tournament[]) => void): void;
@@ -0,0 +1,87 @@
1
+ import { CustomEventEmitter } from "./custom-event-emitter.js";
2
+ import { TAClient } from "./tournament-assistant-client.js";
3
+ const MASTER_ADDRESS = "server.tournamentassistant.net";
4
+ const MASTER_PORT = "8676";
5
+ export function getTournaments(token, onProgress, onComplete) {
6
+ const scraper = new Scraper(token);
7
+ scraper.on("onProgress", (progress) => {
8
+ onProgress(progress.totalServers, progress.succeededServers, progress.failedServers);
9
+ if (progress.failedServers + progress.succeededServers ===
10
+ progress.totalServers) {
11
+ onComplete(progress.tournaments);
12
+ }
13
+ });
14
+ scraper.getTournaments();
15
+ }
16
+ class Scraper extends CustomEventEmitter {
17
+ servers = [];
18
+ tournaments = [];
19
+ token;
20
+ succeededServers = 0;
21
+ failedServers = 0;
22
+ constructor(token) {
23
+ super();
24
+ this.token = token;
25
+ }
26
+ getTournaments() {
27
+ const masterClient = new TAClient();
28
+ masterClient.setAuthToken(this.token);
29
+ masterClient.on("connectedToServer", async (response) => {
30
+ this.servers = response.state.knownServers;
31
+ this.tournaments = response.state.tournaments;
32
+ masterClient.disconnect();
33
+ //We successfully got tournaments from the master server
34
+ this.succeededServers++;
35
+ this.emit("onProgress", {
36
+ totalServers: this.servers.length,
37
+ succeededServers: this.succeededServers,
38
+ failedServers: this.failedServers,
39
+ tournaments: this.tournaments,
40
+ });
41
+ //Just running this map kicks off all the Promises, so no need to await them.
42
+ //This is probably a sin. If anyone knows the proper way to do this, hit me up on discord
43
+ this.servers
44
+ .filter((x) => `${x.address}:${x.websocketPort}` !==
45
+ `${MASTER_ADDRESS}:${MASTER_PORT}`)
46
+ .map((x) => this.getTournamentsFromServer(x.address, `${x.websocketPort}`));
47
+ });
48
+ masterClient.on("failedToConnectToServer", () => {
49
+ //We failed to get tournaments from the master server
50
+ this.failedServers++;
51
+ this.emit("onProgress", {
52
+ totalServers: this.servers.length,
53
+ succeededServers: this.succeededServers,
54
+ failedServers: this.failedServers,
55
+ tournaments: this.tournaments,
56
+ });
57
+ });
58
+ masterClient.connect(MASTER_ADDRESS, MASTER_PORT);
59
+ }
60
+ async getTournamentsFromServer(address, port) {
61
+ const client = new TAClient();
62
+ client.setAuthToken(this.token);
63
+ client.on("connectedToServer", (response) => {
64
+ this.tournaments = [...this.tournaments, ...response.state.tournaments];
65
+ client.disconnect();
66
+ //We successfully got tournaments from the server
67
+ this.succeededServers++;
68
+ this.emit("onProgress", {
69
+ totalServers: this.servers.length,
70
+ succeededServers: this.succeededServers,
71
+ failedServers: this.failedServers,
72
+ tournaments: this.tournaments,
73
+ });
74
+ });
75
+ client.on("failedToConnectToServer", () => {
76
+ //We failed to get tournaments from the server
77
+ this.failedServers++;
78
+ this.emit("onProgress", {
79
+ totalServers: this.servers.length,
80
+ succeededServers: this.succeededServers,
81
+ failedServers: this.failedServers,
82
+ tournaments: this.tournaments,
83
+ });
84
+ });
85
+ client.connect(address, port);
86
+ }
87
+ }
@@ -0,0 +1,50 @@
1
+ import { CustomEventEmitter } from "./custom-event-emitter.js";
2
+ import { User, Tournament, Match, QualifierEvent, CoreServer } from "./models/models.js";
3
+ import { Packet } from "./models/packets.js";
4
+ type StateManagerEvents = {
5
+ userConnected: [User, Tournament];
6
+ userUpdated: [User, Tournament];
7
+ userDisconnected: [User, Tournament];
8
+ matchCreated: [Match, Tournament];
9
+ matchUpdated: [Match, Tournament];
10
+ matchDeleted: [Match, Tournament];
11
+ qualifierCreated: [QualifierEvent, Tournament];
12
+ qualifierUpdated: [QualifierEvent, Tournament];
13
+ qualifierDeleted: [QualifierEvent, Tournament];
14
+ tournamentCreated: Tournament;
15
+ tournamentUpdated: Tournament;
16
+ tournamentDeleted: Tournament;
17
+ serverAdded: CoreServer;
18
+ serverDeleted: CoreServer;
19
+ };
20
+ export declare class StateManager extends CustomEventEmitter<StateManagerEvents> {
21
+ private state;
22
+ private self;
23
+ constructor();
24
+ handlePacket(packet: Packet): void;
25
+ getSelfGuid(): string;
26
+ getTournaments(): Tournament[];
27
+ getTournament(id: string): Tournament | undefined;
28
+ getUsers(tournamentId: string): User[] | undefined;
29
+ getUser(tournamentId: string, userId: string): User | undefined;
30
+ getMatches(tournamentId: string): Match[] | undefined;
31
+ getMatch(tournamentId: string, matchId: string): Match | undefined;
32
+ getQualifiers(tournamentId: string): QualifierEvent[] | undefined;
33
+ getQualifier(tournamentId: string, qualifierId: string): QualifierEvent | undefined;
34
+ getKnownServers(): CoreServer[];
35
+ private userConnected;
36
+ private userUpdated;
37
+ private userDisconnected;
38
+ private matchCreated;
39
+ private matchUpdated;
40
+ private matchDeleted;
41
+ private qualifierEventCreated;
42
+ private qualifierEventUpdated;
43
+ private qualifierEventDeleted;
44
+ private tournamentCreated;
45
+ private tournamentUpdated;
46
+ private tournamentDeleted;
47
+ private serverAdded;
48
+ private serverDeleted;
49
+ }
50
+ export {};
@@ -0,0 +1,196 @@
1
+ import { CustomEventEmitter } from "./custom-event-emitter.js";
2
+ import { v4 as uuidv4 } from "uuid";
3
+ import { Response_ResponseType } from "./models/responses.js";
4
+ export class StateManager extends CustomEventEmitter {
5
+ state;
6
+ self;
7
+ constructor() {
8
+ super();
9
+ this.self = uuidv4();
10
+ this.state = {
11
+ tournaments: [],
12
+ knownServers: [],
13
+ };
14
+ }
15
+ // --- Packet handler --- //
16
+ handlePacket(packet) {
17
+ if (packet.packet.oneofKind === "event") {
18
+ const event = packet.packet.event;
19
+ switch (event.changedObject.oneofKind) {
20
+ case "userAdded": {
21
+ this.userConnected(event.changedObject.userAdded.tournamentId, event.changedObject.userAdded.user);
22
+ break;
23
+ }
24
+ case "userUpdated": {
25
+ this.userUpdated(event.changedObject.userUpdated.tournamentId, event.changedObject.userUpdated.user);
26
+ break;
27
+ }
28
+ case "userLeft": {
29
+ this.userDisconnected(event.changedObject.userLeft.tournamentId, event.changedObject.userLeft.user);
30
+ break;
31
+ }
32
+ case "matchCreated": {
33
+ this.matchCreated(event.changedObject.matchCreated.tournamentId, event.changedObject.matchCreated.match);
34
+ break;
35
+ }
36
+ case "matchUpdated": {
37
+ this.matchUpdated(event.changedObject.matchUpdated.tournamentId, event.changedObject.matchUpdated.match);
38
+ break;
39
+ }
40
+ case "matchDeleted": {
41
+ this.matchDeleted(event.changedObject.matchDeleted.tournamentId, event.changedObject.matchDeleted.match);
42
+ break;
43
+ }
44
+ case "qualifierCreated": {
45
+ this.qualifierEventCreated(event.changedObject.qualifierCreated.tournamentId, event.changedObject.qualifierCreated.event);
46
+ break;
47
+ }
48
+ case "qualifierUpdated": {
49
+ this.qualifierEventUpdated(event.changedObject.qualifierUpdated.tournamentId, event.changedObject.qualifierUpdated.event);
50
+ break;
51
+ }
52
+ case "qualifierDeleted": {
53
+ this.qualifierEventDeleted(event.changedObject.qualifierDeleted.tournamentId, event.changedObject.qualifierDeleted.event);
54
+ break;
55
+ }
56
+ case "tournamentCreated": {
57
+ this.tournamentCreated(event.changedObject.tournamentCreated.tournament);
58
+ break;
59
+ }
60
+ case "tournamentUpdated": {
61
+ this.tournamentUpdated(event.changedObject.tournamentUpdated.tournament);
62
+ break;
63
+ }
64
+ case "tournamentDeleted": {
65
+ this.tournamentDeleted(event.changedObject.tournamentDeleted.tournament);
66
+ break;
67
+ }
68
+ case "serverAdded": {
69
+ this.serverAdded(event.changedObject.serverAdded.server);
70
+ break;
71
+ }
72
+ case "serverDeleted": {
73
+ this.serverDeleted(event.changedObject.serverDeleted.server);
74
+ break;
75
+ }
76
+ }
77
+ }
78
+ else if (packet.packet.oneofKind === "response") {
79
+ const response = packet.packet.response;
80
+ if (response.details.oneofKind === "connect") {
81
+ const connect = response.details.connect;
82
+ if (response.type === Response_ResponseType.Success) {
83
+ this.state = connect.state;
84
+ }
85
+ }
86
+ else if (response.details.oneofKind === "join") {
87
+ const join = response.details.join;
88
+ if (response.type === Response_ResponseType.Success) {
89
+ this.state = join.state;
90
+ this.self = join.selfGuid;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ // --- Helpers --- //
96
+ getSelfGuid() {
97
+ return this.self;
98
+ }
99
+ getTournaments() {
100
+ return this.state.tournaments;
101
+ }
102
+ getTournament(id) {
103
+ return this.state.tournaments.find((x) => x.guid === id);
104
+ }
105
+ getUsers(tournamentId) {
106
+ return this.getTournament(tournamentId)?.users;
107
+ }
108
+ getUser(tournamentId, userId) {
109
+ return this.getUsers(tournamentId)?.find((x) => x.guid === userId);
110
+ }
111
+ getMatches(tournamentId) {
112
+ return this.getTournament(tournamentId)?.matches;
113
+ }
114
+ getMatch(tournamentId, matchId) {
115
+ return this.getMatches(tournamentId)?.find((x) => x.guid === matchId);
116
+ }
117
+ getQualifiers(tournamentId) {
118
+ return this.getTournament(tournamentId)?.qualifiers;
119
+ }
120
+ getQualifier(tournamentId, qualifierId) {
121
+ return this.getQualifiers(tournamentId)?.find((x) => x.guid === qualifierId);
122
+ }
123
+ getKnownServers() {
124
+ return this.state.knownServers;
125
+ }
126
+ // --- Event handlers --- //
127
+ userConnected = (tournamentId, user) => {
128
+ const tournament = this.getTournament(tournamentId);
129
+ tournament.users = [...tournament.users, user];
130
+ this.emit("userConnected", [user, tournament]);
131
+ };
132
+ userUpdated = (tournamentId, user) => {
133
+ const tournament = this.getTournament(tournamentId);
134
+ const index = tournament.users.findIndex((x) => x.guid === user.guid);
135
+ tournament.users[index] = user;
136
+ this.emit("userUpdated", [user, tournament]);
137
+ };
138
+ userDisconnected = (tournamentId, user) => {
139
+ const tournament = this.getTournament(tournamentId);
140
+ tournament.users = tournament.users.filter((x) => x.guid !== user.guid);
141
+ this.emit("userDisconnected", [user, tournament]);
142
+ };
143
+ matchCreated = (tournamentId, match) => {
144
+ const tournament = this.getTournament(tournamentId);
145
+ tournament.matches = [...tournament.matches, match];
146
+ this.emit("matchCreated", [match, tournament]);
147
+ };
148
+ matchUpdated = (tournamentId, match) => {
149
+ const tournament = this.getTournament(tournamentId);
150
+ const index = tournament.matches.findIndex((x) => x.guid === match.guid);
151
+ tournament.matches[index] = match;
152
+ this.emit("matchUpdated", [match, tournament]);
153
+ };
154
+ matchDeleted = (tournamentId, match) => {
155
+ const tournament = this.getTournament(tournamentId);
156
+ tournament.matches = tournament.matches.filter((x) => x.guid !== match.guid);
157
+ this.emit("matchDeleted", [match, tournament]);
158
+ };
159
+ qualifierEventCreated = (tournamentId, event) => {
160
+ const tournament = this.getTournament(tournamentId);
161
+ tournament.qualifiers = [...tournament.qualifiers, event];
162
+ this.emit("qualifierCreated", [event, tournament]);
163
+ };
164
+ qualifierEventUpdated = (tournamentId, event) => {
165
+ const tournament = this.getTournament(tournamentId);
166
+ const index = tournament.qualifiers.findIndex((x) => x.guid === event.guid);
167
+ tournament.qualifiers[index] = event;
168
+ this.emit("qualifierUpdated", [event, tournament]);
169
+ };
170
+ qualifierEventDeleted = (tournamentId, event) => {
171
+ const tournament = this.getTournament(tournamentId);
172
+ tournament.qualifiers = tournament.qualifiers.filter((x) => x.guid !== event.guid);
173
+ this.emit("qualifierDeleted", [event, tournament]);
174
+ };
175
+ tournamentCreated = (tournament) => {
176
+ this.state.tournaments = [...this.state.tournaments, tournament];
177
+ this.emit("tournamentCreated", tournament);
178
+ };
179
+ tournamentUpdated = (tournament) => {
180
+ const index = this.state.tournaments.findIndex((x) => x.guid === tournament.guid);
181
+ this.state.tournaments[index] = tournament;
182
+ this.emit("tournamentUpdated", tournament);
183
+ };
184
+ tournamentDeleted = (tournament) => {
185
+ this.state.tournaments = this.state.tournaments.filter((x) => x.guid !== tournament.guid);
186
+ this.emit("tournamentDeleted", tournament);
187
+ };
188
+ serverAdded = (server) => {
189
+ this.state.knownServers = [...this.state.knownServers, server];
190
+ this.emit("serverAdded", server);
191
+ };
192
+ serverDeleted = (server) => {
193
+ this.state.knownServers = this.state.knownServers.filter((x) => `${server.address}:${server.port}` !== `${x.address}:${x.port}`);
194
+ this.emit("serverDeleted", server);
195
+ };
196
+ }
@@ -0,0 +1,114 @@
1
+ import { CustomEventEmitter } from "./custom-event-emitter.js";
2
+ import { User, Match, QualifierEvent, CoreServer, Tournament, GameplayParameters, Map, QualifierEvent_EventSettings, QualifierEvent_LeaderboardSort, Tournament_TournamentSettings_Team, Tournament_TournamentSettings_Pool, Permissions, RealtimeScore } from "./models/models.js";
3
+ import { StateManager } from "./state-manager.js";
4
+ import { Response, Response_Connect } from "./models/responses.js";
5
+ import { Request_LoadSong } from "./models/requests.js";
6
+ import { Channel, Push_SongFinished } from "./models/index.js";
7
+ export * from "./scraper.js";
8
+ export * from "./models/models.js";
9
+ export type ResponseFromUser = {
10
+ userId: string;
11
+ response: Response;
12
+ };
13
+ type TAClientEvents = {
14
+ connectedToServer: Response_Connect;
15
+ connectingToServer: {};
16
+ failedToConnectToServer: {};
17
+ disconnectedFromServer: {};
18
+ authorizationRequestedFromServer: string;
19
+ authorizedWithServer: string;
20
+ failedToAuthorizeWithServer: {};
21
+ loadSongRequested: [string, string, Request_LoadSong];
22
+ songFinished: Push_SongFinished;
23
+ realtimeScore: RealtimeScore;
24
+ responseReceived: ResponseFromUser;
25
+ joinedTournament: {};
26
+ failedToJoinTournament: {};
27
+ createdTournament: {};
28
+ updatedTournament: {};
29
+ deletedTournament: {};
30
+ failedToCreateTournament: {};
31
+ failedToUpdateTournament: {};
32
+ failedToDeleteTournament: {};
33
+ createdMatch: {};
34
+ updatedMatch: {};
35
+ deletedMatch: {};
36
+ failedToCreateMatch: {};
37
+ failedToUpdateMatch: {};
38
+ failedToDeleteMatch: {};
39
+ createdQualifier: {};
40
+ updatedQualifier: {};
41
+ deletedQualifier: {};
42
+ failedToCreateQualifier: {};
43
+ failedToUpdateQualifier: {};
44
+ failedToDeleteQualifier: {};
45
+ };
46
+ export declare class TAClient extends CustomEventEmitter<TAClientEvents> {
47
+ stateManager: StateManager;
48
+ private client?;
49
+ private token;
50
+ private shouldHeartbeat;
51
+ private heartbeatInterval;
52
+ constructor();
53
+ get isConnected(): boolean;
54
+ get isConnecting(): boolean;
55
+ connect(serverAddress: string, port: string): Promise<Response>;
56
+ disconnect(): void;
57
+ setAuthToken(token: string): void;
58
+ private forwardToUsers;
59
+ private sendCommand;
60
+ private sendRequest;
61
+ sendResponse(response: Response, to?: string[]): Promise<void>;
62
+ playSong: (gameplayParameters: GameplayParameters, userIds: string[]) => void;
63
+ returnToMenu: (userIds: string[]) => void;
64
+ showLoadedImage: (userIds: string[]) => void;
65
+ delayTestFinished: (userIds: string[]) => void;
66
+ joinTournament: (tournamentId: string) => Promise<Response>;
67
+ getLeaderboard: (tournamentId: string, qualifierId: string, mapId: string) => Promise<Response>;
68
+ loadSong: (levelId: string, userIds: string[]) => Promise<ResponseFromUser[]>;
69
+ loadImage: (bitmap: Uint8Array, userIds: string[]) => Promise<ResponseFromUser[]>;
70
+ private handlePacket;
71
+ updateUser: (tournamentId: string, user: User) => Promise<Response>;
72
+ createMatch: (tournamentId: string, match: Match) => Promise<Response>;
73
+ addUserToMatch: (tournamentId: string, matchId: string, userId: string) => Promise<Response>;
74
+ removeUserFromMatch: (tournamentId: string, matchId: string, userId: string) => Promise<Response>;
75
+ setMatchLeader: (tournamentId: string, matchId: string, userId: string) => Promise<Response>;
76
+ setMatchMap: (tournamentId: string, matchId: string, map: Map) => Promise<Response>;
77
+ deleteMatch: (tournamentId: string, matchId: string) => Promise<Response>;
78
+ createQualifierEvent: (tournamentId: string, event: QualifierEvent) => Promise<Response>;
79
+ setQualifierName: (tournamentId: string, qualifierId: string, qualifierName: string) => Promise<Response>;
80
+ setQualifierImage: (tournamentId: string, qualifierId: string, qualifierImage: Uint8Array) => Promise<Response>;
81
+ setQualifierInfoChannel: (tournamentId: string, qualifierId: string, infoChannel: Channel) => Promise<Response>;
82
+ setQualifierFlags: (tournamentId: string, qualifierId: string, qualifierFlags: QualifierEvent_EventSettings) => Promise<Response>;
83
+ setQualifierLeaderboardSort: (tournamentId: string, qualifierId: string, qualifierLeaderboardSort: QualifierEvent_LeaderboardSort) => Promise<Response>;
84
+ addQualifierMap: (tournamentId: string, qualifierId: string, map: Map) => Promise<Response>;
85
+ updateQualifierMap: (tournamentId: string, qualifierId: string, map: Map) => Promise<Response>;
86
+ removeQualifierMap: (tournamentId: string, qualifierId: string, mapId: string) => Promise<Response>;
87
+ deleteQualifierEvent: (tournamentId: string, qualifierId: string) => Promise<Response>;
88
+ addAuthorizedUser: (tournamentId: string, discordId: string, permissionFlags: Permissions) => Promise<Response>;
89
+ removeAuthorizedUser: (tournamentId: string, discordId: string) => Promise<Response>;
90
+ getAuthorizedUsers: (tournamentId: string) => Promise<Response>;
91
+ getDiscordInfo: (tournamentId: string, discordId: string) => Promise<Response>;
92
+ createTournament: (tournament: Tournament) => Promise<Response>;
93
+ setTournamentName: (tournamentId: string, tournamentName: string) => Promise<Response>;
94
+ setTournamentImage: (tournamentId: string, tournamentImage: Uint8Array) => Promise<Response>;
95
+ setTournamentEnableTeams: (tournamentId: string, enableTeams: boolean) => Promise<Response>;
96
+ setTournamentEnablePools: (tournamentId: string, enablePools: boolean) => Promise<Response>;
97
+ setTournamentShowTournamentButton: (tournamentId: string, showTournamentButton: boolean) => Promise<Response>;
98
+ setTournamentShowQualifierButton: (tournamentId: string, showQualifierButton: boolean) => Promise<Response>;
99
+ setTournamentAllowUnauthorizedView: (tournamentId: string, allowUnauthorizedView: boolean) => Promise<Response>;
100
+ setTournamentScoreUpdateFrequency: (tournamentId: string, scoreUpdateFrequency: number) => Promise<Response>;
101
+ setTournamentBannedMods: (tournamentId: string, bannedMods: string[]) => Promise<Response>;
102
+ addTournamentTeam: (tournamentId: string, team: Tournament_TournamentSettings_Team) => Promise<Response>;
103
+ setTournamentTeamName: (tournamentId: string, teamId: string, teamName: string) => Promise<Response>;
104
+ setTournamentTeamImage: (tournamentId: string, teamId: string, teamImage: Uint8Array) => Promise<Response>;
105
+ removeTournamentTeam: (tournamentId: string, teamId: string) => Promise<Response>;
106
+ addTournamentPool: (tournamentId: string, pool: Tournament_TournamentSettings_Pool) => Promise<Response>;
107
+ setTournamentPoolName: (tournamentId: string, poolId: string, poolName: string) => Promise<Response>;
108
+ addTournamentPoolMap: (tournamentId: string, poolId: string, map: Map) => Promise<Response>;
109
+ updateTournamentPoolMap: (tournamentId: string, poolId: string, map: Map) => Promise<Response>;
110
+ removeTournamentPoolMap: (tournamentId: string, poolId: string, mapId: string) => Promise<Response>;
111
+ removeTournamentPool: (tournamentId: string, poolId: string) => Promise<Response>;
112
+ deleteTournament: (tournamentId: string) => Promise<Response>;
113
+ addServer: (server: CoreServer, authToken?: string) => Promise<Response>;
114
+ }