Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!