Discord.py 中的 Discord.js 的 `user.tag` 和 `user.username`?

Posted

技术标签:

【中文标题】Discord.py 中的 Discord.js 的 `user.tag` 和 `user.username`?【英文标题】:Discord.js's `user.tag` and `user.username` in Discord.py? 【发布时间】:2021-04-11 04:29:09 【问题描述】:

我正在尝试用 Python 编写一个 Discord 机器人来获得乐趣,根据我为 discord.js (https://discord.js.org/#/docs/main/stable/class/User) 找到的文档,应该有一个 user.taguser.username 给你一个字符串(I'我正在为message.author(用户的子类)寻找一种方法)。这在discord.py 中不起作用,我在discord.py 中找不到类似的东西。有谁知道怎么做?

参考代码:

@client.event
async def on_message(message):
    print(message.content + " sent by " + message.author.username + message.author.tag)
    if message.author == client.user:
        return
    Reply = "Test"
    await message.channel.send(Reply)

【问题讨论】:

请先阅读discord.py documentation,您可能会在不同的类名下找到相同的类。我的一个小建议是不要将discord.jsdiscord.py 视为相同。它们可能相似,尽管您可能能够找到相同的函数和/或数据,但它们在实际代码中却截然不同。 【参考方案1】:

如果您正在寻找鉴别器 (9999),请使用 Member.discriminator

message.author.discriminator

或者,如果您正在寻找全名 (HelloWorld#9999)

message.author.name

你的源代码

@client.event
async def on_message(message):
    print(message.content + " sent by " + message.author.name)
    if message.author == client.user:
        return
    Reply = "Test"
    await message.channel.send(Reply)

参考:

Member.discriminator Member.name

【讨论】:

【参考方案2】:

没有Member.tag 这样的东西,我想你正在寻找Member.discriminator

tag = message.author.discriminator

或者,如果您正在寻找全名 (example#1234)

name = str(message.author) # Or `message.author.name`

参考:

Member.discriminator Member.name

【讨论】:

【参考方案3】:

你可以这样做:

name = message.author.name 

然后拼接字符串得到标签,通过#拼接

【讨论】:

以上是关于Discord.py 中的 Discord.js 的 `user.tag` 和 `user.username`?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 discord.py 中嵌入如下图所示的按钮? [关闭]

有没有办法在 discord.js 中发出 ping 命令? [复制]

如何让我的 discord.py 机器人提及我的消息中提到的某人?

如果消息以前缀 + 使用 discord.js 的命令开头,如何使 if 语句起作用

发送大量 webhook 消息时结果不一致

限制同时发送消息