You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.Net 如何获取入服用户的Bio/About Me并完成内容合规校验

实现方案

你当前用的应该是Discord.Net类库开发机器人,获取用户Bio并校验的实现方式如下:

  • 首先需要在Discord开发者后台给你的Bot开启Server Members Intent权限,同时申请guilds.members.read接口权限,未开启对应权限时无法获取用户简介字段
  • 你代码里空缺的Bio获取行可以直接取SocketUser对象的Bio属性,记得加空值兜底,避免用户未填写简介时触发空引用错误
  • 你当前的敏感词校验逻辑写反了,swearWords.All(bio.Contains)是要求简介同时包含所有敏感词才会触发判断,应该改成swearWords.Any(bio.Contains),命中任意一个敏感词就触发处理逻辑

修正后完整代码

string[] swearWords = { "bad", "word" };
var user = Context.User;
// 获取用户Bio,空值兜底
string bio = (user as SocketGuildUser)?.Bio ?? string.Empty;

// 命中任意敏感词时执行对应逻辑
if (swearWords.Any(bio.Contains))
{
    // 此处可添加你要的处理逻辑,比如发警告、禁言、踢出服务器等
}

优化建议

  • 敏感词匹配可以加大小写不敏感处理,避免用户通过修改大小写绕过敏感词校验,示例:swearWords.Any(word => bio.IndexOf(word, StringComparison.OrdinalIgnoreCase) >= 0)
  • 敏感词数量较多时建议用AC自动机、哈希表等方式优化匹配效率,不要用遍历匹配的方式
  • 如果用的是其他C#版Discord SDK,获取Bio的属性名可能略有差异,通常对应字段名为Bio或者Description

内容的提问来源于stack exchange,提问作者Jejejej Dnjdjdnd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:54:06