54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
var nmpb_id = "561738578bfc6a71d8c9a907";
|
|
var output_channel = "lobby";
|
|
var input_channel = "NMPB Autoplayer (Sockets)"; // damn Prince Fluff in Troll Heaven2
|
|
var my_name = "NMPB (Ray890)*";
|
|
var mppUri = "ws://www.multiplayerpiano.com:8080";
|
|
|
|
var Client = require('mpp-client');
|
|
|
|
var client1 = new Client(mppUri);
|
|
client1.setChannel(output_channel);
|
|
client1.start();
|
|
var client2 = new Client(mppUri);
|
|
client2.setChannel(input_channel);
|
|
client2.start();
|
|
|
|
client1.on("hi", function(){
|
|
client1.sendArray([{m:'userset', set:{name:my_name}}]);
|
|
});
|
|
|
|
setInterval(()=>{
|
|
if ((client1.isConnected() && !client1.channel) || (client1.channel && client1.channel._id != output_channel)) client1.setChannel(output_channel);
|
|
if ((client2.isConnected() && !client2.channel) || (client2.channel && client2.channel._id != input_channel )) client2.setChannel(input_channel );
|
|
}, 1000);
|
|
|
|
|
|
// NMPB notes to lobby
|
|
client2.on('n', msg => {
|
|
if (client2.findParticipantById(msg.p)._id != nmpb_id) return;
|
|
client1.sendArray([msg]);
|
|
});
|
|
// NMPB chat to lobby
|
|
client2.on('a', msg => {
|
|
if (msg.p._id != nmpb_id) return;
|
|
client1.sendArray([{m:'a', message: msg.a}]);
|
|
});
|
|
// NMPB mouse to lobby
|
|
client2.on('m', msg => {
|
|
if (client2.findParticipantById(msg.id)._id != nmpb_id) return;
|
|
client1.sendArray([msg]);
|
|
});
|
|
|
|
|
|
// lobby commands to NMPB
|
|
var NMPB_commands = `
|
|
help h list search s title color info about
|
|
upload u
|
|
auto a play p random r restart rr set pos sustain
|
|
backwards b mistakes tempo speed inverse mirror octave oct echo transpose tp
|
|
`.trim().split('\n').join(' ').split(' ');
|
|
client1.on('a', msg => {
|
|
if (!msg.a.startsWith('/')) return;
|
|
if (!NMPB_commands.includes(msg.a.split(' ')[0].substr(1))) return;
|
|
client2.sendArray([{m:'a', message: msg.a}]);
|
|
}); |