Javascript 试图编写一个服务器内部笑话,但不起作用如何修复它?
因此,在我的服务器中有一个内部笑话,有人说9+2=12,所以我正在对我的机器人进行编码,所以当有人说Javascript 试图编写一个服务器内部笑话,但不起作用如何修复它?,javascript,discord,discord.js,Javascript,Discord,Discord.js,因此,在我的服务器中有一个内部笑话,有人说9+2=12,所以我正在对我的机器人进行编码,所以当有人说,cal 9+2时,机器人会显示一个嵌入式,上面写着“计算器”作为标题,答案是12,效果很好,但任何其他计算都不起作用,代码如下: const Math = require("mathjs"); module.exports = { name: "cal", description: "Calculates something&q
,cal 9+2
时,机器人会显示一个嵌入式,上面写着“计算器”作为标题,答案是12,效果很好,但任何其他计算都不起作用,代码如下:
const Math = require("mathjs");
module.exports = {
name: "cal",
description: "Calculates something",
async execute (Client, message, args, Discord){
const lol = '12'
const LOL = '9 + 2'
if(!args[0]) return message.channel.send("Please provide a question to solve");
let resp;
try{
resp = Math.evaluate(args.join(" "))
} catch (e) {
return message.channel.send("Please provide a **valid** question to answer")
}
if(args[0] = '9+2' || '9 + 2' || '9+ 2' || '9 +2'){
const embed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setTitle("Calculator")
.addField("Question", `\`\`\`css\n${LOL}\`\`\``)
.addField("Answer", `\`\`\`css\n${lol}\`\`\``)
message.channel.send(embed);
}
else{
const embed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setTitle("Calculator")
.addField("Question", `\`\`\`css\n${args.join(" ")}\`\`\``)
.addField("Answer", `\`\`\`css\n${resp}\`\`\``)
message.channel.send(embed);
}
}
}
脚本没有if函数,数学部分工作得很好!但是笑话并不存在。你的问题在于这句话:
if(args[0]=“9+2”| | |“9+2”| |“9+2”| |“9+2”){
首先,=
仅用于赋值,例如const foo='bar'
。要进行比较,请使用三重相等,例如'foo'=='foo'
其次,x===y | | | z
实际上并不做您认为它做的事情。逻辑OR运算符(|
)两侧的语句将始终完全单独计算。上述情况并不意味着“x
等于y
或z
”,而是,“x
等于y
,或者z
是真实的”
//这意味着
//永远都会回到现实。
//如果你把这两种说法分开,
//第二个永远是真实的,因为
//一根弦本身就是真实的
if(true==false | |“你好”){
log('It passed');
};
这里有一种方法(我不知道它是否有效……):
我知道有很多方法可以做得更好,但这是我的。你可能需要某种形式的解析器。这段视频将是一个很好的开始。你可以添加整个if函数以便我可以看到你做了什么吗?只需替换
if(args[0]=“9+2”|“9+2”|“9+2”|“9+2”|“9+2”){
使用我描述的其中一个选项addly我尝试了所有选项,但它们都不起作用,只有当我一起做9+2时才起作用,任何其他像9+2这样做的方法都不起作用,这可能是因为您只是在比较参数[0]
。如果你做了9+2
,它将是9
。如果你做了9+2
,它将是9+
。你需要编辑你的代码来解释这一点(例如,使用args.join(“”)
那么类似的东西是什么?如果(args.join)(“”)[0]==“9+2”| args.join(“”)[0]==“9+2”;“args.join”(“”)[0]=“9+2”]“| | args.join(“”)[0]==“9+2”){
const hi = [ ',cal 9+12', ',cal 9 +12', ',cal 9+ 12']
if(hi.includes(message.content.toLowerCase())) {
const embed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setTitle("Calculator")
.addField("Question", `\`\`\`css\n${LOL}\`\`\``)
.addField("Answer", `\`\`\`css\n${lol}\`\`\``)
return message.channel.send(embed)
}