I'm just getting started to discord.py and i'm trying to create a very simple bot that plays an mp3 audio from my local storage. So basically the bot should join a voice channel and play the mp3. Here is my code:
import discord
import ffmpeg
from discord.ext import commands
import datetime
from urllib import parse, request
import re
bot = commands.Bot(command_prefix='$', description="This is a Helper Bot")
@bot.command(name="test")
async def test(ctx):
# Gets voice channel of message author
voice_channel = ctx.author.channel
channel = None
if voice_channel != None:
channel = voice_channel.name
vc = await voice_channel.connect()
vc.play(discord.FFmpegPCMAudio(executable="C:/ffmpeg/bin/ffmpeg.exe", source=r"PATH"))
# Sleep while audio is playing.
while vc.is_playing():
sleep(.1)
await vc.disconnect()
else:
await ctx.send(str(ctx.author.name) + "is not in a channel.")
# Delete command after the audio is done playing.
await ctx.message.delete()
@bot.command()
async def ping(ctx):
await ctx.send('pong')
@bot.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
bot.run('MYKEY')
I found the test
function here on SO, but i'm having problems using it. When i call it from discord, i get the following error:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Member' object has no attribute 'channel'
What am i doing wrong here?