Estoy tratando de codificar un bot para una idea de juego que tenemos mis amigos y yo. El comando en el que estoy trabajando es el ajustador de puntuación. Obviamente, sin embargo, solo quiero que los moderadores tengan acceso a este comando.
Sin embargo, he leído varios hilos y he probado varios métodos para verificar un rol, y todos cierran el script con este error:
if (message.member.roles.has(modRole))TypeError: no se pueden leer las propiedades de nulo (leyendo 'roles')
Este es el último código que probé:
bot.on("message", (message) => { let args = message.content.toLowerCase().substring(PREFIX.length).split(" "); if (args[0] === "adjust" && args[1] !== "help") { if (message.member.roles.has("modRoleID")) { // Adjust command here } } });¿Por qué el bot no puede leer .roles()?
Así que nunca conseguí .roles para trabajar. Y no estaba dispuesto a recodificar todo el bot para que coincida con v13, así que esto es lo que hice:
Acabo de configurar una matriz para que contenga todas las identificaciones de usuario del moderador y luego verifiqué si el autor era un moderador, así:
const mods = ['userID_1','userID_2']; bot.on("message", (message) => { let args = message.content.toLowerCase().substring(PREFIX.length).split(" "); if (args[0] === "adjust" && args[1] !== "help") { if (!mods.includes(message.author.id)) return message.channel.send("You do not have permission to use that command!").then() //Adjust command here } });