Empecemos desde una RPI con la ultima versión de raspbian.
Primero instalo nodejs y npm poniendo sudo apt-get install nodejs npm en la terminal
Uno de los problemas viene cuando voy a ver la versión de node poniendo node -v en la terminal, a lo que la terminal responde que el comando no se encontró. Busqué información, y encontré este hilo nodejs vs node on ubuntu 12.04, en el que ponía que debía poner estos comandos en la terminal.
Code: Select all
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs
Pero ¿Por que en la mayoría de guías que he visto, con poner sudo apt-get install nodejs npm, ya funcionaba node -v, y cuando yo lo hacia en mi RPI, no funcionaba, pero nodejs -v si que funcionaba? ¿Hay alguna diferencia entre nodejs y node? ¿O es lo mismo?
Después de esto, pense que ya estaba todo, asi que fui a descargarme el paquete de node-minecraft-protocol poniendo en la terminal sudo npm install minecraft-protocol. Parecía que se había instalado correctamente. Lo que no entiendo, es por que siempre que instalo algo con npm salen tantos mensajes de WARN como este npm WARN engine mineflayer@2.1.1: wanted: {"node":">=4"} (current: {"node":"0.10.29","npm":"1.4.21"})(aviso, que ese es un paquete distinto a node-minecraft-protocol).
Bien, después de esto fui a ver si funcionaba este script
Code: Select all
var mc = require('minecraft-protocol');
var client = mc.createClient({
host: "localhost", // optional
port: 25565, // optional
username: "email@example.com",
password: "12345678",
});
client.on('chat', function(packet) {
// Listen for chat messages and echo them back.
var jsonMsg = JSON.parse(packet.message);
if(jsonMsg.translate == 'chat.type.announcement' || jsonMsg.translate == 'chat.type.text') {
var username = jsonMsg.with[0].text;
var msg = jsonMsg.with[1];
if(username === client.username) return;
client.write('chat', {message: msg});
}
});
Code: Select all
pi@user:~ $ node xd.js
/home/pi/node_modules/minecraft-protocol/src/index.js:3
const Client = require('./client');
^^^^^
SyntaxError: Use of const in strict mode.
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/pi/xd.js:1:72)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
Code: Select all
pi@user:~ $ sudo node --harmony xd.js
/home/pi/node_modules/minecraft-protocol/src/client.js:13
class Client extends EventEmitter
^^^^^
SyntaxError: Unexpected reserved word
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/pi/node_modules/minecraft-protocol/src/index.js:3:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
¿He leído que hay que usar babel, pero tendría que cambiar todo el código del paquete para poder usar babel?
Gracias por la atención, y perdonad mi ignorancia