pinger_bot.mc_api#

API module with Minecraft Servers API.

Module Contents#

Classes#

Address

Class for containing information about server address.

Players

Dataclass for MCServer.players field.

BaseMCServer

Base class for MCServer and FailedMCServer.

MCServer

Represents an Minecraft Server, doesn't depends on platform (Java or Bedrock).

FailedMCServer

Represents a server, when ping failed.

Attributes#

_Address_resolve_cache

Helper for tests, this used when you need to remove the cache.

_Address_resolve_cache: cachetools.TTLCache[source]#

Helper for tests, this used when you need to remove the cache.

class Address[source]#

Class for containing information about server address.

host: str[source]#

Host where server is, like 127.0.0.1.

port: int[source]#

Port of the server, example 25565 or 19132.

input_ip: str[source]#

Unparsed and unmodified IP, which was passed before everything.

alias: str | None[source]#

Alias of the server.

display_ip: str[source]#

Display IP of the server (alias, if this unset - input_ip).

num_ip: str[source]#

Number IP of the server. Always with port. Example 127.0.0.1:25565.

_server: mcstatus.JavaServer | mcstatus.BedrockServer[source]#

Private attribute with JavaServer or BedrockServer instance.

async classmethod resolve(input_ip: str, *, java: bool) Address[source]#

Resolve IP or domain or alias to Address object.

Parameters:
  • input_ip – IP or domain or alias to resolve.

  • java – If True, then mcstatus.JavaServer will be used. Else - mcstatus.BedrockServer.

Returns:

Resolved Address object.

async static _get_ip_from_alias(alias: str) str | None[source]#

Get IP from alias.

Parameters:

alias – Alias to resolve.

Returns:

IP if alias was found, else None.

async static _get_number_ip(input_ip: str) str[source]#

Make query to DNS and get number IP.

Parameters:

input_ip – Domain to query.

Returns:

Number IP or input IP if resolving failed.

async static _get_alias_from_ip(host: str, port: int) str | None[source]#

Get alias from IP.

Parameters:
  • host – Server’s host, which exist in database.

  • port – Server’s port, which exist in database.

Returns:

Alias if found, else None.

class Players[source]#

Dataclass for MCServer.players field.

online: int[source]#

Number of online players.

max: int[source]#

Maximum number of players.

__str__() str[source]#

Return string representation of Players object.

class BaseMCServer[source]#

Bases: abc.ABC

Base class for MCServer and FailedMCServer.

property icon: str[source]#

Icon of the server.

Returns:

Icon of the server.

address: Address[source]#

Address of the server.

class MCServer[source]#

Bases: BaseMCServer

Represents an Minecraft Server, doesn’t depends on platform (Java or Bedrock).

motd: str[source]#

MOTD of the server.

version: str[source]#

Name of the version, example 1.18 or 1.7.

players: Players[source]#

Players object.

latency: float[source]#

Time of response from server, in milliseconds.

async classmethod status(host: str) MCServer | FailedMCServer[source]#

Get cross-platform status.

First ping it as mcstatus.JavaServer, and if it fails, ping as mcstatus.BedrockServer.

Parameters:

host – Host where server is, like 127.0.0.1:25565, hypixel.net or alias.

Returns:

Initialised MCServer object or FailedMCServer if ping failed.

async static _handle_exceptions(done: Set[asyncio.Task], pending: Set[asyncio.Task]) asyncio.Task | None[source]#

Handle exceptions in MCServer.status() method.

This also cancels all pending tasks, if found correct one.

Parameters:
  • done – Direct done set from asyncio.wait() method.

  • pending – All pending tasks, which will be recursively handled.

Returns:

Value from task parameter, or one of the success tasks from pending set.

Raises:

ValueError – If done set is empty.

async classmethod handle_response(host: str, *, java: bool) MCServer[source]#

Handle java server and transform it to MCServer object.

Parameters:
  • host – Host where server is, like 127.0.0.1:25565, hypixel.net or alias.

  • java – If server is Java or Bedrock.

Returns:

Initialised MCServer object.

class FailedMCServer[source]#

Bases: BaseMCServer

Represents a server, when ping failed.

async classmethod handle_failed(host: str) FailedMCServer[source]#

Handle failed ping and transform it to MCServer object.

Parameters:

host – Host where server is, like 127.0.0.1:25565, hypixel.net or alias.

Returns:

Initialised MCServer object.