所以我当时在做硬币系统,但是我遇到了一个小问题。
通常,每次输入内容时,我都会得到1个硬币,但是当我使用!coins命令检查我拥有多少个硬币时,我不希望机器人给我硬币。
我希望它在使用此命令时忽略给我硬币。
那我该补充些什么呢?
这是我在index.js中的代码:
if (message.channel.id === "528734148718886922"){
if(!coins[message.author.id]){
coins[message.author.id] = {
coins: 0
};
}
let coinAmt = Math.floor(Math.random() * 1) + 1;
let baseAmt = Math.floor(Math.random() * 1) + 1;
console.log(`${coinAmt}; ${baseAmt}`);
if(coinAmt === baseAmt){
coins[message.author.id] = {
coins: coins[message.author.id].coins + coinAmt
};
fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
if (err) console.log(err)
});
let coinEmbed = new Discord.RichEmbed()
.setAuthor(message.author.username)
.setColor("#6666ff")
.addField("💰", `You earned ${coinAmt} Scrap`)
message.channel.send(coinEmbed).then(message => {message.delete(100000)});
}
}
coin.js文件:
const Discord = require("discord.js");
let coins = require("../coins.json");
module.exports.run = async (bot, message, args) =>{
//coins
if(!coins[message.author.id]){
coins[message.author.id] = {
coins: 0
};
}
let uCoins = coins[message.author.id].coins;
let coinEmbed = new Discord.RichEmbed()
.setAuthor(message.author.username)
.setColor("#6666ff")
.addField("💰", uCoins);
message.channel.send(coinEmbed).then(message => {message.delete(50000)});
}
module.exports.help = {
name: "coins"
}
最佳答案
我猜最简单的方法是将if (message.channel.id === "528734148718886922"){
替换为:
if (message.channel.id === "528734148718886922" && message.content !== "!coin"){`
另一种方法(稍微复杂一点,但允许您做更多的事情)是仅在未找到命令的情况下才给硬币。
根据您构建机器人的方式的不同,您可能拥有
if(cmd) {
或if(commandfile)
或其他类似方式,然后可以将硬币代码放入else
部分,以便仅在没有命令的情况下才提供硬币运行了。关于javascript - 使用!coins命令时,如何使漫游器忽略给我硬币?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54967380/