From 56e8401b92d49555e8423f89fdaf0e882c5962af Mon Sep 17 00:00:00 2001 From: bodombeach Date: Thu, 30 May 2024 15:49:15 +0200 Subject: [PATCH] improved /licence possible replies --- .gitignore | 3 ++- db.sqlite | 0 db/db.sqlite | Bin 0 -> 16384 bytes src/events/commands/licence.js | 18 ++++++++++++------ src/utils/helpMessage.js | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 db.sqlite create mode 100644 db/db.sqlite diff --git a/.gitignore b/.gitignore index f30ca76..0d558fc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/ .vscode/ .env logs/app.log -db/ \ No newline at end of file +db/q +tmp \ No newline at end of file diff --git a/db.sqlite b/db.sqlite new file mode 100644 index 0000000..e69de29 diff --git a/db/db.sqlite b/db/db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..2adacdd18b7cce19e2fa33c9b0ed39d690682d38 GIT binary patch literal 16384 zcmeI%&q~8E90%~kjVXiux$QKFw~Y-&d;#kSQti5}rsz(k+oBYv&Pkn6N-h{9gcR3F6vwtR`d?8b zCwJGC+9xSg-$?bN_O1#91Rwwb2tWV=5P$##AOHaf{BMC_q15Pf=s58wa~ZGZ>R#%_ za+S((x?3&w9Bv5CgmGzcw$rv1`U}}rJ=-sj^sv!v(%0i`%y}@CVJzdkJlGl~f6H2B z_9KEBGi|}IxWk5y**BaqyWwMIxME=1YJfhsMR%)58p}v8feC&um_1O*wXE$n>&d(@ zT})*3-O{zqk;{MS@GSjkvygnu&9v>)gHof{q$CJu@@ehir^zy_d->M9v;3)`j@pqv zZWW!?b%uZd1Rwwb2tWV=5P$##AOHafKww`5%6enC|L^PP#l9c_0SG_<0uX=z1Rwwb j2tWV=nE?L(;~+o)0uX=z1Rwwb2tWV=5P$##_Fv!&^B8r; literal 0 HcmV?d00001 diff --git a/src/events/commands/licence.js b/src/events/commands/licence.js index 9c09fd8..38f1baf 100644 --- a/src/events/commands/licence.js +++ b/src/events/commands/licence.js @@ -19,15 +19,20 @@ const invoke = async (interaction) => { await interaction.deferReply({ ephemeral: true }); const db = new sqlite3.Database('db/db.sqlite') - - // params const username = interaction.user.username const licenseNumber = interaction.options.getString('numero_licence') const currentYear = new Date().getFullYear() const structureId = process.env.STRUCTURE_ID + const targetRole = interaction.guild.roles.cache.find(role => role.name == 'Licencié ' + currentYear) console.log(`${interaction.user.username} used /licence ${licenseNumber}`); + // Check if user already has role + if (interaction.member.roles.cache.hasAny(targetRole.id)) { + await interaction.editReply(`Tu as déjà le rôle **${targetRole}**. Reviens me voir l'année prochaine pour réactiver ta licence :wink:`); + return + } + // Check if user already has a licence activated for current year const alreadyActivated = await asyncGet(db, 'SELECT * FROM licenses WHERE username = ? AND year = ?', [username, currentYear]) if (alreadyActivated) { @@ -46,7 +51,7 @@ const invoke = async (interaction) => { console.log('FFVL response', response); if (response.data == 1) { - interaction.member.roles.add(interaction.guild.roles.cache.find(role => role.name == 'Licencié ' + currentYear)) + await interaction.member.roles.add(interaction.guild.roles.cache.find(role => role.name == 'Licencié ' + currentYear)) // Insert row into db db.run(`INSERT INTO licenses(username, license_number, year) VALUES(?, ?, ?);`, [username, licenseNumber, currentYear], function (err) { if (err) { console.log(err.message); } @@ -66,10 +71,11 @@ const invoke = async (interaction) => { const successMessage = (year) => { return ` -Bien joué, ton numéro de licence a bien été activé :partying_face: -Tu as désormais le rôle **Licencié ${year}** et tu a accès à tous les salons :duck: +:white_check_mark: Bien joué, ton numéro de licence a bien été activé + +:partying_face: Tu as désormais le rôle **Licencié ${year}** et tu a accès à tous les salons :duck: -Voici quelques astuces pour t'aider à t'y retrouver dans le discord. +Voici quelques astuces pour t'aider à t'y retrouver dans le discord :arrow_down: ` } diff --git a/src/utils/helpMessage.js b/src/utils/helpMessage.js index fe88fe9..f36f9e1 100644 --- a/src/utils/helpMessage.js +++ b/src/utils/helpMessage.js @@ -13,7 +13,7 @@ class HelpMessage { const devbotChannel = await this.parseChannel('🤖dév-bots') return ` -:duck: **__Guide d'utilisation du discord__ ** :duck: +:information_source: **__Guide d'utilisation du discord__ ** - Tu veux planifier une sortie future, c'est par ici ${regleChannel} - Tu décides d'aller voler au dernier moment (le jour même), pas besoin de créer un salon dédié, il suffit de poster un message dans ${spontChannel}