update/view excluded roles via config
This commit is contained in:
2 files changed
+62
-20
No files matched your search
+61
-19
@@ -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
@@ -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": {
|
||||||
|
|||||||
Reference in new issue
Block a user