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");
 | 
			
		||||
color.category = CATEGORY;
 | 
			
		||||
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),
 | 
			
		||||
    random = false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -646,11 +646,13 @@ color.callback = async function (msg, line, args, {truerandom}) {
 | 
			
		|||
 | 
			
		||||
  if (!color.isValid) {
 | 
			
		||||
    const search = `^([0-9a-f]{6}),${line},`;
 | 
			
		||||
    if (!first) {
 | 
			
		||||
      const colornamesMatches = colornamesRaw.match(new RegExp(search, "img"));
 | 
			
		||||
      if (colornamesMatches.length > 1) {
 | 
			
		||||
        const hexes = colornamesMatches.map((m) => m.split(",")[0]);
 | 
			
		||||
        return `Got ${colornamesMatches.length} matches for \`${safeString(line)}\`\n- ${hexes.join("\n- ")}`;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const colornamesHex = colornamesRaw.match(new RegExp(search, "im"))?.[1];
 | 
			
		||||
    if (colornamesHex) {
 | 
			
		||||
| 
						 | 
				
			
			@ -752,11 +754,19 @@ colorInteraction.options.truerandom = {
 | 
			
		|||
  required: 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) {
 | 
			
		||||
  const input = this.getOption(interaction, "input");
 | 
			
		||||
  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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue