Skip to content

Commit d47dcbf

Browse files
committed
Sus join detection
1 parent 80d012f commit d47dcbf

File tree

5 files changed

+23
-0
lines changed

5 files changed

+23
-0
lines changed

config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"staff_news": 854429525147385895,
3535
"discord_updates": 854429524976861233,
3636
"mod_log": 854429525147385889,
37+
"filter_log": 854429525147385890,
3738
"member_log": 854429525315944457,
3839
"message_edited": 854429525480046595,
3940
"message_deleted": 854429525480046596,

src/command_modules/db_commands.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ dpp::task<> db_commands::add_text_command(const dpp::form_submit_t &event, const
139139
event.edit_original_response(dpp::message(std::format("Command `{}` added successfully.", command_name)));
140140
}
141141

142+
// TODO interactive UI for adding embed commands
142143
dpp::task<> db_commands::add_embed_command(const dpp::slashcommand_t &event, const nlohmann::json &config, std::unordered_map<std::string, embed_command> &embed_commands, sqlite3 *db) {
143144
// Send "thinking" response to allow time for DB operation
144145
dpp::async thinking = event.co_thinking(true);

src/listeners/members.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,20 @@ void members::on_leave(const dpp::guild_member_remove_t& event, const nlohmann::
144144
event.owner->message_create(dpp::message(config["log_channel_ids"]["member_log"], embed));
145145
}
146146

147+
dpp::task<> members::on_sus_join(const dpp::guild_join_request_delete_t& event, const nlohmann::json& config) {
148+
dpp::confirmation_callback_t user_conf = co_await event.owner->co_user_get_cached(event.user_id);
149+
if (!user_conf.is_error()) {
150+
dpp::user_identified user = std::get<dpp::user_identified>(user_conf.value);
151+
dpp::embed embed = dpp::embed().set_color(dpp::colors::red).set_title("User attempted to join but failed CAPTCHA")
152+
.set_thumbnail(user.get_avatar_url())
153+
.set_description(user.username)
154+
.add_field("User ID", event.user_id.str(), false)
155+
.add_field("Account Created:", std::format("<t:{}>",
156+
static_cast<time_t>(event.user_id.get_creation_time())), false);
157+
event.owner->message_create(dpp::message(config["log_channel_ids"]["filter_log"], embed));
158+
}
159+
}
160+
147161
dpp::task<> members::on_member_edit(const dpp::guild_audit_log_entry_create_t& event, const nlohmann::json& config) {
148162
dpp::confirmation_callback_t user_conf = co_await event.owner->co_user_get_cached(event.entry.target_id);
149163
if (!user_conf.is_error()) {

src/listeners/members.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ namespace members {
3030
dpp::task<> on_unban(const dpp::guild_audit_log_entry_create_t& event, const nlohmann::json& config);
3131
dpp::task<> on_join(const dpp::guild_member_add_t& event, const nlohmann::json& config, std::vector<dpp::invite>& invites);
3232
void on_leave(const dpp::guild_member_remove_t& event, const nlohmann::json& config);
33+
dpp::task<> on_sus_join(const dpp::guild_join_request_delete_t& event, const nlohmann::json& config);
3334
dpp::task<> on_member_edit(const dpp::guild_audit_log_entry_create_t& event, const nlohmann::json& config);
3435
dpp::task<> on_roles_change(const dpp::guild_audit_log_entry_create_t& event, const nlohmann::json& config);
3536
}

src/main.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,9 @@ int main(int argc, char* argv[]) {
301301
co_return;
302302
}
303303
switch (event.entry.type) {
304+
case dpp::aut_member_kick:
305+
co_await members::on_kick(event, config);
306+
break;
304307
case dpp::aut_member_ban_add:
305308
co_await members::on_ban(event, config);
306309
break;
@@ -317,6 +320,9 @@ int main(int argc, char* argv[]) {
317320
break;
318321
}
319322
});
323+
bot.on_guild_join_request_delete([&config](const dpp::guild_join_request_delete_t &event) -> dpp::task<> {
324+
co_await members::on_sus_join(event, config);
325+
});
320326
bot.on_guild_member_add([&config, &invites](const dpp::guild_member_add_t &event) -> dpp::task<> {
321327
co_await members::on_join(event, config, invites);
322328
});

0 commit comments

Comments
 (0)