python - 错误:命令引发异常:AttributeError:“消息”对象没有属性“成员”
问题描述
我正在尝试使用 discord.py 向我的 Discord 机器人添加货币命令。这是我的代码:
@client.command()
async def balance(ctx):
await open_account(ctx.message.member)
user = ctx.message.member
users = await get_bank_data()
wallet_amt = users[str(user.id)]["wallet"]
bank_amt = users[str(user.id)]["bank"]
em = discord.Embed(title=f"{ctx.author.name}'s balance",
color=discord.Color.red())
em.add.field(name="Wallet balance", value=wallet_amt)
em.add.field(name="Bank balance", value=bank_amt)
await ctx.send(embed=em)
@client.command()
async def beg(ctx):
await open_account(ctx.message.member, )
users = await get_bank_data()
user = ctx.message.member
earnings = random.randrange(101)
await ctx.send(f"Someone gave you {earnings}coins!!")
users[str(user.id)]["wallet"] += earnings
with open("mainbank.json", "w") as f:
json.dump(users, f)
async def open_account(ctx):
user = ctx.message.member
users = await get_bank_data()
if str(user.id) in users:
return False
else:
users[str(user.id)] = {}
users[str(user.id)]["wallet"] = 0
users[str(user.id)]["bank"] = 0
with open("mainbank.json", "w") as f:
json.dump(users, f)
return True
async def get_bank_data():
with open("mainbank.json", "r") as f:
users = json.load(f)
return users
但是当我使用 balance 命令时,我得到了这个错误:
错误:命令引发异常:AttributeError:“消息”对象没有属性“成员”
解决方案
那是因为您需要使用ctx.author
来获取消息作者。
推荐阅读
- javascript - ReactDOM.render 没有渲染所有的 Id
- javascript - Jquery .Replacewith 返回字符串
- json - 如何将 JSON 日期转换为 MMM yyyy 格式
- algorithm - 长字符串的 Rabin-Karp 的平均案例运行时间
- delphi - 如何将 TMap 居中于蓝点(我的 GPS 位置)
- python - Django 没有在表单中添加类问题
- reactjs - 在 React-Redux 中将路由组件渲染为函数的问题
- python - Python:如何获取、处理、转换带有“.thumb”扩展名的图像 url?
- java - 为通用验证扩展通用接口
- macos - Arduino IDE 未显示任何端口 macOS