made ping command
This commit is contained in:
@@ -6,3 +6,5 @@ edition = "2021"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
poise = "0.6.1"
|
||||||
|
tokio = { version = "1.43.0", features = ["rt-multi-thread"] }
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
use crate::{Context, Error};
|
||||||
|
|
||||||
|
#[poise::command(slash_command, prefix_command)]
|
||||||
|
pub async fn ping(
|
||||||
|
ctx: Context<'_>,
|
||||||
|
#[description = "The text to echo back"] text: String,
|
||||||
|
) -> Result<(), Error>
|
||||||
|
{
|
||||||
|
ctx.reply(text).await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
use crate::{Data, Error};
|
||||||
|
|
||||||
|
use poise::serenity_prelude as serenity;
|
||||||
|
|
||||||
|
use std::future::Future;
|
||||||
|
use std::pin::Pin;
|
||||||
|
|
||||||
|
pub fn event_handler<'a>(
|
||||||
|
_ctx: &'a serenity::Context,
|
||||||
|
event: &'a serenity::FullEvent,
|
||||||
|
_framework: poise::FrameworkContext<'a, Data, Error>,
|
||||||
|
_data: &'a Data,
|
||||||
|
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
|
||||||
|
Box::pin(async move {
|
||||||
|
if let serenity::FullEvent::Ready { data_about_bot } = event {
|
||||||
|
println!(
|
||||||
|
"Bot started as user \"{}\" with id {}",
|
||||||
|
data_about_bot.user.name,
|
||||||
|
data_about_bot.user.id
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
}
|
||||||
+42
-2
@@ -1,3 +1,43 @@
|
|||||||
fn main() {
|
mod cmds;
|
||||||
println!("Hello, world!");
|
mod events;
|
||||||
|
|
||||||
|
use poise::serenity_prelude as serenity;
|
||||||
|
|
||||||
|
struct Data {}
|
||||||
|
type Error = Box<dyn std::error::Error + Send + Sync>;
|
||||||
|
type Context<'a> = poise::Context<'a, Data, Error>;
|
||||||
|
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() {
|
||||||
|
let token = std::env::var("ASSISTANT_TOKEN").expect("missing ASSISTANT_TOKEN env var");
|
||||||
|
let intents = serenity::GatewayIntents::all();
|
||||||
|
|
||||||
|
let peek_len = 27;
|
||||||
|
let token_peek = &token[..peek_len];
|
||||||
|
let token_end_len = token[peek_len..].len();
|
||||||
|
println!("Token: {}{}", token_peek, "*".repeat(token_end_len));
|
||||||
|
|
||||||
|
|
||||||
|
let framework = poise::Framework::builder()
|
||||||
|
.options(poise::FrameworkOptions {
|
||||||
|
commands: vec![cmds::ping()],
|
||||||
|
event_handler: events::event_handler, // error here
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.setup(|ctx, _ready, framework| {
|
||||||
|
Box::pin(async move {
|
||||||
|
poise::builtins::register_globally(ctx, &framework.options().commands).await?;
|
||||||
|
Ok(Data {})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
|
||||||
|
let mut bot = serenity::ClientBuilder::new(token, intents)
|
||||||
|
.framework(framework)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
println!("Starting bot...");
|
||||||
|
bot.start().await.unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user