我刚刚设法得到了一个Node.js minecraft bot API(名为mineflayer)。当我最后一次制作“我的世界”机器人时(我自己用C++编写),我遇到了一个问题,那就是when writing in the console, the server messages would mix with whatever I'm writing。我当时回答的答案似乎有太复杂/不明确的解决方案,所以我放弃了。防止Node.js控制台中的输入/输出混合?
现在我希望Node.js解决了这个问题,但显然不是。 Node.js中有一个简单的解决方案吗?我想是这样的:
但现在,命令,我写拌上输出(红色写输入,绿色是控制台输出,彩色使用GIMP):
我使用的是readline
模块:
var readline = require("readline");
var rl = readline.createInterface({
input: process.stdin,
output: null,
});
rl.on('line', function(line) {
var inp = line.trim();
//Bot internal commands start with ~
if(line[0]=='~') {
command(line.substr(1));
}
else {
//use server chat
bot.chat(line);
}
});
只是一个想法:我想你可以采取一个完全不同的方法,并制作一个网络应用程序,而不是命令行界面。您可以使用Express来使用Node.js,并提供一个可以输入命令的简单页面。您可以使用HTML元素(如按钮和其他表单控件)来改进您的用户界面。要实时显示输出,可以使用[socket.io](http://stackoverflow.com/a/24232050/778272)。 –