В моем боте discord.py я пытаюсь создать функцию, которая запускает код, необходимый для того, чтобы бот присоединился к голосовому каналу, воспроизвел аудиофайл и затем ушел. Я делаю это, поэтому мне не нужно копировать и вставлять один и тот же код для каждой голосовой команды, которую я хочу сделать. Однако я не могу заставить функцию работать.
Я попытался поиграться с функциями async def и await для моей функции, однако, похоже, она не работает. Я не знаю, как, когда я запускаю свой код, я не получаю ошибок.
async def voiceCommand(ctx, message, file, time, cmd):
channel = ctx.message.author.voice.voice_channel
if channel == None: # If the user who sent the voice command isn't in a voice channel.
await client.say('You are not in a voice channel, therefore I cannot run this command.')
return
else: # If the user is in a voice channel
print(executed(cmd, message.author))
voice = await client.join_voice_channel(channel)
server = ctx.message.server
voice_client = client.voice_client_in(server)
player = voice.create_ffmpeg_player(file) # Uses ffmpeg to create a player, however it makes a pop up when it runs.
player.start()
time.sleep(float(time))
await voice_client.disconnect() # Disconnects WingBot from the voice channel.
*
и * 1006
@client.command(pass_context = True)
async def bigbruh(ctx):
voiceCommand(ctx, message, 'bigbruh.mp3', '0.5', 'bigbruh')
Это фрагменты кода, которые я пытаюсь использовать для запуска функции.
Полный исходный код здесь: https://pastebin.com/bv86jSvk