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")
|