#javascript #node.js #discord #discord.js #bots
Вопрос:
Итак, происходит то, что я пытаюсь создать команду set role/set channel для журналов и роль отключения звука, чтобы отключать людей, и мне интересно, как это сделать. Я просмотрел документы и другие потоки stackoverflow, и это все еще не работает.
if(!args[1]) return message.channel.send('Please specify a arg')
let roleName = args.slice(2).join(" ");
var role = message.guild.roles.cache.find(role => role.name === roleName)
if(!role){
message.channel.send("Thats not a role!")
}
if(role){
await GuildConfigSchema.update({ Guild: message.guild.id }, { MuteRole: role })
message.channel.send(`The mute role is now ${role}`)
}
Комментарии:
1. Что в этом не работает? Есть ли ошибка, выполняется ли она только частично или вообще ничего из этого и т. Д.
2. Он не выдает ошибку, он отправляет сообщение о том, что это не роль, когда я пингую его и делаю это нормально, и по какой-то причине добавляет роль в базу данных.
3. Попробуйте консоль. ведение
roleName
журнала, чтобы убедиться, что это то, чего вы ожидаете, так как вы не показали, как вы определилиargs
в коде, который вы дали.4. Если вы упоминаете об этом, то не будет ли это <@amp;ROLEID>? Вы сделали это так, что вам, похоже, придется вводить имя роли вручную
5. Что я могу с этим поделать?
Ответ №1:
Во-первых, вы можете использовать if(role){ } else { }
что-то подобное, а во-вторых, в комментариях, которые вы сказали, когда я пропингую его для вашего кода, пинг не будет работать, потому что вы используете role.name
, если хотите поймать роль с помощью пинга, то используйте let role = message.mentions.roles.first();