Discord.py 机器人无法 ping,有人可以告诉我该怎么做吗?

Posted

技术标签:

【中文标题】Discord.py 机器人无法 ping,有人可以告诉我该怎么做吗?【英文标题】:Discord.py bot cannot ping, can someone show me what to do? 【发布时间】:2019-04-24 01:41:10 【问题描述】:
import discord
import random
from discord.ext import commands

TOKEN='MyToken'

client = commands.Bot(command_prefix = '$')

@client.event
async def on_ready():
    await client.change_presence(game=discord.Game(name='the love spreading!', type=3))
    print('## Startup Complete ##')

@client.command()
async def love(user1: discord.Member,        
user2: discord.Member):
    love=random.randint(0,100)
    await client.say(':heart:' + str(love) + '%:heart: \n ' + str(user1) + ' + '+ str(user2))

client.run(TOKEN)    

嘿,它只是说“@TheAlexGamer#7679”而不是 ping,为什么? (我已经删除了将 @ 添加到 *** 的字符串的部分)

【问题讨论】:

【参考方案1】:

您使用他们的不和谐 ID 来 ping 所以你可以使用这个代码

@client.command()
async def love(ctx):
    await ctx.send(f":heart: <@ctx.author.id>")

它获取发送消息 id 的人,然后 ping 他们

【讨论】:

【参考方案2】:

因为当您在 discord 上写 @TheAlexGamer#7679 时,您的 discord 客户端会自动将其更改为 &lt;@id_of_alexgmer&gt;

要使用机器人 ping 某人,请使用 member.mention 属性。

@client.command()
async def love(user1: discord.Member,        
user2: discord.Member):
    love=random.randint(0,100)
    await client.say(':heart:' + str(love) + '%:heart: \n ' + user1.mention + ' + '+ user2.mention)

client.run(TOKEN)    

【讨论】:

以上是关于Discord.py 机器人无法 ping,有人可以告诉我该怎么做吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 discord.py 中记录特定用户的信息?

如何使用 discord.py 让 discord bot ping 用户 [关闭]

如何让我的 discord.py 机器人识别它正在被 ping

(discord.py) 有啥方法可以自动保存嵌入图像?

调整图像大小 discord.py

有没有办法踢/禁止 discord.py 中的每个人?