これが私が持っているものです。
@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!")
_
私は彼が参加したときにルールとコマンドリストを含むプライベートメッセージを送信するためのボットが必要です。
助けてください!
イベント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')
_
サーバーに参加したメンバーに直接メッセージを送信できます。このイベントを使用して メンバー オブジェクトを取得するからです。
私は何が起こったのかわかりません、ある日から次のボットが新しいメンバーに歓迎されたメッセージを送る停止しました。しかし、私はついにそれを解決することができました。これら2行のコードを追加しなければならなかった。 intents = discord.Intents()
intents.members = True
読み取り
import discord
from discord.ext import commands
#try add this
intents=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)
_