grab.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const { MessageEmbed } = require("discord.js");
  2. const prettyMilliseconds = require("pretty-ms");
  3. module.exports = {
  4. name: "grab",
  5. description: "Saves the current playing song to your Direct Messages",
  6. usage: "",
  7. permissions: {
  8. channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"],
  9. member: [],
  10. },
  11. aliases: ["save"],
  12. /**
  13. *
  14. * @param {import("../structures/DiscordMusicBot")} client
  15. * @param {import("discord.js").Message} message
  16. * @param {string[]} args
  17. * @param {*} param3
  18. */
  19. run: async (client, message, args, { GuildDB }) => {
  20. let player = await client.Manager.get(message.guild.id);
  21. if (!player) return client.sendTime(message.channel, "❌ | **Nothing is playing right now...**");
  22. if (!message.member.voice.channel) return client.sendTime(message.channel, "❌ | **You must be in a voice channel to use this command!**");
  23. message.author.send(new MessageEmbed()
  24. .setAuthor(`Saved Song:`, client.user.displayAvatarURL({
  25. dynamic: true
  26. }))
  27. .setThumbnail(`https://img.youtube.com/vi/${player.queue.current.identifier}/mqdefault.jpg`)
  28. .setURL(player.queue.current.uri)
  29. .setColor("RANDOM")
  30. .setTitle(`**${player.queue.current.title}**`)
  31. .addField(`⌛ Duration: `, `\`${prettyMilliseconds(player.queue.current.duration, {colonNotation: true})}\``, true)
  32. .addField(`🎵 Author: `, `\`${player.queue.current.author}\``, true)
  33. .addField(`▶ Play it:`, `\`${GuildDB ? GuildDB.prefix : client.config.DefaultPrefix
  34. }play ${player.queue.current.uri}\``)
  35. .addField(`🔎 Saved in:`, `<#${message.channel.id}>`)
  36. .setFooter(`Requested by: ${player.queue.current.requester.tag} | Guild: ${message.guild.name}`, player.queue.current.requester.displayAvatarURL({
  37. dynamic: true
  38. }))
  39. ).catch(e=>{
  40. return message.channel.send("**:x: Your Dm's are disabled**")
  41. })
  42. client.sendTime(message.channel, "✅ | **Check your DMs!**")
  43. },
  44. SlashCommand: {
  45. /**
  46. *
  47. * @param {import("../structures/DiscordMusicBot")} client
  48. * @param {import("discord.js").Message} message
  49. * @param {string[]} args
  50. * @param {*} param3
  51. */
  52. run: async (client, interaction, args, { GuildDB }) => {
  53. const user = client.users.cache.get(interaction.member.user.id);
  54. let player = await client.Manager.get(interaction.guild_id);
  55. if (!player) return client.sendTime(interaction, "❌ | **Nothing is playing right now...**");
  56. try{
  57. let embed = new MessageEmbed()
  58. .setAuthor(`Saved Song: `, client.user.displayAvatarURL())
  59. .setThumbnail(`https://img.youtube.com/vi/${player.queue.current.identifier}/mqdefault.jpg`)
  60. .setURL(player.queue.current.uri)
  61. .setColor("RANDOM")
  62. .setTimestamp()
  63. .setTitle(`**${player.queue.current.title}**`)
  64. .addField(`⌛ Duration: `, `\`${prettyMilliseconds(player.queue.current.duration, {colonNotation: true})}\``, true)
  65. .addField(`🎵 Author: `, `\`${player.queue.current.author}\``, true)
  66. .addField(`▶ Play it:`, `\`${GuildDB ? GuildDB.prefix : client.config.DefaultPrefix
  67. }play ${player.queue.current.uri}\``)
  68. .addField(`🔎 Saved in:`, `<#${interaction.channel_id}>`)
  69. .setFooter(`Requested by: ${player.queue.current.requester.tag}`, player.queue.current.requester.displayAvatarURL({
  70. dynamic: true
  71. }))
  72. user.send(embed);
  73. }catch(e) {
  74. return client.sendTime(interaction, "**:x: Your DMs are disabled**")
  75. }
  76. client.sendTime(interaction, "✅ | **Check your DMs!**")
  77. },
  78. },
  79. };