pappify
v1.0.1
Published
Next-gen Lavalink client with ultra-low latency, smart node balancing, and 25+ audio effects
Maintainers
Readme
⚡ Why Pappify?
| Feature | Description | |:-------:|:------------| | 🚀 | Ultra-low latency - Connection pooling & request queuing | | 🔄 | Smart node balancing - Automatic load distribution | | 🎯 | Auto-migration - Seamless failover between nodes | | 🎵 | Multi-source - YouTube, Spotify, SoundCloud, Apple Music | | 🎛️ | 25+ audio effects - Filters, presets, voice manipulation | | 🗣️ | TTS support - Text-to-speech in 28 languages | | 📦 | Plugin system - Extensible architecture | | 🔌 | Framework agnostic - discord.js, eris, oceanic.js |
Installation
npm install pappifyQuick Start
const { Client, GatewayIntentBits } = require('discord.js');
const { Pappify } = require('pappify');
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates],
});
const pappify = new Pappify(client, [
{ name: 'main', host: 'localhost', port: 2333, password: 'youshallnotpass' },
], {
send: (data) => client.guilds.cache.get(data.d.guild_id)?.shard.send(data),
});
client.on('ready', () => pappify.init(client.user.id));
client.on('raw', (d) => pappify.updateVoiceState(d));
client.login('TOKEN');Playing Music
const player = pappify.createConnection({
guildId: guild.id,
voiceChannel: voiceChannel.id,
textChannel: textChannel.id,
});
const result = await pappify.resolve({ query: 'never gonna give you up' });
player.queue.add(result.tracks[0]);
await player.play();Audio Effects
// Presets
player.filters.setBassboost(true, { value: 5 });
player.filters.setNightcore(true);
player.filters.set8D(true);
// Advanced effects
player.effects.lofi(true);
player.effects.underwater(true);
// Voice manipulation
await player.voice.setSpeed(1.5);
await player.voice.setPitch(1.2);
await player.voice.robotVoice();Text-to-Speech
const { TTS } = require('pappify');
const tts = new TTS(pappify, { lang: 'en' });
await tts.speak(player, 'Hello world!');
await tts.announce(player, 'Now playing: Song Name');Plugins
const { SpotifyPlugin, SaveStatePlugin, AutoDisconnectPlugin } = require('pappify');
const pappify = new Pappify(client, nodes, {
plugins: [
new SpotifyPlugin({ clientId: '...', clientSecret: '...' }),
new SaveStatePlugin({ autoRestore: true }),
new AutoDisconnectPlugin({ timeout: 300000 }),
],
});Example Bot Check out our ready-to-use music bot:
🤝 Contributing Contributions are welcome! Please feel free to submit a Pull Request.
📄 License This project is licensed under the MIT License - see the LICENSE file for details.
