如何让Python+Lavalink+Wavelink开发的Discord音乐bot直接播放首个搜索结果
代码修改方案
你只需要调整add_tracks方法中多搜索结果分支的逻辑,跳过手动选择步骤直接取首个结果即可,修改不需要引入任何额外依赖,完全适配你现有的Wavelink+Lavalink架构:
async def add_tracks(self,ctx, tracks): if not tracks: raise NoTracksFound #Goes to a pass command if isinstance(tracks,wavelink.TrackPlaylist): self.queue.add(*tracks.tracks) # 单条/多条结果统一直接取首个 else: track = tracks[0] self.queue.add(track) await ctx.send(f"{track.title} added to list") if not self.is_playing: await self.start_playback()
说明
- 原
len(tracks) == 1和len(tracks) > 1的两个分支合并,所有非歌单的搜索结果统一直接取首个结果加入播放队列 - 不需要的
choose_track方法和OPTIONS常量可以自行删除,保留也不会影响现有功能 - 若后续需要恢复手动选择功能,改回原分支逻辑即可
内容的提问来源于stack exchange,提问作者NiraajMCRB
相关产品推荐
相关产品推荐

