TravBot-v3/src/commands/fun/vaporwave.ts

47 lines
2.0 KiB
TypeScript
Raw Normal View History

import {SlashCommandBuilder} from "@discordjs/builders";
import {CommandInteraction} from "discord.js";
import {NamedCommand, RestCommand} from "onion-lasers";
2021-04-08 11:37:49 +00:00
const vaporwave = (() => {
const map = new Map<string, string>();
const vaporwave =
"_ ";
const normal = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"#$%&'()*+,-./0123456789:;<=>?@[\\]^_`{|}~ ";
if (vaporwave.length !== normal.length) console.error("Vaporwave text failed to load properly!");
for (let i = 0; i < vaporwave.length; i++) map.set(normal[i], vaporwave[i]);
return map;
})();
function getVaporwaveText(text: string): string {
let output = "";
for (const c of text) {
const transformed = vaporwave.get(c);
if (transformed) output += transformed;
}
return output;
}
export const header = new SlashCommandBuilder()
.setDescription("Transforms your text into .")
.addStringOption((option) =>
option.setName("text").setDescription("The text you want to .").setRequired(true)
);
export async function handler(interaction: CommandInteraction) {
const {options} = interaction;
const response = options.getString("text", true);
await interaction.reply(getVaporwaveText(response));
}
2021-04-08 11:37:49 +00:00
export default new NamedCommand({
description: "Transforms your text into .",
run: "You need to enter some text!",
any: new RestCommand({
async run({send, combined}) {
const text = getVaporwaveText(combined);
2021-04-10 13:34:55 +00:00
if (text !== "") send(text);
else send("Make sure to enter at least one valid character.");
2021-04-08 11:37:49 +00:00
}
})
});