mirror of
https://github.com/catspace-dev/unicheckbot.git
synced 2024-11-28 16:33:43 +03:00
added minecraft checker
This commit is contained in:
parent
e57ab2dc49
commit
cad7e8d8c1
37
apps/api/api/checkers/minecraft.py
Normal file
37
apps/api/api/checkers/minecraft.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
from core.coretypes import Response, PortResponse, ErrorPayload, ErrorCodes, MinecraftResponse, ResponseStatus
|
||||||
|
from mcstatus import MinecraftServer
|
||||||
|
from .base import BaseChecker
|
||||||
|
import socket
|
||||||
|
|
||||||
|
|
||||||
|
class MinecraftChecker(BaseChecker):
|
||||||
|
|
||||||
|
def __init__(self, target: str, port: int):
|
||||||
|
self.port = port
|
||||||
|
super().__init__(target)
|
||||||
|
|
||||||
|
def check(self) -> Response:
|
||||||
|
try:
|
||||||
|
server = MinecraftServer.lookup(f"{self.target}:{self.port}")
|
||||||
|
status = server.status()
|
||||||
|
except socket.gaierror:
|
||||||
|
return Response(
|
||||||
|
status=ResponseStatus.ERROR,
|
||||||
|
payload=ErrorPayload(
|
||||||
|
message="Server does not respond!",
|
||||||
|
code=ErrorCodes.ConnectError
|
||||||
|
),
|
||||||
|
node=self.node_info
|
||||||
|
)
|
||||||
|
return Response(
|
||||||
|
status=ResponseStatus.OK,
|
||||||
|
payload=MinecraftResponse(
|
||||||
|
latency=status.latency,
|
||||||
|
max_players=status.players.max,
|
||||||
|
online=status.players.online
|
||||||
|
),
|
||||||
|
node=self.node_info
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user