首页 > 解决方案 > Discord 命令滞后

问题描述

我用硬币编写了一个不和谐的机器人插槽命令,它正在工作,但如果我运行该命令,有时什么也不会发生。(没有错误)

例如:您输入 !slots 500 <--这些是硬币,您可以赢得更多

我试图找到问题,但我没有找到任何代码(当执行命令时发生这种情况)

if(!coins[message.author.id]) {
        return message.channel.send("Du hast keine Coins!")
        }
let amount = args[0];
if(!amount) return message.channel.send("Du musst Coins angeben!")
let mal2 = amount * 2
let mal3 = amount * 3
let mal4 = amount * 4
let mal5 = amount * 5
let lose = amount * 1.2
let ccoins = coins[message.author.id].coins
if(ccoins < amount) return message.channel.send("Du hast nicht so viele Coins!")
if(500 < amount) return message.channel.send("Du darfst nicht mehr als 500 Coins angeben!")
    let resault = ["  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  "]
let result = Math.floor((Math.random() * resault.length))
let result2 = Math.floor((Math.random() * resault.length))
let result3 = Math.floor((Math.random() * resault.length))
if(resault[result] === "  ") {
    coins[message.author.id] = {
        coins: coins[message.author.id].coins - lose
    }
    fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
        if(err) console.log(err)
      });
      let embed = new Discord.RichEmbed()
      .setAuthor(`Du hast ${lose} Coins verloren!`)
      .setDescription(`⬛️${resault[result2]}⬛️`)
      .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
      message.channel.send(embed)
      return;
} 


        if(resault[result] === "  ") {
            coins[message.author.id] = {
                coins: coins[message.author.id].coins - lose
            }
            fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                if(err) console.log(err)
              });
              let embed = new Discord.RichEmbed()
              .setAuthor(`Du hast ${lose} Coins verloren!`)
              .setDescription(`⬛️${resault[result2]}⬛️`)
              .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
              message.channel.send(embed)
              return;
        }   
            if(resault[result] === "  ") {
                coins[message.author.id] = {
                    coins: coins[message.author.id].coins - lose
                }
                fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                    if(err) console.log(err)
                  });
                  let embed = new Discord.RichEmbed()
                  .setAuthor(`Du hast ${lose} Coins verloren!`)
                  .setDescription(`⬛️${resault[result2]}⬛️`)
                  .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
                  message.channel.send(embed)
                  return;
            } 
                if(resault[result] === "  ") {
                    coins[message.author.id] = {
                        coins: coins[message.author.id].coins - lose
                    }
                    fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                        if(err) console.log(err)
                      });
                      let embed = new Discord.RichEmbed()
                      .setAuthor(`Du hast ${lose} Coins verloren!`)
                      .setDescription(`⬛️${resault[result2]}⬛️`)
                      .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
                      message.channel.send(embed)
                      return;
                } 



                    if(resault[result] === "  ") {
                        coins[message.author.id] = {
                            coins: amount * 3 + ccoins
                        }
                        fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                            if(err) console.log(err)
                          });
                          let embed = new Discord.RichEmbed()
                          .setAuthor(`Du hast ${mal3} Coins gewonnen!`)
                          .setDescription(`⬛️${resault[result2]}⬛️`)
                          .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)

                          message.channel.send(embed)
                          return;

                    }
                    if(resault[result] === "  ") {
                        coins[message.author.id] = {
                            coins: amount * 2 + ccoins
                        }
                        fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                            if(err) console.log(err)
                          });
                          let embed = new Discord.RichEmbed()
                          .setAuthor(`Du hast ${mal2} Coins gewonnen!`)
                          .setDescription(`⬛️${resault[result2]}⬛️`)
                          .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
                          message.channel.send(embed)
                          return;
                    }
                    if(resault[result] === "  ") {
                        coins[message.author.id] = {
                            coins: amount * 4 + ccoins
                        }
                        fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                            if(err) console.log(err)
                          });
                          let embed = new Discord.RichEmbed()
                          .setAuthor(`Du hast ${mal4} Coins gewonnen!`)
                          .setDescription(`⬛️${resault[result2]}⬛️`)
                          .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
                          message.channel.send(embed)
                          return;
                    }
                    if(resault[result] === "  ") {
                        coins[message.author.id] = {
                            coins: amount * 5 + ccoins
                        }
                        fs.writeFile("./coins.json", JSON.stringify(coins), (err) => {
                            if(err) console.log(err)
                          });
                          let embed = new Discord.RichEmbed()
                          .setAuthor(`Du hast ${mal5} Coins gewonnen!`)
                          .setDescription(`⬛️${resault[result2]}⬛️`)
                          .addField(`➡️  ⬅️`, `⬛️${resault[result3]}⬛️`)
                          message.channel.send(embed)
                          return;

                    }




                }```

标签: javascriptdiscord.js

解决方案


所以让我们说result结果是0,resault[result]然后是

您没有对 3 个橙子/切片进行任何检查。所以它不会返回任何东西。也不会发送任何消息。

您还缺少对更多组合的检查。因此,从外观上看,有 1/3 的时间你一无所获。

也只是因为这段代码效率很低我在这里有一个更好的赌徒版本:https ://jsfiddle.net/FrustratedProgrammer/19dmwL86/


推荐阅读