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

使用discord.js 14.6.0检测成员自定义状态中的邀请链接

Discord.js 14.6.0 检测自定义状态中的邀请链接

你的代码存在几个问题:

  • 拼写错误:member.activites应为member.activities(单词拼写失误)
  • 变量名大小写不一致:定义的变量是invitelink,判断时写成了inviteLink,会触发未定义错误
  • 匹配范围过窄:仅检测.gg/VANITY无法覆盖所有Discord邀请链接格式

修正后的代码:

const { Events } = require('discord.js');

// 匹配所有常见Discord邀请链接的正则表达式
const inviteRegex = /(discord\.gg\/|discord\.com\/invite\/|discordapp\.com\/invite\/)/i;

client.on(Events.PresenceUpdate, (oldPresence, newPresence) => {
    const member = newPresence.member;
    if (!member) return;

    // 获取自定义状态的内容
    const customStatus = member.activities
        .find(activity => activity.type === 'CUSTOM_STATUS')
        ?.state;

    if (customStatus && inviteRegex.test(customStatus)) {
        console.log(`检测到邀请链接:${customStatus}`);
        // 此处可添加后续处理逻辑,比如发送警告、移除成员等
    }
});

补充说明:

  • 正则表达式中的i标记表示不区分大小写,能匹配大写或小写的链接格式
  • 提前判断member是否存在,避免后续逻辑出现空值报错
  • 若需要更精准的匹配(比如验证邀请码格式),可以进一步调整正则表达式规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:50:43