A versatile LavaLink wrapper for Discord.py
Project description
A robust and powerful Lavalink wrapper for discord.py@rewrite!
Documentation
Support
For support using WaveLink, please join the official support server on Discord.
Installation
The following commands are currently the valid ways of installing WaveLink.
WaveLink requires Python 3.6+
Windows
py -3.6 -m pip install Wavelink
Linux
python3.6 -m pip install Wavelink
Getting Started
A quick and easy bot example:
import discord
import wavelink
from discord.ext import commands
class Bot(commands.Bot):
def __init__(self):
super(Bot, self).__init__(command_prefix=['audio ', 'wave ','aw '])
self.add_cog(Music(self))
async def on_ready(self):
print(f'Logged in as {self.user.name} | {self.user.id}')
class Music(commands.Cog):
def __init__(self, bot):
self.bot = bot
if not hasattr(bot, 'wavelink'):
self.bot.wavelink = wavelink.Client(self.bot)
self.bot.loop.create_task(self.start_nodes())
async def start_nodes(self):
await self.bot.wait_until_ready()
# Initiate our nodes. For this example we will use one server.
# Region should be a discord.py guild.region e.g sydney or us_central (Though this is not technically required)
await self.bot.wavelink.initiate_node(host='127.0.0.1',
port=2333,
rest_uri='http://127.0.0.1:2333',
password='youshallnotpass',
identifier='TEST',
region='us_central')
@commands.command(name='connect')
async def connect_(self, ctx, *, channel: discord.VoiceChannel=None):
if not channel:
try:
channel = ctx.author.voice.channel
except AttributeError:
raise discord.DiscordException('No channel to join. Please either specify a valid channel or join one.')
player = self.bot.wavelink.get_player(ctx.guild.id)
await ctx.send(f'Connecting to **`{channel.name}`**')
await player.connect(channel.id)
@commands.command()
async def play(self, ctx, *, query: str):
tracks = await self.bot.wavelink.get_tracks(f'ytsearch:{query}')
if not tracks:
return await ctx.send('Could not find any songs with that query.')
player = self.bot.wavelink.get_player(ctx.guild.id)
if not player.is_connected:
await ctx.invoke(self.connect_)
await ctx.send(f'Added {str(tracks[0])} to the queue.')
await player.play(tracks[0])
bot = Bot()
bot.run('TOKEN')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wavelink-0.3.4.tar.gz
(16.0 kB
view details)
Built Distribution
wavelink-0.3.4-py3-none-any.whl
(20.9 kB
view details)
File details
Details for the file wavelink-0.3.4.tar.gz
.
File metadata
- Download URL: wavelink-0.3.4.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a3d95d3760d9a1b663a2eaf2c485a0874aaf03b1ca1dc7be72eca52aaef97df |
|
MD5 | d84f240f8c499dd2546b20a2113679f4 |
|
BLAKE2b-256 | f1ebd7766c6dbd99697b88913c6a1dbdaa3df0b21cc3f49cb3e11aaec6c3eaef |
File details
Details for the file wavelink-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: wavelink-0.3.4-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39636a8343f71cf4137b120488fb58f3181278d4fa5740789c5cf40414038af8 |
|
MD5 | 2f0020417bd6c838f30a121e109bbc6c |
|
BLAKE2b-256 | 678f990a0283715ce2e63150120d19d8237b441da42b381d9040cb8e058d3fa7 |