Discord Bot Sprachkanal beitreten?
Ich möchte dass mein Discord-Bot dem Sprachkanal beitritt in dem ich mich auch befinde aber das untenstehende Programm funktioniert nicht. Kann mir jemand helfen?
@client.command(pass_context = True)
async def join(ctx):
if(ctx.author.voice):
channel = ctx.message.author.voice.channel
await channel.connect()
else:
await ctx.send("Du bist in keinem Sprachkanal!")
Es kommt keine Fehlermeldung aber der Bot joint dem Sprachkanal nicht (sendet aber auch nicht die Nachricht "Du bist in keinem Sprachkanal!"). Ich habe es mit replit programmiert und weiß die Version nicht, sollte aber denk ich die neueste sein.
Was ist der Fehler? Welche Bibliothek nutzt du und welche Version der Bibliothek hast du?
Es kommt keine Fehlermeldung aber der Bot joint dem Sprachkanal nicht (sendet aber auch nicht die Nachricht "Du bist in keinem Sprachkanal!"). (weiteres s. Ergänzung in der Frage)
Wird der Command denn überhaupt getriggert? Du benutzt PyCord?
discord.py, jetzt funktioniert der Nachricht wenn ich in keinem Kanal bin aber ich erhalte das wenn ich in einem bin: discord.ext.commands.bot Ignoring exception in command join
1 Antwort
ich hab jetzt etwas rumprobiert, wenn ich in einem Sprachkanal bin erscheint nur Test 1 und Test 2 und der Bot joint nicht. Außerdem erhalte ich folgende Fehlermeldung:
Traceback (most recent call last):
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/ext/commands/core.py", line 235, in wrapped
ret = await coro(*args, **kwargs)
File "main.py", line 24, in join
await channel.connect()
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/abc.py", line 1899, in connect
voice: T = cls(client, self)
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/voice_client.py", line 238, in __init__
raise RuntimeError("PyNaCl library needed in order to use voice")
RuntimeError: PyNaCl library needed in order to use voice
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1350, in invoke
await ctx.command.invoke(ctx)
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/ext/commands/core.py", line 1029, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
File "/home/runner/test/venv/lib/python3.10/site-packages/discord/ext/commands/core.py", line 244, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: RuntimeError: PyNaCl library needed in order to use voice
bei diesem Code:
@bot.command()
async def join(ctx):
if (ctx.author.voice):
await ctx.send("Test 1")
channel = ctx.author.voice.channel
await ctx.send("Test 2")
await channel.connect()
await ctx.send("Test 3")
else:
await ctx.send("Du bist in keinem Sprachkanal!")
falls das Problem eine fehlende PyNaCl Bibliothek ist, wie die Fehlermeldung vermuten lässt, wie importiere ich die in replit?
Ach alles gut das ist mir gar nicht wichtig, freut mich das ich helfen konnte
Ahh jetzt verstehe ich, vermutlich wurde die Bibliothek ohne Voice Support installiert, wenn du dort Zugriff auf ein Terminal hast dann https://github.com/Rapptz/discord.py, schau dort unter "Installing" nach, der zeigt wie du die Bibliothek mit Voice Support installieren kannst