From 9980b7db1df7a2caaacf4de5a80330fb793a791d Mon Sep 17 00:00:00 2001 From: Steve23 Date: Sun, 23 Aug 2026 21:37:41 +0700 Subject: [PATCH 1/6] Fix: remove the usage of extradata.bans was previously changed to use teamXbanY, and bans get removed This commit changed the way that the MatchSummary will take the ban and use the MatchSummary/Base function that are already exist --- lua/wikis/brawlstars/MatchSummary.lua | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index f6375ece06e..c33a1c5f9bc 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -20,6 +20,8 @@ local MatchSummaryWidgets = Lua.import('Module:Widget/Match/Summary/All') local MatchSummary = Lua.import('Module:MatchSummary/Base') local WidgetUtil = Lua.import('Module:Widget/Util') +local MAX_NUM_BANS = 3 + local CustomMatchSummary = {} ---@param args table @@ -32,15 +34,11 @@ end ---@return Renderable[] function CustomMatchSummary.createBody(match) local globalBans = (match.extradata or {}).globalbans + local characterBansData = Array.extend( Logic.isNotDeepEmpty(globalBans) and {globalBans.team1 or {}, globalBans.team2 or {}, label = 'Global Bans'} or nil, - Array.map(match.games, function(game, gameIndex) - local extradata = game.extradata or {} - local bans = extradata.bans or {} - if Logic.isDeepEmpty(bans) then return end - return {bans.team1 or {}, bans.team2 or {}, label = 'Game ' .. gameIndex} - end) - ) + MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) + ) return WidgetUtil.collect( Array.map(match.games, CustomMatchSummary._createMapRow), From 6a461af29aa2398e636694a955755313aba66e86 Mon Sep 17 00:00:00 2001 From: Steve23 Date: Sun, 23 Aug 2026 21:42:55 +0700 Subject: [PATCH 2/6] AELAH LINT(indo language :p) --- lua/wikis/brawlstars/MatchSummary.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index c33a1c5f9bc..7337d6930b1 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -34,7 +34,7 @@ end ---@return Renderable[] function CustomMatchSummary.createBody(match) local globalBans = (match.extradata or {}).globalbans - + local characterBansData = Array.extend( Logic.isNotDeepEmpty(globalBans) and {globalBans.team1 or {}, globalBans.team2 or {}, label = 'Global Bans'} or nil, MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) From 3937d70ea6450e414feb2305bdd8da6748394da3 Mon Sep 17 00:00:00 2001 From: Steve23 Date: Mon, 24 Aug 2026 19:04:02 +0700 Subject: [PATCH 3/6] fix indent --- lua/wikis/brawlstars/MatchSummary.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index 7337d6930b1..640b09b931c 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -38,7 +38,7 @@ function CustomMatchSummary.createBody(match) local characterBansData = Array.extend( Logic.isNotDeepEmpty(globalBans) and {globalBans.team1 or {}, globalBans.team2 or {}, label = 'Global Bans'} or nil, MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) - ) + ) return WidgetUtil.collect( Array.map(match.games, CustomMatchSummary._createMapRow), From ef56dc3ce117140488509c985efbd0b5151a526b Mon Sep 17 00:00:00 2001 From: Steve23 Date: Tue, 25 Aug 2026 14:42:27 +0700 Subject: [PATCH 4/6] Fix Global Ban count as Game 1 instead of just Global Ban Helped by claude code --- lua/wikis/brawlstars/MatchSummary.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index 640b09b931c..c6bda05e88e 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -35,9 +35,18 @@ end function CustomMatchSummary.createBody(match) local globalBans = (match.extradata or {}).globalbans + local gameBansData = MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) or {} + + -- To make the Global Bans doesn't get count as Game 1 + Array.forEach(gameBansData, function(banData, gameIndex) + if Logic.isNotDeepEmpty(banData) then + banData.label = 'Game ' .. gameIndex + end + end) + local characterBansData = Array.extend( Logic.isNotDeepEmpty(globalBans) and {globalBans.team1 or {}, globalBans.team2 or {}, label = 'Global Bans'} or nil, - MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) + gameBansData ) return WidgetUtil.collect( From 3f790a410cde0effd86b02feeb237ba50ee979e4 Mon Sep 17 00:00:00 2001 From: Steve23 Date: Tue, 25 Aug 2026 14:43:39 +0700 Subject: [PATCH 5/6] no way it's just nil --- lua/wikis/brawlstars/MatchSummary.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index c6bda05e88e..675323598d7 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -35,7 +35,7 @@ end function CustomMatchSummary.createBody(match) local globalBans = (match.extradata or {}).globalbans - local gameBansData = MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) or {} + local gameBansData = MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) -- To make the Global Bans doesn't get count as Game 1 Array.forEach(gameBansData, function(banData, gameIndex) From 50f47b41b192334e4fcbc6bfa0d54cb61bfca854 Mon Sep 17 00:00:00 2001 From: Steve23 Date: Tue, 25 Aug 2026 14:54:04 +0700 Subject: [PATCH 6/6] lint? --- lua/wikis/commons/MatchSummary/Base.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/wikis/commons/MatchSummary/Base.lua b/lua/wikis/commons/MatchSummary/Base.lua index d204e301dd2..65b2ef4ed39 100644 --- a/lua/wikis/commons/MatchSummary/Base.lua +++ b/lua/wikis/commons/MatchSummary/Base.lua @@ -327,7 +327,7 @@ end ---@param games table[] ---@param maxNumberOfBans integer ----@return {[1]: string[], [2]: string[], start: integer?}[] +---@return {[1]: string[], [2]: string[], start: integer?, label: string?}[] function MatchSummary.buildCharacterBanData(games, maxNumberOfBans) return Array.map(games, function(game) local extradata = game.extradata or {}