mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05: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