Skip to content

Commit a191614

Browse files
committed
Not all invites have a channel or known creator
1 parent 18bf398 commit a191614

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

src/command_modules/moderation.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,15 @@ dpp::task<> moderation::inviteinfo(const dpp::slashcommand_t &event) {
169169
.set_title("Invite to " + invite.destination_guild.name)
170170
.add_field("Members total", std::to_string(invite.approximate_member_count), true)
171171
.add_field("Members online", std::to_string(invite.approximate_presence_count), true)
172-
.add_field("Invite creator", invite.inviter.username, false)
173-
.add_field("Server ID", invite.guild_id.str(), true)
174-
.add_field("Channel name", invite.destination_channel.name, true)
175-
.add_field("Invite uses", std::to_string(invite.uses), false)
172+
.add_field("Server ID", invite.guild_id.str(), false)
173+
.add_field("Invite uses", std::to_string(invite.uses), true)
176174
.set_timestamp(invite.created_at);
175+
if (invite.channel_id != 0) {
176+
embed.add_field("Channel name", invite.destination_channel.name, true);
177+
}
178+
if (invite.inviter_id != 0) {
179+
embed.add_field("Invite creator", invite.inviter.username, false);
180+
}
177181
if (invite.expires_at == 0) {
178182
embed.add_field("Expires", "Never", false);
179183
} else {

src/listeners/guild.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@
1717

1818
void guild::on_invite_created(const dpp::invite_create_t &event, const nlohmann::json& config, std::vector<dpp::invite>& invites) {
1919
invites.push_back(event.created_invite);
20+
// Don't log invites without a known creator
21+
if (event.created_invite.inviter_id == 0) {
22+
return;
23+
}
2024

2125
dpp::embed embed = dpp::embed().set_color(util::color::GREEN).set_thumbnail(event.created_invite.inviter.get_avatar_url())
2226
.set_title("Invite Created")
2327
.add_field("Invite Creator", event.created_invite.inviter.username, true)
2428
.add_field("User ID", event.created_invite.inviter.id.str(), true)
25-
.add_field("Invite Code", event.created_invite.code, false)
26-
.add_field("Invite Channel", event.created_invite.destination_channel.get_mention(), true);
29+
.add_field("Invite Code", event.created_invite.code, false);
30+
if (event.created_invite.channel_id != 0) {
31+
embed.add_field("Invite Channel", event.created_invite.destination_channel.get_mention(), true);
32+
}
2733
if (event.created_invite.expires_at == 0) {
2834
embed.add_field("Expires", "Never", true);
2935
} else {
@@ -33,7 +39,6 @@ void guild::on_invite_created(const dpp::invite_create_t &event, const nlohmann:
3339
}
3440

3541
void guild::on_invite_deleted(const dpp::invite_delete_t &event, const nlohmann::json& config, std::vector<dpp::invite>& invites) {
36-
3742
dpp::embed embed = dpp::embed().set_color(util::color::RED).set_title("Invite Deleted");
3843
// Find invite in cache
3944
auto invite = invites.begin();
@@ -45,10 +50,15 @@ void guild::on_invite_deleted(const dpp::invite_delete_t &event, const nlohmann:
4550
embed.add_field("Invite Creator", invite->inviter.username, true)
4651
.add_field("User ID", invite->inviter.id.str(), true)
4752
.add_field("Invite Code", invite->code, false)
48-
.add_field("Invite Channel", invite->destination_channel.get_mention(), true)
4953
.add_field("Uses", std::to_string(invite->uses), true);
54+
if (invite->channel_id != 0) {
55+
embed.add_field("Invite Channel", invite->destination_channel.get_mention(), true);
56+
}
5057
// Delete invite from cache
5158
invites.erase(invite);
5259
}
53-
event.owner->message_create(dpp::message(config["log_channel_ids"]["invites"], embed));
60+
// Don't log invites without a known creator
61+
if (!embed.fields[0].value.empty()) {
62+
event.owner->message_create(dpp::message(config["log_channel_ids"]["invites"], embed));
63+
}
5464
}

src/listeners/messages.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ void messages::on_message(const dpp::message_create_t& event, const nlohmann::js
8282
}
8383
}
8484

85+
// TODO: cache images sent in deleted messages
8586
dpp::task<> messages::on_message_deleted(const dpp::message_delete_t& event, const nlohmann::json& config) {
8687
dpp::confirmation_callback_t msg_conf = co_await util::get_message_cached(event.owner, event.id, event.channel_id);
8788
dpp::embed embed = dpp::embed().set_color(util::color::RED).set_title("Message Deleted")
@@ -178,7 +179,7 @@ dpp::task<> messages::on_reaction(const dpp::message_reaction_add_t& event, cons
178179
std::string title = std::string("Ticket for ") + event.reacting_user.username;
179180
dpp::snowflake channel_id = config["log_channel_ids"]["tickets"];
180181
dpp::confirmation_callback_t confirmation = co_await event.owner->co_thread_create
181-
(title, channel_id, 10080, dpp::CHANNEL_PRIVATE_THREAD, false, 0);
182+
(title, channel_id, config["ticket_auto_archive_mins"], dpp::CHANNEL_PRIVATE_THREAD, false, 0);
182183
if (confirmation.is_error()) {
183184
event.owner->direct_message_create(event.reacting_user.id, dpp::message("Failed to create ticket channel."));
184185
}

0 commit comments

Comments
 (0)