Временная роль Банна в Discord.js - PullRequest
0 голосов
/ 27 сентября 2019

Я в основном пытаюсь дать членам, которые говорят определенное слово, роль, которая отнимает права на чтение и написание.У меня возникли проблемы с возвращением пользователю его ролей.

Я попытался найти роли, которые у пользователя есть, с помощью "message.member.roles.find ()", которое не сработало.Я новичок в этом, так что, возможно, я упускаю какое-то простое решение.

client.on('message', message => {
    if (!message.author.bot) {
        // exclude messages from bots
        if ((message.content.startsWith(prefix) || message.content.startsWith(prefixPermanent)) && message.content.length > 1) {
            // query commands
            Commands.handleCommand(client, message);
        }
        else if (message.content.toLowerCase() === 'bad word' || message.content.toLowerCase() === 'other bad word') {
            const memberroles = message.member.roles.find();
            message.channel.send('Get banned');
            message.member.setRoles(['608002911225643028'])
        setTimeout(() => {
            message.member.setRoles([`memberoles`])
        }, 60000);
        }
    }
});

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

У меня возникли проблемы с возвращением пользователю его ролей.
...
Я попытался найти роли, которые у пользователя есть, с помощью "message.member.roles.find ()", чтоне сработало.

message.member.roles.find() находит только те роли, которые в данный момент имеет участник.
И в вашем случае вы пытаетесь добавить роль обратно к участнику.Таким образом, вы не собираетесь найти роль от участника.

То, что вы, вероятно, хотите, это message.guild.roles.find().
Он находит роли, которые имеет гильдия.

Редактировать

У вас было const memberroles = message.member.roles.find();
, который получает только одну роль от участников.

Вместо этого выполните

const memberroles = message.member.roles;

Возвращает коллекцию ролей.который вы можете ввести обратно в message.member.setRoles(), например:

...
const memberroles = message.member.roles;
message.channel.send('Get banned');
message.member.setRoles(['608002911225643028'])
setTimeout(() => {
   message.member.setRoles(memberoles)
}, 60000);
...
0 голосов
/ 27 сентября 2019

Метод Collection#find() не должен использоваться в вашей ситуации.Этот метод пытается найти указанный идентификатор в коллекции.Вместо этого просто установите memberroles на message.member.roles.

Чтобы вернуть обратно роли, выполните message.member.setRoles(memberroles).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...