From c04abccbb6c16bacdba6751795024607fddfa611 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 14 Jan 2026 01:01:37 +0100 Subject: [PATCH] Ask user why he joined the server + add him the member role --- include/airi/airi.h | 4 +++- src/main.cpp | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/include/airi/airi.h b/include/airi/airi.h index ac79da1..0837617 100644 --- a/include/airi/airi.h +++ b/include/airi/airi.h @@ -1,4 +1,6 @@ #pragma once #include -#include \ No newline at end of file +#include + +#include \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 9332cd0..6ab782f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,8 +18,43 @@ int main(int argc, char const *argv[]) { } }); - bot.on_guild_member_add([&bot](const dpp::guild_member_add_t& event) { - bot.guild_member_add_role(event.adding_guild.id, event.added.user_id, (dpp::snowflake)"979375572054589471"); + bot.on_button_click([&bot](const dpp::button_click_t& event) { + dpp::interaction_modal_response modal("reason", "uwu2x"); + modal.add_component( + dpp::component() + .set_label("Why did you join this server ?") + .set_id("reason") + .set_type(dpp::cot_text) + .set_text_style(dpp::text_paragraph) + .set_required(true) + ); + event.dialog(modal); + }); + + bot.on_form_submit([&bot](const dpp::form_submit_t& event) { + bot.guild_member_add_role( + event.command.guild_id, + event.command.get_issuing_user().id, + dpp::snowflake("979375572054589471") + ); + + std::string reason_text = std::get(event.components[0].value); + dpp::embed embed; + embed.set_color(dpp::colors::sti_blue) + .set_title("Welcome " + event.command.get_issuing_user().username) + .set_description("**" + event.command.get_issuing_user().username + "** joined the server because : " + reason_text) + .set_timestamp(time(nullptr)); + + bot.channel_get( + dpp::snowflake("979375590228500551"), + [&bot, embed](const dpp::confirmation_callback_t& callback) { + if (callback.is_error()) return; + const dpp::channel& channel = std::get(callback.value); + bot.message_create(dpp::message(channel.id, embed)); + } + ); + + event.reply(); }); bot.on_ready([&bot](const dpp::ready_t& event) {