Skip to content

Commit 7798740

Browse files
authored
Feat: Ticket participant (#24)
1 parent aceb940 commit 7798740

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

src/commands/commands.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ struct cmdStruct
7878
cmdFunc function;
7979

8080
std::list<dpp::command_option> args;
81+
dpp::permissions permissions;
8182
};
8283

8384
#endif // COMMANDS_H

src/commands/ticket_cmd.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,24 @@ void cmd::ticketCommand(dpp::cluster& bot, const dpp::slashcommand_t& event)
66
dpp::message message(event.command.channel_id, "Creating ticket...");
77
event.reply(message.set_flags(dpp::m_ephemeral));
88

9-
const dpp::channel ticketChannel = dpp::channel()
9+
dpp::channel ticketChannel = dpp::channel()
1010
.set_name(event.command.get_issuing_user().username)
1111
.set_type(dpp::CHANNEL_TEXT)
1212
.set_guild_id(event.command.guild_id)
1313
.set_parent_id(globals::category::ticketId)
1414
.set_permission_overwrite(event.command.guild_id, dpp::overwrite_type::ot_role, 0, dpp::p_view_channel)
1515
.set_permission_overwrite(event.command.get_issuing_user().id, dpp::overwrite_type::ot_member, dpp::p_view_channel, 0);
1616

17+
const dpp::command_interaction cmdData = event.command.get_command_interaction();
18+
if (!cmdData.options.empty())
19+
{
20+
if (const auto option = cmdData.options[0]; option.type == dpp::co_user)
21+
{
22+
const auto participantId = std::get<dpp::snowflake>(option.value);
23+
ticketChannel.set_permission_overwrite(participantId, dpp::overwrite_type::ot_member,dpp::p_view_channel, 0);
24+
}
25+
}
26+
1727
bot.channel_create(ticketChannel, [&bot, event](const dpp::confirmation_callback_t& callback) {
1828
if (!callback.is_error())
1929
{

src/main.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ std::list<cmdStruct> cmdList = {
1212
{ "topic", "Get a topic question", cmd::topicCommand },
1313
{ "coding", "Get a coding question", cmd::codingCommand },
1414
{ "close", "Close a ticket or forum post", cmd::closeCommand },
15-
{ "ticket", "Open a ticket", cmd::ticketCommand },
15+
{ "ticket", "Open a ticket", cmd::ticketCommand, { dpp::command_option(dpp::command_option_type::co_user, "participant", "Add participant", false) }},
1616
{ "code", "Formatting code on Discord", cmd::codeCommand },
1717
{ "project", "Get a project idea", cmd::projectCommand },
18-
{ "rule", "Get the server rules", cmd::ruleCommand, { dpp::command_option(dpp::command_option_type::co_integer, "number", "Rule to mention", false) } }
18+
{ "rule", "Get the server rules", cmd::ruleCommand, { dpp::command_option(dpp::command_option_type::co_integer, "number", "Rule to mention", false) }}
1919
};
2020

2121
int main()
@@ -40,9 +40,11 @@ int main()
4040
slashCommand.set_application_id(bot.me.id);
4141

4242
for (const dpp::command_option& arg : item.args)
43-
{
4443
slashCommand.add_option(arg);
45-
}
44+
45+
if (item.permissions)
46+
slashCommand.set_default_permissions(dpp::permission(item.permissions));
47+
4648
slashcommands.push_back(slashCommand);
4749
}
4850
bot.global_bulk_command_create(slashcommands);

0 commit comments

Comments
 (0)