Я следил за этим руководством о том, как создать музыкального бота Discord, такого как Rythm, с помощью discord.py. Я устранил неполадки в своем коде и исправил несколько ошибок, связанных с сопрограммой.
Я вызвал функцию r и теперь получаю эту ошибку при запуске кода:
main.py:15: RuntimeWarning: сопрограмма 'r' никогда не ожидалась
r()
Когда я запускаю код, все загружается успешно, пока я не попытаюсь используйте команду. Если бы я добавил «@join» в чат, он должен был присоединиться к голосовому чату или сказать: «Вы не в голосовом канале!». Вместо этого я получаю следующую ошибку:
2022-09-02 20:07:08 ОШИБКА discord.ext.commands.bot Игнорирование исключения в команде None
discord.ext.commands.errors.CommandNotFound: команда «join» не найдена
Я пробовал поменять местами out @commands.command для @client.command (при этом клиент также определяется в music.py), но в целом то же самое.
У меня есть два файла: main.py и music.py.
MAIN.PY
import discord
from discord.ext import commands
import music
cogs = [music]
client = commands.Bot(command_prefix='@', intents=discord.Intents.all())
async def r():
for i in range(len(cogs)):
await cogs.setup(client)
r()
client.run(
"my token")
MUSIC.PY
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("You're not in a voice 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("Paused")
@commands.command()
async def resume(self, ctx):
await ctx.voice_client.resume()
await ctx.send("Resumed")
async def setup(client):
await client.add_cog(music(client))
Подробнее здесь: https://stackoverflow.com/questions/735 ... -not-found
Почему я получаю сообщение об ошибке «команда не найдена»? ⇐ Python
Программы на Python
-
Anonymous
1764341162
Anonymous
Я следил за этим руководством о том, как создать музыкального бота Discord, такого как Rythm, с помощью discord.py. Я устранил неполадки в своем коде и исправил несколько ошибок, связанных с сопрограммой.
Я вызвал функцию r и теперь получаю эту ошибку при запуске кода:
main.py:15: RuntimeWarning: сопрограмма 'r' никогда не ожидалась
r()
Когда я запускаю код, все загружается успешно, пока я не попытаюсь используйте команду. Если бы я добавил «@join» в чат, он должен был присоединиться к голосовому чату или сказать: «Вы не в голосовом канале!». Вместо этого я получаю следующую ошибку:
2022-09-02 20:07:08 ОШИБКА discord.ext.commands.bot Игнорирование исключения в команде None
discord.ext.commands.errors.CommandNotFound: команда «join» не найдена
Я пробовал поменять местами out @commands.command для @client.command (при этом клиент также определяется в music.py), но в целом то же самое.
У меня есть два файла: main.py и music.py.
[b]MAIN.PY[/b]
import discord
from discord.ext import commands
import music
cogs = [music]
client = commands.Bot(command_prefix='@', intents=discord.Intents.all())
async def r():
for i in range(len(cogs)):
await cogs[i].setup(client)
r()
client.run(
"my token")
[b]MUSIC.PY[/b]
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("You're not in a voice 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("Paused")
@commands.command()
async def resume(self, ctx):
await ctx.voice_client.resume()
await ctx.send("Resumed")
async def setup(client):
await client.add_cog(music(client))
Подробнее здесь: [url]https://stackoverflow.com/questions/73587658/why-am-i-getting-the-error-command-is-not-found[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия