hungerlib 4.22__tar.gz → 4.23.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hungerlib-4.22/src/hungerlib.egg-info → hungerlib-4.23.dev2}/PKG-INFO +1 -1
- {hungerlib-4.22 → hungerlib-4.23.dev2}/pyproject.toml +1 -1
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/servers/minecraft.py +32 -4
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/utils/utils.py +2 -2
- {hungerlib-4.22 → hungerlib-4.23.dev2/src/hungerlib.egg-info}/PKG-INFO +1 -1
- {hungerlib-4.22 → hungerlib-4.23.dev2}/LICENSE +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/README.md +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/setup.cfg +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/__init__.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/__init__.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/backups.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/command.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/databases.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/filemanager.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/schedule.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/api/startup.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/bridgeclient.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/configloader.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/messagerouter.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/panel.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/servers/__init__.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/servers/generic.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/utils/__init__.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/utils/exceptions.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/utils/time.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib/validator.py +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib.egg-info/SOURCES.txt +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib.egg-info/dependency_links.txt +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib.egg-info/requires.txt +0 -0
- {hungerlib-4.22 → hungerlib-4.23.dev2}/src/hungerlib.egg-info/top_level.txt +0 -0
|
@@ -16,7 +16,7 @@ class MinecraftServer(GenericServer):
|
|
|
16
16
|
server_id: str,
|
|
17
17
|
server_domain: str,
|
|
18
18
|
server_port: int,
|
|
19
|
-
|
|
19
|
+
bridge_url: str,
|
|
20
20
|
bridge_token: str,
|
|
21
21
|
):
|
|
22
22
|
super().__init__(
|
|
@@ -30,10 +30,21 @@ class MinecraftServer(GenericServer):
|
|
|
30
30
|
self.server_port = server_port
|
|
31
31
|
|
|
32
32
|
# HungerBridge client
|
|
33
|
-
bridge_url = f'http://{server_domain}:{bridge_port}'
|
|
34
33
|
self.bridge = BridgeClient(bridge_url, bridge_token)
|
|
35
34
|
|
|
36
35
|
|
|
36
|
+
# basic information properties
|
|
37
|
+
@property
|
|
38
|
+
def bridge_version(self) -> str | None:
|
|
39
|
+
return self.bridge.getVersion()
|
|
40
|
+
@property
|
|
41
|
+
def version(self) -> str | None:
|
|
42
|
+
return self.bridge.getMinecraftVersion()
|
|
43
|
+
@property
|
|
44
|
+
def platform(self) -> str | None:
|
|
45
|
+
return self.bridge.getPlatform()
|
|
46
|
+
|
|
47
|
+
|
|
37
48
|
def getPlayers(self, mode: str = 'count') -> int | list | None:
|
|
38
49
|
'''Returns current online players'''
|
|
39
50
|
if mode == 'count':
|
|
@@ -43,7 +54,15 @@ class MinecraftServer(GenericServer):
|
|
|
43
54
|
else:
|
|
44
55
|
raise InvalidModeError(f"Invalid mode: '{mode}'")
|
|
45
56
|
|
|
46
|
-
|
|
57
|
+
@property
|
|
58
|
+
def player_count(self) -> int:
|
|
59
|
+
return self.getPlayers(mode='count') or 0
|
|
60
|
+
@property
|
|
61
|
+
def player_list(self) -> list[str]:
|
|
62
|
+
return self.getPlayers('list') or []
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def max_players(self) -> int:
|
|
47
66
|
'''
|
|
48
67
|
Runs the 'list' command and extracts the max player count.
|
|
49
68
|
Expected format:
|
|
@@ -63,7 +82,11 @@ class MinecraftServer(GenericServer):
|
|
|
63
82
|
|
|
64
83
|
def getTPS(self, mode: str = 'current', rounding: int = 3) -> float | None:
|
|
65
84
|
'''
|
|
66
|
-
|
|
85
|
+
Returns TPS values:
|
|
86
|
+
- current: EMA20
|
|
87
|
+
- 1m: EMA1200
|
|
88
|
+
- 5m: EMA6000
|
|
89
|
+
- tick_time: avg tick time (ms)
|
|
67
90
|
'''
|
|
68
91
|
try:
|
|
69
92
|
value = self.bridge.getTPS(mode)
|
|
@@ -73,6 +96,11 @@ class MinecraftServer(GenericServer):
|
|
|
73
96
|
return None
|
|
74
97
|
return round(value, rounding) if rounding is not None else value
|
|
75
98
|
|
|
99
|
+
@property
|
|
100
|
+
def tps(self) -> float | None:
|
|
101
|
+
return self.getTPS()
|
|
102
|
+
|
|
103
|
+
|
|
76
104
|
# commands
|
|
77
105
|
def sendConsoleCommand(
|
|
78
106
|
self,
|
|
@@ -59,7 +59,7 @@ class Snapshot:
|
|
|
59
59
|
self.network_in = smooth(samples['network_in'])
|
|
60
60
|
self.network_out = smooth(samples['network_out'])
|
|
61
61
|
self.tps = smooth(samples['tps'])
|
|
62
|
-
self.players =
|
|
62
|
+
self.players = Server.getPlayers('count')
|
|
63
63
|
|
|
64
64
|
# --- instant snapshot (no smoothing) ---
|
|
65
65
|
else:
|
|
@@ -68,7 +68,7 @@ class Snapshot:
|
|
|
68
68
|
self.network_in = Server.getNetworkIn(rounding, gb)
|
|
69
69
|
self.network_out = Server.getNetworkOut(rounding, gb)
|
|
70
70
|
self.tps = Server.getTPS() if hasattr(Server, 'getTPS') else None
|
|
71
|
-
self.players = Server.getPlayers(
|
|
71
|
+
self.players = Server.getPlayers('count')
|
|
72
72
|
|
|
73
73
|
# uptime is static
|
|
74
74
|
self.uptime = Server.getUptime()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|