从Discord.py中的远程服务器获取ping?

时间:2020-02-08 05:21:16

标签: python discord discord.py discord.py-rewrite

我正在用discord.py为我的个人服务器编写一个discord机器人。我和我的朋友是经常游戏的玩家,并且喜欢玩英雄联盟,所以我认为我们的机器人很酷的功能是显示我们和Riot服务器之间的当前延迟。到目前为止,我已经附上了这段代码,但这始终会返回该机器人所在的ping。我有办法让ping命令发给机器人的人ping吗?代码使用pythonping,位于https://pypi.org/project/pythonping/。谢谢:)

import discord
from discord.ext import commands
from pythonping import ping

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

@client.event
async def on_ready():
    print('Bot is ready.')

@client.command()
    async def lolping(ctx):
    server = '104.160.131.3'
    response = ping(server, size=40, count = 10)
    print(response)
    await ctx.send(f'Current NA LOL Ping: {response.rtt_avg_ms}ms')

2 个答案:

答案 0 :(得分:1)

不可能。它总是返回bot的ping的原因是因为bot发起了ping请求。该命令只是告诉机器人执行该操作。

机器人无法从另一台计算机启动ping请求。

答案 1 :(得分:1)

添加到@Benjin的答案中...

根据a ping的定义,发送ping的机器(在本例中为discord僵尸程序)测量接收其包返回所花费的时间。因此,由于僵尸程序无法从用户计算机发送数据包,因此它无法测量其ping。

也许您可以让该漫游器提供指向Riot的滞后报告页面here的链接,以便用户可以根据自己的位置进行检查。但是,这似乎仅适用于某些位置,我不知道它的用处。

祝你好运!