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

301
Vistas
cómo eliminar un AFK del apodo sin decir el prefijo

así que hago un comando AFK simple como este

 client.on('message', message => { if (message.content.includes('!afk')) { message.member.setNickname(`[AFK] ${message.member.displayName} `).catch(error => console.log(error)); } if (message.content === '!back') { message.member.setNickname(message.member.displayName.replace('[AFK] ', )).catch(error => console.log(error)); } });

y quiero Si el usuario es afk y luego el usuario chatea como "hola", el [AFK] se ha ido sin decir el prefijo "! Atrás"

¿Cómo puedo hacer eso?

Gracias por ayudarme (:

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si entiendo correctamente, está solicitando eliminar el estado AFK cuando el jugador escribe algo nuevamente. Hice una solución aproximada usando JS Set que debería funcionar bien con un pequeño conjunto de usuarios, pero puede requerir ajustes adicionales para servidores grandes.

Básicamente, cuando un jugador escribe !afk , se incluye en el conjunto de jugadores AFK y cuando regresa y escribe algo, su nombre se elimina del conjunto y su apodo se actualiza. No estoy seguro de si existe message.member.id y es el campo correcto para rastrear al jugador ( EDITAR : Sí, lo es ), pero la idea principal es mantener un registro de algo único para cada jugador afk.

 const afkPlayers = new Set(); client.on('message', message => { if (message.content.includes('!afk')) { afkPlayers.add(message.member.id); message.member.setNickname(`[AFK] ${message.member.displayName} `).catch(error => console.log(error)); } if(afkPlayers.member.has(message.member.id)){ afkPlayers.member.delete(message.member.id); message.member.setNickname(message.member.displayName.replace('[AFK] ', )).catch(error => console.log(error)); } });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Realmente no sé cómo funciona Discord y cuándo se activa exactamente el evento de "mensaje", pero me parece que probablemente podría hacerlo incluso sin el set , como lo propone @ TheCave3:

 client.on('message', message => { const pref='[AFK] '; if (message.content.includes('!afk')) message.member.setNickname(pref+message.member.displayName).catch(error => console.log(error)); else if (message.member.displayName.slice(0,pref.length)===pref) message.member.setNickname(message.member.displayName.slice(pref.length)).catch(error => console.log(error)); });
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