Change order of help entries to correspond to button ordering

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/20/head
trivernis 3 years ago
parent 43f61d51f2
commit fbb87fe58a
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -2,6 +2,7 @@ use crate::error::{SerenityUtilsError, SerenityUtilsResult};
use crate::menu::container::get_listeners_from_context; use crate::menu::container::get_listeners_from_context;
use crate::menu::menu::Menu; use crate::menu::menu::Menu;
use crate::menu::typedata::HelpActiveContainer; use crate::menu::typedata::HelpActiveContainer;
use crate::menu::ActionContainer;
use serde_json::json; use serde_json::json;
use serde_json::Value; use serde_json::Value;
use serenity::client::Context; use serenity::client::Context;
@ -75,12 +76,19 @@ pub async fn toggle_help(
.get() .get()
.await?; .await?;
let mut message = menu.get_message(ctx.http()).await?; let mut message = menu.get_message(ctx.http()).await?;
let help_message = menu log::debug!("Building help entries");
let mut help_entries = menu
.help_entries .help_entries
.iter() .iter()
.map(|(e, h)| format!(" - {} {}", e, h)) .filter_map(|(e, h)| Some((menu.controls.get(e)?, e, h)))
.collect::<Vec<(&ActionContainer, &String, &String)>>();
help_entries.sort_by_key(|(c, _, _)| c.position());
let help_message = help_entries
.into_iter()
.map(|(_, e, h)| format!(" - {} {}", e, h))
.collect::<Vec<String>>() .collect::<Vec<String>>()
.join("\n"); .join("\n");
log::trace!("Help message is {}", help_message);
message message
.edit(ctx, |m| { .edit(ctx, |m| {

@ -64,6 +64,11 @@ impl ActionContainer {
self.inner.clone()(ctx, menu, reaction).await?; self.inner.clone()(ctx, menu, reaction).await?;
Ok(()) Ok(())
} }
/// Returns the position of the action
pub fn position(&self) -> isize {
self.position
}
} }
/// A menu message /// A menu message

Loading…
Cancel
Save