fix(pterodactyl): do not log during startup/shutdown to avoid the console channel getting flooded and ratelimited
Some checks failed
Actions / Lint Code (Ruff & Pylint) (pull_request) Failing after 18s
Actions / Build Documentation (MkDocs) (pull_request) Successful in 21s

This commit is contained in:
Seaswimmer 2024-02-28 13:39:40 -05:00
parent 142336e233
commit 39ae8b5ea0
Signed by: cswimr
GPG key ID: B8953EC01E5C4063

View file

@ -65,6 +65,7 @@ class Pterodactyl(commands.Cog):
while True: while True:
message = await websocket.recv() message = await websocket.recv()
current_status = ''
if json.loads(message)['event'] in ['token expiring', 'token expired']: if json.loads(message)['event'] in ['token expiring', 'token expired']:
self.logger.debug("Received token expiring/expired event. Refreshing token.") self.logger.debug("Received token expiring/expired event. Refreshing token.")
websocket_credentials = client.servers.get_websocket(server_id) websocket_credentials = client.servers.get_websocket(server_id)
@ -76,14 +77,16 @@ class Pterodactyl(commands.Cog):
self.logger.debug("Authentication successful") self.logger.debug("Authentication successful")
if json.loads(message)['event'] == 'console output' and await self.config.console_channel() is not None: if json.loads(message)['event'] == 'console output' and await self.config.console_channel() is not None:
channel = self.bot.get_channel(await self.config.console_channel()) if current_status != 'starting' and current_status != 'stopping' and current_status != 'restarting':
if channel is not None: channel = self.bot.get_channel(await self.config.console_channel())
content = self.remove_ansi_escape_codes(json.loads(message)['args'][0][:1900]) if channel is not None:
if content.startswith('['): content = self.remove_ansi_escape_codes(json.loads(message)['args'][0][:1900])
await channel.send(content=content) if content.startswith('['):
#TODO - Add pagification for long messages to prevent Discord API errors await channel.send(content=content)
#TODO - Add pagification for long messages to prevent Discord API errors
if json.loads(message)['event'] == 'status': if json.loads(message)['event'] == 'status':
current_status = json.loads(message)['args'][0]
console = self.bot.get_channel(await self.config.console_channel()) console = self.bot.get_channel(await self.config.console_channel())
if console is not None: if console is not None:
await console.send(f"Server status changed! `{json.loads(message)['args'][0]}`") await console.send(f"Server status changed! `{json.loads(message)['args'][0]}`")