Какой самый простой способ задать для переменной то, что пользователь вводит как команду? - PullRequest
0 голосов
/ 29 мая 2020

Я создаю бота Discord, который принимает команды. Мне нужно, чтобы переменная была равна int, которое вы вводите, но мне сложно придумать решение. В настоящее время это выглядит примерно так:

switch(args[0]){
    case "test":

        if(args[1] == typeof 'number')
        {
            Functions.noOfPacks = args[1];
        }

Однако это не работает. В идеале я хочу иметь возможность набрать !pack 2 и установить для переменной значение 2. Я бы сделал это с помощью пользовательского ввода, но я не хочу, чтобы бот ждал ввода, поскольку команды больше не будут работать. Я знаю, что функция (в другом файле) работает, потому что она будет l oop дважды, если, например, я заранее установил значение переменной 2.

1 Ответ

2 голосов
/ 29 мая 2020

Как правило, все, что вводит пользователь, будет считываться вашим кодом как строка.

Пример:

document.querySelector('#box').onkeyup = function (e) {
  if (e.code !== 'Enter') return;

  const v = this.value
  
  if (Number.isNaN(+v)) {
    console.log(`${v} is not a number`)
    this.value = '' //clear the input when it is not a number
  } else {
    console.log(`${v} is a number`)
  }
}
<label for="box">Type something in there and press Enter</label>
<input type="text" id="box" />
...