NodeJS逻辑错误?程序停止作为执行的一部分很快?

时间:2016-02-02 23:03:54

标签: node.js steam steambot

我对NodeJS很新,很抱歉:(但是你必须从某个地方开始。无论如何,我正在编辑一个我试图完成的代码,当我尝试使用我的一个命令时遇到了一个挑战(这是一个机器人工作。这里有一些不起作用的代码:/

steamFriends.on('friendMsg', (id, msg) => {
  if (msg == '') {}
  else {
      LOG(id + ' sent me ' + '"' + msg + '"')
  }
  if (config.get('admins').indexOf(id) == -1) return;
  if (msg.indexOf('!price') == 0) {
    var match = msg.match(/!price (director|audition) ([\.0-9]+)/);
    if (!match) steamFriends.sendMessage(id, 'Usage: !price <director or audtion> <price> (e.g. !price director 3.77)');
    else {
      steamFriends.sendMessage(id, 'Successfully set price of '+match[1] + ' reels to '+match[2] + '!');
      PRICES[match[1] == 'audition' ? 0 : 1] = parseFloat(match[2]);
      changePrices();
    }
  }
  else if(msg.indexOf('!changestate') == 0) {
    var match = msg.match(/!changestate (Online|Offline|Away|Busy|LookingToTrade|LookingToPlay|Snooze)/);
    LOG(match);
    LOG(match[1]);
    if (!match)
        steamFriends.sendMessage(id, '!changestate <state> (Online, Offline, Away, LookingToTrade, Busy, LookingToPlay, Snooze)');
    var state = match[1]
    if (match)
        steamFriends.setPersonaState(Steam.EPersonaState.state)
  }
});

所以顶部可行,但底部则不然。底部是应该由关键字触发的else if语句!changestate顶部(有效的部分)是由!price触发的部分。

示例:当我尝试做!更改当前应该执行为steamFriends.setPersonaState(Steam.EpersonaState.Away)的代码不会返回错误,它会记录“!changestate Away,Away”并在下一个线,只是“离开”。我不确定这是一个逻辑错误还是我的代码中的其他错误:/

我已经记录了匹配并匹配[1]进行调试,但似乎没有任何帮助。

感谢帮助人员,我真的很感激。

1 个答案:

答案 0 :(得分:0)

在代码的末尾,您有

steamFriends.setPersonaState(Steam.EPersonaState.state)

你的状态&#39;变量不在这里使用。我怀疑你会有更多的运气,比如

switch(state.toLowerCase()) {
  case 'away':
  steamFriends.setPersonaState(Steam.EPersonaState.Away);
  break;

case 'online':
  steamFriends.setPersonaState(Steam.EPersonaState.Online);
  break;

// etc...
}