From ac2dea4a23ca72001e41c1dbf66ff1a0d01e217c Mon Sep 17 00:00:00 2001 From: Minteck Date: Fri, 7 Jan 2022 18:04:44 +0100 Subject: Update --- handler/command.js | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100755 handler/command.js (limited to 'handler/command.js') diff --git a/handler/command.js b/handler/command.js new file mode 100755 index 0000000..c1cfe22 --- /dev/null +++ b/handler/command.js @@ -0,0 +1,137 @@ +const fs = require('fs'); +const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed } = require('discord.js'); + +const getResult = require('../result'); +const getEmbed = require('../embed'); + +module.exports = async (interaction) => { + if (interaction.commandName === 'lang') { + lang = interaction.options.getString('locale'); + if (lang === "fr") { + langs[interaction.user.id] = "fr"; + } else { + langs[interaction.user.id] = "en"; + } + fs.writeFileSync("./userdata.json", JSON.stringify(langs, null, 4)); + if (typeof servers[interaction.guild.id] !== "undefined") { + if (lang === "fr") { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#28dc46') + .setTitle(l("Language settings", "Paramètres de langue", interaction.user.id, interaction.guild.id)) + .setDescription(l("Your preferred language is now **French**.\n\n> **Note:** This server enforces English for all users, your personal preferred language won't apply here.", "Votre langue principale est maintenant le **français**.\n\n> **Note :** Ce serveur oblige l'utilisation du français pour tous les utilisateurs, votre option de langue personelle ne s'appliquera pas ici.", interaction.user.id, interaction.guild.id)) + ] + }); + } else { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#28dc46') + .setTitle(l("Language settings", "Paramètres de langue", interaction.user.id, interaction.guild.id)) + .setDescription(l("Your preferred language is now **English**.\n\n> **Note:** This server enforces English for all users, your personal preferred language won't apply here.", "Votre langue principale est maintenant le **anglais**.\n\n> **Note :** Ce serveur oblige l'utilisation du français pour tous les utilisateurs, votre option de langue personelle ne s'appliquera pas ici.", interaction.user.id, interaction.guild.id)) + ] + }); + } + } else { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#28dc46') + .setTitle(l("Language settings", "Paramètres de langue", interaction.user.id, interaction.guild.id)) + .setDescription(l("Your preferred language is now **English**.", "Votre langue principale est maintenant le **français**.", interaction.user.id, interaction.guild.id)) + ] + }); + } + } + + if (interaction.commandName === 'serverlang') { + lang = interaction.options.getString('locale'); + if (lang === "fr") { + servers[interaction.guild.id] = "fr"; + } else if (lang === "en") { + servers[interaction.guild.id] = "en"; + } else { + delete servers[interaction.guild.id]; + } + fs.writeFileSync("./servers.json", JSON.stringify(servers, null, 4)); + if (lang === "en" || lang === "fr") { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#28dc46') + .setTitle(l("Server language settings", "Paramètres de langue du serveur", interaction.user.id, interaction.guild.id)) + .setDescription(l("This server's enforced language is now **English**.", "La langue forcée sur ce serveur est maintenant le **français**.", interaction.user.id, interaction.guild.id)) + ] + }); + } else { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#28dc46') + .setTitle(l("Server language settings", "Paramètres de langue du serveur", interaction.user.id, interaction.guild.id)) + .setDescription(l("This server's enforced language is the user's prefered language.", "La langue forcée sur ce serveur est la langue de l'utilisateur.", interaction.user.id, interaction.guild.id)) + ] + }); + } + } + + if (interaction.commandName === 'pony') { + query = interaction.options.getString('query'); + result = getResult(query); + + if (result.results.length > 0 && getEmbed(result.results[0], interaction.user.id, interaction.guild.id) !== false) { + await interaction.reply({ + ephemeral: false, + embeds: [ + getEmbed(result.results[0], interaction.user.id, interaction.guild.id) + ], + components: [ + new MessageActionRow() + .addComponents( + new MessageButton() + .setLabel(l("Read More", "Lire plus", interaction.user.id, interaction.guild.id)) + .setStyle("LINK") + .setURL("https://mlp.fandom.com/wiki/" + encodeURI(result.results[0])), + new MessageButton() + .setCustomId("pony.pixel|" + result.results[0]) + .setLabel("Pixel Art") + .setStyle("SECONDARY"), + new MessageButton() + .setCustomId("result.report|" + result.results[0]) + .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild.id)) + .setStyle("DANGER") + ) + ] + }); + } else { + await interaction.reply({ + ephemeral: false, + embeds: [ + new MessageEmbed() + .setColor('#dc2828') + .setTitle(l("Results for", "Résultats pour", interaction.user.id, interaction.guild.id) + " \"" + query + "\"") + .setDescription(l("No results found. Please try with other keywords.", "Aucun résultat trouvé. Essayez avec d'autres mots clés.", interaction.user.id, interaction.guild.id)) + ], + components: [ + new MessageActionRow() + .addComponents( + new MessageButton() + .setCustomId("result.suggest|" + query) + .setLabel(l("Suggest a missing pony", "Proposer un poney manquant", interaction.user.id, interaction.guild.id)) + .setStyle("SECONDARY"), + new MessageButton() + .setCustomId("result.report") + .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild.id)) + .setStyle("DANGER") + ) + ] + }); + } + } +} \ No newline at end of file -- cgit