Estoy usando node.js para hacer un bot de discordia para mi servidor, actualmente estoy tratando de hacer que alguien agote el tiempo de espera, por ejemplo, 'Me-bot.timeout'... Respuesta-'Bot-¿A quién le gustaría que se agote el tiempo de espera?' luego escribe allí el nombre de usuario y se agota el tiempo. Pensé que este código funcionaría pero no funciona, ¿cómo lo soluciono/qué estoy haciendo mal?
message.guild.members.cache.get('username#1234').timeout(9000, 'Admin timed you out.')En primer lugar, como mencionó byxor , debe usar message.guild.members.fetch en Discord.js v12 y superior.
Dicho esto, fetch devolverá una Promesa para un usuario, y no el objeto de usuario en sí. Debe manejar esta promesa para obtener el usuario resuelto antes de intentar que se agote el tiempo.
Todo esto se explica en la documentación de Discord.js , pero esto es generalmente lo que está buscando (con todos los posibles errores detectados si los necesita):
message.guild.members.fetch('id') .then(user => { user.timeout(9000, 'Admin timed you out.') .then(() => { console.log('Timed user out for 9000 seconds.') }) .catch(console.error) }) .catch(console.error)Recomiendo encarecidamente que lea sobre Promesas , ya que Discord.js las utilizará en gran medida.