forked from
awoo.ren/fluxer-rs
this repo has no description
1use fluxer_rs::{
2 api::{FluxerApiHandler, channels::messages::SendMessageBuilder},
3 error::FluxerRsError,
4 gateway::dispatch::DispatchHandlerTrait,
5 high_level::command_handler::CommandHandler,
6 register_commands,
7 serde::types::{
8 guild::GuildCreateData,
9 message::{
10 EmbedAuthorBuilder, EmbedBuilder, EmbedFieldBuilder, EmbedFooterBuilder,
11 EmbedMediaBuilder, MessageData,
12 },
13 },
14};
15
16use crate::commands::{
17 createrole::CreateRoleCommand, deleterole::DeleteRoleCommand, edit::EditCommand,
18 giverole::GiveRoleCommand, ping::PingCommand, react::ReactCommand,
19 remove_react::RemoveReactCommand, removerole::RemoveRoleCommand,
20};
21
22pub struct ColorbotDispatchHandler {}
23
24impl DispatchHandlerTrait for ColorbotDispatchHandler {
25 async fn handle_message_create_dispatch(
26 &self,
27 data: MessageData,
28 api: &FluxerApiHandler,
29 ) -> Result<(), FluxerRsError> {
30 let mut cmd_handler = CommandHandler::init("!".to_string());
31
32 register_commands!(cmd_handler,[
33 {"giverole", GiveRoleCommand},
34 {"ping", PingCommand},
35 {"edit", EditCommand},
36 {"react", ReactCommand},
37 {"removereact", RemoveReactCommand},
38 {"removerole", RemoveRoleCommand},
39 {"createrole", CreateRoleCommand},
40 {"deleterole", DeleteRoleCommand},
41 ]);
42
43 cmd_handler.handle(&data, api).await
44 }
45
46 async fn handle_guild_create_dispatch(
47 &self,
48 data: GuildCreateData,
49 api: &FluxerApiHandler,
50 ) -> Result<(), FluxerRsError> {
51 if data.id == "1473686979970875591" {
52 api
53 .execute_call(
54 SendMessageBuilder::default()
55 .content("Mhyello i am online".to_string())
56 .channel_id("1474424011696861241".to_string())
57 .embeds(vec![
58 EmbedBuilder::default()
59 .title("Added to Queue".to_string())
60 .color(0x4d6fb7)
61 .fields(vec![
62 EmbedFieldBuilder::default().name("Tracka".to_string()).value("Sussy bakka").inline(true).build().unwrap(),
63 EmbedFieldBuilder::default().name("Artist".to_string()).value("Sussy bakka").inline(true).build().unwrap(),
64 EmbedFieldBuilder::default().name("Durationa".to_string()).value("Sussy bakka").inline(true).build().unwrap(),
65 EmbedFieldBuilder::default().name("Position in Queue".to_string()).value("Sussy bakka").inline(true).build().unwrap()
66 ])
67 .footer(EmbedFooterBuilder::default().text("Requested by the goober".to_string()).build().unwrap())
68 .author(EmbedAuthorBuilder::default().name("GOOB".to_string()).icon_url("https://fluxerusercontent.com/avatars/1472242534880579616/4c64d1e4.webp".to_string()).build().unwrap())
69 .image(EmbedMediaBuilder::default().url("https://s3.animalia.bio/animals/photos/full/1.25x1/sahra11jpg.webp".to_string()).build().unwrap())
70 .build()
71 .unwrap(),
72 ]
73 )
74 .message_reference(None)
75 .build().unwrap()).await?;
76 }
77 Ok(())
78 }
79}