Usando Discord.js (V12)
Actualmente estoy tratando de crear un script que haga que cuando alguien diga "qué", el bot responda "¡Estás atrapado con eso!" luego le da al usuario un rol. Pero lo quiero para que cuando la siguiente persona diga qué, elimine ese rol del portador anterior. Actualmente lo tengo funcionando donde puede agregar el rol pero no eliminarlo de la persona anterior.
Aquí está mi código de trabajo actual:
module.exports = { name: 'what', description: 'Responds with You are stuck with it and adds role!', execute(message, args) { message.channel.send('You are stuck with it!'); message.member.roles.add('886996311117795429') } }El problema de declarar una variable dentro de su código como sugirió @Cannicide es que si el bot falla y necesita reiniciarlo nuevamente, esa variable se perderá.
La forma más fácil de guardar los datos incluso después de reiniciar es usando quick.db
//your other stuff if you have any const db = require('quick.db') module.exports = { name: 'what', description: 'Responds with You are stuck with it and adds role!', execute(message, args) { message.channel.send('You are stuck with it!'); message.member.roles.add('886996311117795429') if(db.get('previousRoleUser')){ let prevUser = message.guild.members.cache.find(m => m.id === db.get('previousRoleUser')); if(prevUser){ prevUser.roles.remove('886996311117795429') } db.set('previousRoleUser', message.author.id) } }El código anterior es solo un ejemplo, que no está probado. Pero creo que funcionaría de alguna manera así. Simplemente establezca el valor del usuario anterior en quick.db y luego obtenga la información desde allí cuando desee usarla.