* Rewrote cmdcd service, prettified and paginated .cmdcds

* Cleaned up/improved some command handler code
* Fixed .yun when channel id has an underscore
This commit is contained in:
Kwoth
2022-10-02 13:38:50 +00:00
parent e63ac07a52
commit 15e6cff14a
9 changed files with 165 additions and 109 deletions

View File

@@ -2,8 +2,6 @@
using NadekoBot.Common.Configs;
using NadekoBot.Common.ModuleBehaviors;
using NadekoBot.Db;
using System.Collections.Immutable;
using Nadeko.Common;
using ExecuteResult = Discord.Commands.ExecuteResult;
using PreconditionResult = Discord.Commands.PreconditionResult;
@@ -219,7 +217,7 @@ public class CommandHandler : INService, IReadyExecutor
try
{
#if !GLOBAL_NADEKO
// track how many messagges each user is sending
// track how many messages each user is sending
UserMessagesSent.AddOrUpdate(usrMsg.Author.Id, 1, (_, old) => ++old);
#endif
@@ -254,7 +252,7 @@ public class CommandHandler : INService, IReadyExecutor
var prefix = GetPrefix(guild?.Id);
var isPrefixCommand = messageContent.StartsWith(".prefix", StringComparison.InvariantCultureIgnoreCase);
// execute the command and measure the time it took
if (messageContent.StartsWith(prefix, StringComparison.InvariantCulture) || isPrefixCommand)
if (isPrefixCommand || messageContent.StartsWith(prefix, StringComparison.InvariantCulture))
{
var context = new CommandContext(_client, usrMsg);
var (success, error, info) = await ExecuteCommandAsync(context,
@@ -262,6 +260,7 @@ public class CommandHandler : INService, IReadyExecutor
isPrefixCommand ? 1 : prefix.Length,
_services,
MultiMatchHandling.Best);
startTime = Environment.TickCount - startTime;
// if a command is found
@@ -348,11 +347,10 @@ public class CommandHandler : INService, IReadyExecutor
switch (multiMatchHandling)
{
case MultiMatchHandling.Best:
argList = parseResult.ArgValues.Select(x => x.Values.OrderByDescending(y => y.Score).First())
.ToImmutableArray();
argList = parseResult.ArgValues
.Map(x => x.Values.MaxBy(y => y.Score));
paramList = parseResult.ParamValues
.Select(x => x.Values.OrderByDescending(y => y.Score).First())
.ToImmutableArray();
.Map(x => x.Values.MaxBy(y => y.Score));
parseResult = ParseResult.FromSuccess(argList, paramList);
break;
}

View File

@@ -7,7 +7,7 @@ namespace NadekoBot.Services;
public sealed class StatsService : IStatsService, IReadyExecutor, INService
{
public const string BOT_VERSION = "4.3.7";
public const string BOT_VERSION = "4.3.8";
public string Author
=> "Kwoth#2452";