McStatus-API/JavaServerStatus.py
2025-08-16 04:50:02 +08:00

52 lines
No EOL
1.8 KiB
Python

# -*- coding: utf-8 -*-
# 此模块用于查询 Java 版服务器状态,并将其数据赋值给类以供灵活调用单个值
from mcstatus import JavaServer
class JavaStatus:
def __init__(self, enforces_secure_chat, forge_data, icon, latency, motd, version, players, online_player, max_players, sample_players):
self.enforces_secure_chat = enforces_secure_chat
self.forge_data = forge_data
self.icon = icon
self.latency = latency
self.motd = motd
self.version = version
self.players = players
self.online_player = online_player
self.max_players = max_players
self.sample_players = sample_players
def java_status(ip):
try:
print(f'正在解析: {ip}')
server = JavaServer.lookup(ip)
status = server.status()
# 将 status 属性拆分成多个变量
enforces_secure_chat = status.enforces_secure_chat # 是否开启聊天签名
forge_data = status.forge_data # FML版本
icon = status.icon # 图标,输出为 base64
latency = status.latency # 延迟
motd = status.description # 标题
version = status.version.name # 版本
# 关于玩家信息的获取
players = status.players # 玩家总类
online_player = players.online # 在线玩家数
max_players = players.max # 最大玩家数
sample_players = players.sample # 在线玩家的 ID,UUID
return JavaStatus(
enforces_secure_chat,
forge_data,
icon,
latency,
motd,
version,
players,
online_player,
max_players,
sample_players,
)
except Exception as e:
return print(f"获取服务器状态时出错: {e}")