Untitled
unknown
python
2 years ago
1.4 kB
4
Indexable
import discord import asyncio import ping3 DISCORD_BOT_TOKEN = 'MTEzNDk1MjE0NDczOTUxNjUyNg.GEXLvu.JrHwkBeT6H4UQx5P5WU_Stv-A7hZeTG0b0iKLU' CHANNEL_ID = 1134934695507939471 MINECRAFT_SERVER_IP = '23.241.209.111' MINECRAFT_SERVER_PORT = 25565 client = discord.Client() @client.event async def on_ready(): print(f'Logged in as {client.user.name} ({client.user.id})') print('Bot is ready to show Minecraft server status.') @client.event async def on_message(message): if message.author == client.user: return # Listen for a specific command to stop the bot if message.content.lower() == '!stopbot': await message.channel.send('Stopping the bot.') await client.close() # Gracefully close the bot async def check_server_status(): while True: status = "offline" try: response_time = ping3.ping(MINECRAFT_SERVER_IP, MINECRAFT_SERVER_PORT, timeout=1) if response_time is not None: status = "online" except ping3.exceptions.Timeout: pass channel = client.get_channel(CHANNEL_ID) await channel.send(f'Minecraft server is {status}.') await asyncio.sleep(60) if __name__ == '__main__': client.loop.create_task(check_server_status()) try: client.run(DISCORD_BOT_TOKEN) except KeyboardInterrupt: print('Bot stopped manually.')
Editor is loading...