Skip to content

Commit 5512e76

Browse files
committed
Ladder: Add GXE filtering for ladders with a max elo above 1500
1 parent d706436 commit 5512e76

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

lib/ntbb-ladder.lib.php

+24-2
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,32 @@ function getTop($prefix = null) {
233233
"SELECT * FROM (SELECT * FROM `{$ladderdb->prefix}ladder` WHERE `formatid` = ? ORDER BY `elo` DESC LIMIT $overfetch) AS `unusedalias` WHERE `userid` LIKE ? LIMIT $limit",
234234
[$this->formatid, "$prefix%"]
235235
);
236+
$res = $ladderdb->query(
237+
"WITH `max_elo` AS (
238+
SELECT MAX(elo) AS `max_elo` FROM `{$ladderdb->prefix}ladder` WHERE `formatid` = ?
239+
),
240+
`rpr_filtered` AS (
241+
SELECT * FROM `{$ladderdb->prefix}ladder` WHERE
242+
((SELECT `max_elo` FROM `max_elo`) <= 1500 OR `rprd` <= 100)
243+
AND `formatid` = ?
244+
)
245+
SELECT * FROM
246+
(SELECT * FROM `rpr_filtered` WHERE `formatid` = ? ORDER BY `elo` DESC LIMIT {$overfetch})
247+
AS `unusedalias` WHERE `userid` LIKE ? LIMIT $limit",
248+
[$this->formatid, $this->formatid, $this->formatid, "$prefix%"]
249+
);
236250
} else {
237251
$res = $ladderdb->query(
238-
"SELECT * FROM `{$ladderdb->prefix}ladder` WHERE `formatid` = ? ORDER BY `elo` DESC LIMIT $limit",
239-
[$this->formatid]
252+
"WITH max_elo AS (
253+
SELECT MAX(elo) AS max_elo FROM `{$ladderdb->prefix}ladder` WHERE `formatid` = ?
254+
),
255+
rpr_filtered AS (
256+
SELECT * FROM `{$ladderdb->prefix}ladder` WHERE
257+
((SELECT `max_elo` FROM `max_elo`) <= 1500 OR `rprd` <= 100)
258+
AND `formatid` = ?
259+
)
260+
SELECT * FROM `rpr_filtered` ORDER BY `elo` DESC LIMIT $limit",
261+
[$this->formatid, $this->formatid]
240262
);
241263
}
242264

0 commit comments

Comments
 (0)