summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-22 04:28:55 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-22 04:28:55 +0900
commit31dcf713ccefd858ecafc7982893bffb869b63de (patch)
tree627b16ec4463c9a518da7ee92223cdf3dfb25cfe /packages/frontend/src/scripts
parentMerge branch 'develop' (diff)
parent13.1.1 (diff)
downloadmisskey-31dcf713ccefd858ecafc7982893bffb869b63de.tar.gz
misskey-31dcf713ccefd858ecafc7982893bffb869b63de.tar.bz2
misskey-31dcf713ccefd858ecafc7982893bffb869b63de.zip
Merge branch 'develop'
Diffstat (limited to 'packages/frontend/src/scripts')
-rw-r--r--packages/frontend/src/scripts/achievements.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/frontend/src/scripts/achievements.ts b/packages/frontend/src/scripts/achievements.ts
index 8f484f8925..c97358e880 100644
--- a/packages/frontend/src/scripts/achievements.ts
+++ b/packages/frontend/src/scripts/achievements.ts
@@ -433,16 +433,22 @@ export const ACHIEVEMENT_BADGES = {
export const claimedAchievements = ($i && $i.achievements) ? $i.achievements.map(x => x.name) : [];
-export function claimAchievement(type: typeof ACHIEVEMENT_TYPES[number]) {
+const claimingQueue = new Set<string>();
+
+export async function claimAchievement(type: typeof ACHIEVEMENT_TYPES[number]) {
if (claimedAchievements.includes(type)) return;
- os.api('i/claim-achievement', { name: type });
+ claimingQueue.add(type);
claimedAchievements.push(type);
+ await new Promise(resolve => setTimeout(resolve, (claimingQueue.size - 1) * 500));
+ window.setTimeout(() => {
+ claimingQueue.delete(type);
+ }, 500);
+ os.api('i/claim-achievement', { name: type });
}
if (_DEV_) {
- (window as any).unlockAllAchievements = async () => {
+ (window as any).unlockAllAchievements = () => {
for (const t of ACHIEVEMENT_TYPES) {
- await new Promise(resolve => setTimeout(resolve, 100));
claimAchievement(t);
}
};