如何在 on_member_join()discord.py 中向成员发送私人消息?

问题描述 投票:0回答:3

这就是我所拥有的:

@client.command(pass_context=True)
@client.event
async def on_member_join(ctx, member):
    print(f'{member} has joined a server.')
    await ctx.send(f"Hello {member}!")
    await ctx.member.send(f"Welcome to the server!")

我需要机器人在加入时发送包含规则和命令列表的私人消息。

请帮忙!

python python-3.x discord.py
3个回答
4
投票

事件

on_member_join()
仅接受成员作为有效参数(参见doc)。因此,您尝试做的事情:
on_member_join(ctx, member)
,不会起作用。您需要改用它:
on_member_join(member)

如果您按以下方式使用该活动:

@client.event
async def on_member_join(member):
    await member.send('Private message')

您可以直接向加入服务器的会员发送消息。因为您使用此事件获得了一个 member 对象。


3
投票

我不知道发生了什么,从一天到第二天,机器人不再向新会员发送欢迎消息。但我终于能够解决它。 我只需添加这两行代码即可。

intents = discord.Intents()
intents.members = True
阅读

import discord
from discord.ext import commands

#try add this 
intents=discord.Intents.all()

#if the above don't work, try with this
#intents = discord.Intents()
#intents.members = True

TOKEN = 'your token'
bot=commands.Bot(command_prefix='!',intents=intents)

#Events
@bot.event
async def on_member_join(member):
    await member.send('Private message')

@bot.event
async def on_ready():
    print('My bot is ready')

bot.run(TOKEN)

0
投票
@bot.event 
async def on_member_join(menbro:discord.Member):
     canal = bot.get_channel 
     await canal.send(f"{menbro.display_name} Entrou no servidor!")
 

VScode 中的“on_member_join”是深黄色,我不知道该怎么办?

© www.soinside.com 2019 - 2024. All rights reserved.