from typing import Dict, List, Optional
from pydantic import BaseModel
from .minecraft import Debug, Motd, Players
[docs]class Info(BaseModel):
"""Info model
Args:
raw (List[str]): Raw info with minecraft formatting.
clean (List[str]): Cleaned info without minecraft formatting.
html (List[str]): Html info with html formatting.
"""
raw: List[str]
clean: List[str]
html: List[str]
[docs]class Mods(BaseModel):
"""Info model
Args:
names (List[str]): Names of current minecraft mods.
raw (Dict[str, str]): Raw mod information.
"""
names: List[str]
raw: Dict[str, str]
[docs]class Plugins(BaseModel):
"""Info model
Args:
names (List[str]): Names of current minecraft plugins.
raw (Dict[str, str]): Raw mod information.
"""
names: List[str]
raw: Dict[str, str]
[docs]class Status(BaseModel):
"""Info model
Args:
online (bool): Wether server online.
ip (str): Ip address of server.
port (int): Port of minecraft server.
debug (Debug): Debug data.
motd (Motd): Motd of server.
players (Players): Players in the server.
version (str): Version of protocol.
map (str): Current map.
protocol (Optional[int]): Protocol number.
hostname (Optional[str]): Hostname of server.
icon (Optional[str]): Favicon of server.
software (Optional[str]): Software running server.
plugins (Optional[Plugins]): Plugins installed.
mods (Optional[Mods]): Mods installed.
info (Optional[Info]): Info provided in players rather then players.
"""
online: bool
ip: str
port: int
debug: Debug
motd: Motd
players: Players
version: str
map: str
protocol: Optional[int]
hostname: Optional[str]
icon: Optional[str]
software: Optional[str]
plugins: Optional[Plugins]
mods: Optional[Mods]
info: Optional[Info]