mafic 2.10.0
Mafic
A properly typehinted lavalink client for discord.py, nextcord, disnake and py-cord.
Installation
pip install mafic
Note
Use python -m, py -m, python3 -m or similar if that is how you install packages.
Generally windows uses py -m pip and linux uses python3 -m pip
Discord Server
Join the Discord Server for support and updates.
Documentation
Read the docs.
Features
Fully customisable node balancing.
Multi-node support.
Filters.
Full API coverage.
Properly typehinted for Pyright strict.
Usage
Go to the Lavalink Repository
to set up a Lavalink node.
import os
import mafic
import nextcord
from nextcord.ext import commands
class MyBot(commands.Bot):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.pool = mafic.NodePool(self)
self.loop.create_task(self.add_nodes())
async def add_nodes(self):
await self.pool.create_node(
host="127.0.0.1",
port=2333,
label="MAIN",
password="<password>",
)
bot = MyBot(intents=nextcord.Intents(guilds=True, voice_states=True))
@bot.slash_command(dm_permission=False)
async def play(inter: nextcord.Interaction, query: str):
if not inter.guild.voice_client:
player = await inter.user.voice.channel.connect(cls=mafic.Player)
else:
player = inter.guild.voice_client
tracks = await player.fetch_tracks(query)
if not tracks:
return await inter.send("No tracks found.")
track = tracks[0]
await player.play(track)
await inter.send(f"Playing {track.title}.")
bot.run(...)
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.