Discord Bot JS-我如何将角色附加到特定的Discord标签上



im当前为我的Discord编程一个机器人,我想要一个命令,我的mod可以写入将静音角色附加到特定播放器上的命令。当前,它们直接与Discord标签键入/静音(例如/mutedanyboy#8473(,并且将DISRODD标签保存在一个称为commandsplit的变量中(为" Danyboy#8473"(。我该如何定位不和谐标签并将静音角色附加到该用户?

我使用Discord.js进行编程。第23行是我想要工作的部分,谢谢。

const Discord = require("discord.js");
const TOKEN = "MyToken"
const PREFIX = "/timeout24"
var bot = new Discord.Client();
const COMMAND = "/mute"
/*Confirms the bot is active */
bot.on("ready", function(){
    console.log("Bot Active");
});
/*Gives new members the "Member" role */
bot.on("guildMemberAdd", function(member) {
    member.addRole(member.guild.roles.find("name", "Member"))
});
/*The mute command */
bot.on("message", function(message) {
    if(message.author.equals(bot.user)) return;
    if(!message.content.startsWith(COMMAND)) return;
    var commandsplit = message.content.substring(COMMAND.length).split(" ");
    commandsplit.id.addRole(message.guild.roles.find("name", "Muted"))
})
bot.login(TOKEN);

仔细阅读discord.js文档,仔细使用.addrole来设置静音角色!

您的方法无法正常工作,因为您有一串用户名,但是 .Addrole使用MAP(类型的对象(为会员使用。因此,您需要存储成员是带有给定用户名的变量。尽管您也可以做到这一点,但是更好的方法是使用 @提及,而它们仅作为对象。

首先进行if语句,然后检查是否是MUTE命令if(message.startsWith(${prefix}mute);(您需要从botconfig.json调用前缀或首先在邮件文件中定义它(,然后在IF语句中使用以下代码。

let muteuser = message.mentions.members.first();
let muterole = message.guild.roles.find('name',"Muted");
muteuser.addRole(muterole);

请确保您了解代码,而不仅仅是复制它。

让我知道您是否需要任何帮助

最新更新