机器人重启后成员离开服务器时如何获取成员名称?
How to get member name when member leaves server after bot restarts?
下面给出的代码在以下情况下工作正常:
- 我启动机器人
- 用户加入服务器=>我得到用户名
- 用户离开服务器 => 我得到离开的成员的用户名
但是当我有这样的序列时:
- 我启动机器人
- 用户加入服务器=>我得到用户名
- 我重启bot:先关机再开机
- 用户离开服务器=> 我没有得到用户名
我有带用户名的数据库,所以在用户离开后我需要从数据库中删除他。例如,当我部署更新的机器人版本时,机器人会重新启动。这是我的代码:
import discord
from discord.ext import commands, tasks
intents = discord.Intents(messages=True, members=True)
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_member_join(member):
username = member.name
await member.send('Hello')
print(username)
@bot.event
async def on_member_remove(member):
username = member.name
print(username)
bot.run('TOKEN')
我正在使用 discord.py 1.5.0。我该如何解决这个问题?
我不知道为什么这段代码对我不起作用:
intents = discord.Intents(messages=True, members=True)
bot = commands.Bot(command_prefix='!', intents=intents)
但我试图在他的视频中以@AbdurJ 的身份声明意图:
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)
而且有效!
下面给出的代码在以下情况下工作正常:
- 我启动机器人
- 用户加入服务器=>我得到用户名
- 用户离开服务器 => 我得到离开的成员的用户名
但是当我有这样的序列时:
- 我启动机器人
- 用户加入服务器=>我得到用户名
- 我重启bot:先关机再开机
- 用户离开服务器=> 我没有得到用户名
我有带用户名的数据库,所以在用户离开后我需要从数据库中删除他。例如,当我部署更新的机器人版本时,机器人会重新启动。这是我的代码:
import discord
from discord.ext import commands, tasks
intents = discord.Intents(messages=True, members=True)
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_member_join(member):
username = member.name
await member.send('Hello')
print(username)
@bot.event
async def on_member_remove(member):
username = member.name
print(username)
bot.run('TOKEN')
我正在使用 discord.py 1.5.0。我该如何解决这个问题?
我不知道为什么这段代码对我不起作用:
intents = discord.Intents(messages=True, members=True)
bot = commands.Bot(command_prefix='!', intents=intents)
但我试图在他的视频中以@AbdurJ 的身份声明意图:
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)
而且有效!