如何创建昵称“更改历史记录”命令|不和谐

时间:2020-06-10 07:56:23

标签: python-3.x discord discord.py

我想知道是否有什么方法可以显示某个服务器中所有昵称的更改,如下面的Blargbot所示

Blargbot "names" command

1 个答案:

答案 0 :(得分:1)

可能是他们使用某种数据库来存储昵称(SQLite,MongoDB,Postgres等)。您可以通过on_member_update事件来捕获更改其昵称的用户:

@bot.event
async def on_member_update(old, new):
    if old.nick != new.nick and new.nick:
        # store new.nick in a database

old.nick != new.nick确保更改的是昵称,而不是其他(例如其状态或角色)。
and new.nick正在确保其新昵称存在(!= None)。仅具有第一个条件是不够的,因为如果用户删除了昵称,并且您想确保它不是None,则也会触发此事件。尽管如果您确实想在他们删除昵称时进行存储,那么您可以坚持第一个条件。


参考: