From 60a0cfc812cf94bab83c5000a80be5c7fbdd394f Mon Sep 17 00:00:00 2001 From: Xyon Date: Sat, 19 Oct 2024 16:53:25 +0100 Subject: [PATCH] quick fix - cap leaderboard to 7 per page due to field constraints --- src/badgey/commands/ranks.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/badgey/commands/ranks.rs b/src/badgey/commands/ranks.rs index da5271d..f40b5f0 100644 --- a/src/badgey/commands/ranks.rs +++ b/src/badgey/commands/ranks.rs @@ -123,10 +123,11 @@ async fn rank(ctx: ManifoldContext<'_>) -> ManifoldResult<()> { async fn leaderboard(ctx: ManifoldContext<'_>) -> ManifoldResult<()> { let reply_handle = ctx.reply("Retrieving leaderboard, please stand by...".to_string()).await?; + let entries_per_page = 7; // Maximum due to limitation on fields per embed let mut pages = Vec::::new(); let leaderboard = Xp::get_leaderboard(&ctx.data().database)?; let total = leaderboard.len(); - let pages_needed = (total / 10) + 1; + let pages_needed = (total / entries_per_page) + 1; for i in 0..pages_needed { let mut page = CreateEmbed::default() @@ -138,7 +139,7 @@ async fn leaderboard(ctx: ManifoldContext<'_>) -> ManifoldResult<()> { fields.push(("User", "".to_string(), true)); fields.push(("XP", "".to_string(), true)); - leaderboard.iter().skip(i*10).enumerate().for_each(|(i, f)| { + leaderboard.iter().skip(i*entries_per_page).enumerate().for_each(|(i, f)| { fields.push(("", format!("{rank}", rank=(i+1)), true)); fields.push(("", format!("<@{id}>", id=f.user_id), true)); fields.push(("", format!("{xp}", xp=f.xp_value), true)); -- 2.30.2