Discord机器人创建角色异常:角色名称显示为‘new role’
问题分析与解决
你的代码因角色创建参数结构错误,导致Discord未读取到你设置的角色名称,最终使用默认名称“new role”创建角色。
错误原因
在Discord.js中,roles.create()方法的配置参数需直接传入对象,不需要嵌套在data字段内。你当前的写法将配置放在data中,方法无法正确解析name等配置项,因此触发了默认命名逻辑。
修正后的代码
const roleManager = guild.roles; roleManager.create({ name: 'My Role', color: 'GREEN', mentionable: true, reason: 'Creating a new role' }) .then(role => console.log(`Created new role with name ${role.name}`)) .catch(console.error);
额外排查点
- 确认机器人拥有管理角色的权限,否则配置可能无法正常生效
- 检查服务器是否存在第三方机器人或自动规则,会修改新创建角色的名称
内容的提问来源于stack exchange,提问作者Sarthak Verma
相关产品推荐
相关产品推荐

