Skip to main content

A robust and powerful Lavalink wrapper for nextcord and derivatives.

Project description

https://raw.githubusercontent.com/abindent/nextwave/master/wave.PNG https://img.shields.io/badge/Python-3.8%20%7C%203.9%20%7C%203.10-blue.svg https://img.shields.io/github/license/EvieePy/Wavelink.svg PyPI - Downloads Maintenance

Nextwave is a fork of the package Wavelink. Nextwave is a robust and powerful Lavalink wrapper for Nextcord.py. Nextwave features a fully asynchronous API that’s intuitive and easy to use with built in Spotify Support and Node Pool Balancing.

Documentation

Nextwave Official Documentation .

Support

This is totally same as Wavelink. For support using WaveLink, please join the official support server on Discord.

https://discordapp.com/api/guilds/490948346773635102/widget.png?style=banner2

Installation

The following commands are currently the valid ways of installing WaveLink.

Nextwave requires Python 3.8+

Windows

py -3.9 -m pip install -U nextwave

Linux

python3.9 -m pip install -U nextwave

Getting Started

A quick and easy bot example:

import nextwave
from nextcord.ext import commands


class Bot(commands.Bot):

    def __init__(self):
        super().__init__(command_prefix='>?')

    async def on_ready(self):
        print('Bot is ready!')


class Music(commands.Cog):
    """Music cog to hold Wavelink related commands and listeners."""

    def __init__(self, bot: commands.Bot):
        self.bot = bot

        bot.loop.create_task(self.connect_nodes())

    async def connect_nodes(self):
        """Connect to our Lavalink nodes."""
        await self.bot.wait_until_ready()

        await nextwave.NodePool.create_node(bot=bot,
                                            host='0.0.0.0',
                                            port=2333,
                                            password='YOUR_LAVALINK_PASSWORD')

    @commands.Cog.listener()
    async def on_wavelink_node_ready(self, node: nextwave.Node):
        """Event fired when a node has finished connecting."""
        print(f'Node: <{node.identifier}> is ready!')

    @commands.command()
    async def play(self, ctx: commands.Context, *, search: nextwave.YouTubeTrack):
        """Play a song with the given search query.

        If not connected, connect to our voice channel.
        """
        if not ctx.voice_client:
            vc: nextwave.Player = await ctx.author.voice.channel.connect(cls=wavelink.Player)
        else:
            vc: nextwave.Player = ctx.voice_client

        await vc.play(search)


bot = Bot()
bot.add_cog(Music(bot))
bot.run('YOUR_BOT_TOKEN')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nextwave-1.0.tar.gz (24.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page