【发布时间】:2021-04-08 05:01:02
【问题描述】:
当arg 不是变量中的colors 之一时,我正试图让我的机器人返回一条消息,但它一直在发送此消息:
有两个问题我无法解决
- 机器人发送两条“红色”消息
- 即使我在颜色变量中定义了“黑色”,机器人也会说“这不是有效的皮肤”
let skin = db.fetch(`${message.author.id}.skin`)
if (skin === null) skin = "red"; //red
let skin2 = client.emojis.cache.get(e[skin])
var colors = ["red", "blue", "green", "pink", "orange", "yellow", "black", "white", "purple", "brown", "cyan", "cyan"]
const attachment = new Discord.MessageAttachment(`./assets/colors/${skin}.png`, `${skin}.png`);
const embed = new Discord.MessageEmbed()
.attachFiles(attachment) // <- add attachment
.setAuthor(`${message.author.tag}\'s skins (${message.author.id})`, message.author.avatarURL())
.setThumbnail(`attachment://${skin}.png`)
.addField(`Current skin`, `${skin2}`)
.addField(`Default skins`, `red, blue, green, pink, orange, yellow, black, white, purple, brown, cyan, lime`)
.addField(`Unlocked skins`, `none`)
.addField(`Locked skins`, `none`)
.setDescription(`To set a skin use ${prefix}skin <skin>`)
.setTimestamp()
.setColor('#00ffff')
.setFooter(message.member.user.tag, message.author.avatarURL());
if(!args[0]) return message.channel.send(embed)
for (var i=0; i < colors.length; i++) {
if (args[0].includes(colors[i])) {
let skin3 = args[0]
db.set(`${message.author.id}.skin`, args[0])
message.channel.send(`Set your skin to ${args[0]}`)
} else if(!args[0].includes(colors[i])) {
return message.channel.send(`That is not a valid skin`)
}
}
如你所见
var colors = ["red", "blue", "green", "pink", "orange", "yellow", "black", "white", "purple", "brown", "cyan", "cyan"]
其中已经有“黑色”,但它执行 else if 函数。
【问题讨论】:
标签: javascript node.js discord.js