diff --git a/.github/workflows/quality.yaml b/.github/workflows/quality.yaml index c23b31b..d653fd6 100644 --- a/.github/workflows/quality.yaml +++ b/.github/workflows/quality.yaml @@ -7,8 +7,8 @@ on: branches: ['**'] jobs: - linters: - name: Run Linters + prettier: + name: Run Prettier runs-on: ubuntu-latest steps: @@ -32,5 +32,27 @@ jobs: - name: Run Prettier run: pnpm run prettier:check + eslint: + name: Run ESLint + runs-on: ubuntu-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Run ESLint run: pnpm run eslint diff --git a/eslint.config.js b/eslint.config.js index de11cd7..d28ffcb 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -25,6 +25,7 @@ export default tseslint.config(eslint.configs.recommended, ...tseslint.configs.r ...eslintConfigPrettier.rules, '@typescript-eslint/no-var-requires': 0, '@typescript-eslint/no-non-null-assertion': 0, + '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-explicit-any': 'warn', 'prettier/prettier': ['error', { endOfLine: 'auto' }], 'no-constant-binary-expression': 'off' diff --git a/src/audioplayer/PlayerInstance.ts b/src/audioplayer/PlayerInstance.ts index 1821a1e..21f8aa2 100644 --- a/src/audioplayer/PlayerInstance.ts +++ b/src/audioplayer/PlayerInstance.ts @@ -250,6 +250,7 @@ export class PlayerInstance { } async setLeaveOnEmpty(mode: boolean) { + this.leaveOnEmpty = mode; this.embedBuilder.setLeaveOnEmpty(mode); if (this.state === 'waiting') { diff --git a/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts b/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts index 0a683fa..80b54ee 100644 --- a/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts +++ b/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts @@ -10,7 +10,7 @@ export async function AudioPlayerEventVoiceChannelUpdate( const messagePlayer = client.audioPlayer.playersManager.get(oldState.guild.id); if (!messagePlayer) return; - if (!await getGuildOptionLeaveOnEmpty(oldState.guild.id)) return; + if (!(await getGuildOptionLeaveOnEmpty(oldState.guild.id))) return; if (isVoiceChannelEmpty(oldState)) { await messagePlayer.startAfkTimer(); diff --git a/src/handlers/Mongo.handler.ts b/src/handlers/Mongo.handler.ts index 08ca45b..dda4d98 100644 --- a/src/handlers/Mongo.handler.ts +++ b/src/handlers/Mongo.handler.ts @@ -9,7 +9,7 @@ export default async function mongoHandler() { mongoose.set('strictQuery', 'throw'); mongoose.pluralize(null); - loggerSend("Connecting to MongoDB, please wait", loggerPrefixMongo); + loggerSend('Connecting to MongoDB, please wait', loggerPrefixMongo); try { await mongoose.connect(`${MONGO_URI}/${ENV.MONGO_DATABASE_NAME}`); diff --git a/src/schemas/SchemaGuild.ts b/src/schemas/SchemaGuild.ts index 8dc4e85..604c3d0 100644 --- a/src/schemas/SchemaGuild.ts +++ b/src/schemas/SchemaGuild.ts @@ -49,14 +49,14 @@ export async function getGuildOptionPrefix(guildID: string): Promise { } export async function setGuildOptionPrefix(guildID: string, prefix: string): Promise { - let guild: GuildModelClass = await getOrCreateGuildSettings(guildID); - guild.set({ options: { prefix: prefix } }) + const guild: GuildModelClass = await getOrCreateGuildSettings(guildID); + guild.set({ options: { prefix: prefix } }); await guild.save(); } export async function setGuildOptionLeaveOnEmpty(guildID: string, mode: boolean): Promise { - let guild: GuildModelClass = await getOrCreateGuildSettings(guildID); - guild.set({ options: { leaveOnEmpty: mode } }) + const guild: GuildModelClass = await getOrCreateGuildSettings(guildID); + guild.set({ options: { leaveOnEmpty: mode } }); await guild.save(); } @@ -65,9 +65,12 @@ export async function getGuildOptionLeaveOnEmpty(guildID: string): Promise { - let guild: GuildModelClass = await getOrCreateGuildSettings(guildID); - guild.set({ options: { voiceStatus: voiceStatus } }) +export async function setGuildOptionVoiceStatus( + guildID: string, + voiceStatus: boolean +): Promise { + const guild: GuildModelClass = await getOrCreateGuildSettings(guildID); + guild.set({ options: { voiceStatus: voiceStatus } }); await guild.save(); } diff --git a/src/schemas/SchemaSongsHistory.ts b/src/schemas/SchemaSongsHistory.ts index fcd130c..6b889a0 100644 --- a/src/schemas/SchemaSongsHistory.ts +++ b/src/schemas/SchemaSongsHistory.ts @@ -9,8 +9,8 @@ interface ISongHistoryUnit { const SchemaSongsHistoryUnit = new Schema({ name: String, timestamp: Date, - requester: String, -}) + requester: String +}); export interface ISchemaSongsHistory { songsHistory: Array; @@ -22,4 +22,3 @@ export const SchemaSongsHistoryList = new Schema({ const SongsHistoryListModel = model('song_history', SchemaSongsHistoryList); class SongsHistoryListModelClass extends SongsHistoryListModel {} -