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

如何让Discord机器人删除外部邀请链接但保留自有服务器链接?

解决Discord机器人白名单邀请链接问题

方案1:简单匹配(含白名单链接则保留)

先定义白名单集合,修改消息判断逻辑:仅当消息包含discord.gg但不含任何白名单链接时,执行删除操作。

修改后的代码

# 定义白名单,替换为你需要保留的Discord邀请链接
WHITELISTED_LINKS = {"discord.gg/test", "discord.gg/your-official-server"}

@bot.event
async def on_message(message):
    print("The message's content was", message.content)
    await bot.process_commands(message)
    
    msg_lower = message.content.lower()
    # 检查消息是否存在Discord邀请链接
    if "discord.gg" in msg_lower:
        # 判断消息是否包含白名单内的链接(忽略大小写)
        has_allowed_link = any(link.lower() in msg_lower for link in WHITELISTED_LINKS)
        if not has_allowed_link:
            await message.delete()
            print('deleted link:', message.content)

方案2:精确匹配(含非白名单链接则删除)

如果需要更严格的规则——只要消息里存在非白名单的Discord邀请链接,就删除消息(哪怕同时包含白名单链接),可以用正则提取所有邀请链接后再判断:

修改后的代码

import re

# 定义白名单邀请链接
WHITELISTED_LINKS = {"discord.gg/test", "discord.gg/your-official-server"}

@bot.event
async def on_message(message):
    print("The message's content was", message.content)
    await bot.process_commands(message)
    
    # 正则匹配所有discord.gg格式的邀请链接(忽略大小写)
    invite_regex = re.compile(r'discord\.gg/[\w]+', re.IGNORECASE)
    found_invites = invite_regex.findall(message.content)
    
    if found_invites:
        # 统一转小写,避免大小写差异导致的匹配失败
        found_invites_lower = {invite.lower() for invite in found_invites}
        whitelisted_lower = {link.lower() for link in WHITELISTED_LINKS}
        
        # 筛选出不在白名单里的链接
        non_allowed_invites = found_invites_lower - whitelisted_lower
        if non_allowed_invites:
            await message.delete()
            print('deleted message with non-whitelisted links:', non_allowed_invites)

使用说明

  • 将WHITELISTED_LINKS中的示例链接替换为你需要保留的真实Discord邀请链接
  • 方案1适合「只要有白名单链接就全部保留」的场景,方案2适合「只要存在违规链接就删除」的严格场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:10:23