Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
Tiempos de reutilización del comando Discord.js con ms y quick.db

Quiero establecer el tiempo de reutilización en el comando /rep. Pero tengo el problema. Cuando el usuario usa el comando, el tiempo de reutilización es correcto. Pero cuando el usuario ejecuta el comando en segundo lugar, el segundo enfriamiento es incorrecto, son 52 años pero deben ser 12 horas. ¿Por qué? Ahí está mi código. He establecido un tiempo de reutilización de 15 segundos para la prueba, pero muestra 52 años desde el segundo tiempo de reutilización en adelante. No hay ningún error y consola. Discord.js v13 y pretty-ms v7.0.1

 const { SlashCommandBuilder } = require("@discordjs/builders"); const { MessageEmbed } = require("discord.js"); const db = require("quick.db"); const ms = require("pretty-ms"); const yaml = require('js-yaml'); const fs = require("fs"); const lang = yaml.load(fs.readFileSync('lang.yml', 'utf8')); module.exports = { data: new SlashCommandBuilder() .setName('rep') .setDescription(lang.rep.cmdDesc) .addUserOption(option => option.setName('user') .setDescription(lang.rep.optionDesc) .setRequired(true)), async execute(interaction) { let lastDaily = await db.fetch(`repCheck_${interaction.user.id}`); const cooldown = 15000; if (lastDaily !== null && cooldown - (Date.now() - lastDaily) > 0) { const timeLeftRep = ms(cooldown - (Date.now() - lastDaily)) const timerr = new MessageEmbed() .setDescription(lang.rep.cooldownErr.replace('{{cooldownRep}}', timeLeftRep)) .setColor('RED') await interaction.reply({ embeds: [timerr], ephemeral: true }) } else if (interaction.options.getUser('user').bot) { const boterr = new MessageEmbed() .setDescription(lang.rep.mentionErr) .setColor('RED') await interaction.reply({ embeds: [boterr], ephemeral: true }); } else if (interaction.options.getUser('user').id == interaction.user.id) { const selfmen = new MessageEmbed() .setDescription(lang.rep.selfMention) .setColor('RED') await interaction.reply({ embeds: [selfmen], ephemeral: true }) } else { const member = interaction.options.getUser('user').id; let reputation = db.fetch(`rep_${member}`) db.add(`rep_${member}`, 1) const repembed = new MessageEmbed() .setDescription(lang.rep.successMsg.replace('{{user}}', interaction.options.getUser('user').username)) await interaction.reply({embeds: [repembed]}); db.add(`repCheck_${interaction.user.id}`, Date.now()) } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Como no puedo comentar. Puede ser porque puso db.add() en lugar de db.set() en su código. Agregará su último tiempo de recuperación con el tiempo de recuperación actual que acaba de configurar. Lo cual lo hará más largo. Puedes intentar cambiar tu código:

de

 db.add(`repCheck_${interaction.user.id}`, Date.now());

a

 db.set(`repCheck_${interaction.user.id}`, Date.now());

Y tal vez funcione, dime si no lo es.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda