问题描述
我正在尝试创建命令行,以便可以执行!! help之类的命令,但是如果需要更多代码来正确评估我的情况,它似乎不会运行其他if语句,那么我很乐意提供更多
// CLI interface
rl.on('line',(line) => {
// CLI cmds
if (line == line.includes(prefixs.cliprefix)) {
if (line == line.includes('help')) {
console.log(clihelp()); console.log("new method"); clihelp();
} else {
//test for event
if (line == line.includes('event') && line == line.includes('list')) {
console.log("example method");
gists.get('5f718f4198f1ea91a37e3a9da468675c')
.then(ress => console.log(ress))
.catch(console.error);
console.log("new method");
console.log(gists.get('5f718f4198f1ea91a37e3a9da468675c'));
console.log("end");
}
}
} else {
// send cmd to mc
socket.send(JSON.stringify({
"body": {
"origin": {
"type": "player"
},"commandLine": line,"version": 1
},"header": {
"requestId": "00000000-0000-0000-000000000000","messagePurpose": "commandRequest","version": 1,"messageType": "commandRequest"
}
}));
console.log("command sent: " + line);
}
});
//CLI closed
解决方法
问题出在您的if
语句上。当if
变量包含一些我看到的文本时,您希望运行line
块中的代码。但是您创建的条件不正确。
他们应该像这样:
if (line.includes('help'))
代替
if (line == line.includes('help'))
,
我能够通过使用这里找到的tmi.js命令处理程序示例来使其工作 https://tmijs.com/以及此处https://www.google.com/amp/s/www.geeksforgeeks.org/else-statement-javascript/amp/
rl.on('line',(line) => {
if (line === line.includes(prefixs.cliprefix)) return;
const args = line.slice(prefixs.cliprefix.length).split(' ');
const command = args.shift().toLowerCase();
console.log("command = '" + command + "' args = '" + args + "'");
if(command === 'help') { clihelp(); }
if(command === 'ping') { console.log("Pinging twitch"); client.ping(); }
if(command === 'log') { console.log(logsettings); }
if(command === 'log' && args === args.include("on")) {
if(args === args.include("error")) {console.log("now logging Error's"); logsettings.type = 'error'; }
if(args === args.include("info")) {console.log("now logging Info"); logsettings.type = 'info'; }
if(args === args.include("debug")) {console.log("now logging debug"); logsettings.type = 'debug'; }
if(args === args.include("all")) {console.log("now logging everything"); logsettings.type = 'all'; }
return; }
if(command === 'log' && args.include("off")) { console.log("Logging is now OFF"); logsettings.log = 'off'; }
if(command === 'prefix') {
const nclip = args.slice(4);
const nmcp = args.slice(3);
if(args === args.include('cli')) { console.log("Prefix for " + args.slice(0,4) + " is now " + nclip); prefixs.cliprefix=nclip; }
if(args === args.include('mc')) { console.log("Prefix for " + args.slice(0,3) + " is now " + nmcp); prefixs.mcprefix = nmcp; }
if(args === ' ') { console.log(prefixs); }
return;
}
}); // CLI closed ```