Как я могу обнаружить упомянутого участника и назначить ему роль с ботом разногласия?(Javascript) - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь настроить бота Discord, который даст пользователям готовую роль под названием «Приостановлено» после того, как пользователь наберет команду.Я хочу, чтобы команда была! Suspend @user length, но я не знаю, как определить, упоминается ли пользователь.

const Commando = require('discord.js-commando');
const bot = new Commando.Client();
const TOKEN = 'redacted'

bot.registry.registerGroup('simple', 'Simple');
bot.registry.registerDefaults();
bot.registry.registerCommandsIn(__dirname + '/commands');


bot.on('message', function(message){
    if(message.content == 'testk.1')
    {
        message.channel.sendMessage('Hi ' + message.author + ' nab.');
    }
    if(message.content == 'testk.2')
    {
        message.member.send("Nabwoo XD");
    }
    if(message.content == '!suspend', mentionsMember) //This is the part im 
having an issue on
    {
         message.channel.sendMessage('works');
    }
});
bot.on('ready',function(){
console.log("Ready");
})
bot.login(TOKEN);

Как я могу назначить роль с именем «Suspended» пользователю, которыйупоминается в сообщении?

1 Ответ

0 голосов
/ 28 декабря 2018

Есть так много способов справиться с этим.Ниже приведен только один метод: разбить строку на массив по пробелам и посмотреть, есть ли 3 части, и убедиться, что первая часть равна !suspend, а вторая начинается с @.Конечно, вы можете сделать его более грубым в зависимости от ваших потребностей.

    if(message.content.split(" ").length === 3 && message.content.split(" ")[0] == '!suspend' && message.content.split(" ")[1].startsWith("@"))
    {
         var mentionsMember = message.content.split(" ")[1]; // 2nd item in array when text is split by spaces, (ex. `@user`)
         message.channel.sendMessage('works');
    }
...