replaced allow_slash with a method to disallow text commands for soundboard. made string argument selector stricter
This commit is contained in:
@ -7,6 +7,7 @@ use crate::{
|
||||
THEME_COLOR,
|
||||
};
|
||||
|
||||
use crate::framework::CommandKind;
|
||||
use std::{collections::HashMap, sync::Arc};
|
||||
|
||||
#[command]
|
||||
@ -62,6 +63,28 @@ pub async fn help(
|
||||
)
|
||||
};
|
||||
|
||||
let args = if command.args.is_empty() {
|
||||
"**Arguments**
|
||||
• *This command has no arguments*"
|
||||
.to_string()
|
||||
} else {
|
||||
format!(
|
||||
"**Arguments**
|
||||
{}",
|
||||
command
|
||||
.args
|
||||
.iter()
|
||||
.map(|a| format!(
|
||||
" • `{}` {} - {}",
|
||||
a.name,
|
||||
if a.required { "" } else { "[optional]" },
|
||||
a.description
|
||||
))
|
||||
.collect::<Vec<String>>()
|
||||
.join("\n")
|
||||
)
|
||||
};
|
||||
|
||||
invoke
|
||||
.respond(
|
||||
ctx.http.clone(),
|
||||
@ -69,15 +92,28 @@ pub async fn help(
|
||||
e.title(format!("{} Help", command_name))
|
||||
.color(THEME_COLOR)
|
||||
.description(format!(
|
||||
"**Aliases**
|
||||
"**Available In**
|
||||
`Slash Commands` {}
|
||||
` Text Commands` {}
|
||||
|
||||
**Aliases**
|
||||
{}
|
||||
|
||||
**Overview**
|
||||
• {}
|
||||
**Arguments**
|
||||
{}
|
||||
|
||||
{}",
|
||||
if command.kind != CommandKind::Text {
|
||||
"✅"
|
||||
} else {
|
||||
"❎"
|
||||
},
|
||||
if command.kind != CommandKind::Slash {
|
||||
"✅"
|
||||
} else {
|
||||
"❎"
|
||||
},
|
||||
command
|
||||
.names
|
||||
.iter()
|
||||
@ -85,17 +121,7 @@ pub async fn help(
|
||||
.collect::<Vec<String>>()
|
||||
.join(" "),
|
||||
command.desc,
|
||||
command
|
||||
.args
|
||||
.iter()
|
||||
.map(|a| format!(
|
||||
" • `{}` {} - {}",
|
||||
a.name,
|
||||
if a.required { "" } else { "[optional]" },
|
||||
a.description
|
||||
))
|
||||
.collect::<Vec<String>>()
|
||||
.join("\n"),
|
||||
args,
|
||||
examples
|
||||
))
|
||||
}),
|
||||
|
@ -186,6 +186,7 @@ pub async fn upload_new_sound(
|
||||
kind = "String",
|
||||
required = true
|
||||
)]
|
||||
#[example("`/delete beep` - delete the sound with the name \"beep\"")]
|
||||
pub async fn delete_sound(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
@ -278,6 +279,8 @@ pub async fn delete_sound(
|
||||
description = "Sound name or ID to change the privacy setting of",
|
||||
required = true
|
||||
)]
|
||||
#[example("`/public 12` - change sound with ID 12 to private")]
|
||||
#[example("`/public 12` - change sound with ID 12 back to public")]
|
||||
pub async fn change_public(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
|
@ -184,14 +184,14 @@ __Available ambience sounds:__
|
||||
}
|
||||
|
||||
#[command("soundboard")]
|
||||
#[aliases("board")]
|
||||
#[group("Play")]
|
||||
#[kind(Slash)]
|
||||
#[description("Get a menu of sounds with buttons to play them")]
|
||||
#[arg(
|
||||
name = "1",
|
||||
description = "Query for sound button 1",
|
||||
kind = "String",
|
||||
required = false
|
||||
required = true
|
||||
)]
|
||||
#[arg(
|
||||
name = "2",
|
||||
|
@ -40,6 +40,8 @@ fn format_search_results(search_results: Vec<Sound>) -> CreateGenericResponse {
|
||||
kind = "Boolean",
|
||||
required = false
|
||||
)]
|
||||
#[example("`/list` - list sounds uploaded to the server you're in")]
|
||||
#[example("`/list [me: True]` - list sounds you have uploaded across all servers")]
|
||||
pub async fn list_sounds(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
|
@ -20,6 +20,9 @@ use crate::{
|
||||
kind = "Integer",
|
||||
required = false
|
||||
)]
|
||||
#[example("`/volume` - check the volume on the current server")]
|
||||
#[example("`/volume 100` - reset the volume on the current server")]
|
||||
#[example("`/volume 10` - set the volume on the current server to 10%")]
|
||||
pub async fn change_volume(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
@ -66,7 +69,7 @@ pub async fn change_volume(
|
||||
|
||||
#[command("prefix")]
|
||||
#[required_permissions(Restricted)]
|
||||
#[allow_slash(false)]
|
||||
#[kind(Text)]
|
||||
#[group("Settings")]
|
||||
#[description("Change the prefix of the bot for using non-slash commands")]
|
||||
#[arg(
|
||||
@ -97,7 +100,7 @@ pub async fn change_prefix(
|
||||
}
|
||||
|
||||
if let Some(prefix) = args.named("prefix") {
|
||||
if prefix.len() <= 5 {
|
||||
if prefix.len() <= 5 && !prefix.is_empty() {
|
||||
let reply = format!("Prefix changed to `{}`", prefix);
|
||||
|
||||
{
|
||||
@ -142,7 +145,7 @@ pub async fn change_prefix(
|
||||
|
||||
#[command("roles")]
|
||||
#[required_permissions(Restricted)]
|
||||
#[allow_slash(false)]
|
||||
#[kind(Text)]
|
||||
#[group("Settings")]
|
||||
#[description("Change the roles allowed to use the bot")]
|
||||
pub async fn set_allowed_roles(
|
||||
@ -240,6 +243,8 @@ INSERT INTO roles (guild_id, role)
|
||||
description = "Name or ID of sound to set as your greet sound",
|
||||
required = false
|
||||
)]
|
||||
#[example("`/greet` - remove your join sound")]
|
||||
#[example("`/greet 1523` - set your join sound to sound with ID 1523")]
|
||||
pub async fn set_greet_sound(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
@ -312,6 +317,8 @@ pub async fn set_greet_sound(
|
||||
#[group("Settings")]
|
||||
#[description("Configure whether users should be able to use join sounds")]
|
||||
#[required_permissions(Restricted)]
|
||||
#[example("`/allow_greet` - disable greet sounds in the server")]
|
||||
#[example("`/allow_greet` - re-enable greet sounds in the server")]
|
||||
pub async fn allow_greet_sounds(
|
||||
ctx: &Context,
|
||||
invoke: &(dyn CommandInvoke + Sync + Send),
|
||||
|
Reference in New Issue
Block a user