Discord:命令参数中的撇号在 C# 中不起作用
Posted
技术标签:
【中文标题】Discord:命令参数中的撇号在 C# 中不起作用【英文标题】:Discord: apostrophe in command's argument does not work in C# 【发布时间】:2017-07-31 23:14:24 【问题描述】:我在处理命令的参数时遇到问题。在参数中出现撇号 '
之前,它们可以正常工作。在这种情况下,什么都不会发生。 Bot 什么都不做,应用程序不会崩溃。当我尝试调试该命令时,我发现它甚至不会转到它的代码分支。
例子:
!echo I am fine
有效。
但是!echo I'm fine
没有。
我的代码:
client.UsingCommands(input =>
input.PrefixChar = '!';
input.AllowMentionPrefix = true;
);
command = client.GetService<CommandService>();
command.CreateCommand("echo").Parameter("param", ParameterType.Multiple).Do(async (e) =>
var channel = e.Server.FindChannels(e.Message.Channel.Name, ChannelType.Text).FirstOrDefault();
string msg = "";
for (int i = 0; i < e.Args.Length; i++)
msg += e.Args[i] + " ";
msg = msg.Remove(msg.Length - 1);
await channel.SendMessage(msg);
);
知道发生了什么以及为什么吗?
【问题讨论】:
【参考方案1】:试试这个:
command.CreateCommand("echo")
.Description("returns commands")
.Parameter("message", ParameterType.Unparsed)
.Do(async (e) =>
Message[] messageToDelete;
int deleteNumber = 1;
messageToDelete = await e.Channel.DownloadMessages(deleteNumber);
await e.Channel.DeleteMessages(messageToDelete);
var toReturn = $":envelope: | e.GetArg("message")";
await e.Channel.SendMessage(toReturn);
Console.WriteLine(toReturn);
);
【讨论】:
以上是关于Discord:命令参数中的撇号在 C# 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章