Nanoscale Parts Manufacturing

    poru

    3.0.2 • Public • Published

    Discord npm Github Stars GitHub issues Snyk Vulnerabilities for npm package NPM

    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
    • 100% Compatible with Lavalink
    • Object-oriented
    • 100% Customizable
    • Easy to setup

    Implementation

    Poru Music Example bot as guide for beginning.

    Example usage basic bot

    const { Client, GatewayIntentBits } = require('discord.js');
    const { Poru } = require('poru');
    const nodes = [
      {
        id: "main_node",
        hostname: "localhost",
        port: 8080,
        password: "iloveyou3000"
      }
    ]
    const PoruOptions = {
      reconnectTime: 0,
      resumeKey: 'MyPlayers',
      resumeTimeout: 60,
      defaultPlatform: "ytsearch"
    }
    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.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 voice channel `, ephemeral: true });
    
      const track = interaction.options.getString('track');
    
      const res = await client.poru.resolve(track);
    
      if (res.loadType === "LOAD_FAILED") {
        return interaction.reply('Failed to load track.');
      } else if (res.loadType === "NO_MATCHES") {
        return interaction.reply('No source found!');
      }
    
    //create connection with discord voice channnel
      const player = client.poru.createConnection({
        guildId: interaction.guild.id,
        voiceChannel: interaction.member.voice.channelId,
        textChannel: interaction.channel.id,
        selfDeaf: true
      });
      
     
      if (res.loadType === 'PLAYLIST_LOADED') {
        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);
        interacton.reply(`Queued Track \n \`${track.title}\``);
      }
    
      if (!player.isPlaying && player.isConnected) player.play();
    });
    
    client.login('TOKEN');

    Need Help?

    Feel free to join our discord server, Give us suggestions and advice about errors and new features. with ❤️ by Paras .

    Install

    npm i poru

    DownloadsWeekly Downloads

    101

    Version

    3.0.2

    License

    MIT

    Unpacked Size

    63.9 kB

    Total Files

    19

    Last publish

    Collaborators

    • parasdocs