From eafb6dc33c0835bfe7e53b2f24e765eb4fbe6fcd Mon Sep 17 00:00:00 2001 From: Braeden Sowinski Date: Thu, 30 Mar 2023 13:43:38 -0700 Subject: [PATCH] member role --- commands/config.js | 26 ++++++++++++++++++++++++++ commands/gamertag-link.js | 16 ++++++++++++---- package.json | 2 +- structures/DayzArmbands.js | 2 ++ 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/commands/config.js b/commands/config.js index 50cb282..9721d5a 100644 --- a/commands/config.js +++ b/commands/config.js @@ -117,6 +117,19 @@ module.exports = { required: true, }] }, + { + name: "member_role", + description: "Role to give users when they join.", + value: "member_role", + type: 1, + options: [{ + name: "role", + description: "Role to configure", + value: "role", + type: 8, + required: true, + }] + }, { name: "bot_admin_role", description: "Set/remove bot admin role", @@ -480,6 +493,19 @@ module.exports = { return interaction.send({ embeds: [successEmbed] }); + } else if (args[0].name == 'member_role') { + const role = args[0].options[0].value; + + client.dbo.collection("guilds").updateOne({"server.serverID":GuildDB.serverID},{$set: {"server.memberRole": role}}, function(err, res) { + if (err) return client.sendInternalError(interaction, err); + }); + + const successEmbed = new EmbedBuilder() + .setDescription(`Successfully set <@&${role}> to give to users who link they join.`) + .setColor(client.config.Colors.Green); + + return interaction.send({ embeds: [successEmbed] }); + } else if (args[0].name == 'starting_balance') { client.dbo.collection("guilds").updateOne({"server.serverID": GuildDB.serverID}, {$set: {"server.startingBalance":args[0].options[0].value}}, function(err, res) { if (err) return client.sendInternalError(interaction, err); diff --git a/commands/gamertag-link.js b/commands/gamertag-link.js index b1f56b2..47b7ccf 100644 --- a/commands/gamertag-link.js +++ b/commands/gamertag-link.js @@ -50,11 +50,19 @@ module.exports = { $set: { 'server.playerstats': GuildDB.playerstats, } - }) + }); - const role = interaction.guild.roles.cache.get(GuildDB.linkedGamertagRole); - const member = interaction.guild.members.cache.get(interaction.member.user.id); - member.roles.add(role); + if (client.exists(GuildDB.linkedGamertagRole)) { + let role = interaction.guild.roles.cache.get(GuildDB.linkedGamertagRole); + let member = interaction.guild.members.cache.get(interaction.member.user.id); + member.roles.add(role); + } + + if (client.exists(GuildDB.memberRole)) { + let role = interaction.guild.roles.cache.get(GuildDB.memberRole); + let member = interaction.guild.members.cache.get(interaction.member.user.id); + member.roles.add(role); + } let connectedEmbed = new EmbedBuilder() .setColor(client.config.Colors.Default) diff --git a/package.json b/package.json index f9f7754..75d7107 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayz-armbands", - "version": "5.9.2", + "version": "5.10.0", "description": "A General Purpose Discord Bot for DayZ Servers.", "main": "index.js", "nodemonConfig": { diff --git a/structures/DayzArmbands.js b/structures/DayzArmbands.js index 9d5c116..304055c 100644 --- a/structures/DayzArmbands.js +++ b/structures/DayzArmbands.js @@ -719,6 +719,7 @@ class DayzArmbands extends Client { incomeRoles: [], linkedGamertagRole: "", startingBalance: 500, + memberRole: "", } } @@ -776,6 +777,7 @@ class DayzArmbands extends Client { linkedGamertagRole: guild.server.linkedGamertagRole, incomeRoles: guild.server.incomeRoles, startingBalance: guild.server.startingBalance, + memberRole: guild.server.memberRole, }; }