This commit is contained in:
parent
75d5045a5b
commit
42c67150aa
@ -1,9 +1,7 @@
|
|||||||
// comandos/add.js
|
// comandos/Community/meta.js
|
||||||
const { EmbedBuilder, SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js');
|
const { ModalBuilder, TextInputBuilder, TextInputStyle, ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, SlashCommandBuilder } = require('discord.js');
|
||||||
const conn = require('../../../database/db'); // Ajusta o caminho
|
const conn = require('../../../database/db'); // Ajusta o caminho
|
||||||
|
|
||||||
console.error("--------------------- lista_membro.js ---------------------");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('meta')
|
.setName('meta')
|
||||||
@ -13,10 +11,9 @@ module.exports = {
|
|||||||
await interaction.deferReply({ ephemeral: true });
|
await interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Consulta os dados do usuário que executou o comando (usando interaction.user.id)
|
|
||||||
const [rows] = await conn.execute(
|
const [rows] = await conn.execute(
|
||||||
'SELECT u.id, u.discord_id, u.discord_username, u.nig, u.meta, c.name AS nomedocargo FROM users u JOIN choices c ON u.cargo = c.value WHERE u.discord_id = ? ORDER BY c.id DESC',
|
'SELECT u.id, u.discord_id, u.discord_username, u.nig, u.meta, c.name AS nomedocargo FROM users u JOIN choices c ON u.cargo = c.value WHERE u.discord_id = ? ORDER BY c.id DESC',
|
||||||
[interaction.user.id] // Passa o ID do usuário que executou o comando
|
[interaction.user.id]
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!rows.length) {
|
if (!rows.length) {
|
||||||
@ -24,8 +21,6 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const embed = new EmbedBuilder().setColor("#00b0f4");
|
const embed = new EmbedBuilder().setColor("#00b0f4");
|
||||||
|
|
||||||
// Pega as metas do usuário
|
|
||||||
const row = rows[0]; // Já que é apenas um usuário, podemos pegar o primeiro da lista
|
const row = rows[0]; // Já que é apenas um usuário, podemos pegar o primeiro da lista
|
||||||
let metas = {};
|
let metas = {};
|
||||||
|
|
||||||
@ -52,7 +47,6 @@ module.exports = {
|
|||||||
inline: true
|
inline: true
|
||||||
});
|
});
|
||||||
|
|
||||||
// Adiciona um botão para permitir a edição do valor
|
|
||||||
const button = new ActionRowBuilder().addComponents(
|
const button = new ActionRowBuilder().addComponents(
|
||||||
new ButtonBuilder()
|
new ButtonBuilder()
|
||||||
.setCustomId('edit_meta')
|
.setCustomId('edit_meta')
|
||||||
@ -68,14 +62,12 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Lida com a interação do botão
|
|
||||||
async handleButtonClick(interaction) {
|
async handleButtonClick(interaction) {
|
||||||
if (interaction.customId === 'edit_meta') {
|
if (interaction.customId === 'edit_meta') {
|
||||||
const modal = new ModalBuilder()
|
const modal = new ModalBuilder()
|
||||||
.setCustomId('meta_modal')
|
.setCustomId('meta_modal')
|
||||||
.setTitle('Editar Meta');
|
.setTitle('Editar Meta');
|
||||||
|
|
||||||
// Adiciona um campo de entrada de texto para o novo valor de `atual`
|
|
||||||
modal.addComponents(
|
modal.addComponents(
|
||||||
new ActionRowBuilder().addComponents(
|
new ActionRowBuilder().addComponents(
|
||||||
new TextInputBuilder()
|
new TextInputBuilder()
|
||||||
@ -91,12 +83,10 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Lida com a submissão do modal
|
|
||||||
async handleModalSubmit(interaction) {
|
async handleModalSubmit(interaction) {
|
||||||
const newAtual = interaction.fields.getTextInputValue('new_atual');
|
const newAtual = interaction.fields.getTextInputValue('new_atual');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Consulta os dados do usuário no banco de dados
|
|
||||||
const [rows] = await conn.execute(
|
const [rows] = await conn.execute(
|
||||||
'SELECT u.id, u.meta FROM users u WHERE u.discord_id = ?',
|
'SELECT u.id, u.meta FROM users u WHERE u.discord_id = ?',
|
||||||
[interaction.user.id]
|
[interaction.user.id]
|
||||||
@ -108,11 +98,8 @@ module.exports = {
|
|||||||
|
|
||||||
let metas = JSON.parse(rows[0].meta);
|
let metas = JSON.parse(rows[0].meta);
|
||||||
|
|
||||||
// Atualiza o valor de 'atual' no JSON
|
metas['carvao'].atual = newAtual;
|
||||||
// Supondo que você sabe qual meta está sendo editada (ex: 'carvao')
|
|
||||||
metas['carvao'].atual = newAtual; // Altere o nome da chave conforme necessário
|
|
||||||
|
|
||||||
// Atualiza no banco de dados
|
|
||||||
await conn.execute(
|
await conn.execute(
|
||||||
'UPDATE users SET meta = ? WHERE discord_id = ?',
|
'UPDATE users SET meta = ? WHERE discord_id = ?',
|
||||||
[JSON.stringify(metas), interaction.user.id]
|
[JSON.stringify(metas), interaction.user.id]
|
||||||
@ -125,22 +112,3 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Adiciona o evento que lida com a criação de interações
|
|
||||||
client.on('interactionCreate', async (interaction) => {
|
|
||||||
if (!interaction.isButton() && !interaction.isModalSubmit()) return;
|
|
||||||
|
|
||||||
// Verifica se a interação é de um botão
|
|
||||||
if (interaction.isButton()) {
|
|
||||||
if (interaction.customId === 'edit_meta') {
|
|
||||||
await module.exports.handleButtonClick(interaction);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verifica se a interação é de um modal
|
|
||||||
if (interaction.isModalSubmit()) {
|
|
||||||
if (interaction.customId === 'meta_modal') {
|
|
||||||
await module.exports.handleModalSubmit(interaction);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user