1.2.1 • Published 4 months ago

ferry-queue v1.2.1

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

ferry-queue

Installation

$ npm install ferry-queue

Simple setup for ferry-queue code

 const { Queue } = require("ferry-queue")
 const { Client } = require("discord.js")
 const { LavalinkManager } = require("lavalink-client");

 const client = new Client()

 //create new Queue
 client.Queue = new Queue()

 client.lavalink = new LavalinkManager({
    nodes: [
      {
        host: 'localhost',
        port: 2333,
        authorization: 'yourverystrongpassword',
        id: "lavalink",
      },
    ],
    sendToShard: (guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload),
  });

 client.lavalink.nodeManager.on("connect", (node) => console.log(`Node ${node.id} connected`));
 client.on('ready', () => {
    client.lavalink.init({ id: client.user.id, username: client.user.username });
  });
 // ! send the raw data to the lavalink manager
 client.on("raw", (data) => client.lavalink.sendRawData(data));
 
 client.login("your bot token here")

Simple code for ferry-queue events

//this code for go to next track in queue
client.lavalink.on('queueEnd', async (player) => {
client.Queue.track_end(player.guildId, player)
 })

//this code for destroy queue
client.lavalink.on("playerDestroy", async (player) => {
client.Queue.destroy(player.guildId, player)
 })

Simpel code for ferry-queue commands

    client.on('messageCreate', async (Message) => {
       const { author, content, member, guild, channel } = Message;
       if (author.bot) return;
       const args = Message.content.trim().split(/ +/g);
       const command = args.shift().toLowerCase();
       if(command == "play"){
       const voice = member.voice.channel;
       const query = args.join(" ")
        const player = client.lavalink.createPlayer({
           guildId: guild.id,
           voiceChannelId: voice.id,
           textChannelId: channel.id,
           selfDeaf: true,
           selfMute: false,
       })
       await player.connect()
       const result = await player.search({ query: query}, author);
           if(result.loadType == "playlist") {
           for (const track of result.tracks) {
               client.Queue.addTrack(voice.guild.id, track, player)
           }
       } else {
           client.Queue.addTrack(voice.guild.id, result.tracks[0], player)
       }
       } else if(command == "skip"){
        const player = client.lavalink.getPlayer(guild.id)
        if(player) client.Queue.skip(guild.id, player)
       } else if(command == "previous"){
        const player = client.lavalink.getPlayer(guild.id)
        if(player) client.Queue.previou(guild.id, player)
       } else if(command == "pause"){
        const player = client.lavalink.getPlayer(guild.id)
        if(player) client.Queue.pause(guild.id, player)
       } else if(command == "resume"){
        const player = client.lavalink.getPlayer(guild.id)
        if(player) client.Queue.resume(guild.id, player)
       } else if(command == "stop"){
        const player = client.lavalink.getPlayer(guild.id)
        if(player) client.Queue.destroy(guild.id, player)
       } else if(command == "repate") {
        const player = client.lavalink.getPlayer(guild.id)
        if(player){
            if(args[0]){
              if(args[0] == "track" || args[0] == "queue" || args[0] == "off"){
               client.Queue.repeatMode(guild.id, args[0])
               }
        } else {
          const mode = client.Queue.repeatMode(guild.id)
          console.log(`repeat mode now is:${mode}`)
        }
        }
       }
    })
1.2.0

4 months ago

1.1.9

4 months ago

1.2.1

4 months ago

1.1.8

4 months ago

1.1.7

4 months ago

1.1.6

4 months ago

1.1.5

5 months ago

1.1.4

5 months ago

1.1.3

5 months ago

1.1.2

5 months ago

1.1.0

5 months ago

1.0.0

5 months ago