33 lines
863 B
Python
33 lines
863 B
Python
from .. import Module
|
|
from mcstatus import MinecraftServer
|
|
|
|
|
|
class McStat(Module):
|
|
PREFIX = "mc"
|
|
NAME = "mcstat"
|
|
|
|
async def command(self, cmd):
|
|
if cmd[0] == "online":
|
|
address = self._config["domain"]
|
|
port = self._config.get("port")
|
|
|
|
if port:
|
|
address += ":" + str(port)
|
|
|
|
server = MinecraftServer.lookup(address)
|
|
status = server.status()
|
|
|
|
if status.players.sample is not None:
|
|
players = [player.name for player in status.players.sample]
|
|
|
|
else:
|
|
players = None
|
|
|
|
channel = self._client.get_channel(self._config["channel_id"])
|
|
|
|
if players:
|
|
await channel.send(f'Currently online: {",".join(players)}')
|
|
|
|
else:
|
|
await channel.send("No one is here bro")
|