clashofclans.js 3.1.5-dev.6c2a144 → 3.2.0-dev.f3e2746
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +5 -0
- package/dist/struct/ClanMember.d.ts +5 -1
- package/dist/struct/ClanMember.js +2 -0
- package/dist/struct/ClanWar.js +8 -9
- package/dist/types/api.d.ts +2 -0
- package/dist/util/Helper.d.ts +7 -0
- package/dist/util/Helper.js +24 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -65,4 +65,9 @@ export const Util = mod.Util;
|
|
|
65
65
|
export const WarClan = mod.WarClan;
|
|
66
66
|
export const WarLeagues = mod.WarLeagues;
|
|
67
67
|
export const WarLogClan = mod.WarLogClan;
|
|
68
|
+
export const calculateOffensiveRaidMedals = mod.calculateOffensiveRaidMedals;
|
|
69
|
+
export const calculateRaidsCompleted = mod.calculateRaidsCompleted;
|
|
70
|
+
export const getWarResult = mod.getWarResult;
|
|
71
|
+
export const isFriendlyWar = mod.isFriendlyWar;
|
|
72
|
+
export const isWarWinner = mod.isWarWinner;
|
|
68
73
|
export const timeoutSignal = mod.timeoutSignal;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Client } from '../client/Client';
|
|
2
|
-
import { APIClanMember, APIPlayerHouse, OverrideOptions } from '../types';
|
|
2
|
+
import { APIClanMember, APILeague, APIPlayerHouse, OverrideOptions } from '../types';
|
|
3
3
|
import { League } from './League';
|
|
4
4
|
export declare class ClanMember {
|
|
5
5
|
client: Client;
|
|
@@ -11,8 +11,12 @@ export declare class ClanMember {
|
|
|
11
11
|
role: 'member' | 'elder' | 'coLeader' | 'leader';
|
|
12
12
|
/** The member's experience level. */
|
|
13
13
|
expLevel: number;
|
|
14
|
+
/** The member's Town Hall level. */
|
|
15
|
+
townHallLevel: number;
|
|
14
16
|
/** The member's current League. */
|
|
15
17
|
league: League;
|
|
18
|
+
/** The member's current Builder Base League. */
|
|
19
|
+
builderBaseLeague: Omit<APILeague, 'iconUrls'> | null;
|
|
16
20
|
/** The member's trophy count. */
|
|
17
21
|
trophies: number;
|
|
18
22
|
/** The member's builder base trophy count. */
|
|
@@ -21,6 +21,8 @@ class ClanMember {
|
|
|
21
21
|
this.donations = data.donations;
|
|
22
22
|
this.playerHouse = data.playerHouse ?? null;
|
|
23
23
|
this.received = data.donationsReceived;
|
|
24
|
+
this.townHallLevel = data.townHallLevel;
|
|
25
|
+
this.builderBaseLeague = data.builderBaseLeague ?? null;
|
|
24
26
|
}
|
|
25
27
|
/** Whether this clan member is in the clan. */
|
|
26
28
|
get isMember() {
|
package/dist/struct/ClanWar.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClanWar = exports.WarClan = exports.ClanWarMember = exports.ClanWarAttack = void 0;
|
|
4
4
|
const Constants_1 = require("../util/Constants");
|
|
5
|
+
const Helper_1 = require("../util/Helper");
|
|
5
6
|
const Badge_1 = require("./Badge");
|
|
6
7
|
/** Represents a Clash of Clans War Attack. */
|
|
7
8
|
class ClanWarAttack {
|
|
@@ -225,15 +226,13 @@ class ClanWar {
|
|
|
225
226
|
get status() {
|
|
226
227
|
if (this.state === 'preparation')
|
|
227
228
|
return 'pending';
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
return 'lose';
|
|
229
|
+
return (0, Helper_1.getWarResult)({
|
|
230
|
+
stars: this.clan.stars,
|
|
231
|
+
destructionPercentage: this.clan.destruction
|
|
232
|
+
}, {
|
|
233
|
+
stars: this.opponent.stars,
|
|
234
|
+
destructionPercentage: this.opponent.destruction
|
|
235
|
+
});
|
|
237
236
|
}
|
|
238
237
|
/** Returns the Clan War League Group. */
|
|
239
238
|
getClanWarLeagueGroup() {
|
package/dist/types/api.d.ts
CHANGED
|
@@ -71,7 +71,9 @@ export interface APIClanMember {
|
|
|
71
71
|
tag: string;
|
|
72
72
|
role: 'member' | 'admin' | 'coLeader' | 'leader';
|
|
73
73
|
expLevel: number;
|
|
74
|
+
townHallLevel: number;
|
|
74
75
|
league: APILeague;
|
|
76
|
+
builderBaseLeague?: Omit<APILeague, 'iconUrls'>;
|
|
75
77
|
trophies: number;
|
|
76
78
|
builderBaseTrophies?: number;
|
|
77
79
|
/** @deprecated */
|
package/dist/util/Helper.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import { APICapitalRaidSeason } from '../types';
|
|
2
2
|
export declare const calculateRaidsCompleted: (attackLog: APICapitalRaidSeason['attackLog']) => number;
|
|
3
3
|
export declare const calculateOffensiveRaidMedals: (attackLog: APICapitalRaidSeason['attackLog'], offensiveReward?: number) => number;
|
|
4
|
+
export declare const isFriendlyWar: (preparationStartTime: Date, startTime: Date) => boolean;
|
|
5
|
+
export declare const getWarResult: (clan: PartialWarClan, opponent: PartialWarClan) => "win" | "lose" | "tie";
|
|
6
|
+
export declare const isWarWinner: (clan: PartialWarClan, opponent: PartialWarClan) => boolean;
|
|
7
|
+
export interface PartialWarClan {
|
|
8
|
+
stars: number;
|
|
9
|
+
destructionPercentage: number;
|
|
10
|
+
}
|
package/dist/util/Helper.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateOffensiveRaidMedals = exports.calculateRaidsCompleted = void 0;
|
|
3
|
+
exports.isWarWinner = exports.getWarResult = exports.isFriendlyWar = exports.calculateOffensiveRaidMedals = exports.calculateRaidsCompleted = void 0;
|
|
4
|
+
const Constants_1 = require("./Constants");
|
|
4
5
|
const calculateRaidsCompleted = (attackLog) => {
|
|
5
6
|
let total = 0;
|
|
6
7
|
for (const clan of attackLog) {
|
|
@@ -49,3 +50,25 @@ const calculateOffensiveRaidMedals = (attackLog, offensiveReward = 0) => {
|
|
|
49
50
|
return Math.max(totalMedals, offensiveReward);
|
|
50
51
|
};
|
|
51
52
|
exports.calculateOffensiveRaidMedals = calculateOffensiveRaidMedals;
|
|
53
|
+
const isFriendlyWar = (preparationStartTime, startTime) => {
|
|
54
|
+
const preparationTime = startTime.getTime() - preparationStartTime.getTime();
|
|
55
|
+
return Constants_1.FriendlyWarPreparationTimes.includes(preparationTime);
|
|
56
|
+
};
|
|
57
|
+
exports.isFriendlyWar = isFriendlyWar;
|
|
58
|
+
const getWarResult = (clan, opponent) => {
|
|
59
|
+
if (clan.stars > opponent.stars)
|
|
60
|
+
return 'win';
|
|
61
|
+
if (clan.stars === opponent.stars) {
|
|
62
|
+
if (clan.destructionPercentage > opponent.destructionPercentage)
|
|
63
|
+
return 'win';
|
|
64
|
+
if (clan.destructionPercentage === opponent.destructionPercentage)
|
|
65
|
+
return 'tie';
|
|
66
|
+
}
|
|
67
|
+
return 'lose';
|
|
68
|
+
};
|
|
69
|
+
exports.getWarResult = getWarResult;
|
|
70
|
+
const isWarWinner = (clan, opponent) => {
|
|
71
|
+
const result = (0, exports.getWarResult)(clan, opponent);
|
|
72
|
+
return result === 'win';
|
|
73
|
+
};
|
|
74
|
+
exports.isWarWinner = isWarWinner;
|
package/package.json
CHANGED