misc.color: add option to take first colornames color
This commit is contained in:
parent
64a15df40c
commit
c7c7cfa75c
1 changed files with 16 additions and 6 deletions
|
@ -635,7 +635,7 @@ const colornamesRaw = fs.readFileSync(resolve(__dirname, "../../data/colornames.
|
||||||
const color = new Command("color");
|
const color = new Command("color");
|
||||||
color.category = CATEGORY;
|
color.category = CATEGORY;
|
||||||
color.helpText = "Show information on a color or get a random color";
|
color.helpText = "Show information on a color or get a random color";
|
||||||
color.callback = async function (msg, line, args, {truerandom}) {
|
color.callback = async function (msg, line, args, {truerandom, first}) {
|
||||||
let color = tinycolor(line),
|
let color = tinycolor(line),
|
||||||
random = false;
|
random = false;
|
||||||
|
|
||||||
|
@ -646,11 +646,13 @@ color.callback = async function (msg, line, args, {truerandom}) {
|
||||||
|
|
||||||
if (!color.isValid) {
|
if (!color.isValid) {
|
||||||
const search = `^([0-9a-f]{6}),${line},`;
|
const search = `^([0-9a-f]{6}),${line},`;
|
||||||
|
if (!first) {
|
||||||
const colornamesMatches = colornamesRaw.match(new RegExp(search, "img"));
|
const colornamesMatches = colornamesRaw.match(new RegExp(search, "img"));
|
||||||
if (colornamesMatches.length > 1) {
|
if (colornamesMatches.length > 1) {
|
||||||
const hexes = colornamesMatches.map((m) => m.split(",")[0]);
|
const hexes = colornamesMatches.map((m) => m.split(",")[0]);
|
||||||
return `Got ${colornamesMatches.length} matches for \`${safeString(line)}\`\n- ${hexes.join("\n- ")}`;
|
return `Got ${colornamesMatches.length} matches for \`${safeString(line)}\`\n- ${hexes.join("\n- ")}`;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const colornamesHex = colornamesRaw.match(new RegExp(search, "im"))?.[1];
|
const colornamesHex = colornamesRaw.match(new RegExp(search, "im"))?.[1];
|
||||||
if (colornamesHex) {
|
if (colornamesHex) {
|
||||||
|
@ -752,11 +754,19 @@ colorInteraction.options.truerandom = {
|
||||||
required: false,
|
required: false,
|
||||||
default: false,
|
default: false,
|
||||||
};
|
};
|
||||||
|
colorInteraction.options.first = {
|
||||||
|
name: "first",
|
||||||
|
type: ApplicationCommandOptionTypes.BOOLEAN,
|
||||||
|
description: "Take first match for a colornames color by name",
|
||||||
|
required: false,
|
||||||
|
default: false,
|
||||||
|
};
|
||||||
colorInteraction.callback = async function (interaction) {
|
colorInteraction.callback = async function (interaction) {
|
||||||
const input = this.getOption(interaction, "input");
|
const input = this.getOption(interaction, "input");
|
||||||
const truerandom = this.getOption(interaction, "truerandom");
|
const truerandom = this.getOption(interaction, "truerandom");
|
||||||
|
const first = this.getOption(interaction, "first");
|
||||||
|
|
||||||
return color.callback(interaction, input, [input], {truerandom});
|
return color.callback(interaction, input, [input], {truerandom, first});
|
||||||
};
|
};
|
||||||
hf.registerCommand(colorInteraction);
|
hf.registerCommand(colorInteraction);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue