mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 09:18:27 -04:00
dev: Renamed some classes, making the new string model work
This commit is contained in:
@@ -15,4 +15,7 @@ public sealed class CmdAttribute : CommandAttribute
|
||||
Remarks = memberName.ToLowerInvariant();
|
||||
Summary = memberName.ToLowerInvariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Method)]
|
||||
public sealed class PromptableAttribute: Attribute;
|
@@ -1,3 +1,4 @@
|
||||
using NadekoBot.Common.Yml;
|
||||
using YamlDotNet.Serialization;
|
||||
|
||||
namespace NadekoBot.Common.Attributes;
|
||||
@@ -15,6 +16,14 @@ public static class CommandNameLoadHelper
|
||||
return _deserializer.Deserialize<Dictionary<string, string[]>>(text);
|
||||
}
|
||||
|
||||
public static Dictionary<string, CommandStrings> LoadCommandStrings(
|
||||
string commandsFilePath = "data/strings/commands.yml")
|
||||
{
|
||||
var text = File.ReadAllText(commandsFilePath);
|
||||
|
||||
return Yaml.Deserializer.Deserialize<Dictionary<string, CommandStrings>>(text);
|
||||
}
|
||||
|
||||
public static string[] GetAliasesFor(string methodName)
|
||||
=> _lazyCommandAliases.Value.TryGetValue(methodName.ToLowerInvariant(), out var aliases) && aliases.Length > 1
|
||||
? aliases.ToArray()
|
||||
|
@@ -179,9 +179,15 @@ public sealed partial class ResponseBuilder
|
||||
if (text is SmartPlainText spt)
|
||||
plainText = spt.Text;
|
||||
else if (text is SmartEmbedText set)
|
||||
{
|
||||
plainText = set.PlainText ?? plainText;
|
||||
embedBuilder = set.GetEmbed();
|
||||
}
|
||||
else if (text is SmartEmbedTextArray ser)
|
||||
{
|
||||
plainText = ser.Content ?? plainText;
|
||||
embeds = ser.GetEmbedBuilders();
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
@@ -21,30 +21,32 @@ public sealed class ModuleTypeReader : NadekoTypeReader<ModuleInfo>
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ModuleOrCrTypeReader : NadekoTypeReader<ModuleOrCrInfo>
|
||||
public sealed class ModuleOrExprTypeReader : NadekoTypeReader<ModuleOrExpr>
|
||||
{
|
||||
private readonly CommandService _cmds;
|
||||
|
||||
public ModuleOrCrTypeReader(CommandService cmds)
|
||||
public ModuleOrExprTypeReader(CommandService cmds)
|
||||
=> _cmds = cmds;
|
||||
|
||||
public override ValueTask<TypeReaderResult<ModuleOrCrInfo>> ReadAsync(ICommandContext context, string input)
|
||||
public override ValueTask<TypeReaderResult<ModuleOrExpr>> ReadAsync(ICommandContext context, string input)
|
||||
{
|
||||
input = input.ToUpperInvariant();
|
||||
var module = _cmds.Modules.GroupBy(m => m.GetTopLevelModule())
|
||||
.FirstOrDefault(m => m.Key.Name.ToUpperInvariant() == input)
|
||||
?.Key;
|
||||
if (module is null && input != "ACTUALEXPRESSIONS")
|
||||
return new(TypeReaderResult.FromError<ModuleOrCrInfo>(CommandError.ParseFailed, "No such module found."));
|
||||
return new(TypeReaderResult.FromError<ModuleOrExpr>(CommandError.ParseFailed, "No such module found."));
|
||||
|
||||
return new(TypeReaderResult.FromSuccess(new ModuleOrCrInfo
|
||||
return new(TypeReaderResult.FromSuccess(new ModuleOrExpr
|
||||
{
|
||||
Name = input
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ModuleOrCrInfo
|
||||
// todo chagne commands.en-us to have the new type name
|
||||
|
||||
public sealed class ModuleOrExpr
|
||||
{
|
||||
public string Name { get; set; }
|
||||
}
|
@@ -7,7 +7,9 @@ namespace NadekoBot.Common.Yml;
|
||||
public class Yaml
|
||||
{
|
||||
public static ISerializer Serializer
|
||||
=> new SerializerBuilder().WithTypeInspector(inner => new CommentGatheringTypeInspector(inner))
|
||||
=> new SerializerBuilder()
|
||||
.WithTypeInspector(inner => new CommentGatheringTypeInspector(inner))
|
||||
.DisableAliases()
|
||||
.WithEmissionPhaseObjectGraphVisitor(args
|
||||
=> new CommentsObjectGraphVisitor(args.InnerVisitor))
|
||||
.WithEventEmitter(args => new MultilineScalarFlowStyleEmitter(args))
|
||||
|
@@ -154,7 +154,7 @@ public static class Extensions
|
||||
}
|
||||
else
|
||||
{
|
||||
args = strings.GetCommandStrings(cmd.Summary, culture).Args;
|
||||
args = strings.GetCommandStrings(cmd.Summary, culture).Examples;
|
||||
}
|
||||
|
||||
return args.Map(arg => GetFullUsage(cmd.Aliases.First(), arg, prefix));
|
||||
|
Reference in New Issue
Block a user