如何在 Discord Bots C# 上发出取消禁止命令?

How do I make an unban command on Discord Bots C#?

所以我正在为我的 discord 机器人发出一个 unban 命令,但它不起作用。每当我执行命令时,它都不起作用。这是代码

public async Task unban(IGuildUser user)
{
    await user.Guild.RemoveBanAsync(user);
    await Context.Channel.SendMessageAsync($"Unbanned {user}");
}

顺便说一句,你能解释一下解决方案的作用吗,因为我对编码还很陌生。

[Command("unban")]
public async Task UnbanTask(SocketGuildUser user)
{
    await user.Guild.RemoveBanAsync(user);
    await ReplyAsync($"Unbanned {user.Username}");
}

这似乎是您禁止用户的方法,非常正确。但是,有些事情可能会出错。
首先,您需要 Command 下的 [RequireBotPermission(GuildPermission.BanMembers)] 以确保机器人具有 ban/unban 用户的权限。 其次,机器人可能无法禁止管理员。

主要的事情是这个命令要求你提到一个被禁止的用户。这不太可行。所以这是解决方案。 RemoveBanAsync 过载。

所以只要在RemoveBanAsync方法中传入userID就可以了

[Command("unban")]
[RequireBotPermission(GuildPermission.BanMembers)]
public async Task UnbanTask(ulong userId)
{
    await Context.Guild.RemoveBanAsync(userId);
    // Unbanned
}

您可以找到文档 Here