我剛剛設法得到了一個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)。 –