[英]Discord Py Errors.... (TypeError: on_member_join() missing 2 required positional arguments: 'ctx' and 'channel')
[英]discord.py TypeError: on_member_join() missing 1 required positional argument: 'member' error
@client.event
async def on_member_join(ctx, member : discord.member):
print(f'{time} {member} has joined {ctx.guild.name}, Server ID: {ctx.guild.id}')
with open('join-log.txt', 'a') as joinlog:
joinlog.writelines(f'{time} {member} has joined {ctx.guild.name}, Server ID: {ctx.guild.id}\n')
@client.event
async def on_member_remove(ctx, member : discord.member):
print(f'{time} {member} has joined {ctx.guild.name}, Server ID: {ctx.guild.id}')
with open('leave-log.txt', 'a') as leavelog:
leavelog.writelines(f'{time} {member} has left {ctx.guild.name}, Server ID: {ctx.guild.id}\n')
此代碼旨在創建一個文本文件並存儲離開和加入服務器的用戶,其中包含我的機器人。 它提出的錯誤是
TypeError: on_member_join() missing 1 required positional argument: 'member'
但我似乎無法弄清楚這段代碼有什么問題
正如評論中提到的: on_member
事件只是將member
作為參數,僅此而已。
為了仍然能夠獲得guild
的name
或id
,我們可以將ctx
替換為member
。 我們還通過datetime.datetime.utcnow
請求准確時間,但您也可以通過任何其他方式進行。
看看完整的代碼:
import datetime
@client.event
async def on_member_join(member):
print(f'{datetime.datetime.utcnow()} {member} has joined {member.guild.name}, Server ID: {member.guild.id}')
with open('join-log.txt', 'a') as joinlog:
joinlog.writelines(f'{datetime.datetime.utcnow()} {member} has joined {member.guild.name}, Server ID: {member.guild.id}\n')
@client.event
async def on_member_remove(member):
print(f'{datetime.datetime.utcnow()} {member} has left {member.guild.name}, Server ID: {member.guild.id}')
with open('leave-log.txt', 'a') as leavelog:
leavelog.writelines(f'{datetime.datetime.utcnow()} {member} has left {member.guild.name}, Server ID: {member.guild.id}\n')
output:
2021-05-14 22:56:12.511888 XXXX#0000 has left Test Server, Server ID: XXX
2021-05-14 22:56:22.067174 XXXX#0000 has joined Test Server, Server ID: XXX
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.