python - discord.py TypeError:on_member_join()缺少1个必需的位置参数:'member'错误
问题描述
@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
作为一个论点,仅此而已。
为了仍然能够得到name
of theguild
或 theid
我们可以用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')
输出:
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
推荐阅读
- json - 将选择性属性从 JSON 导入 sql server 表的最佳方法是什么
- amazon-lex - Amazon Lex - 接受用户输入并存储它
- java - 有序流的状态映射操作是否以确定的方式处理元素?
- javascript - 如何使用 AJAX 更新 HTML 页面上文件的显示内容?
- vue.js - 如何将背景颜色应用于 buefy 表?
- c# - .NET MAC 算法和实现 ISO 9797 MAC 算法 1
- angular - 刷新具有 Angular 2 路由的现有 url 时 Nginx 404 错误
- javascript - IE 11 react 'promise' 未定义
- google-app-engine - Google AppEngine Flex 垃圾邮件活跃度和重复性检查
- php - 重新加载页面(发送表单)