如何在 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
所以我正在为我的 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