From c073921a5881d6a9f941d79999f4b5d9d85045c4 Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Mon, 6 Sep 2021 02:02:06 -0300 Subject: [PATCH] BadgeImager fix --- src/nitro/session/badge/BadgeImageManager.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/nitro/session/badge/BadgeImageManager.ts b/src/nitro/session/badge/BadgeImageManager.ts index ba4f942f..4d9b09c9 100644 --- a/src/nitro/session/badge/BadgeImageManager.ts +++ b/src/nitro/session/badge/BadgeImageManager.ts @@ -175,15 +175,17 @@ export class BadgeImageManager implements IDisposable const urlsToLoad: string[] = []; - for(let i = 0; i < badgeCode.length; i += 6) + const partMatches = [...badgeCode.matchAll(/[b|s][0-9]{5,6}/g)]; + + for(const partMatch of partMatches) { - const partType = badgeCode.slice(i, i + 1); + const partCode = partMatch[0]; + const shortMethod = (partCode.length === 6); - let partId = parseInt(badgeCode.slice(i + 1, i + 3)); - const partColor = parseInt(badgeCode.slice(i + 3, i + 5)); - const partPosition = parseInt(badgeCode.slice(i + 5, i + 6)); - - if(partType === 't') partId += 100; + const partType = partCode[0]; + const partId = parseInt(partCode.slice(1, shortMethod ? 3 : 4)); + const partColor = parseInt(partCode.slice(shortMethod ? 3 : 4, shortMethod ? 5 : 6)); + const partPosition = parseInt(partCode.slice(shortMethod ? 5 : 6, shortMethod ? 6 : 7)); const part = new GroupBadgePart(partType, partId, partColor, partPosition); groupBadge.parts.push(part);