簡體   English   中英

discord.py 類型錯誤:on_member_join() 缺少 1 個必需的位置參數:“成員”錯誤

[英]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作為參數,僅此而已。

為了仍然能夠獲得guildnameid ,我們可以將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM