我不是一个编码员或任何我只是为了好玩而做的事情!我和一些朋友所在的服务器需要一个机器人,当然有大量的机器人可用,但我想我会继续尝试自己的运气。我知道一些基本代码,并且我已经用 C# 编写了一个简单的机器人,但是对于我的生活,我无法弄清楚如何制作一个清除命令。我目前创建的是这样的:
RegisterPurgeCommand();
private void RegisterPurgeCommand()
{
commands.CreateCommand("purge")
.Parameter("PurgeAmount")
.Do(async (e) =>
{
var messagesToDelete = await e.Channel.DownloadMessages(convert.ToInt32(e.GetArg("purgeAmount")));
await e.Channel.DeleteMessages(messagesToDelete);
await e.Channel.SendMessage(e.GetArg("purgeAmount") + "Messages Deleted.");
});
}
如果您愿意,可以在此处以屏幕截图格式查看代码
我最初拥有的是一个清除命令,它按代码中的 x 数量删除消息,而不是我想要的数量。例如,我的目标是在 Discord 中我将按照 !purge 10 的方式做一些事情,并删除最后 10 条消息。我之前的 !purge 命令删除了之前的 10 条消息,但如果我想执行 7 条,它仍然会执行 10 条。
代码是:
RegisterPurgeCommand();
private void RegisterPurgeCommand()
{
commands.CreateCommand("purge")
.Do(async (e) =>
{
Message[] messagesToDelete;
messagesToDelete = await e.Channel.DownloadMessages(100);
await e.Channel.DeleteMessages(messagesToDelete);
});
}
如果您愿意,可以在此处以屏幕截图格式查看代码
这工作得很好,但正如我所说的那样效率不高。
现在,我将完全诚实地说,我现在使用的方法(不起作用的方法)与 Gist 的解释无关。
所以它目前所做的是......绝对没有......它过去所做的是删除我告诉它在代码中删除的 x 条消息,例如,如果我想删除服务器中的 7 条消息,它将删除 10 条.
我想要它做的是,我可以告诉机器人删除服务器中的 x 条消息,无论其数量如何,而不是如果我想删除 7 条消息,它会删除 10 条。
也许我很容易错过一些东西?也许我只是忽略了一些愚蠢的事情?我是合法的迷路了。我写这篇文章时也是早上 6 点,所以可能也是这样。