Discord.js v12 角色添加到提到的用户问题
Discord.js v12 Role add to mentioned user problem
所以我正在尝试制作一个像 $roletested @user
这样的命令,它应该给用户提到的特定角色。我收到错误 called:_“无法读取未定义的 属性 'roles'...请帮帮我,这是我的代码 :D
if (message.content.startsWith(prefix + "roletested")) {
let testedUser = message.mentions.members.first()
if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'));
if(!testedUser) return message.channel.send("You have to mention the person you want to assign the role to!").then((declineMsg) => { message.react('❌');
declineMsg.delete({timeout: 5000});
let testedRole = message.guild.roles.cache.find(role => role.id === "724676382776492113");
testedUser.roles.add(testedRole);
message.channel.send("Added the role `TESTED` to user.")
})}})
您的代码已修复
if (message.content.startsWith(prefix + "roletested")) {
if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'))
let testedRole = message.guild.roles.cache.get('724676382776492113');
let testedUser = message.mentions.members.first();
if(!testedUser) return message.channel.send("You have to mention the person you want to assign the role to!").then((declineMsg) => { message.react('❌')
declineMsg.delete({timeout: 5000});
});
testedUser.roles.add(testedRole);
message.channel.send("Added the role `TESTED` to user.")
}
我修复了你的代码:
- 我整理了一些东西(代码是一样的,我只是改变了一些东西)
- 你不能用
message.guild.roles.cache.find(...)
所以我改成了message.guild.role.cache.get('Role ID')
来源:Link
代码:
if (message.content.startsWith(prefix + 'roletested')) {
const testedUser = message.mentions.members.first();
if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'));
if (!testedUser) {
message.channel.send('You have to mention the person you want to assign the role to!').then(declineMsg => {
message.react('❌');
declineMsg.delete({ timeout: 5000 });
return;
});
}
const testedRole = message.guild.roles.cache.get('395671618912780289');
testedUser.roles.add(testedRole);
message.channel.send('Added the role `TESTED` to user.');
}
我在我的机器人上测试了这段代码,它按预期工作。
所以我正在尝试制作一个像 $roletested @user
这样的命令,它应该给用户提到的特定角色。我收到错误 called:_“无法读取未定义的 属性 'roles'...请帮帮我,这是我的代码 :D
if (message.content.startsWith(prefix + "roletested")) { let testedUser = message.mentions.members.first() if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:')); if(!testedUser) return message.channel.send("You have to mention the person you want to assign the role to!").then((declineMsg) => { message.react('❌'); declineMsg.delete({timeout: 5000}); let testedRole = message.guild.roles.cache.find(role => role.id === "724676382776492113"); testedUser.roles.add(testedRole); message.channel.send("Added the role `TESTED` to user.") })}})
您的代码已修复
if (message.content.startsWith(prefix + "roletested")) {
if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'))
let testedRole = message.guild.roles.cache.get('724676382776492113');
let testedUser = message.mentions.members.first();
if(!testedUser) return message.channel.send("You have to mention the person you want to assign the role to!").then((declineMsg) => { message.react('❌')
declineMsg.delete({timeout: 5000});
});
testedUser.roles.add(testedRole);
message.channel.send("Added the role `TESTED` to user.")
}
我修复了你的代码:
- 我整理了一些东西(代码是一样的,我只是改变了一些东西)
- 你不能用
message.guild.roles.cache.find(...)
所以我改成了message.guild.role.cache.get('Role ID')
来源:Link
代码:
if (message.content.startsWith(prefix + 'roletested')) {
const testedUser = message.mentions.members.first();
if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'));
if (!testedUser) {
message.channel.send('You have to mention the person you want to assign the role to!').then(declineMsg => {
message.react('❌');
declineMsg.delete({ timeout: 5000 });
return;
});
}
const testedRole = message.guild.roles.cache.get('395671618912780289');
testedUser.roles.add(testedRole);
message.channel.send('Added the role `TESTED` to user.');
}
我在我的机器人上测试了这段代码,它按预期工作。