繁体   English   中英

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

[英]How do I detect a mentioned member and assign a role to them with a discord bot? (Javascript)

我正在尝试建立一个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”的角色?

您可以通过多种方式来处理此问题。 下面只是将字符串按空格分隔成一个数组,然后查看是否有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');
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM