diff options
Diffstat (limited to 'handler/button.js')
-rw-r--r--[-rwxr-xr-x] | handler/button.js | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/handler/button.js b/handler/button.js index 5d5fe03..8fc49f5 100755..100644 --- a/handler/button.js +++ b/handler/button.js @@ -1,12 +1,41 @@ const fs = require('fs');
-const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed } = require('discord.js');
+const path = require('path');
+const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed, MessageAttachment } = require('discord.js');
+
+const getPixel = require('../modules/pixel.js');
+const getEmbed = require("../modules/embed");
module.exports = async (interaction) => {
keys = interaction.customId.split("|")
- if (keys[0] === "result.report") {
+ if (keys[0] === "pony.display") {
+ await interaction.reply({
+ ephemeral: true,
+ embeds: [
+ getEmbed(keys[1], 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(keys[1])),
+ new MessageButton()
+ .setCustomId("pony.pixel|" + keys[1])
+ .setLabel("Pixel Art")
+ .setDisabled(!fs.existsSync("./pixel/" + keys[1].toLowerCase()))
+ .setStyle("SECONDARY"),
+ new MessageButton()
+ .setCustomId("result.report|" + keys[1])
+ .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild.id))
+ .setStyle("DANGER")
+ )
+ ]
+ });
+ } else if (keys[0] === "result.report") {
await interaction.reply({
- ephemeral: false,
+ ephemeral: true,
embeds: [
new MessageEmbed()
.setColor('#dc2828')
@@ -50,10 +79,47 @@ module.exports = async (interaction) => { description: l("A provided info does not correspond to the real info from a reliable source.", "Une information fournie ne correspond pas à la réelle information depuis une source fiable.", interaction.user.id, interaction.guild.id),
value: 'report.issue.missinfo|' + keys[1],
},
+ {
+ label: l("Translation issue", "Problème de traduction", interaction.user.id, interaction.guild.id),
+ description: l("The English translation of a formerly French content is wrong and needs to be fixed.", "La version française d'un contenu originellement en anglais est erronée et doit être corrigée.", interaction.user.id, interaction.guild.id),
+ value: 'report.issue.translation|' + keys[1],
+ },
]),
)
]
});
+ } else if (keys[0] === "pony.pixel") {
+ await interaction.reply({
+ ephemeral: true,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#28dc46')
+ .setTitle(l("Pixel Art for", "Pixel Art correspondant à", interaction.user.id, interaction.guild.id) + " \"" + keys[1] + "\"")
+ ],
+ files: [
+ new MessageAttachment(fs.readFileSync(getPixel(keys[1])), path.basename(getPixel(keys[1])))
+ ],
+ components: [
+ new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setCustomId("result.report|" + getPixel(keys[1]))
+ .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild.id))
+ .setStyle("DANGER")
+ )
+ ]
+ });
+ } else if (keys[0] === "result.suggest") {
+ fs.writeFileSync("./reports/Telemetry-Request-" + (new Date().toISOString().replace(/[^a-zA-Z0-9]/gm, "-")) + ".txt", "-------------------------\nPonyfind Telemetry Report\n-------------------------\n\nReport Type:\n Pony Request Report\n\n-------------------------\n\nReporter:\n " + interaction.user.tag + " (" + interaction.user.id + ")\n\nServer:\n " + interaction.guild.name + " (" + interaction.guild.id + ")\n\nChannel:\n " + interaction.channel.name + " (" + interaction.channel.id + ")\n\nItem:\n " + keys[1] + "\n\nReport Type:\n -");
+ await interaction.reply({
+ ephemeral: true,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#28dc46')
+ .setTitle(l("Thanks for suggesting", "Merci d'avoir proposé", interaction.user.id, interaction.guild.id) + " \"" + keys[1] + "\"" + l("!", " !", interaction.user.id, interaction.guild.id))
+ .setDescription(l("Your suggestion has been sent to the developers. They can contact you later if your settings allow this to ask you more about your request.\nThanks for your help!", "Votre suggestion a bien été envoyée aux développeurs. Ils pourront vous recontacter si vos paramètres le permettent afin de vous poser plus de questions sur votre requête.\nMerci d'aider à améliorer notre système !", interaction.user.id, interaction.guild.id))
+ ]
+ });
} else {
throw new Error("Unknown Button ID");
}
|