update/view excluded roles via config

This commit is contained in:
SowinskiBraeden committed 2024-11-10 19:29:45 -08:00
1 parent a536bc1045
commit 360fd450eb
2 files changed
+62 -20

No files matched your search

+61 -19
View File
@@ -217,26 +217,41 @@ module.exports = {
}, },
{ {
name: "exclude", name: "exclude",
description: "Exclude roles that users can use to claim an armband", description: "Exclude roles that can be used to claim armbands",
value: "exclude", value: "exclude",
type: CommandOptions.SubCommand, type: CommandOptions.SubCommandGroup,
options: [ options: [
{ {
name: "action", name: "add",
description: "Add or remove a role from the exclude list.", description: "Configure role to be excluded",
value: "action", value: "add",
type: CommandOptions.String, type: CommandOptions.SubCommand,
choices: [ options: [{
{ name: 'add', value: 'add' }, { name: 'remove', value: 'remove' },
],
required: true,
},
{
name: "role", name: "role",
description: "The role to manage", description: "Role to confiure",
value: "role", value: "role",
type: CommandOptions.Role, type: CommandOptions.Role,
required: true, required: true,
}]
},
{
name: "remove",
description: "Remove configured role thats excluded",
value: "remove",
type: CommandOptions.SubCommand,
options: [{
name: "role",
description: "Role to remove",
value: "role",
type: CommandOptions.Role,
required: true,
}]
},
{
name: "view",
description: "View the configured excluded roles",
value: "view",
type: CommandOptions.SubCommand,
}, },
] ]
}, },
@@ -605,27 +620,54 @@ module.exports = {
return interaction.send({ embeds: [successSetAdminRoleEmbed] }); return interaction.send({ embeds: [successSetAdminRoleEmbed] });
case 'exclude': case 'exclude':
if (args[0].options[0].value == 'add') { const exclude_config = args[0].options[0].name;
client.dbo.collection('guilds').updateOne({'server.serverID': GuildDB.serverID}, {$push: {'server.excludedRoles': args[0].options[1].value}}, (err, res) => { const exclude_roleid = ['add', 'remove'].includes(exclude_config) ? args[0].options[0].options[0].value : null;
if (exclude_config == 'add') {
client.dbo.collection('guilds').updateOne({'server.serverID': GuildDB.serverID}, {$push: {'server.excludedRoles': exclude_roleid}}, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}) })
const successExcludeEmbed = new EmbedBuilder() const successExcludeEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
.setDescription(`**Done!**\n> Successfully added <@&${args[0].options[1].value}> to list of excluded roles.`) .setDescription(`**Done!**\n> Successfully added <@&${exclude_roleid}> to list of excluded roles.`)
return interaction.send({ embeds: [successExcludeEmbed] }); return interaction.send({ embeds: [successExcludeEmbed] });
} else if (args[0].options[0].value == 'remove') { } else if (exclude_config == 'remove') {
client.dbo.collection('guilds').updateOne({'server.serverID': GuildDB.serverID}, {$pull: {'server.excludedRoles': args[0].options[1].value}}, (err, res) => { client.dbo.collection('guilds').updateOne({'server.serverID': GuildDB.serverID}, {$pull: {'server.excludedRoles': exclude_roleid}}, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}) })
const successRemoveExcludeEmbed = new EmbedBuilder() const successRemoveExcludeEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
.setDescription(`**Done!**\n> Successfully removed <@&${args[0].options[1].value}> to list of excluded roles.`) .setDescription(`**Done!**\n> Successfully removed <@&${exclude_roleid}> to list of excluded roles.`)
return interaction.send({ embeds: [successRemoveExcludeEmbed] }); return interaction.send({ embeds: [successRemoveExcludeEmbed] });
} else if (exclude_config == "view") {
if (GuildDB.excludedRoles.length == 0) {
const noExcludedRoles = new EmbedBuilder()
.setColor(client.config.Colors.Default)
.setTitle('Excluded Roles')
.setDescription('> There have been no excluded roles');
return interaction.send({ embeds: [noExcludedRoles] });
}
const excludedRolesEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default)
.setTitle('Excluded Roles')
let des = '';
for (let i = 0; i < GuildDB.excludedRoles.length; i++) {
des += `\n> <@&${GuildDB.excludedRoles[i]}>`;
}
excludedRolesEmbed.setDescription(des);
return interaction.send({ embeds: [excludedRolesEmbed] });
} }
case 'reset': case 'reset':
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "dayzr-bot", "name": "dayzr-bot",
"version": "13.3.10", "version": "13.3.11",
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.", "description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
"main": "index.js", "main": "index.js",
"nodemonConfig": { "nodemonConfig": {