import Command from "../../classes/command.js"; import { clean, htmlescape } from "../../utils/misc.js"; class Base64Command extends Command { static category = "general" async run() { this.success = false; if (this.type === "classic" && this.args.length === 0) return "You need to provide whether you want to encode or decode the text!"; const command = this.type === "classic" ? this.args[0].toLowerCase() : this.optionsArray[0].name.toLowerCase(); if (command !== "decode" && command !== "encode") return "You need to provide whether you want to encode or decode the text!"; const string = this.options.text ?? this.args.slice(1).join(" "); if (!string || !string.trim()) return `You need to provide a string to ${command}!`; this.success = true; if (command === "decode") { const b64Decoded = Buffer.from(string, "base64").toString("utf8"); return { html: `
${htmlescape(await clean(b64Decoded))}
` };
} else if (command === "encode") {
const b64Encoded = Buffer.from(string, "utf8").toString("base64");
return { html: `${b64Encoded}
` };
}
}
static flags = [{
name: "decode",
type: 1,
description: "Decodes a Base64 string",
options: [{
name: "text",
type: 3,
description: "The text to decode",
required: true
}]
}, {
name: "encode",
type: 1,
description: "Encodes a Base64 string",
options: [{
name: "text",
type: 3,
description: "The text to encode",
required: true
}]
}];
static description = "Encodes/decodes a Base64 string";
static arguments = ["[encode/decode]", "[text]"];
}
export default Base64Command;