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))
programmieren, Bot, Fehlermeldung, Discord
Python für Anfänger wie Automatischen kauf bot erstellen?

Hey Leute, ich habe angefangen mich für Schuhe zu interessieren und will ein Geschäft daraus machen bzw. ein Gewerbe anmelden, jedoch möchte ich erstmal das Programmieren mit Python beherrschen. Es gibt täglich Sneaker Releases der eine Sneaker ist Mehr und der andere weniger Wert. Die Sneaker die viel Profit erwirtschaften sind sehr schwierig zu kriegen, da die Leute mit sogenannten Sneaker Bots vorangehen. Das funktioniert in dem sie 50-100 Accounts erstellen mit verschiedenen Proxys und somit den Bot laufen lassen und ergattern sich einfach mal auf schnelle 1-6 Schuhpaare und jemand wie ich der manuell rangeht hat da keine Chane. So ein Bot kostet Schweineteuer vor paar Monaten 7000-6000€ jetzt ca. 1000-2000€ Primär geht es mir nicht um den Preis. Ich möchte jetzt lernen wie man Programmiert, weil ich schon seitdem ich ein kleiner dulli war (ca. 8 Jahre Alt) es vor hatte zu lernen und aber es nie irgendwie ernst genommen habe, aber jetzt da ich richtig motiviert bin Sneaker zu ergattern und ich nebenbei die Python Sprache lernen möchte habe ich richtig bock darauf bekommen. Hauptsächlich möchte ich lernen wie man solche Bots erstellt. Ich habe mir diesen Kurs gekauft https://www.udemy.com/course/python-bootcamp/ um einen Einblick zu kriegen bzw. um zu wissen wo überhaupt links und rechts ist, da ich noch nie in meinem Leben was mit Programmieren zu tun hatte. Im Link könnt ihr sehen, was der Kursinhalt so zu bieten hat. Ehrlichgesagt langweile ich mich bei dem Kurs, aber wenn ich das brauche um zu Botten, dann ziehe ich weiter durch. Was sagt ihr zum Kursinhalt? Ist da etwas dabei was ich unbedingt nicht verpassen sollte fürs Botten? Und was habt ihr für Tipps für mich?

Computer, programmieren, Bot, Programmiersprache, Python
Wie kann ich das anders Umsetzen (Python 3)?

Hi also ich mach mir einen kleinen Sprachassistenten Bot ist nichts zum veröffentlichen oder so ich mach mir das halt um während dem Zocken mal sagen zu können spiel playlist ... usw. Speech to Text usw klappt alles Wunderbar nur das Music Spielen macht klitze bisschen Probleme. Ich will das "main.py" weiter zuhört nachdem ich subprocess.call() gemacht habe aber in dem script das ich damit augerufen habe ist so etwas wie time.sleep() damit die music weiter spielt.

Teil meiner Main.py:


if "spiel" in txt:
    if "playlist" in txt:
        if "1" in txt:
            say("Playlist 1 wird Wiedergegeben.")
            subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "play"])
            os.execv(sys.executable, ['python3'] + sys.argv)

if "pause" in txt:
    say("Musik wird Pausiert")
    subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "pause"])

Und hier meine playlist1.py

import pygame
import sys, getopt

arguments = str(sys.argv)

pygame.init()

pygame.mixer.music.load('C:\\Users\\Zensiert\\IdeaProjects\\LibreOfficeSprachAssistent\\.idea\\songs\\playlist1\\streets.mp3')
if(sys.argv[1]== 'play'):
    pygame.mixer.music.play()

elif(sys.argv[1] == 'pause'):
    pygame.mixer.music.pause()

print(f"Arg Input      : {sys.argv[1]=}")

clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
    clock.tick(309)
    pygame.event.poll() 

Das Script spielt die Musik und es klappt auch alles aber ich kann halt erst wieder reden wenn ich 309 Sekunden (Wegen dem "clock.tick(309)") gewartet habe. Jemand eine Idee? Ich weiß alles nicht so gut erklärt sorry

PC, Computer, Windows, Programm, Sprache, programmieren, System, Bot, Informatik, Playlist, Python, debugging, Wiedergabe, Pygame, Sprachassistent, IntelliJ IDEA

Meistgelesene Beiträge zum Thema Bot