From dce022f40e8e9cc1bf79d451b7fcad71a07e4483 Mon Sep 17 00:00:00 2001 From: SrIzan10 <66965250+SrIzan10@users.noreply.github.com> Date: Fri, 2 Dec 2022 23:38:57 +0100 Subject: [PATCH] feat: change suggestion decision :Pog: --- commands/handlers/suggestions-no.ts | 59 +++++++++++++++++----------- commands/handlers/suggestions-yes.ts | 59 +++++++++++++++++----------- commands/misc/radio.ts | 6 +-- index.ts | 2 + package-lock.json | 2 +- package.json | 2 +- 6 files changed, 79 insertions(+), 51 deletions(-) diff --git a/commands/handlers/suggestions-no.ts b/commands/handlers/suggestions-no.ts index 134a5e7..7e694aa 100644 --- a/commands/handlers/suggestions-no.ts +++ b/commands/handlers/suggestions-no.ts @@ -6,32 +6,45 @@ export default commandModule({ type: CommandType.Button, async execute(interaction) { const convertToNumber = Number(interaction.component.label!) - const downvotebuttons = new ActionRowBuilder().setComponents( - new ButtonBuilder(interaction.message!.components[0].components[0].data), - new ButtonBuilder() - .setCustomId('suggestions-no') - .setEmoji('❎') - .setLabel((convertToNumber + 1).toString()) - .setStyle(ButtonStyle.Danger), - ) const row2 = new ActionRowBuilder().setComponents( new ButtonBuilder(interaction.message!.components[1].components[0].data), new ButtonBuilder(interaction.message!.components[1].components[1].data) ) - await db.exists({msgid: interaction.message.id, userid: interaction.user.id}, async (err, doc) => { - if (err) throw err - if (doc) { - await interaction.reply({content: 'Ya has hecho upvote/downvote, no puedes hacerlo de nuevo.', ephemeral: true}) - } else { - const addToDB = new db({ - msgid: interaction.message.id, - userid: interaction.user.id, - upordown: -1 - }) - await addToDB.save() - await interaction.message.edit({components: [downvotebuttons, row2]}) - await interaction.deferUpdate() - } - }) + if (await db.exists({msgid: interaction.message.id, userid: interaction.user.id, upordown: 1})) { + await db.findOneAndUpdate({msgid: interaction.message.id, userid: interaction.user.id, upordown: 1}, {upordown: -1}, {returnOriginal: false}) + // god forbid I use any! I'm literally done with trying to solve this dude + const upvoteLabel = JSON.stringify(interaction.message!.components[0].components[0].data) as string + const downvotebuttons = new ActionRowBuilder().setComponents( + new ButtonBuilder(interaction.message!.components[0].components[0].data) + .setLabel((Number(JSON.parse(upvoteLabel).label) - 1).toString()), + new ButtonBuilder() + .setCustomId('suggestions-no') + .setEmoji('❎') + .setLabel((convertToNumber + 1).toString()) + .setStyle(ButtonStyle.Danger), + ) + await interaction.message.edit({components: [downvotebuttons, row2]}) + await interaction.deferUpdate() + } else if (await db.exists({msgid: interaction.message.id, userid: interaction.user.id, upordown: -1})) { + return await interaction.reply({content: 'Ya has hecho downvote.', ephemeral: true}) + } else { + const downvotebuttons = new ActionRowBuilder().setComponents( + new ButtonBuilder(interaction.message!.components[0].components[0].data), + new ButtonBuilder() + .setCustomId('suggestions-no') + .setEmoji('❎') + .setLabel((convertToNumber + 1).toString()) + .setStyle(ButtonStyle.Danger), + ) + + const addToDB = new db({ + msgid: interaction.message.id, + userid: interaction.user.id, + upordown: -1 + }) + await addToDB.save() + await interaction.message.edit({components: [downvotebuttons, row2]}) + await interaction.deferUpdate() + } } }) \ No newline at end of file diff --git a/commands/handlers/suggestions-yes.ts b/commands/handlers/suggestions-yes.ts index fc1f222..d376211 100644 --- a/commands/handlers/suggestions-yes.ts +++ b/commands/handlers/suggestions-yes.ts @@ -6,32 +6,45 @@ export default commandModule({ type: CommandType.Button, async execute(interaction) { const convertToNumber = Number(interaction.component.label!) - const upvotebuttons = new ActionRowBuilder().setComponents( - new ButtonBuilder() - .setCustomId('suggestions-yes') - .setEmoji('✅') - .setLabel((convertToNumber + 1).toString()) - .setStyle(ButtonStyle.Success), - new ButtonBuilder(interaction.message!.components[0].components[1].data) - ) const row2 = new ActionRowBuilder().setComponents( new ButtonBuilder(interaction.message!.components[1].components[0].data), new ButtonBuilder(interaction.message!.components[1].components[1].data) ) - await db.exists({msgid: interaction.message.id, userid: interaction.user.id}, async (err, doc) => { - if (err) throw err - if (doc) { - await interaction.reply({content: 'Ya has hecho upvote/downvote, no puedes hacerlo de nuevo.', ephemeral: true}) - } else { - const addToDB = new db({ - msgid: interaction.message.id, - userid: interaction.user.id, - upordown: 1 - }) - await addToDB.save() - await interaction.message.edit({components: [upvotebuttons, row2]}) - await interaction.deferUpdate() - } - }) + if (await db.exists({msgid: interaction.message.id, userid: interaction.user.id, upordown: -1})) { + await db.findOneAndUpdate({msgid: interaction.message.id, userid: interaction.user.id, upordown: -1}, {upordown: 1}, {returnOriginal: false}) + // god forbid I use any! I'm literally done with trying to solve this dude + const upvoteLabel = JSON.stringify(interaction.message!.components[0].components[1].data) as string + const downvotebuttons = new ActionRowBuilder().setComponents( + new ButtonBuilder() + .setCustomId('suggestions-yes') + .setEmoji('✅') + .setLabel((convertToNumber + 1).toString()) + .setStyle(ButtonStyle.Success), + new ButtonBuilder(interaction.message!.components[0].components[1].data) + .setLabel((Number(JSON.parse(upvoteLabel).label) - 1).toString()), + ) + await interaction.message.edit({components: [downvotebuttons, row2]}) + await interaction.deferUpdate() + } else if (await db.exists({msgid: interaction.message.id, userid: interaction.user.id, upordown: 1})) { + return await interaction.reply({content: 'Ya has hecho upvote.', ephemeral: true}) + } else { + const downvotebuttons = new ActionRowBuilder().setComponents( + new ButtonBuilder() + .setCustomId('suggestions-yes') + .setEmoji('✅') + .setLabel((convertToNumber + 1).toString()) + .setStyle(ButtonStyle.Success), + new ButtonBuilder(interaction.message!.components[0].components[1].data) + ) + + const addToDB = new db({ + msgid: interaction.message.id, + userid: interaction.user.id, + upordown: 1 + }) + await addToDB.save() + await interaction.message.edit({components: [downvotebuttons, row2]}) + await interaction.deferUpdate() + } } }) \ No newline at end of file diff --git a/commands/misc/radio.ts b/commands/misc/radio.ts index c244be8..6b24161 100644 --- a/commands/misc/radio.ts +++ b/commands/misc/radio.ts @@ -1,6 +1,6 @@ import { commandModule, CommandType } from '@sern/handler' import { publish } from "../../src/plugins/publish.js"; -import { createAudioPlayer, createAudioResource, joinVoiceChannel } from "@discordjs/voice"; +import { createAudioPlayer, createAudioResource, DiscordGatewayAdapterCreator, joinVoiceChannel } from "@discordjs/voice"; import got from "got"; import { ApplicationCommandOptionType, EmbedBuilder } from "discord.js"; /* @@ -45,8 +45,8 @@ export default commandModule({ .setDescription(`La radio no ha sido encontrada, asegúrate que la radio está escogida de la lista.`); async function playRadio(radioname: string) { - const stream = await got.stream(radioname) - const connection = joinVoiceChannel({adapterCreator: ctx.guild.voiceAdapterCreator,channelId: '1008730592835281009',guildId: '928018226330337280',selfDeaf: true}); + const stream = got.stream(radioname) + const connection = joinVoiceChannel({adapterCreator: ctx.interaction.guild!.voiceAdapterCreator as DiscordGatewayAdapterCreator, channelId: '1008730592835281009',guildId: '928018226330337280',selfDeaf: true}); const resource = createAudioResource(stream, { inlineVolume: true }); const player = createAudioPlayer(); connection.subscribe(player) diff --git a/index.ts b/index.ts index 788a4f2..8630bf4 100644 --- a/index.ts +++ b/index.ts @@ -18,6 +18,8 @@ if (process.argv[2] === '--dev') { dotenv() } +console.clear() + const client = new Client({ intents: [ GatewayIntentBits.Guilds, diff --git a/package-lock.json b/package-lock.json index 2b497c2..5a711fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "@types/express": "^4.17.14", "ts-node": "10.9.1", "tsc-watch": "^5.0.3", - "typescript": "4.9.3" + "typescript": "^4.9.3" } }, "node_modules/@consumet/extensions": { diff --git a/package.json b/package.json index 7100de4..41a5ae5 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,6 @@ "@types/express": "^4.17.14", "ts-node": "10.9.1", "tsc-watch": "^5.0.3", - "typescript": "4.9.3" + "typescript": "^4.9.3" } }