【发布时间】:2020-07-16 21:10:20
【问题描述】:
我正在为我的服务器制作一个不和谐的机器人,我想包含一个 `%react` 命令。它的工作方式是“react #channel messageid emote”,它会让机器人对消息做出反应。目前我的代码运行良好,除了我想消除所有错误和警告,因为我真的很讨厌打开命令提示符或终端并看到一页又一页的文本。出于某种原因,`try{}` 语句会检测除最后一部分(表情)之外的所有内容,因此我尝试实现一个 `if()` 语句来检测消息的第 4 部分是否未定义。但是,这不起作用,我不知道为什么。
我的代码是这样的:
var splitMessage = message.content.split(' ')
if (splitMessage[0] === "%react") {
if (message.member.roles.cache.has("staff-role-id") || message.author.id === "random-user-who-wanted-perms") {
var channel = splitMessage[1].replace(/[<>:#]/gi, "");
channel = client.channels.cache.get(channel);
var messageid = splitMessage[2]
var emote = splitMessage[3];
emote = emote.replace(/[<>:abcdefghijklmnopqrstuvwxyz]/gi, "")
if (typeof splitMessage[2] !== "undefined" && splitMessage[2] && splitMessage[2] !== null) {
//executes no matter what
var emotetest = client.emojis.get(splitMessage[2])
try {
//console.log(channel)
const m = await channel.messages.fetch(messageid)
m.react(emote);
message.channel.send("Reaction added!")
} catch (e) { message.channel.send("Invalid Syntax, please check you have the right channel and ID"); }
}
else {
message.channel.send("Please provide an emote")
}
}
else {
message.channel.send("Insufficient Permissions")
}
}
我不知道为什么它不起作用(我觉得我已经尝试了所有方法)。任何帮助表示赞赏
【问题讨论】:
标签: node.js discord.js