python - CSGO数据不和谐机器人
问题描述
基本上,我想做的是一个 discord.py 机器人,它显示我所有的服务器播放器的状态,基本上也就是活动。
然后还有一个名为 $serverlist 的命令,它显示了我所有的 csgo 服务器,包括每个服务器的连接 ip、当前地图和玩家数量。
我遇到的问题不是它无法获得统计数据,而是可以。但我遇到的问题是我似乎无法保持更新,比如如果玩家人数是 10,然后有人加入它应该是 11 但事实并非如此,我什至将获取信息的代码放在 def reloadinfo(): 然后将其线程化为每 5 秒运行一次,无论如何代码如下。
重新加载信息代码:
def reloadinfo():
threading.Timer(5.0, reloadinfo).start()
AWPENABLED_ADDRESS = ("", 27015)
with valve.source.a2s.ServerQuerier(AWPENABLED_ADDRESS) as server:
players = []
for player in server.players()["players"]:
if player["name"]:
players.append(player)
player_count = len(players)
enabledname = server.info()["server_name"]
awpenabledplayercount = str(player_count)
enabledplayercount = str(server.info()["player_count"])
enabledmap = str(server.info()["map"])
AWPDISABLED_ADDRESS = ("", 27015)
with valve.source.a2s.ServerQuerier(AWPDISABLED_ADDRESS) as server1:
players = []
for player in server1.players()["players"]:
if player["name"]:
players.append(player)
player_count = len(players)
disabledname = server1.info()["server_name"]
awpdisabledplayercount = str(player_count)
disabledplayercount = str(server1.info()["player_count"])
disabledmap = str(server1.info()["map"])
NONADES_ADDRESS = ("", 27015)
with valve.source.a2s.ServerQuerier(NONADES_ADDRESS) as server2:
players = []
for player in server2.players()["players"]:
if player["name"]:
players.append(player)
player_count = len(players)
nadesname = server2.info()["server_name"]
nonadesplayercount = str(player_count)
nadesplayercount = str(server2.info()["player_count"])
nadesmap = str(server2.info()["map"])
SCOUTONLY_ADDRESS = ("", 27015)
with valve.source.a2s.ServerQuerier(SCOUTONLY_ADDRESS) as server3:
players = []
for player in server3.players()["players"]:
if player["name"]:
players.append(player)
player_count = len(players)
scoutname = server3.info()["server_name"]
scoutonlyplayercount = str(player_count)
scoutplayercount = str(server3.info()["player_count"])
scoutmap = str(server3.info()["map"])
reloadinfo()
状态码
async def status_task():
while True:
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name='AWP Enabled: ' + awpenabledplayercount + " playing"))
await asyncio.sleep(20)
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name='AWP Disabled: ' + awpdisabledplayercount + " playing"))
await asyncio.sleep(20)
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name='No Nades: ' + nonadesplayercount + " playing"))
await asyncio.sleep(20)
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name='Scout Only: ' + scoutonlyplayercount + " playing"))
await asyncio.sleep(20)
total = str(int(enabledplayercount) + int(disabledplayercount) + int(nadesplayercount) + int(scoutplayercount))
#total2 = str(total)
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name='Total Playing: ' + total + " playing"))
await asyncio.sleep(20)
如果需要更多代码 lmk,并给我一些有用的答案,我可以利用它来保持信息更新等等。
亲切的问候。
解决方案
推荐阅读
- javascript - 将 JavaScript 对象作为字符串发送到
- python - ValueError:发现样本数量不一致的输入变量:[13, 26]
- image - React Native 应用程序中的所有图像/快速图像不适用于 iOS 14 测试版和 Xcode 12 测试版
- oauth - 如何在 PassportJS 中有变量回调?
- c - 在 Windows 中将数据从 USB/RS485 串行发送到 RS485 C 代码
- java - 缺少工件 org.apache.flink:flink-table:jar:1.10.1
- xamarin - 尝试聚焦时,Webview 文本字段滚动到顶部 - Xamarin.forms iOS
- javascript - 当 firebase 数据库更新时,Chart.js 不会动态更新。(Vue.js)
- azure - Azure CDN - 如何从根域重定向到 www?来自规则引擎的某些规则不适用
- python - 如何在二维数组上训练模型?