discord.js пытается создать команду произвольного результата с 2 массивами - PullRequest
0 голосов
/ 11 февраля 2019

Я уже некоторое время работаю над своим диссон-ботом, и у него есть функция управления шахтой, но только один результат дает пользователю 20 серебряных и простое сообщение, но я хочу несколько ответов, которые бот может дать, и разное количествоsilver.

Я пытался использовать 'dl.AddXp' и сообщение в одном массиве, но он просто выдает ошибку.

if (command === "mine") {

  var rando_choice = [
    dl.AddXp(message.author.id, -20),
    dl.AddXp(message.author.id, 50),
    dl.AddXp(message.author.id, -10)
  ]

  var rando_choice2 = [
    "You broke your leg while mining and had to pay a doctor to help. **-20 Silver**",
    "You explored a new cave and find some new ores. **+50 Silver**",
    "You found nothing in the cave today."
  ]

  if(!message.member.roles.some(r=>["Pickaxe"].includes(r.name)) )
  return message.reply("You do not have a pickaxe!");
  (rando_choice[Math.floor(Math.random() * rando_choice.length)]),
  message.channel.send({embed: {
    color: `${message.member.displayColor}`,
    title: `${message.member.displayName}`,
    fields: [{
        name: "**MINE :pick: **",
        value:  (rando_choice2[Math.floor(Math.random() * rando_choice2.length)]),
      },
    ],
    timestamp: new Date(),
    footer: {
      icon_url: client.user.avatarURL,
    }
  }
});
}```


1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете использовать как значение xp, так и сообщение в массиве объектов и получить оттуда случайный элемент.Посмотрите на код ниже.Существует массив объектов, которые имеют 2 свойства.Свойство XP и свойство сообщения.Вы можете расширить это, как считаете нужным.

if (command === "mine") {

  const choices = [
    {
      xp: -20,
      message: "You broke your leg while mining and had to pay a doctor to help. **-20 Silver**"
    },
    {
      xp: 50,
      message: "You explored a new cave and find some new ores. **+50 Silver**"
    },
    {
      xp: -10,
      message: "You found nothing in the cave today."
    }
    // Add more results as you see fit
  ];

  if(!message.member.roles.some(r=>["Pickaxe"].includes(r.name)))
    return message.reply("You do not have a pickaxe!");

  const randomOption = choices[Math.floor(Math.random() * choices.length)];

  dl.AddXp(message.author.id, randomOption.xp);

  message.channel.send({
    embed: {
      color: `${message.member.displayColor}`,
      title: `${message.member.displayName}`,
      fields: [
        {
          name: "**MINE :pick: **",
          value: randomOption.message
        }
      ],
      timestamp: new Date(),
      footer: {
        icon_url: client.user.avatarURL,
      }
    }
  });
}
...