@DayPivka

Как передать channel_id в функцию on_wavelink_track_end?

Здравствуйте, нужно получить ID канала из которого была выполнена команда, как можно передать его?
Функция "on_wavelink_track_end" по окончании воспроизведение трека должна отправить сообщение в канал, из которого была выполнена команда /play, но вместо этого отправляет в канал, в котором воспроизводится аудио.

Код (библиотеки Wavelink и Nextcord):
@commands.Cog.listener()
    async def on_wavelink_track_end(self, payload: wavelink.TrackEventPayload):
        player = payload.player
        vc: wavelink.Player = player.guild.voice_client
        channel = player.guild.id

        if vc is None:
            return

        if vc.is_playing() is True:
            return

        if vc.queue.loop:
            return await vc.play(payload.track)

        if vc.queue.is_empty:
            await last_channel.send(embed=MusicInfo.player_waiting())
            await asyncio.sleep(30)

            if not vc.queue.is_empty or vc.is_playing() is not False:
                return

            await last_channel.send(embed=MusicInfo.player_destroyed())

            return await vc.disconnect()

        next_song = vc.queue.get()

        await vc.play(next_song)
        await channel.send(embed=MusicInfo.music_player_event(next_song, last_channel))
        return await channel.send(embed=MusicInfo.panel_msg(), view=Buttons())

@nextcord.slash_command(name='play', description='Воспроизвести трек по названию или ссылке')
    async def play(
            self, interaction: nextcord.Interaction,
            sound: str = SlashOption(description='Ссылка/название трека', required=True)
    ):
        await interaction.response.defer()

        if not interaction.user.voice:
            return await interaction.send(embed=MusicInfo.join_vc())
        elif not interaction.guild.voice_client:
            vc: wavelink.Player = await interaction.user.voice.channel.connect(cls=wavelink.Player)
        else:
            vc: wavelink.Player = interaction.guild.voice_client

            await vc.play(song)
            await interaction.guild.change_voice_state(
                channel=interaction.user.voice.channel,
                self_deaf=True,
                self_mute=False
            )
            
            await interaction.send(embed=MusicInfo.music_player_connected(song, interaction))
            return await last_channel.send(embed=MusicInfo.panel_msg(), view=Buttons())
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы