Fehlermeldung: "Command raised an exception: AttributeError: 'NoneType' object has no attribute 'stop'"?
Hallo!
Ich bin gerade dabei zu versuchen, meinen Discord Musikbot zu programmieren.
Aber als ich den Bot getestet habe, kam die ganze Zeit der Fehler
"Command raised an exception: AttributeError: 'NoneType' object has no attribute 'stop'".
Nun wollt ich fragen, ob ihr mir helfen könnt. Hier ist nochmal der Code:
import discord
from discord.ext import commands
import youtube_dl
class music(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def join(self, ctx):
if ctx.author.voice is None:
await ctx.send("Du bist in keinem Channel!")
voice_channel = ctx.author.voice.channel
if ctx.voice_client is None:
await voice_channel.connect()
else:
await ctx.voice_client.move_to(voice_channel)
@commands.command()
async def disconnect(self, ctx):
await ctx.voice_client.disconnect()
@commands.command()
async def play(self,ctx, url):
ctx.voice_client.stop()
FFMPEG_OPTIONS = { 'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn' }
YDL_OPTIONS = { 'format:"bestaudio"' }
vc = ctx.voice_client
with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
info = ydl.extract_info(url, download = False)
url2 = info['formats'][0]['url']
source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
vc.play(source)
@commands.command()
async def pause(self, ctx):
await ctx.voice_client.pause()
await ctx_send("Pausiert⏸️")
@commands.command()
async def resume(self, ctx):
await ctx.voice_client.resume()
await ctx_send("Weiter⏯️")
def setup(client):
client.add_cog(music(client))
1 Antwort
Die Fehlermeldung beschreibt, dass du ein Objekt mit dem Wert None hast und du darauf eine Methode aufrufen möchtest. Diese Methode gibt es auf diesem Objekt allerdings nicht.
In der Funktion play gibt es anscheinend keinen voice_client bzw. die Variable ctx hat nicht den Wert, den du erwartest.