Skip to content

Commit

Permalink
feat: upgrade to lavaclient v5
Browse files Browse the repository at this point in the history
Hotfix release to fix some pressing bugs
Fixes LOAD_FAILED (YT 400 error)
Fixes misc bugs such as "your search" formatting incorrectly
BREAKING CHANGE: This release modifies a large chunk of the codebase. Expect bugs to occur.
BREAKING CHANGE: This release disables Spotify support (temporarily). It will be re-added in a future release.
  • Loading branch information
zapteryx committed Mar 14, 2024
1 parent 710341d commit 57fb40d
Show file tree
Hide file tree
Showing 52 changed files with 1,759 additions and 992 deletions.
1,470 changes: 1,088 additions & 382 deletions package-lock.json

Large diffs are not rendered by default.

21 changes: 11 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
"version": "6.10.0-next.1",
"type": "module",
"engines": {
"node": ">=16.9.0"
"node": ">=20"
},
"dependencies": {
"@discordjs/rest": "^1.7.1",
"@jeve/lyrics-finder": "^1.0.1",
"@keyv/sqlite": "^3.6.7",
"@lavaclient/queue": "^2.1.1",
"@lavaclient/plugin-effects": "^1.0.0-rc.2",
"@lavaclient/plugin-queue": "^0.0.1",
"@lavaclient/spotify": "^3.1.0",
"@napi-rs/pinyin": "^1.7.3",
"@zptxdev/zptx-lib": "^1.1.0",
Expand All @@ -22,7 +23,8 @@
"keyv": "^4.5.4",
"kuroshiro": "1.2.0",
"kuroshiro-analyzer-kuromoji": "^1.1.0",
"lavaclient": "^4.1.1",
"lavaclient": "^5.0.0-rc.2",
"lavalink-protocol": "^1.0.1",
"lodash-es": "^4.17.21",
"patch-package": "^6.5.1",
"socket.io": "^4.7.4",
Expand All @@ -34,16 +36,15 @@
"@types/crypto-js": "^4.2.2",
"@types/express": "^4.17.21",
"@types/lodash-es": "^4.17.12",
"@types/node": "^18.16.3",
"@types/wanakana": "^4.0.6",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@types/node": "^20.11.26",
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"eslint": "^8.57.0",
"prettier": "^2.8.8",
"rimraf": "^4.4.1",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"tsc-alias": "^1.8.8",
"tsconfig-paths": "^4.2.0",
"typescript": "^4.9.5"
"typescript": "^5.4.2"
},
"main": "dist/main.js",
"scripts": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
diff --git a/node_modules/@lavaclient/queue/dist/lib/Queue.js b/node_modules/@lavaclient/queue/dist/lib/Queue.js
index dfcc8f3..9ea5a78 100644
--- a/node_modules/@lavaclient/queue/dist/lib/Queue.js
+++ b/node_modules/@lavaclient/queue/dist/lib/Queue.js
diff --git a/node_modules/@lavaclient/plugin-queue/dist/queue.js b/node_modules/@lavaclient/plugin-queue/dist/queue.js
index bcc4149..9d22aa5 100644
--- a/node_modules/@lavaclient/plugin-queue/dist/queue.js
+++ b/node_modules/@lavaclient/plugin-queue/dist/queue.js
@@ -41,14 +41,16 @@ class Queue extends tiny_typed_emitter_1.TypedEmitter {
switch (this.loop.type) {
case LoopType.Song:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/node_modules/winston-loki/index.d.ts b/node_modules/winston-loki/index.d.ts
index 2c0a77f..ac93248 100644
index 539eb70..4793f2a 100644
--- a/node_modules/winston-loki/index.d.ts
+++ b/node_modules/winston-loki/index.d.ts
@@ -8,6 +8,7 @@ declare interface LokiTransportOptions extends TransportStream.TransportStreamOp
Expand Down
6 changes: 3 additions & 3 deletions src/autocomplete/move.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export default {
interaction: QuaverInteraction<AutocompleteInteraction>,
): Promise<void> {
const focused = interaction.options.getFocused();
const player = interaction.client.music.players.get(
const player = await interaction.client.music.players.fetch(
interaction.guildId,
);
if (!player) return interaction.respond([]);
Expand All @@ -23,9 +23,9 @@ export default {
): ApplicationCommandOptionChoiceData & {
title: string;
} => ({
name: `${index + 1}. ${track.title}`,
name: `${index + 1}. ${track.info.title}`,
value: index + 1,
title: track.title,
title: track.info.title,
}),
)
.filter((track): boolean =>
Expand Down
8 changes: 4 additions & 4 deletions src/autocomplete/remove.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default {
interaction: QuaverInteraction<AutocompleteInteraction>,
): Promise<void> {
const focused = interaction.options.getFocused();
const player = interaction.client.music.players.get(
const player = await interaction.client.music.players.fetch(
interaction.guildId,
);
if (!player) return interaction.respond([]);
Expand All @@ -25,10 +25,10 @@ export default {
title: string;
requester: Snowflake;
} => ({
name: `${index + 1}. ${track.title}`,
name: `${index + 1}. ${track.info.title}`,
value: index + 1,
title: track.title,
requester: track.requester,
title: track.info.title,
requester: track.requesterId,
}),
)
.filter(
Expand Down
6 changes: 3 additions & 3 deletions src/commands/247.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type {
QuaverInteraction,
QuaverPlayer,
} from '#src/lib/util/common.d.js';
import { data, MessageOptionsBuilderType } from '#src/lib/util/common.js';
import { MessageOptionsBuilderType, data } from '#src/lib/util/common.js';
import { Check } from '#src/lib/util/constants.js';
import { settings } from '#src/lib/util/settings.js';
import { getGuildLocaleString, getLocaleString } from '#src/lib/util/util.js';
Expand Down Expand Up @@ -50,9 +50,9 @@ export default {
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const enabled = interaction.options.getBoolean('enabled');
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const response = await player.handler.stay(
enabled !== null
? enabled
Expand Down
4 changes: 2 additions & 2 deletions src/commands/bassboost.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ export default {
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const enabled = interaction.options.getBoolean('enabled');
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const response = await player.handler.bassboost(
enabled !== null ? enabled : !player.bassboost,
);
Expand Down
6 changes: 3 additions & 3 deletions src/commands/bind.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type {
QuaverInteraction,
QuaverPlayer,
} from '#src/lib/util/common.d.js';
import { data, MessageOptionsBuilderType } from '#src/lib/util/common.js';
import { MessageOptionsBuilderType, data } from '#src/lib/util/common.js';
import { Check } from '#src/lib/util/constants.js';
import { settings } from '#src/lib/util/settings.js';
import { getLocaleString } from '#src/lib/util/util.js';
Expand Down Expand Up @@ -53,9 +53,9 @@ export default {
const channel = interaction.options.getChannel(
'new_channel',
) as QuaverChannels;
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const response = await player.handler.bind(channel);
switch (response) {
case PlayerResponse.InsufficientPermissions:
Expand Down
2 changes: 1 addition & 1 deletion src/commands/clear.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default {
async execute(
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const player = interaction.client.music.players.get(
const player = await interaction.client.music.players.fetch(
interaction.guildId,
);
if (player.queue.tracks.length === 0) {
Expand Down
6 changes: 3 additions & 3 deletions src/commands/disconnect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import type {
QuaverPlayer,
} from '#src/lib/util/common.d.js';
import {
MessageOptionsBuilderType,
confirmationTimeout,
logger,
MessageOptionsBuilderType,
} from '#src/lib/util/common.js';
import { Check } from '#src/lib/util/constants.js';
import { settings } from '#src/lib/util/settings.js';
Expand Down Expand Up @@ -47,9 +47,9 @@ export default {
async execute(
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
if (player.queue.tracks.length === 0) {
const response = await player.handler.disconnect();
switch (response) {
Expand Down
6 changes: 3 additions & 3 deletions src/commands/loop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type {
import { Check } from '#src/lib/util/constants.js';
import { settings } from '#src/lib/util/settings.js';
import { getGuildLocaleString, getLocaleString } from '#src/lib/util/util.js';
import { LoopType } from '@lavaclient/queue';
import { LoopType } from '@lavaclient/plugin-queue';
import type {
ChatInputCommandInteraction,
SlashCommandStringOption,
Expand Down Expand Up @@ -67,9 +67,9 @@ export default {
async execute(
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const type = interaction.options.getString('type');
let loop, typeLocale;
switch (type) {
Expand Down
6 changes: 4 additions & 2 deletions src/commands/lyrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ export default {
let query = interaction.options.getString('query');
if (!query) {
const player = interaction.guildId
? interaction.client.music.players.get(interaction.guildId)
? await interaction.client.music.players.fetch(
interaction.guildId,
)
: null;
if (
!interaction.guildId ||
Expand All @@ -62,7 +64,7 @@ export default {
);
return;
}
query = player.queue.current.title;
query = player.queue.current.info.title;
}
await interaction.deferReply();
let lyrics: string | Error;
Expand Down
10 changes: 5 additions & 5 deletions src/commands/move.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import type {
ChatInputCommandInteraction,
SlashCommandIntegerOption,
} from 'discord.js';
import { escapeMarkdown, SlashCommandBuilder } from 'discord.js';
import { SlashCommandBuilder, escapeMarkdown } from 'discord.js';

export default {
data: new SlashCommandBuilder()
Expand Down Expand Up @@ -59,9 +59,9 @@ export default {
async execute(
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const oldPosition = interaction.options.getInteger('old_position');
const newPosition = interaction.options.getInteger('new_position');
const response = await player.handler.move(oldPosition, newPosition);
Expand Down Expand Up @@ -90,8 +90,8 @@ export default {
'CMD.MOVE.RESPONSE.SUCCESS',
{
vars: [
escapeMarkdown(track.title),
track.uri,
escapeMarkdown(track.info.title),
track.info.uri,
oldPosition.toString(),
newPosition.toString(),
],
Expand Down
4 changes: 2 additions & 2 deletions src/commands/nightcore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ export default {
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const enabled = interaction.options.getBoolean('enabled');
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const response = await player.handler.nightcore(
enabled !== null ? enabled : !player.nightcore,
);
Expand Down
4 changes: 2 additions & 2 deletions src/commands/pause.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ export default {
async execute(
interaction: QuaverInteraction<ChatInputCommandInteraction>,
): Promise<void> {
const player = interaction.client.music.players.get(
const player = (await interaction.client.music.players.fetch(
interaction.guildId,
) as QuaverPlayer;
)) as QuaverPlayer;
const response = await player.handler.pause();
switch (response) {
case PlayerResponse.PlayerStateUnchanged:
Expand Down
Loading

0 comments on commit 57fb40d

Please sign in to comment.