Я использую Discord.NET 1.0.2, и этот вопрос специфичен для Discord.NET.
Я использую Discord.Commands
для того, как я работаю со своими командами, и я их инициализирую так
var msg = message as SocketUserMessage;
var context = new SocketCommandContext(_client, msg);
int argPos = 0;
if(msg.HasCharPrefix('>', ref argPos))
{
var result = await _service.ExecuteAsync(context, argPos);
}
Затем в моем отдельном классе для конкретной команды у меня есть
public class Command : ModuleBase<SocketCommandContext>
{
[Command("test")]
public async Task balanceCommmand(String[] stringArray)
{
// code
}
}
Однако при запуске программы я получаю System.InvalidOperationException
«Дополнительная информация: для типа String[] не найден считыватель типов, его необходимо указать»
Раньше я использовал параметры в асинхронной задаче, но, похоже, он не хочет иметь массив строк в качестве параметра.
Как я могу передать массив строк в качестве аргумента команде, используя Discord.Commands версии 1.0.2.
Если нет способа сделать это, есть ли способ имитировать это, используя альтернативу?
Я посмотрел в Google и не нашел кого-то с такой же проблемой, как у меня, или даже похожей на нее.
TypeReader
, используя методAddTypeReader
CommandService
. - person cwharris   schedule 31.10.2017