私は私のコマンドに問題があります。それは問題を表示していないようですが、私はコマンドを使用するときに私は私のボットからこれを取得します。Discord.net 1.0 - メッセージを削除するには?
"エラー:入力テキストのパラメータが少なすぎます。"
IUserMessageまたはSocketMessageを使用する必要があるかどうかわかりません。両方を試してみて、通常は同じエラーが表示されます。
どこが間違っていたのですか?私はこれをしばらく修正しようとしており、これを把握しようとするとレンガの壁にいる。どんな助けもありがとう。
[Command("purge")]
[Summary("deletes set amount of text")]
[RequireUserPermission(GuildPermission.Administrator)]
[RequireBotPermission(GuildPermission.Administrator)]
public async Task PurgeChat(IUserMessage msg, int amount)
{
int messagesDeleted = 0;
var purgeMessage = await msg.Channel.SendMessageAsync("_purging in progress, give me a minute.._");
var lastMessageID = purgeMessage.Id;
try
{
var stop = false;
while (amount > messagesDeleted)
{
var messages = await msg.Channel.GetMessagesAsync(lastMessageID, Direction.Before, 15).OfType<IUserMessage>().ToList();
foreach (IUserMessage message in messages)
{
await message.DeleteAsync();
messagesToDelete++;
if (messagesDeleted >= amount || messages.Count == 0)
{
stop = true;
break;
}
lastMessageID = messages.Last().Id;
}
if (stop || messages.Count == 0)
{
break;
}
}
}
catch (Exception ex)
{
if (ex.Message != "The server responded with error 404 (NotFound): \"Unknown Message\"")
{
await Context.Channel.SendMessageAsync("Something fucked up while trying to delete messages, you are going to have to manually Delete them for now. or try again");
}
}
finally
{
await purgeMessage.ModifyAsync(x => x.Content = "_Purge Completed, this message will self destruct in 5 seconds_");
await Task.Factory.StartNew(async() =>
{
await Task.Delay(5000);
await purgeMessage.DeleteAsync();
});
}
}