因此,在一个普通的静音命令中,例如,bot正在得到一个更新,静音命令在其最后一点永远不会解除用户的静音!因此,我创建了一个数据库,并将当前静音的user_id和日期时间存储为最终解除静音时间,还存储了公会的id。
例如,当我启动更新时,静音将保存到数据库中,以便稍后从on_ready事件中提取。然后我拉出值,然后做discord.utils.sleep_until(dateime #aka the final unmute time),当它完成时,解除用户的静音。
这里的问题是:如何获得存储在数据库中的公会id,并从数据库中删除公会中的静音角色(因为服务器--也就是"ctx“不再是一件事了)?
语言- Python,数据库- mysql
+----------------------------------------
|user1 |datetime(of the unmute)|guild_id|
+----------------------------------------
mute - inserts the above info^^^
def on_ready():
print("ready")
selects the values
discord.utils_sleep_until(datetime of unmute)
take away role in guild如果我目前的方法不是最好的,我当然愿意接受更好的建议。
发布于 2021-12-09 01:28:05
尝试实现这一点:
# load guild
guild = client.get_guild(guild_id)
# load member of the guild
member = client.get_member(member_id)
# remove role from the member
member.remove_roles([mute_role])client.get_guild将把与Guild.get_member相同的不和谐公会数据加载到内存中。你只需要用你想要瞄准的行会/会员的身份证去取他们。
https://stackoverflow.com/questions/70281155
复制相似问题