#javascript #command #discord.js
#javascript #команда #discord.js
Вопрос:
Я хочу создать команду, в которой у указанного пользователя будут удалены все их роли и добавлена одна конкретная роль. У меня возникли некоторые трудности с разрешениями и синтаксисом гильдии.
Текущий код, который у меня есть, это:
name: 'megabean',
description: 'makes Craig megabean people',
execute(message, args){
let guild = client.guilds.cache.get(guildId);
message.channel.send(`${message.author} has **MEGABEANED** ${args [0]}. Say goodbye to your perms
**Reason for MEGABEAN:** ${args.splice(1).join(" ")} `)
.then(guild.roles.set([]))
.then(guild.roles.add(['741934348273451032']))
}
}
В настоящее время клиент не определен, хотя у меня есть
постоянный клиент = новый Discord.Client(); в моем main.js файл
Я просто ищу некоторую информацию о том, как лучше подойти к этой задаче. Извините, если я могу показаться несколько неподготовленным, пока исследования не завели меня слишком далеко…
Ответ №1:
Это связано с тем, что вы не используете свой текущий клиент, а создаете новый экземпляр, я бы посоветовал вам передать свой существующий клиент в качестве аргумента функции к нему (используя execute(message, args, client)
, вы также можете снова войти в этот файл, но я был бы осторожен с этим, поскольку это может иметь нежелательные побочные эффекты. Вам также нужна помощь с удалением ролей?
РЕДАКТИРОВАТЬ: Для удаления ролей:
message.member.roles.remove(message.member.roles); //remove all
message.member.roles.add(message.guild.roles.cache.get("role ID here")); //add the specific role
Вот и все.
Комментарии:
1. Я определенно ищу помощь в удалении ролей и добавлении ролей указанному пользователю. Это была просто плохая ошибка из-за того, что я забыл добавить клиента. Спасибо за помощь!
2. @Bobfrog93 Я внес правку о том, как вы можете этого добиться
3. Спасибо, что помогли мне еще раз. Извините, что звучит так раздражающе, но код, похоже, не удаляет и добавляет правильно — я ищу команду code to go ! . @укажите причину, а затем получите . пользователь @mention удаляет все свои роли, а затем добавляет одну, а не человека, вызывающего команду, с измененными ролями. Все хорошо, если вы хотите оставить это со мной, просто не совсем уверен, как это сделать.
4. В этом случае она применяется к автору (message.member), если вы хотите это для другого пользователя, вы можете получить участника, используя
message.guild.members.cache.get(message.mentions.users.first().id)
, например (я знаю, что это очень подробно). Вы можете найти больше об этом на discord.js.org , где можно найти официальную документацию5. Вы можете свести это к
message.mentions.members.first()