mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-07 11:48:55 -05:00
[V3] Make bot send typing whilst loading cogs (#1756)
* Show bot is responsive during cog load * Log download of Lavalink.jar event * Fix #1709's other bug * Reformat * Update core_commands.py from merge
This commit is contained in:
parent
622382f425
commit
0d193d3e9e
@ -1,6 +1,7 @@
|
||||
from pathlib import Path
|
||||
from aiohttp import ClientSession
|
||||
import shutil
|
||||
import logging
|
||||
|
||||
from .audio import Audio
|
||||
from .manager import start_lavalink_server
|
||||
@ -8,6 +9,8 @@ from discord.ext import commands
|
||||
from redbot.core.data_manager import cog_data_path
|
||||
import redbot.core
|
||||
|
||||
log = logging.getLogger("red.audio")
|
||||
|
||||
LAVALINK_DOWNLOAD_URL = (
|
||||
"https://github.com/Cog-Creators/Red-DiscordBot/" "releases/download/{}/Lavalink.jar"
|
||||
).format(redbot.core.__version__)
|
||||
@ -33,15 +36,13 @@ async def maybe_download_lavalink(loop, cog):
|
||||
jar_exists = LAVALINK_JAR_FILE.exists()
|
||||
current_build = redbot.core.VersionInfo(*await cog.config.current_build())
|
||||
|
||||
session = ClientSession(loop=loop)
|
||||
|
||||
if not jar_exists or current_build < redbot.core.version_info:
|
||||
log.info("Downloading Lavalink.jar")
|
||||
LAVALINK_DOWNLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
||||
async with ClientSession(loop=loop) as session:
|
||||
await download_lavalink(session)
|
||||
await cog.config.current_build.set(redbot.core.version_info.to_json())
|
||||
|
||||
session.close()
|
||||
|
||||
shutil.copyfile(str(BUNDLED_APP_YML_FILE), str(APP_YML_FILE))
|
||||
|
||||
|
||||
|
||||
@ -4,6 +4,9 @@ import asyncio
|
||||
from subprocess import Popen, DEVNULL, PIPE
|
||||
import os
|
||||
import logging
|
||||
from typing import Optional, Tuple
|
||||
|
||||
_JavaVersion = Tuple[int, int]
|
||||
|
||||
log = logging.getLogger("red.audio.manager")
|
||||
|
||||
@ -36,16 +39,16 @@ async def monitor_lavalink_server(loop):
|
||||
)
|
||||
|
||||
|
||||
async def has_java(loop):
|
||||
async def has_java(loop) -> Tuple[bool, Optional[_JavaVersion]]:
|
||||
java_available = shutil.which("java") is not None
|
||||
if not java_available:
|
||||
return False
|
||||
return False, None
|
||||
|
||||
version = await get_java_version(loop)
|
||||
return version >= (1, 8), version
|
||||
|
||||
|
||||
async def get_java_version(loop):
|
||||
async def get_java_version(loop) -> _JavaVersion:
|
||||
"""
|
||||
This assumes we've already checked that java exists.
|
||||
"""
|
||||
|
||||
@ -501,6 +501,7 @@ class Core(CoreLogic):
|
||||
"""Loads packages"""
|
||||
|
||||
cog_names = [c.strip() for c in cog_name.split(" ")]
|
||||
async with ctx.typing():
|
||||
loaded, failed, not_found = await self._load(cog_names)
|
||||
|
||||
if loaded:
|
||||
@ -546,7 +547,7 @@ class Core(CoreLogic):
|
||||
"""Reloads packages"""
|
||||
|
||||
cog_names = [c.strip() for c in cog_name.split(" ")]
|
||||
|
||||
async with ctx.typing():
|
||||
loaded, failed, not_found = await self._reload(cog_names)
|
||||
|
||||
if loaded:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user