feat: ticket v2 select+modal, counter top+human-only, help interactive
This commit is contained in:
parent
589238570a
commit
ac96cfcb59
9 changed files with 825 additions and 105 deletions
|
|
@ -1,26 +1,13 @@
|
|||
use crate::feature::Ctx;
|
||||
use crate::feature::ticket::service;
|
||||
use crate::util::i18n::{self, Lang};
|
||||
use poise::CreateReply;
|
||||
use serenity::all::{CreateActionRow, CreateButton, CreateEmbed};
|
||||
use serenity::all::CreateEmbed;
|
||||
|
||||
/// Panel with ticket open buttons.
|
||||
/// Re-posts modern ticket panel (select + modal).
|
||||
#[poise::command(slash_command, prefix_command, guild_only)]
|
||||
pub async fn ticket_panel(ctx: Ctx<'_>) -> anyhow::Result<()> {
|
||||
let lang = if let Some(member) = ctx.author_member().await {
|
||||
let ids: Vec<u64> = member.roles.iter().map(|r| r.get()).collect();
|
||||
i18n::from_roles(&ids)
|
||||
} else {
|
||||
Lang::En
|
||||
};
|
||||
let embed = CreateEmbed::new()
|
||||
.title(i18n::t("ticket.title", lang))
|
||||
.description(i18n::t("ticket.desc", lang))
|
||||
.color(0x0058_65F2);
|
||||
let row = CreateActionRow::Buttons(vec![
|
||||
CreateButton::new("ticket_general").label("General").emoji('🛠'),
|
||||
CreateButton::new("ticket_bug").label("Bug").emoji('🐛'),
|
||||
]);
|
||||
let embed = crate::feature::ticket::handler::panel_embed();
|
||||
let row = crate::feature::ticket::handler::panel_select_row();
|
||||
ctx.send(CreateReply::default().embed(embed).components(vec![row])).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue