Skip to content

Commit aa763d3

Browse files
committed
add option to list supported run languages
1 parent cb8b777 commit aa763d3

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

locales/commands/translations.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,18 @@ export default {
558558
ja: "コードを実行する",
559559
"es-ES": "Ejecutar código",
560560
},
561+
options: {
562+
list_languages: {
563+
desc: "List all available languages",
564+
translations: {
565+
de: "Liste alle verfügbaren Sprachen auf",
566+
fr: "Lister toutes les langues disponibles",
567+
ru: "Список всех доступных языков",
568+
ja: "利用可能なすべての言語をリストする",
569+
"es-ES": "Enumerar todos los idiomas disponibles",
570+
},
571+
},
572+
},
561573
},
562574
rounding: {
563575
desc: "Enable/Disable rounding of numbers.",

src/commands/user/run.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { SlashCommandBuilder, ModalBuilder, TextInputBuilder, TextInputStyle, ActionRowBuilder } from "discord.js";
22
import translations from "../../../locales/commands/translations.js";
3+
import Log from "../../util/log.js";
34

45
// ========================= //
56
// = Copyright (c) NullDev = //
@@ -12,11 +13,25 @@ export default {
1213
.setName(commandName)
1314
.setDescription(translations.run.desc)
1415
.setDescriptionLocalizations(translations.run.translations)
15-
.setDMPermission(false),
16+
.setDMPermission(false)
17+
.addBooleanOption((option) =>
18+
option.setName("list-languages")
19+
.setDescription(translations.run.options.list_languages.desc)
20+
.setDescriptionLocalizations(translations.run.options.list_languages.translations)
21+
.setRequired(false)),
1622
/**
1723
* @param {import("discord.js").CommandInteraction} interaction
1824
*/
1925
async execute(interaction){
26+
if (interaction.options.get("list-languages")?.value){
27+
const languages = (await fetch("https://emkc.org/api/v2/piston/runtimes").then((res) => res.json())
28+
.catch((err) => Log.error("Error during fetching of languages: " + err)))
29+
.map(e => e.language)
30+
.join(", ");
31+
32+
return interaction.reply({ content: languages, ephemeral: true });
33+
}
34+
2035
const modal = new ModalBuilder()
2136
.setCustomId("run_code")
2237
.setTitle("Run Code");

0 commit comments

Comments
 (0)