python - 这种语法会正确取消暂停成员吗?
问题描述
我正在尝试发出暂停命令,但不确定在时间结束后它是否会正确取消暂停。我想在前缀后使用 1m/30s/5h/2d 挂起,但它不会取消挂起。我不确定我是否等待了足够长的时间,但是它没有响应或产生错误。
@bot.command()
@commands.has_any_role('✪ Commissioner ✪', '✪ Vice Commissioner ✪', '✪ Board of Directors ✪')
async def suspend(ctx, member:discord.Member, time, *, reason):
guild = bot.get_guild(766292887914151949)
role_name = 'Suspended'
role = discord.utils.get(guild.roles, name='Suspended')
embed = discord.Embed(colour = discord.Colour.red())
embed.add_field(name='<a:CheckMark:768095274949935146> **Success!**', value=f'{member.mention} has been successfully suspended for {time} for {reason}')
# Defile the "role" variable
role = ctx.guild.get_role(766647041483866132)
await ctx.send(embed=embed)
await member.add_roles(role)
await bot.delete_message(ctx.message)
# Using asyncio module to wait
expired = await asyncio.sleep(time)
await member.remove_roles(role)
thing = discord.Embed(name='<a:CheckMark:768095274949935146> Suspension Expired', value=f"{member.mention}'s suspension is over.")
await expired.send(embed=thing)
解决方案
你的问题在这里:
expired = await asyncio.sleep(time)
await member.remove_roles(role)
thing = discord.Embed(name='<a:CheckMark:768095274949935146> Suspension Expired', value=f"{member.mention}'s suspension is over.")
await expired.send(embed=thing) # expired isn't a messageable...
# -------------------------------------------------------------
# To fix this, you can use ctx.send instead.
expired = await asyncio.sleep(time)
await member.remove_roles(role)
thing = discord.Embed(name='<a:CheckMark:768095274949935146> Suspension Expired', value=f"{member.mention}'s suspension is over.")
await ctx.send(embed=thing)
推荐阅读
- objective-c - 对于Objective-C,nsmenuitem nsmenu 菜单栏不显示问题
- python - 如何使用 Spotipy 获取 Spotify 的曲目时长
- swift - 跟踪 NSWindow 焦点?(斯威夫特,macOS)
- reactjs - 通过 ui 触发动作的行为与使用键事件处理时不同
- flutter - CheckBox - 完成该商店的工作后,在商店列表上显示一个勾号
- app-actions - 有没有办法在控制台中了解我的应用操作审核状态?
- java - 从 URL 下载 pdf 文件并将其保存在 android (java) 的特定文件夹中
- express - Nuxt/Express API 在控制台而不是浏览器中返回
- javascript - 未捕获的 ReferenceError:我的函数未在 HTMLInputElement.onclick 中定义
- html - CSS嵌套类不能直接选择?