clashofclans.js 2.8.2 → 3.0.0-dev.29c3270
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.
- package/dist/client/Client.d.ts +27 -72
- package/dist/client/Client.js +12 -17
- package/dist/client/PollingClient.d.ts +156 -0
- package/dist/client/{EventManager.js → PollingClient.js} +71 -65
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -2
- package/dist/index.mjs +24 -22
- package/dist/rest/RESTManager.d.ts +36 -3
- package/dist/rest/RESTManager.js +35 -29
- package/dist/rest/RequestHandler.d.ts +30 -2
- package/dist/rest/RequestHandler.js +17 -11
- package/dist/struct/Clan.d.ts +1 -1
- package/dist/struct/ClanMember.js +1 -1
- package/dist/struct/ClanWar.js +1 -1
- package/dist/struct/League.js +1 -1
- package/dist/struct/Player.d.ts +1 -1
- package/dist/struct/Player.js +11 -11
- package/dist/struct/Ranking.d.ts +1 -1
- package/dist/struct/Ranking.js +1 -1
- package/dist/struct/Unit.js +4 -4
- package/dist/struct/WarLeague.js +1 -1
- package/dist/struct/index.js +5 -1
- package/dist/types/index.js +5 -1
- package/dist/types/lib.d.ts +4 -4
- package/dist/util/Constants.d.ts +46 -37
- package/dist/util/Constants.js +48 -39
- package/dist/util/Util.js +4 -4
- package/package.json +6 -59
- package/dist/client/EventManager.d.ts +0 -86
package/dist/client/Client.d.ts
CHANGED
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
2
3
|
import { ClanSearchOptions, SearchOptions, ClientOptions, LoginOptions, OverrideOptions } from '../types';
|
|
3
|
-
import {
|
|
4
|
+
import { CWLRounds, ClientEvents } from '../util/Constants';
|
|
4
5
|
import { RESTManager } from '../rest/RESTManager';
|
|
5
|
-
import { EventManager } from './EventManager';
|
|
6
|
-
import { EventEmitter } from 'events';
|
|
7
6
|
import { Util } from '../util/Util';
|
|
8
7
|
import { Clan, ClanMember, ClanWar, ClanWarLog, League, Location, Player, WarLeague, RankedClan, RankedPlayer, Label, SeasonRankedPlayer, GoldPassSeason, ClanWarLeagueGroup } from '../struct';
|
|
8
|
+
interface IClientEvents {
|
|
9
|
+
[ClientEvents.Error]: [error: unknown];
|
|
10
|
+
[ClientEvents.Debug]: [path: string, status: string, message: string];
|
|
11
|
+
}
|
|
12
|
+
export interface Client {
|
|
13
|
+
emit: (<K extends keyof IClientEvents>(event: K, ...args: IClientEvents[K]) => boolean) & (<S extends string | symbol>(event: Exclude<S, keyof IClientEvents>, ...args: any[]) => boolean);
|
|
14
|
+
off: (<K extends keyof IClientEvents>(event: K, listener: (...args: IClientEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IClientEvents>, listener: (...args: any[]) => void) => this);
|
|
15
|
+
on: (<K extends keyof IClientEvents>(event: K, listener: (...args: IClientEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IClientEvents>, listener: (...args: any[]) => void) => this);
|
|
16
|
+
once: (<K extends keyof IClientEvents>(event: K, listener: (...args: IClientEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IClientEvents>, listener: (...args: any[]) => void) => this);
|
|
17
|
+
removeAllListeners: (<K extends keyof IClientEvents>(event?: K) => this) & (<S extends string | symbol>(event?: Exclude<S, keyof IClientEvents>) => this);
|
|
18
|
+
/**
|
|
19
|
+
* Emitted for general debugging information.
|
|
20
|
+
* @public
|
|
21
|
+
* @event
|
|
22
|
+
*/
|
|
23
|
+
debug: string;
|
|
24
|
+
/**
|
|
25
|
+
* Emitted when the client encounters an error.
|
|
26
|
+
* @public
|
|
27
|
+
* @event
|
|
28
|
+
*/
|
|
29
|
+
error: string;
|
|
30
|
+
}
|
|
9
31
|
/**
|
|
10
32
|
* Represents Clash of Clans API Client.
|
|
11
33
|
* ```js
|
|
@@ -14,15 +36,11 @@ import { Clan, ClanMember, ClanWar, ClanWarLog, League, Location, Player, WarLea
|
|
|
14
36
|
* ```
|
|
15
37
|
*/
|
|
16
38
|
export declare class Client extends EventEmitter {
|
|
17
|
-
/** Event Manager for the client. */
|
|
18
|
-
events: EventManager;
|
|
19
39
|
/** REST Handler of the client. */
|
|
20
40
|
rest: RESTManager;
|
|
21
41
|
constructor(options?: ClientOptions);
|
|
22
42
|
/** Contains various general-purpose utility methods. */
|
|
23
43
|
get util(): typeof Util;
|
|
24
|
-
/** Whether the API is in maintenance break. */
|
|
25
|
-
get inMaintenance(): boolean;
|
|
26
44
|
/**
|
|
27
45
|
* Initialize the client to create keys.
|
|
28
46
|
* @example
|
|
@@ -57,7 +75,7 @@ export declare class Client extends EventEmitter {
|
|
|
57
75
|
*/
|
|
58
76
|
getCurrentWar(clanTag: string | {
|
|
59
77
|
clanTag: string;
|
|
60
|
-
round?: keyof typeof
|
|
78
|
+
round?: keyof typeof CWLRounds;
|
|
61
79
|
}, options?: OverrideOptions): Promise<ClanWar | null>;
|
|
62
80
|
/**
|
|
63
81
|
* Get info about currently running CWL round.
|
|
@@ -72,7 +90,7 @@ export declare class Client extends EventEmitter {
|
|
|
72
90
|
*/
|
|
73
91
|
getLeagueWar(clanTag: string | {
|
|
74
92
|
clanTag: string;
|
|
75
|
-
round?: keyof typeof
|
|
93
|
+
round?: keyof typeof CWLRounds;
|
|
76
94
|
}, options?: OverrideOptions): Promise<ClanWar | null>;
|
|
77
95
|
/** Returns active wars (last 2) of the CWL group. */
|
|
78
96
|
getLeagueWars(clanTag: string, options?: OverrideOptions): Promise<ClanWar[]>;
|
|
@@ -131,68 +149,5 @@ export declare class Client extends EventEmitter {
|
|
|
131
149
|
getPlayerLabels(options?: SearchOptions): Promise<Label[]>;
|
|
132
150
|
/** Get info about gold pass season. */
|
|
133
151
|
getGoldPassSeason(options?: OverrideOptions): Promise<GoldPassSeason>;
|
|
134
|
-
/**
|
|
135
|
-
* Emits when a new season starts.
|
|
136
|
-
*
|
|
137
|
-
* **Parameters**
|
|
138
|
-
*
|
|
139
|
-
* | Name | Type | Description |
|
|
140
|
-
* | :--: | :------: | :-------------------: |
|
|
141
|
-
* | `id` | `string` | Id of the new season. |
|
|
142
|
-
* @public
|
|
143
|
-
* @event
|
|
144
|
-
*/
|
|
145
|
-
private static newSeasonStart;
|
|
146
|
-
/**
|
|
147
|
-
* Emits when maintenance break starts in the API.
|
|
148
|
-
* @public
|
|
149
|
-
* @event
|
|
150
|
-
*/
|
|
151
|
-
private static maintenanceStart;
|
|
152
|
-
/**
|
|
153
|
-
* Emits when maintenance break ends in the API.
|
|
154
|
-
*
|
|
155
|
-
* **Parameters**
|
|
156
|
-
*
|
|
157
|
-
* | Name | Type | Description |
|
|
158
|
-
* | :--------: | :------: | :------------------------------------------------: |
|
|
159
|
-
* | `duration` | `number` | Duration of the maintenance break in milliseconds. |
|
|
160
|
-
* @public
|
|
161
|
-
* @event
|
|
162
|
-
*/
|
|
163
|
-
private static maintenanceEnd;
|
|
164
|
-
/** @internal */
|
|
165
|
-
on<K extends keyof ClientEvents>(event: K, listeners: (...args: ClientEvents[K]) => void): this;
|
|
166
|
-
/** @internal */
|
|
167
|
-
on<S extends keyof CustomEvents>(event: Exclude<S, keyof ClientEvents>, listeners: (...args: CustomEvents[S]) => void): this;
|
|
168
|
-
/** @internal */ on<S extends string | symbol>(event: Exclude<S, keyof ClientEvents>, listeners: (...args: any[]) => void): this;
|
|
169
|
-
/** @internal */
|
|
170
|
-
once<K extends keyof ClientEvents>(event: K, listeners: (...args: ClientEvents[K]) => void): this;
|
|
171
|
-
/** @internal */
|
|
172
|
-
once<S extends keyof CustomEvents>(event: Exclude<S, keyof ClientEvents>, listeners: (...args: CustomEvents[S]) => void): this;
|
|
173
|
-
/** @internal */ once<S extends string | symbol>(event: Exclude<S, keyof ClientEvents>, listeners: (...args: any[]) => void): this;
|
|
174
|
-
/** @internal */
|
|
175
|
-
emit<K extends keyof ClientEvents>(event: K, ...args: ClientEvents[K]): boolean;
|
|
176
|
-
/** @internal */
|
|
177
|
-
emit<S extends keyof CustomEvents>(event: Exclude<S, keyof ClientEvents>, ...args: CustomEvents[S]): this;
|
|
178
|
-
/** @internal */ emit<S extends string | symbol>(event: Exclude<S, keyof ClientEvents>, ...args: any[]): boolean;
|
|
179
|
-
}
|
|
180
|
-
interface ClientEvents {
|
|
181
|
-
[EVENTS.NEW_SEASON_START]: [id: string];
|
|
182
|
-
[EVENTS.MAINTENANCE_START]: [];
|
|
183
|
-
[EVENTS.MAINTENANCE_END]: [duration: number];
|
|
184
|
-
[EVENTS.CLAN_LOOP_START]: [];
|
|
185
|
-
[EVENTS.CLAN_LOOP_END]: [];
|
|
186
|
-
[EVENTS.PLAYER_LOOP_START]: [];
|
|
187
|
-
[EVENTS.PLAYER_LOOP_END]: [];
|
|
188
|
-
[EVENTS.WAR_LOOP_START]: [];
|
|
189
|
-
[EVENTS.WAR_LOOP_END]: [];
|
|
190
|
-
[EVENTS.ERROR]: [error: unknown];
|
|
191
|
-
[EVENTS.DEBUG]: [path: string, status: string, message: string];
|
|
192
|
-
}
|
|
193
|
-
interface CustomEvents {
|
|
194
|
-
[key: `clan${string}`]: [oldClan: Clan, newClan: Clan];
|
|
195
|
-
[key: `war${string}`]: [oldWar: ClanWar, newWar: ClanWar];
|
|
196
|
-
[key: `player${string}`]: [oldPlayer: Player, newPlayer: Player];
|
|
197
152
|
}
|
|
198
153
|
export {};
|
package/dist/client/Client.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Client = void 0;
|
|
4
|
+
const node_events_1 = require("node:events");
|
|
4
5
|
const Constants_1 = require("../util/Constants");
|
|
5
6
|
const HTTPError_1 = require("../rest/HTTPError");
|
|
6
7
|
const RESTManager_1 = require("../rest/RESTManager");
|
|
7
|
-
const EventManager_1 = require("./EventManager");
|
|
8
|
-
const events_1 = require("events");
|
|
9
8
|
const Util_1 = require("../util/Util");
|
|
10
9
|
const struct_1 = require("../struct");
|
|
11
10
|
/**
|
|
@@ -15,21 +14,17 @@ const struct_1 = require("../struct");
|
|
|
15
14
|
* const client = new Client({ keys: ['***'] });
|
|
16
15
|
* ```
|
|
17
16
|
*/
|
|
18
|
-
class Client extends
|
|
17
|
+
class Client extends node_events_1.EventEmitter {
|
|
19
18
|
constructor(options) {
|
|
20
19
|
super();
|
|
21
|
-
this.rest = new RESTManager_1.RESTManager({ ...options, rejectIfNotValid: true })
|
|
22
|
-
|
|
20
|
+
this.rest = new RESTManager_1.RESTManager({ ...options, rejectIfNotValid: true })
|
|
21
|
+
.on(Constants_1.RestEvents.Debug, this.emit.bind(this, Constants_1.RestEvents.Debug))
|
|
22
|
+
.on(Constants_1.RestEvents.Error, this.emit.bind(this, Constants_1.RestEvents.Error));
|
|
23
23
|
}
|
|
24
24
|
/** Contains various general-purpose utility methods. */
|
|
25
25
|
get util() {
|
|
26
26
|
return Util_1.Util;
|
|
27
27
|
}
|
|
28
|
-
/** Whether the API is in maintenance break. */
|
|
29
|
-
get inMaintenance() {
|
|
30
|
-
// @ts-expect-error
|
|
31
|
-
return this.events._inMaintenance;
|
|
32
|
-
}
|
|
33
28
|
/**
|
|
34
29
|
* Initialize the client to create keys.
|
|
35
30
|
* @example
|
|
@@ -39,11 +34,11 @@ class Client extends events_1.EventEmitter {
|
|
|
39
34
|
* ```
|
|
40
35
|
*/
|
|
41
36
|
login(options) {
|
|
42
|
-
return this.rest.
|
|
37
|
+
return this.rest.requestHandler.init(options);
|
|
43
38
|
}
|
|
44
39
|
/** Set Clash of Clans API keys. */
|
|
45
40
|
setKeys(keys) {
|
|
46
|
-
this.rest.
|
|
41
|
+
this.rest.requestHandler.setKeys(keys);
|
|
47
42
|
return this;
|
|
48
43
|
}
|
|
49
44
|
/** Search clans by name and/or filtering parameters or get clans by their tags (fetches in parallel). */
|
|
@@ -116,7 +111,7 @@ class Client extends events_1.EventEmitter {
|
|
|
116
111
|
*/
|
|
117
112
|
async getLeagueWar(clanTag, options) {
|
|
118
113
|
const args = typeof clanTag === 'string' ? { clanTag } : { clanTag: clanTag.clanTag, round: clanTag.round };
|
|
119
|
-
const state = (args.round && Constants_1.
|
|
114
|
+
const state = (args.round && Constants_1.CWLRounds[args.round]) ?? 'inWar'; // eslint-disable-line
|
|
120
115
|
const data = await this.getClanWarLeagueGroup(args.clanTag, options);
|
|
121
116
|
const rounds = data.rounds.filter((round) => !round.warTags.includes('#0'));
|
|
122
117
|
if (!rounds.length)
|
|
@@ -128,7 +123,7 @@ class Client extends events_1.EventEmitter {
|
|
|
128
123
|
.flat()
|
|
129
124
|
.reverse();
|
|
130
125
|
const wars = await this.util.allSettled(warTags.map((warTag) => this.getClanWarLeagueRound({ warTag, clanTag: args.clanTag }, { ...options, ignoreRateLimit: true })));
|
|
131
|
-
if (args.round && args.round in Constants_1.
|
|
126
|
+
if (args.round && args.round in Constants_1.CWLRounds) {
|
|
132
127
|
return wars.find((war) => war.clan.tag === args.clanTag && war.state === state) ?? null;
|
|
133
128
|
}
|
|
134
129
|
return (wars.find((war) => war.clan.tag === args.clanTag && war.state === state) ??
|
|
@@ -147,7 +142,7 @@ class Client extends events_1.EventEmitter {
|
|
|
147
142
|
return [await this.getClanWar(clanTag, options)];
|
|
148
143
|
}
|
|
149
144
|
try {
|
|
150
|
-
return this.getLeagueWars(clanTag, options);
|
|
145
|
+
return await this.getLeagueWars(clanTag, options);
|
|
151
146
|
}
|
|
152
147
|
catch (e) {
|
|
153
148
|
if (e instanceof HTTPError_1.HTTPError && [404].includes(e.status)) {
|
|
@@ -196,12 +191,12 @@ class Client extends events_1.EventEmitter {
|
|
|
196
191
|
}
|
|
197
192
|
/** Get Legend League season Ids. */
|
|
198
193
|
async getLeagueSeasons(options) {
|
|
199
|
-
const { data } = await this.rest.getLeagueSeasons(Constants_1.
|
|
194
|
+
const { data } = await this.rest.getLeagueSeasons(Constants_1.LegendLeagueId, options);
|
|
200
195
|
return data.items.map((league) => league.id);
|
|
201
196
|
}
|
|
202
197
|
/** Get Legend League season rankings by season Id. */
|
|
203
198
|
async getSeasonRankings(seasonId, options) {
|
|
204
|
-
const { data } = await this.rest.getSeasonRankings(Constants_1.
|
|
199
|
+
const { data } = await this.rest.getSeasonRankings(Constants_1.LegendLeagueId, seasonId, options);
|
|
205
200
|
return data.items.map((entry) => new struct_1.SeasonRankedPlayer(this, entry));
|
|
206
201
|
}
|
|
207
202
|
/** Get list of Clan War Leagues. */
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Clan, ClanWar, Player } from '../struct';
|
|
2
|
+
import { ClientOptions } from '../types';
|
|
3
|
+
import { PollingEvents } from '../util/Constants';
|
|
4
|
+
import { Client } from './Client';
|
|
5
|
+
/**
|
|
6
|
+
* Represents Clash of Clans Polling Event Client.
|
|
7
|
+
* ```js
|
|
8
|
+
* const { PollingClient } = require('clashofclans.js');
|
|
9
|
+
* const client = new PollingClient({ keys: ['***'] });
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare class PollingClient extends Client {
|
|
13
|
+
private readonly _clanTags;
|
|
14
|
+
private readonly _playerTags;
|
|
15
|
+
private readonly _warTags;
|
|
16
|
+
private readonly _clans;
|
|
17
|
+
private readonly _players;
|
|
18
|
+
private readonly _wars;
|
|
19
|
+
private readonly _pollingEvents;
|
|
20
|
+
inMaintenance: boolean;
|
|
21
|
+
private _maintenanceStartTime;
|
|
22
|
+
constructor(options?: ClientOptions);
|
|
23
|
+
/** Initialize the PollingEvent Manager to start pulling the data by polling api. */
|
|
24
|
+
init(): Promise<string[]>;
|
|
25
|
+
/** Add clan tags to clan polling events. */
|
|
26
|
+
addClans(tags: string[] | string): this;
|
|
27
|
+
/** Delete clan tags from clan polling events. */
|
|
28
|
+
deleteClans(tags: string[] | string): this;
|
|
29
|
+
/** Add player tags for player polling events. */
|
|
30
|
+
addPlayers(tags: string[] | string): this;
|
|
31
|
+
/** Delete player tags from player polling events. */
|
|
32
|
+
deletePlayers(tags: string[] | string): this;
|
|
33
|
+
/** Add clan tags for war polling events. */
|
|
34
|
+
addWars(tags: string[] | string): this;
|
|
35
|
+
/** Delete clan tags from war polling events. */
|
|
36
|
+
deleteWars(tags: string[] | string): this;
|
|
37
|
+
/**
|
|
38
|
+
* Set your own custom clan polling event.
|
|
39
|
+
*
|
|
40
|
+
* In order to emit the custom polling event, you must have this filter function that returns a boolean.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```js
|
|
44
|
+
* client.addClans(['#2PP', '#8QU8J9LP']);
|
|
45
|
+
*
|
|
46
|
+
* client.setClanEvent({
|
|
47
|
+
* name: 'clanMemberUpdate',
|
|
48
|
+
* filter: (oldClan, newClan) => {
|
|
49
|
+
* return oldClan.memberCount !== newClan.memberCount;
|
|
50
|
+
* }
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* client.on('clanMemberUpdate', (oldClan, newClan) => {
|
|
54
|
+
* console.log(oldClan.memberCount, newClan.memberCount);
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* (async function () {
|
|
58
|
+
* await client.init();
|
|
59
|
+
* })();
|
|
60
|
+
* ```
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
setClanEvent(event: {
|
|
64
|
+
name: string;
|
|
65
|
+
filter: (oldClan: Clan, newClan: Clan) => boolean;
|
|
66
|
+
}): this;
|
|
67
|
+
/**
|
|
68
|
+
* Set your own custom war event.
|
|
69
|
+
*
|
|
70
|
+
* In order to emit the custom event, you must have this filter function that returns a boolean.
|
|
71
|
+
*/
|
|
72
|
+
setWarEvent(event: {
|
|
73
|
+
name: string;
|
|
74
|
+
filter: (oldWar: ClanWar, newWar: ClanWar) => boolean;
|
|
75
|
+
}): this;
|
|
76
|
+
/**
|
|
77
|
+
* Set your own custom player event.
|
|
78
|
+
*
|
|
79
|
+
* In order to emit the custom event, you must have this filter function that returns a boolean.
|
|
80
|
+
*/
|
|
81
|
+
setPlayerEvent(event: {
|
|
82
|
+
name: string;
|
|
83
|
+
filter: (oldPlayer: Player, newPlayer: Player) => boolean;
|
|
84
|
+
}): this;
|
|
85
|
+
private maintenanceHandler;
|
|
86
|
+
private seasonEndHandler;
|
|
87
|
+
private clanUpdateHandler;
|
|
88
|
+
private playerUpdateHandler;
|
|
89
|
+
private warUpdateHandler;
|
|
90
|
+
private runClanUpdate;
|
|
91
|
+
private runPlayerUpdate;
|
|
92
|
+
private runWarUpdate;
|
|
93
|
+
}
|
|
94
|
+
export interface PollingClient {
|
|
95
|
+
emit: (<K extends keyof IPollingEvents>(event: K, ...args: IPollingEvents[K]) => boolean) & (<S extends string | symbol>(event: Exclude<S, keyof IPollingEvents>, ...args: any[]) => boolean);
|
|
96
|
+
off: (<K extends keyof IPollingEvents>(event: K, listener: (...args: IPollingEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IPollingEvents>, listener: (...args: any[]) => void) => this);
|
|
97
|
+
on: (<K extends keyof IPollingEvents>(event: K, listener: (...args: IPollingEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IPollingEvents>, listener: (...args: any[]) => void) => this);
|
|
98
|
+
once: (<K extends keyof IPollingEvents>(event: K, listener: (...args: IPollingEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof IPollingEvents>, listener: (...args: any[]) => void) => this);
|
|
99
|
+
removeAllListeners: (<K extends keyof IPollingEvents>(event?: K) => this) & (<S extends string | symbol>(event?: Exclude<S, keyof IPollingEvents>) => this);
|
|
100
|
+
/**
|
|
101
|
+
* Emits when a new season starts.
|
|
102
|
+
*
|
|
103
|
+
* **Parameters**
|
|
104
|
+
*
|
|
105
|
+
* | Name | Type | Description |
|
|
106
|
+
* | :--: | :------: | :-------------------: |
|
|
107
|
+
* | `id` | `string` | Id of the new season. |
|
|
108
|
+
* @public
|
|
109
|
+
* @event
|
|
110
|
+
*/
|
|
111
|
+
newSeasonStart: string;
|
|
112
|
+
/**
|
|
113
|
+
* Emits when maintenance break starts in the API.
|
|
114
|
+
* @public
|
|
115
|
+
* @event
|
|
116
|
+
*/
|
|
117
|
+
maintenanceStart: string;
|
|
118
|
+
/**
|
|
119
|
+
* Emits when maintenance break ends in the API.
|
|
120
|
+
*
|
|
121
|
+
* **Parameters**
|
|
122
|
+
*
|
|
123
|
+
* | Name | Type | Description |
|
|
124
|
+
* | :--------: | :------: | :------------------------------------------------: |
|
|
125
|
+
* | `duration` | `number` | Duration of the maintenance break in milliseconds. |
|
|
126
|
+
* @public
|
|
127
|
+
* @event
|
|
128
|
+
*/
|
|
129
|
+
maintenanceEnd: string;
|
|
130
|
+
/**
|
|
131
|
+
* Emitted for general debugging information.
|
|
132
|
+
* @public
|
|
133
|
+
* @event
|
|
134
|
+
*/
|
|
135
|
+
debug: string;
|
|
136
|
+
/**
|
|
137
|
+
* Emitted when the client encounters an error.
|
|
138
|
+
* @public
|
|
139
|
+
* @event
|
|
140
|
+
*/
|
|
141
|
+
error: string;
|
|
142
|
+
}
|
|
143
|
+
interface IPollingEvents {
|
|
144
|
+
[PollingEvents.ClanLoopStart]: [];
|
|
145
|
+
[PollingEvents.ClanLoopEnd]: [];
|
|
146
|
+
[PollingEvents.PlayerLoopStart]: [];
|
|
147
|
+
[PollingEvents.PlayerLoopEnd]: [];
|
|
148
|
+
[PollingEvents.WarLoopStart]: [];
|
|
149
|
+
[PollingEvents.WarLoopEnd]: [];
|
|
150
|
+
[PollingEvents.NewSeasonStart]: [id: string];
|
|
151
|
+
[PollingEvents.MaintenanceStart]: [];
|
|
152
|
+
[PollingEvents.MaintenanceEnd]: [duration: number];
|
|
153
|
+
[PollingEvents.Error]: [error: unknown];
|
|
154
|
+
[PollingEvents.Debug]: [path: string, status: string, message: string];
|
|
155
|
+
}
|
|
156
|
+
export {};
|