From 40c6b6d7e7d55277870197827694c6ede7458b5c Mon Sep 17 00:00:00 2001 From: derpystuff <3515180-derpystuff@users.noreply.gitlab.com> Date: Fri, 30 Jun 2023 23:30:01 +0200 Subject: [PATCH] update command search rankings --- commands/message/core/help.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/commands/message/core/help.js b/commands/message/core/help.js index 964a5b5..68ede31 100644 --- a/commands/message/core/help.js +++ b/commands/message/core/help.js @@ -113,16 +113,27 @@ module.exports = { permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS], run: async (context, args) => { if(args.command){ + await context.triggerTyping() // Detailed command view - let results = [] + let resultScores = {} + let resultMappings = {} + for(const c of context.commandClient.commands){ if(c.name.includes(args.command.toLowerCase()) || c.aliases.filter((f)=>{return f.includes(args.command.toLowerCase())}).length >= 1){ if(c.metadata.explicit && !context.channel.nsfw) continue; - results.push(c) + resultScores[c.name] = 1 + resultMappings[c.name] = c } + // Boost exact matches to rank higher in the result list + if(c.name == args.command.toLowerCase()) resultScores[c.name] += 1 + if(c.aliases.filter((f)=>{return f == args.command.toLowerCase()}).length >= 1) resultScores[c.name] += 1 } + let results = []; + resultScores = Object.fromEntries(Object.entries(resultScores).sort(([,a],[,b]) => b-a)); + for(const k of Object.keys(resultScores)) results.push(resultMappings[k]) + let pages = [] let prefix = DEFAULT_BOT_PREFIX try{