因此,在我的 Discord 机器人中,我正在创建一个完整的审核系统,其中具有适当权限的用户可以向其他用户发出警告,这些将被记录,一旦发出 3 个警告,用户就会被静音一段时间,这可能发生 5他们被长时间静音的次数,当用户达到 3 次以上警告时,第五次静音后,他们将被永久禁止。所以我几乎已经完成了对用户历史查看器等没有问题的整个事情,但我遇到的问题是比较角色。我找到了一个解决方案,我不确定从长远来看它是否能正常工作,但这是我能想到的唯一方法。我希望它不允许用户警告比自己级别高的人。这是我的代码:
public class Warn : ModuleBase<SocketCommandContext>
{
[Command("Warn")]
public async Task WarnMain([Remainder, Summary("Warn a user for a reason.")] IGuildUser user, string warnInfo)
{
var userRole = -1;
var victimRole = -1;
var counter = 0;
foreach(var role in Context.Guild.Roles)
{
if (Context.Guild.GetUser(Context.User.Id).Roles.Contains(role) && userRole == -1)
{
userRole = counter;
}
if (Context.Guild.GetUser(user.Id).Roles.Contains(role) && victimRole == -1)
{
victimRole = counter;
}
}
if (userRole < victimRole)
// blah blah
}
}
如果您知道这样做的更好方法或更有效的方法,请分享,将不胜感激。谢谢。
汪汪一只猫
守候你守候我
相关分类