如何检测提到的成员并使用discord bot为其分配角色? (JavaScript)的

问题描述 投票:0回答:1

我正在尝试设置一个Discord bot,它会在用户输入命令后为用户提供一个名为“Suspended”的预制角色。我希望命令是!暂停@user长度,但我不知道如何判断用户是否被提及。

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”的角色分配给消息中提到的用户?

javascript bots discord roles
1个回答
0
投票

有很多方法可以解决这个问题。下面只是一种方法,通过空格将字符串拆分成数组,并查看是否有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');
    }
© www.soinside.com 2019 - 2024. All rights reserved.