init
This commit is contained in:
52
discord-bot/frankstein-bot.py
Normal file
52
discord-bot/frankstein-bot.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import discord
|
||||
from discord.ext import tasks, commands
|
||||
from mcstatus import JavaServer
|
||||
|
||||
import os
|
||||
|
||||
TOKEN = os.environ['TOKEN']
|
||||
MC_HOST = os.environ.get('MC_HOST', 'localhost')
|
||||
MC_PORT = int(os.environ.get('MC_PORT', 7272))
|
||||
CHANNEL_ID = int(os.environ['CHANNEL_ID'])
|
||||
|
||||
|
||||
|
||||
intents = discord.Intents.default()
|
||||
bot = commands.Bot(command_prefix='!', intents=intents)
|
||||
|
||||
@bot.event
|
||||
async def on_ready():
|
||||
print(f'Přihlášen jako {bot.user}')
|
||||
update_status.start()
|
||||
|
||||
@tasks.loop(seconds=5)
|
||||
async def update_status():
|
||||
channel = bot.get_channel(CHANNEL_ID)
|
||||
if channel is None:
|
||||
print("Kanál nenalezen.")
|
||||
return
|
||||
|
||||
try:
|
||||
server = JavaServer(MC_HOST, MC_PORT)
|
||||
status = server.status()
|
||||
|
||||
player_count = status.players.online
|
||||
name = f'🟢|online|👤:{player_count}'
|
||||
|
||||
except Exception as e:
|
||||
print("Server offline nebo nelze připojit:", e)
|
||||
name = '🔴|server down!!!'
|
||||
|
||||
try:
|
||||
if name != channel.name:
|
||||
await channel.edit(name=name)
|
||||
|
||||
|
||||
except discord.Forbidden:
|
||||
|
||||
print("Bot nemá oprávnění měnit název kanálu.")
|
||||
|
||||
except discord.HTTPException as e:
|
||||
print("HTTP chyba:", e)
|
||||
|
||||
bot.run(TOKEN)
|
||||
Reference in New Issue
Block a user