使用discord.py开发可响应系统欢迎消息的机器人命令是否可行?
Discord.py 欢迎消息自动反应实现方案
该需求完全可以实现,以下是完整实现说明:
前置要求
- 安装v2.0及以上版本的discord.py,安装命令:
pip install discord.py - 前往Discord开发者平台的机器人管理页,开启
Server Members Intent和Message Content Intent两个特权网关意图
实现代码
import discord from discord.ext import commands # 配置机器人所需权限 intents = discord.Intents.default() intents.members = True intents.message_content = True # 初始化机器人,可自行修改命令前缀 bot = commands.Bot(command_prefix="!", intents=intents) @bot.event async def on_ready(): print(f"已成功登录,当前机器人账号:{bot.user}") # 监听所有消息,匹配系统欢迎消息后触发操作 @bot.event async def on_message(message: discord.Message): # 跳过机器人自身发送的消息 if message.author == bot.user: return # 匹配新成员加入时系统自动发送的欢迎消息 if message.type == discord.MessageType.new_member: # 示例1:给欢迎消息添加挥手表情反应 await message.add_reaction("👋") # 示例2:自动回复欢迎语 await message.channel.send(f"欢迎{message.author.mention}加入服务器!") # 保留前缀命令处理能力,删除该行会导致自定义前缀命令失效 await bot.process_commands(message) # 替换为你自己的机器人Token后启动 bot.run("你的机器人Token")
常用自定义修改方式
- 仅对指定频道的欢迎消息生效:在判断条件中添加
if message.channel.id == 目标频道数字ID即可 - 匹配管理员自定义发送的欢迎消息:将判断条件替换为关键词匹配即可,例如
if "欢迎" in message.content and message.author.id == 管理员ID - 添加更多反应表情:重复调用
await message.add_reaction("表情")即可,支持Unicode通用表情和服务器自定义表情
内容的提问来源于stack exchange,提问作者Crazy Jaguar
相关产品推荐
相关产品推荐

