Skip to content

Commit

Permalink
fix(roles): role update when linked to a specific guild (#411)
Browse files Browse the repository at this point in the history
  • Loading branch information
JustDams authored May 8, 2024
1 parent 9475fd0 commit 13feb87
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 14 deletions.
15 changes: 8 additions & 7 deletions commands/roles.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const SETUP_ELO = 'setup_elo'
const REMOVE_ELO = 'remove_elo'

const setupRoles = async (interaction) => {
if (getInteractionOption(interaction, 'remove_old')) await removeRoles(interaction)
await removeRoles(interaction, getInteractionOption(interaction, 'remove_old'))

const roles = []
const rolesFields = []
Expand Down Expand Up @@ -82,8 +82,7 @@ const setupRoles = async (interaction) => {
}

const generateRoles = async (interaction) => {
if (getInteractionOption(interaction, 'remove_old')) await removeRoles(interaction)

await removeRoles(interaction, getInteractionOption(interaction, 'remove_old'))
const roles = []

for (let i = 10; i >= 1; i--) {
Expand Down Expand Up @@ -145,16 +144,18 @@ const generateRoles = async (interaction) => {
}
}

const removeRoles = async (interaction) => {
const removeRoles = async (interaction, removeOnGuild) => {
const guildRoles = await GuildRoles.getRolesOf(interaction.guild.id)
if (!guildRoles) return

const roles = getRoleIds(guildRoles)

if (guildRoles) {
for (let i = 1; i <= 10; i++) {
if (guildRoles[`level${i}`] && interaction.guild.roles.cache.has(guildRoles[`level${i}`]))
await interaction.guild.roles.delete(guildRoles[`level${i}`]).catch(console.error)
if (removeOnGuild) {
for (let i = 1; i <= 10; i++) {
if (guildRoles[`level${i}`] && interaction.guild.roles.cache.has(guildRoles[`level${i}`]))
await interaction.guild.roles.delete(guildRoles[`level${i}`]).catch(console.error)
}
}

await GuildRoles.remove(interaction.guild.id)
Expand Down
2 changes: 1 addition & 1 deletion functions/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const getUsers = async (

if (parameters.length === 0 && currentUser && searchCurrentUser) {
parameters.push({ param: currentUser.faceitId, faceitId: true })
updateRoles(interaction.client, interaction.user.id)
updateRoles(interaction.client, interaction.user.id, interaction.guild.id)
}

let params = []
Expand Down
6 changes: 5 additions & 1 deletion functions/roles.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,11 @@ const setupRoles = async (client, user, guildId, remove) => {
const updateRoles = async (client, discordId, guildId, remove = false) => {
let user, guilds

if (discordId) user = [await User.get(discordId)].flat()
if (discordId) {
user = [await User.get(discordId)].flat()
if (user.length > 1) user = user.filter(e => e.guildId === guildId)
guildId = user.at(0).guildId
}

if (guildId) guilds = [guildId].flat()
else guilds = (await GuildCustomRole.getAll()).map(e => e.guildId).filter((e, i, a) => a.indexOf(e) === i)
Expand Down
2 changes: 1 addition & 1 deletion interactions/contextmenus/dailystats.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
discord: `<@${interaction.targetId}>`
}), interaction.locale)
}
await GuildRoles.updateRoles(interaction.client, user.discordId)
await GuildRoles.updateRoles(interaction.client, user.discordId, interaction.guild.id)
return Dailystats.sendCardWithInfo(interaction, {
param: user.faceitId,
faceitId: true
Expand Down
2 changes: 1 addition & 1 deletion interactions/contextmenus/last.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
discord: `<@${interaction.targetId}>`
}), interaction.locale)
}
await GuildRoles.updateRoles(interaction.client, user.discordId)
await GuildRoles.updateRoles(interaction.client, user.discordId, interaction.guild.id)
return Last.sendCardWithInfo(interaction, {
param: user.faceitId,
faceitId: true
Expand Down
2 changes: 1 addition & 1 deletion interactions/contextmenus/laststats.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
discord: `<@${interaction.targetId}>`
}), interaction.locale)
}
await GuildRoles.updateRoles(interaction.client, user.discordId)
await GuildRoles.updateRoles(interaction.client, user.discordId, interaction.guild.id)
return Laststats.sendCardWithInfo(interaction, {
param: user.faceitId,
faceitId: true
Expand Down
2 changes: 1 addition & 1 deletion interactions/contextmenus/monthstats.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
discord: `<@${interaction.targetId}>`
}), interaction.locale)
}
await GuildRoles.updateRoles(interaction.client, user.discordId)
await GuildRoles.updateRoles(interaction.client, user.discordId, interaction.guild.id)
return Monthstats.sendCardWithInfo(interaction, {
param: user.faceitId,
faceitId: true
Expand Down
2 changes: 1 addition & 1 deletion interactions/contextmenus/stats.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
discord: `<@${interaction.targetId}>`
}), interaction.locale)
}
await GuildRoles.updateRoles(interaction.client, user.discordId)
await GuildRoles.updateRoles(interaction.client, user.discordId, interaction.guild.id)
return Stats.sendCardWithInfo(interaction, {
param: user.faceitId,
faceitId: true
Expand Down

0 comments on commit 13feb87

Please sign in to comment.