Вам нужно использовать commands.command()
@commands.command()
async def join(self, ctx, voice_channel):
Затем используйте voice_channel.connect()
voice_channel.connect()
Я предлагаю использовать VoiceChannelConverter
.Таким образом, в целом ваша функция должна выглядеть примерно так, за исключением любой другой логики, которую вы хотите.
from discord.ext import commands
@commands.command()
async def join(self, ctx, voice_channel: commands.VoiceChannelConverter):
try:
await voice_channel.connect()
except commands.BotMissingPermissions as error:
#send them a prettied up message saying HEY I NEED {} PERMS!
await ctx.send(f"I have joined: {voice_channel}")
Также обратите внимание, что должен находиться в пределах cog / расширение , поэтомупринять это во внимание.По крайней мере, это обычное соглашение, что-то вроде «голосового» винта.