【发布时间】:2019-06-12 17:48:05
【问题描述】:
在某些 Discord 服务器上,我的代码用于添加/删除角色,但在某些服务器上却没有。我检查了一下,他们都有正确的权限,所以我有点难过。
每当我运行 >addrole 或 >removerole 命令时,我总是会收到相同的 Discord 错误消息。它是 ":x: 找不到静音角色。请确保您没有打错字(角色也区分大小写!)"。当用户在输入他们想要添加的角色时出现拼写错误时,我将其设置为。
命令格式如下:
addrole [@User] [RoleName] removerole [@User] [RoleName]
const Discord = require("discord.js");
exports.run = async(bot, message, args) => {
if (!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send(":x: Insufficient permission.").then(msg => msg.delete(4000));
let rolemember = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!rolemember) return message.channel.send(":x: Could not find user.").then(msg => msg.delete(4000));
let role = args.join(" ").slice(22);
if (!role) return mesage.reply(":x: Specify a role.");
let gRole = message.guild.roles.find(`name`, role);
if (!gRole) return message.channel.send(":x: Couldn't find mute role. Make sure you didn't make a typo (roles are case-sensitive too!)");
if (!rolemember.roles.has(gRole.id)) return message.channel.send(`:x: User does not have role "${gRole.name}".`).then(msg => msg.delete(4000));
await (rolemember.removeRole(gRole.id));
try {
rolemember.send(`:white_check_mark: Your role "${gRole.name}" in`, message.guild.name, "has been removed :confused:.");
} catch (e) {
message.channel.send(`:white_check_mark: ${rolemember} Your role "${gRole.name}" has been removed :confused:.`);
}
let removeroleEmbed = new Discord.RichEmbed()
.setDescription("Role Changes")
.setColor("RANDOM")
.addField("Role Removed", gRole)
.addField("Removed From", rolemember)
.addField("Removed By", message.author);
let logChannel = message.guild.channels.find(`name`, "logs-reports");
if (!logChannel) return message.channel.send(":x: Couldn't find logs channel.").then(msg => msg.delete(4000));
logChannel.send(removeroleEmbed);
}
exports.help = {
name: "removerole"
}
我希望应该添加该角色,但事实并非如此,而且我每次都会收到相同的错误消息。
【问题讨论】:
-
您能否分享一下输入不和谐命令时的样子。例如:“!removerole ...”
-
完成。格式现在显示在帖子开头附近。
-
args的值是多少?尝试在let role = args.join(" ").slice(22);之后记录role的值,看看是否正确。
标签: javascript discord discord.js