5.1.0 • Published 2 months ago

poru v5.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Table of contents

Installation

# Using npm
npm install poru

# Using yarn
yarn add poru

About

To use, you need a configured Lavalink instance.

  • Stable client
  • Support TypeScript
  • 100% Compatible with Lavalink
  • Object-oriented
  • 100% Customizable
  • Easy to setup
  • Inbuilt Queue System
  • Inbuilt support for Spotify, Apple Music, and Deezer

Implementation Repo:

Note: Send PR to add your repo here

URLFeaturesAdditional Information
Poru MusicBasic exampleWorks with the latest Discord.js version
The world machineSee GitHub repo for the full list-
LunoxLook over the repo for the full list of featuresSimply powerful Discord Music Bot

Example usage basic bot

const { Client, GatewayIntentBits } = require("discord.js");
const { Poru } = require("poru");

const nodes = [
    {
        name: "local-node",
        host: "localhost",
        port: 2333,
        password: "youshallnotpass",
    },
];

const PoruOptions = {
    library: "discord.js",
    defaultPlatform: "scsearch",
};

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.GuildVoiceStates,
        GatewayIntentBits.MessageContent,
    ],
});

client.poru = new Poru(client, nodes, PoruOptions);

client.poru.on("trackStart", (player, track) => {
    const channel = client.channels.cache.get(player.textChannel);
    return channel.send(`Now playing \`${track.info.title}\``);
});

client.on("ready", () => {
    console.log("Ready!");
    client.poru.init(client);
});

client.on("interactionCreate", async (interaction) => {
    if (!interaction.isChatInputCommand()) return;
    if (!interaction.member.voice.channel) {
        return interaction.reply({
            content: `Please connect with a voice channel `,
            ephemeral: true,
        });
    }

    const track = interaction.options.getString("track");

    const res = await client.poru.resolve({ query: track, source: "scsearch", requester: interaction.member });

    if (res.loadType === "error") {
        return interaction.reply("Failed to load track.");
    } else if (res.loadType === "empty") {
        return interaction.reply("No source found!");
    }

    // Create connection with Discord voice channel
    const player = client.poru.createConnection({
        guildId: interaction.guild.id,
        voiceChannel: interaction.member.voice.channelId,
        textChannel: interaction.channel.id,
        deaf: true,
    });

    if (res.loadType === "playlist") {
        for (const track of res.tracks) {
            track.info.requester = interaction.user;
            player.queue.add(track);
        }

        interaction.reply(
            `${res.playlistInfo.name} has been loaded with ${res.tracks.length}`
        );
    } else {
        const track = res.tracks[0];
        track.info.requester = interaction.user;
        player.queue.add(track);
        interaction.reply(`Queued Track \n \`${track.info.title}\``)
    }

    if (!player.isPlaying && player.isConnected) player.play();
});

client.login("TOKEN");

Plugins list:

Note: Open a PR to add your plugin here

NameLinkAdditional Description
Poru Spotifyporu-spotifyPlugin for integrating Spotify with Poru
Poru Deezerporu-deezerPlugin for integrating Deezer with Poru
Poru Apple Musicporu-applemusicPlugin for integrating Apple Music with Poru

Need Help?

Feel free to join our Discord server. Give us suggestions and advice about errors and new features.

With ❤️ by Paras.

5.1.0

2 months ago

5.0.0

3 months ago

4.5.0

4 months ago

4.2.2

8 months ago

4.2.1

11 months ago

4.2.0

1 year ago

3.7.3

1 year ago

3.7.2

1 year ago

3.7.1

2 years ago

3.7.0

2 years ago

4.1.0

1 year ago

4.0.0

1 year ago

3.4.0

2 years ago

3.2.0

2 years ago

3.5.1

2 years ago

3.5.0

2 years ago

3.3.2

2 years ago

3.1.0

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.2.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago