Skip to content

Commit

Permalink
update: teams
Browse files Browse the repository at this point in the history
  • Loading branch information
JustDams committed Nov 1, 2023
1 parent 2c96349 commit e730127
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 59 deletions.
56 changes: 29 additions & 27 deletions commands/team.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
const { maxLengthTeamName, defaultGame } = require('../config.json')
const { maxLengthTeamName, defaultGame, itemByPage } = require('../config.json')
const Discord = require('discord.js')
const Team = require('../database/team')
const UserTeam = require('../database/userTeam')
const User = require('../database/user')
const errorCard = require('../templates/errorCard')
const { isInteractionSubcommandEqual, getInteractionOption, getCardsConditions } = require('../functions/commands')
const { getCardsConditions } = require('../functions/commands')
const successCard = require('../templates/successCard')
const { getTranslation, getTranslations } = require('../languages/setup')
const { getStats } = require('../functions/apiHandler')
const { isInteractionSubcommandEqual, getInteractionOption, generateOption } = require('../functions/utility')

const INFO = 'info'
const CREATE = 'create'
Expand Down Expand Up @@ -45,34 +46,34 @@ const infoTeam = async (interaction, currentTeam, user) => {
if (currentTeam) userTeams.push(currentTeam)
if (userTeams.length === 0) return errorCard('error.user.noTeam', interaction.locale)

const options = Array.from(new Set(userTeams.map(JSON.stringify)))
.map(JSON.parse)
.map(userteam => {
if (userteam) return {
label: userteam.name,
description: getTranslation('strings.infoTeam', interaction.locale, {
teamName: userteam.name,
}),
value: JSON.stringify({
tn: userteam.slug,
u: user,
})
const options = userTeams.map(userteam => {
return {
label: userteam.name,
description: getTranslation('strings.infoTeam', interaction.locale, {
teamName: userteam.name,
}),
values: {
slug: userteam.slug,
userId: user
}
})
.filter(e => e !== undefined)
}
})

const row = new Discord.ActionRowBuilder()
.addComponents(
new Discord.StringSelectMenuBuilder()
.setCustomId('teamInfoSelector')
.setPlaceholder(getTranslation('strings.selectTeam', interaction.locale))
.addOptions(options.slice(0, 25)))
return Promise.all(options.map(option => generateOption(interaction, option)))
.then(options => {
const row = new Discord.ActionRowBuilder()
.addComponents(
new Discord.StringSelectMenuBuilder()
.setCustomId('teamInfoSelector')
.setPlaceholder(getTranslation('strings.selectTeam', interaction.locale))
.addOptions(options.slice(0, itemByPage)))

return {
components: [
row
]
}
return {
components: [
row
]
}
})
}

const updateTeam = async (interaction, currentTeam) => {
Expand Down Expand Up @@ -281,6 +282,7 @@ module.exports = {
- ${ADD_USER} [<steam_parameters> <faceit_parameters>]
- ${REMOVE_USER} [<steam_parameters> <faceit_parameters>]`,
type: 'utility',
ephemeral: true,
async execute(interaction) {
const user = interaction.user.id
const currentTeam = await Team.getCreatorTeam(user)
Expand Down
50 changes: 18 additions & 32 deletions interactions/selectmenus/teamInfosSelector.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,31 @@
const { color, emojis, defaultGame } = require('../../config.json')
const Discord = require('discord.js')
const loadingCard = require('../../templates/loadingCard')
const { getCardByUserType } = require('../../templates/loadingCard')
const UserTeam = require('../../database/userTeam')
const Team = require('../../database/team')
const User = require('../../database/user')
const errorCard = require('../../templates/errorCard')
const { setOptionValues } = require('../../functions/dateStats')
const { getStats } = require('../../functions/apiHandler')
const { updateDefaultOption } = require('../../functions/utility')

module.exports = {
name: 'teamInfoSelector',
async execute(interaction, values) {
const options = interaction.message.components.at(0).components
.filter(e => e instanceof Discord.StringSelectMenuComponent)
.map(msm => {
return msm.options.map(o => {
const active = JSON.parse(o.value).tn.normalize() === values.tn.normalize()
o.emoji = active ? emojis.select.balise : undefined
o.default = active
async execute(interaction, values, newUser = false) {
const optionComponent = interaction.message.components.at(0).components

updateDefaultOption(optionComponent, interaction.values[0], true)

setOptionValues(o, values)
const components = [
new Discord.ActionRowBuilder()
.addComponents(
new Discord.StringSelectMenuBuilder()
.setCustomId('teamInfoSelector')
.addOptions(optionComponent.at(0).data.options))
]

return o
})
}).at(0)

const components = new Discord.ActionRowBuilder()
.addComponents(
new Discord.StringSelectMenuBuilder()
.setCustomId('teamInfoSelector')
.addOptions(options))

loadingCard(interaction)
const currentTeam = await Team.getTeamSlug(values.tn)
getCardByUserType(newUser, interaction)

const currentTeam = await Team.getTeamSlug(values.slug)
const teamUsers = await UserTeam.getTeamUsers(currentTeam.slug)

// check if user is part of the team if not the creator
Expand All @@ -43,9 +36,7 @@ module.exports = {
const userIsPartOfTeam = teamUsers.find(user => user.faceitId === currentUser.faceitId)
if (!userIsPartOfTeam) return {
...errorCard('error.command.teamNoAccess', interaction.locale),
components: [
components
]
components
}
}

Expand Down Expand Up @@ -85,12 +76,7 @@ module.exports = {
embeds: [
embed,
],
components: [
components
]
components
}
},
getJSON(interaction, json) {
return JSON.parse(interaction.values)
}
}

0 comments on commit e730127

Please sign in to comment.