Бот не присоединяется к косой черте команды «присоединиться» discord.py V2.0

Мне нужно обновить некоторый старый код, чтобы использовать команды косой черты, и в старом коде у меня есть команда присоединения, которая просто заставляет бота присоединиться к текущему голосовому каналу. Я провел некоторое исследование, но все, что я смог найти, это просто старые руководства о том, как выполнять команду соединения со старым префиксом и ctx. Решение, которое я ищу, - это небольшой пример кода, показывающий, как может выглядеть команда соединения без использования ctx, потому что это не в командах с косой чертой.

Код еще не готов, но вот внутри моей музыкальной шестеренки, где должна быть команда:

import requests
import asyncio
from youtube_dl import YoutubeDL
from rich import print
#---
import discord
from discord import app_commands
from discord.ext import commands
from discord import FFmpegPCMAudio
#---
YDL_OPTIONS = {
    'format': 'bestaudio/best', 
    'noplaylist': True,
    'quiet': True,
    'prostprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '256',
    }]
    }
FFMPEG_OPTIONS = {
    'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
    'options': '-vn'
}
#---

class music(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @app_commands.command(name = "join", description = "Boten joinar din nuvarande röst-kanal!")
    async def join(self, interaction: discord.Interaction):
        #bot joins voice channel cod e here
        await interaction.response.send_message("Ok")

async def setup(bot):
    await bot.add_cog(music(bot))

Вы удалили единственную важную часть кода из своего поста... Мы не можем сказать вам, что не так с вашей командой присоединения, если вы не включите команду присоединения.....

stijndcl 20.11.2022 13:17

Теперь я обновил вопрос, и я надеюсь, что теперь вы понимаете. Просто скажи мне, если я должен перефразировать еще раз :)

Snabba_Snigeln 20.11.2022 13:30

Ваш старый код будет работать нормально. То же самое с взаимодействиями, что и с командами сообщений, вам не нужно делать ничего особенного. Присоединение к голосовому каналу не связано с командами сообщений или взаимодействиями.

stijndcl 20.11.2022 13:39
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Мутабельность и переработка объектов в Python
Мутабельность и переработка объектов в Python
Объекты являются основной конструкцией любого языка ООП, и каждый язык определяет свой собственный синтаксис для их создания, обновления и...
Другой маршрут в Flask Python
Другой маршрут в Flask Python
Flask - это фреймворк, который поддерживает веб-приложения. В этой статье я покажу, как мы можем использовать @app .route в flask, чтобы иметь другую...
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
Проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
0
3
126
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это почти то же самое для команд косой черты по сравнению с обычной командой, вы используете объект interaction вместо ctx.

@app_commands.command()
    async def join(self, interaction: discord.Interaction):
        channel = interaction.user.voice.channel
        await channel.connect()

Другие вопросы по теме