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

如何通过Discord bot检测用户是否拥有Discord Nitro(不依赖头像判断)

无需依赖头像检测Discord Nitro的实现方案

直接调用Discord官方API拉取用户对象,读取内置的premium_type字段即可实现100%准确的Nitro状态判定,不会受到用户是否使用动图头像的影响。

字段取值说明

  • 0:用户未订阅任何等级的Discord Nitro
  • 1:用户订阅了Nitro Classic(已停售的旧版基础Nitro)
  • 2:用户订阅了完整版Nitro(包含服务器增压、高清串流等全量权益)
  • 3:用户订阅了Nitro Basic(现行低价基础版Nitro,仅支持动图头像、大文件上传等基础权益)

前置要求

  • 需要在Discord开发者平台的Bot管理页,开启Presence Intent和Server Members Intent两个特权网关意图,否则API返回的用户信息不会包含premium_type字段
  • 服务器内检测需要Bot拥有读取成员信息的权限,私聊检测需要目标用户曾和Bot产生过私聊交互

代码示例(以discord.js v14为例)

// 从交互事件中获取目标成员对象
const targetMember = await interaction.guild.members.fetch(interaction.user.id);
// 判定逻辑:只要premiumType大于0 或 有本服务器增压记录,就说明持有Nitro
const hasNitro = targetMember.user.premiumType > 0 || targetMember.premiumSince !== null;

if (hasNitro) {
  console.log("该用户持有Discord Nitro");
} else {
  console.log("该用户未持有Discord Nitro");
}

原有方案的缺陷补充

你之前使用的动图头像判定法除了会漏判持Nitro但用静态头像的用户外,还存在以下误判场景:

  • 早期Discord官方活动曾给普通用户发放过临时动图头像权限,无Nitro也可使用GIF头像
  • Discord合作伙伴、员工等特殊身份组用户无需订阅Nitro也可使用动图头像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:08