2017-12-23 8 views
1

그래서 난 내가 -say Something Here를 입력 할 때 someone says: Something here을 반환 봇 명령을 만들려하지만이하는 모든 반환 someone says: undefined입니다 tmi.jsNode.js를이

bot.on("chat", function (channel, user, message, self) { 
    if(message === "-say") 
    var code = message.split(' ')[1]; 
    bot.action("stankotomic", "someone says: " + code); 
}); 

답변

0

에 대한 문서 여기를 참조하십시오,하지만 난 당신이 다른 것을 의미 생각합니다. 내가 틀렸다고 말해줘. 하지만 당신의 질문을 이해 했으니 까 그것이 올바른 방법입니다.

message = "-say Something Here"; 과 결과는 같아야합니다

if(message === "-say") // I am 100% sure "-say" and 
//"-say something here" are different. correct me if i am wrong. 
//so we need to check for the first word, or first element in our array of words. 
//lets first create array than check: if(message.split(" ")[0] == "-say") 

var code = message.split(' ')[1]; //now, we don't have 2 spaces together 
//anywhere in our message, so array == nothing. 
//I guess it should be more like: message.split(" ").shift().join(" "); 
// this will return you: "Something Here". 

bot.action("stankotomic", "someone says: " + code); 

귀하의 최종 코드 :

bot.on("chat", function (channel, user, message, self) { 
if(message.split(" ")[0] == "-say") 
     var code = message.split(" ").shift().join(" "); 
     bot.action("stankotomic", "someone says: " + code); 
}); 

PS :

은 선으로 코드 라인에서 볼 수 있습니다 : "여기 뭔가 누군가가 말했다"

Split documentation.

Join.

Shift.

0

당신이 다음 줄 걸릴 경우 var code = message.split(' ')[1];

을 ... 그리고 다음으로 변경, 그것은 도움이 될 것입니다 var code = message.split(' ')[1];

구분 기호로 공백이 두 개 있어야 split()에 하나만 있어야합니다.

정말 확실하지 않다 String.prototype.split()