mirror of
https://github.com/MinazukiAmane/Tinasha-Bot.git
synced 2025-03-15 07:35:57 +08:00
Merge pull request #34 from MinazukiAmane/Development
patch lyrics and reogranize button player
This commit is contained in:
commit
0d21da9af9
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "TinashaBot",
|
||||
"version": "5.7.1",
|
||||
"version": "5.8.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "TinashaBot",
|
||||
"version": "5.7.1",
|
||||
"version": "5.8.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@google/generative-ai": "^0.14.0",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "TinashaBot",
|
||||
"version": "5.7.1",
|
||||
"version": "5.8.0",
|
||||
"description": "multipurpose discord bot built using discord-js",
|
||||
"main": "bot.js",
|
||||
"author": "Amane",
|
||||
|
@ -63,8 +63,8 @@ async function getLyric({ client, guild, member }, query) {
|
||||
}
|
||||
|
||||
const node = player.node;
|
||||
const baseUrl = (node.options.port !== 80 && node.options.secure)
|
||||
? `https://${node.options.host}:${node.options.port}`
|
||||
const baseUrl = (node.options.port !== 80 && node.options.secure)
|
||||
? `https://${node.options.host}:${node.options.port}`
|
||||
: `http://${node.options.host}:${node.options.port}`;
|
||||
|
||||
// Try default lyrics endpoint first
|
||||
@ -76,7 +76,7 @@ async function getLyric({ client, guild, member }, query) {
|
||||
|
||||
if (defaultRes.ok) {
|
||||
lyrics = await defaultRes.json();
|
||||
if (lyrics && (lyrics.lyrics || lyrics.lines)) {
|
||||
if (lyrics) {
|
||||
return createLyricsEmbed(lyrics, member, track);
|
||||
}
|
||||
}
|
||||
|
@ -20,16 +20,53 @@ module.exports = async (client, player, track) => {
|
||||
|
||||
const previous = await player.queue.shiftPrevious();
|
||||
|
||||
const row = (player) =>
|
||||
const row1 = (player) =>
|
||||
new ActionRowBuilder().addComponents(
|
||||
new ButtonBuilder().setCustomId("previous").setEmoji("⏪").setStyle(ButtonStyle.Secondary).setDisabled(!previous),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("volumedown")
|
||||
.setEmoji("🔉")
|
||||
.setStyle(ButtonStyle.Secondary),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("previous")
|
||||
.setEmoji("⏮️")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setDisabled(!previous),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("pause")
|
||||
.setEmoji(player.paused ? "▶️" : "⏸️")
|
||||
.setStyle(player.paused ? ButtonStyle.Success : ButtonStyle.Secondary),
|
||||
new ButtonBuilder().setCustomId("stop").setEmoji("⏹️").setStyle(ButtonStyle.Secondary),
|
||||
new ButtonBuilder().setCustomId("skip").setEmoji("⏩").setStyle(ButtonStyle.Secondary),
|
||||
new ButtonBuilder().setCustomId("shuffle").setEmoji("🔀").setStyle(ButtonStyle.Secondary)
|
||||
new ButtonBuilder()
|
||||
.setCustomId("skip")
|
||||
.setEmoji("⏭️")
|
||||
.setStyle(ButtonStyle.Secondary),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("volumeup")
|
||||
.setEmoji("🔊")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
);
|
||||
|
||||
const row2 = (player) =>
|
||||
new ActionRowBuilder().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId("autoplay")
|
||||
.setEmoji("♾️")
|
||||
.setStyle(player.get("autoplay") ? ButtonStyle.Success : ButtonStyle.Secondary),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("loop")
|
||||
.setEmoji("🔁")
|
||||
.setStyle(player.repeatMode === "off" ? ButtonStyle.Secondary : ButtonStyle.Success),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("stop")
|
||||
.setEmoji("⏹️")
|
||||
.setStyle(ButtonStyle.Danger),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("shuffle")
|
||||
.setEmoji("🔀")
|
||||
.setStyle(ButtonStyle.Secondary),
|
||||
new ButtonBuilder()
|
||||
.setCustomId("queue")
|
||||
.setEmoji("📑")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
);
|
||||
|
||||
const msg = await channel.safeSend({
|
||||
@ -51,7 +88,7 @@ module.exports = async (client, player, track) => {
|
||||
{ name: "Author", value: track.info.author || "Unknown", inline: true }
|
||||
),
|
||||
],
|
||||
components: [row(player)],
|
||||
components: [row1(player), row2(player)],
|
||||
});
|
||||
|
||||
if (msg) player.set("message", msg);
|
||||
@ -83,7 +120,7 @@ module.exports = async (client, player, track) => {
|
||||
player.pause();
|
||||
description = "Track paused";
|
||||
}
|
||||
await msg.edit({ components: [row(player)] });
|
||||
await msg.edit({ components: [row1(player), row2(player)] });
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
@ -104,7 +141,71 @@ module.exports = async (client, player, track) => {
|
||||
description = "The queue has been shuffled!";
|
||||
}
|
||||
break;
|
||||
|
||||
case "volumeup":
|
||||
const newVolUp = Math.min(player.volume + 10, 100);
|
||||
await player.setVolume(newVolUp);
|
||||
description = `Volume increased to \`${newVolUp}%\``;
|
||||
break;
|
||||
|
||||
case "volumedown":
|
||||
const newVolDown = Math.max(player.volume - 10, 0);
|
||||
await player.setVolume(newVolDown);
|
||||
description = `Volume decreased to \`${newVolDown}%\``;
|
||||
break;
|
||||
|
||||
case "loop":
|
||||
const currentMode = player.repeatMode;
|
||||
if (currentMode === "off") {
|
||||
player.setRepeatMode("track");
|
||||
description = "Loop mode set to `track`";
|
||||
} else if (currentMode === "track") {
|
||||
player.setRepeatMode("queue");
|
||||
description = "Loop mode set to `queue`";
|
||||
} else {
|
||||
player.setRepeatMode("off");
|
||||
description = "Loop mode `disabled`";
|
||||
}
|
||||
await msg.edit({ components: [row1(player), row2(player)] });
|
||||
break;
|
||||
|
||||
case "autoplay":
|
||||
const autoplay = !player.get("autoplay");
|
||||
player.set("autoplay", autoplay);
|
||||
description = autoplay ? "Autoplay activated!" : "Autoplay deactivated";
|
||||
await msg.edit({ components: [row1(player), row2(player)] });
|
||||
break;
|
||||
|
||||
case "queue":
|
||||
const queue = player.queue;
|
||||
const tracks = queue.tracks.slice(0, 10); // Get first 10 tracks
|
||||
|
||||
const queueEmbed = new EmbedBuilder()
|
||||
.setColor(EMBED_COLORS.BOT_EMBED)
|
||||
.setAuthor({ name: "Music Queue" })
|
||||
.setDescription(
|
||||
tracks.length > 0
|
||||
? tracks
|
||||
.map((track, i) => `${i + 1}. [${track.info.title}](${track.info.uri})`)
|
||||
.join("\n")
|
||||
: "No tracks in queue"
|
||||
)
|
||||
.addFields({
|
||||
name: "Now Playing",
|
||||
value: `[${queue.current.info.title}](${queue.current.info.uri})`,
|
||||
});
|
||||
|
||||
if (tracks.length > 0) {
|
||||
queueEmbed.setFooter({
|
||||
text: `${queue.tracks.length} track(s) in queue`,
|
||||
});
|
||||
}
|
||||
|
||||
description = "Queue sent as new message";
|
||||
await channel.send({ embeds: [queueEmbed] });
|
||||
break;
|
||||
}
|
||||
|
||||
await int.followUp({
|
||||
embeds: [new EmbedBuilder().setDescription(description).setColor(EMBED_COLORS.BOT_EMBED)],
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user