Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name LudwigOS's Autoplayer
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description try to take over the world!
- // @author You
- // @match http://www.multiplayerpiano.com/*
- // @grant none
- // ==/UserScript==
- JSNMPBautoplayer = [];
- JSNMPBautoplayer.songs = [];
- JSNMPBautoplayer.songList = [];
- JSNMPBautoplayer.cmd = [];
- JSNMPBautoplayer.cmd.prefix = "!";
- JSNMPBautoplayer.isEnabled = false;
- JSNMPBautoplayer.cmd.isEnabled = true;
- JSNMPBautoplayer.ownername = "LudwigOS";
- JSNMPBautoplayer.admins = [];
- JSNMPBautoplayer.songsUploaded = [];
- JSNMPBautoplayer.songsCanPlays = true;
- JSNMPBautoplayer.sendArray = function(arr){
- };
- JSNMPBautoplayer.pianopress=function(id,vol){
- MPP.press(id,vol);
- };
- JSNMPBautoplayer.welcomeEnable = function(){
- };
- JSNMPBautoplayer.welcomeDisable = function(){
- MPP.client._events["participant added"][2]="";
- };
- var currentSongName;
- songDelay1=50;
- songDelay2=300;
- JSNMPBautoplayer.changeTempo=function(num){
- songDelay1=150-num;
- songDelay2=400-num;
- };
- var songClockInt;
- var stopSongClockInt;
- localStorage.defaultRoomName = "JSNMPB Room";
- formatMSeconds=function(mseconds)
- {
- var date = new Date(0,0,1970);
- date.setMilliseconds(mseconds);
- return date.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
- };
- notes = {
- "z":"a1","a":"gs1","s":"as1","f":"cs2","g":"ds2","x":"b1","c":"c2","v":"d2","b":"e2","n":"f2","j":"fs2","k":"gs2","1":"gs2","l":"as2","2":"as2","m":"g2",",":"a2",".":"b2","/":"c3","'":"cs3","q":"a2","w":"b2","e":"c3","4":"cs3","5":"ds3","7":"fs3","8":"gs3","9":"as3",
- "-":"cs4","=":"ds4","r":"d3","t":"e3","y":"f3","u":"g3","i":"a3","o":"b3","p":"c4","[":"d4","]":"e4","Z":"a2","A":"gs2","S":"as2",
- "F":"cs3","G":"ds3","X":"b2","C":"c3","V":"d3","B":"e3","N":"f3","J":"fs3","K":"gs3","!":"gs3","L":"as3","@":"as3","M":"g3","<":"a3",
- ">":"b3",'"':"cs4","?":"c4","Q":"a3","W":"b3","E":"c4","$":"cs4","%":"ds4","&":"fs4","*":"gs4",
- "(":"as4","_":"cs5","+":"ds5","R":"d4","T":"e4","Y":"f4","U":"g4","I":"a4","O":"b4","P":"c5","{":"d5","}":"e5"
- };
- T=300;
- h=300;
- playnotes = function(songnotes){
- songnoteslength = songnotes.length;
- notesNum=0;
- T=0;
- h=300;
- stopSong=false;
- timeoutn=[];
- //MPP.client.sendArray([{m:"userset", set:{name:JSNMPBautoplayer.ownername+" ["+formatMSeconds(0)+"]"}}]);
- songFor:for(var i = 0; i<songnoteslength; i++){
- //setTimeout(function(i) { songMPPpress(notes[songnotes[i]], 1); /*console.log(songnotes[i]);*/ }, T, i);
- if(songnotes[i]==""){T+=songDelay1; h=songDelay1;}
- else if(songnotes[i] == " "){T+=songDelay2; h=songDelay2;}
- timeoutn.push(setTimeout(function (i) {
- if (stopSong==true) {
- timeoutn.forEach(function (number) {
- clearTimeout(number);
- });
- timeoutn = [];
- console.log("Stopped!");
- stopSong = false;
- return;
- }
- JSNMPBautoplayer.pianopress(notes[songnotes[notesNum]], 1);
- notesNum+=1;
- //console.log(h);
- //console.log(notesNum);
- }, T,i));
- }
- ii=0;
- MPP.client.sendArray([{m:"userset", set:{name:JSNMPBautoplayer.ownername+" ["+formatMSeconds(ii)+" | "+formatMSeconds(T+2100)+"]"}}]);
- songClockInt=setInterval(function(){ii+=2100; MPP.client.sendArray([{m:"userset", set:{name:JSNMPBautoplayer.ownername+" ["+formatMSeconds(ii)+" | "+formatMSeconds(T+2100)+"]"}}]); MPP.client.sendArray([{m:"userset", set:{name:JSNMPBautoplayer.ownername+" ["+formatMSeconds(ii)+"]"}}]);},2100);
- stopSongClockInt=setInterval(function(){ if(ii>T){clearInterval(songClockInt); clearInterval(stopSongClockInt); setTimeout(function(){MPP.client.sendArray([{m:"userset", set:{name:JSNMPBautoplayer.ownername}}]); JSNMPBautoplayer.changeTempo(100);},2000);}},-Infinity);
- };
- var stop = false;
- var timeoutn = [];
- MPP.client.on("a", function (msg) {
- a = msg.a.split(' ');
- b = a[0];
- input = msg.a.substring(b.length).trim();
- if(JSNMPBautoplayer.isEnabled===true){
- if ((JSNMPBautoplayer.admins.indexOf(msg.p._id) > - 1) || (msg.p._id==MPP.client.getOwnParticipant()._id)){
- if (b == JSNMPBautoplayer.cmd.prefix + "on")
- {
- JSNMPBautoplayer.cmd.isEnabled=true;
- MPP.chat.send("Enabled Commands");
- }}
- if ((JSNMPBautoplayer.admins.indexOf(msg.p._id) > - 1) || (msg.p._id==MPP.client.getOwnParticipant()._id)){
- if (b== JSNMPBautoplayer.cmd.prefix + "off"){
- JSNMPBautoplayer.cmd.isEnabled=false;
- MPP.chat.send("Disabled Commands");
- }}
- var msgArr = msg.a.split(' ');
- if ((JSNMPBautoplayer.admins.indexOf(msg.p._id) > - 1) || (msg.p._id==MPP.client.getOwnParticipant()._id)){ if (msgArr[0] == JSNMPBautoplayer.cmd.prefix+'js' ) { try { MPP.chat.send('Console: '+JSON.stringify(eval(msg.a.substr(msgArr[0].length).trim()))); } catch (error) { MPP.chat.send(error); } } }
- if ((JSNMPBautoplayer.admins.indexOf(msg.p._id) > - 1) || (msg.p._id==MPP.client.getOwnParticipant()._id)){if(b==JSNMPBautoplayer.cmd.prefix+"prefix"){
- if(!input){
- MPP.chat.send("Usage: "+JSNMPBautoplayer.cmd.prefix+"prefix [text].");
- } else {
- MPP.chat.send("Prefix changed to "+input);
- JSNMPBautoplayer.cmd.prefix = input;
- }
- }}
- if(JSNMPBautoplayer.cmd.isEnabled===true){
- if(b==JSNMPBautoplayer.cmd.prefix+"help"|b==JSNMPBautoplayer.cmd.prefix+"h"){MPP.chat.send("Commands: "+JSNMPBautoplayer.cmd.prefix+"help ("+JSNMPBautoplayer.cmd.prefix+"h), "+JSNMPBautoplayer.cmd.prefix+"play ("+JSNMPBautoplayer.cmd.prefix+"p), "+JSNMPBautoplayer.cmd.prefix+"stop, "+JSNMPBautoplayer.cmd.prefix+"upload ("+JSNMPBautoplayer.cmd.prefix+"u), "+JSNMPBautoplayer.cmd.prefix+"list, "+JSNMPBautoplayer.cmd.prefix+"tempo");}
- if(b==JSNMPBautoplayer.cmd.prefix+"u"||b==JSNMPBautoplayer.cmd.prefix+"upload"){
- if (!input) { MPP.chat.send("Usage: "+JSNMPBautoplayer.cmd.prefix+"upload [Song name + Song notes]. Use ''\\'' as space between song notes and song name. Example: "+JSNMPBautoplayer.cmd.prefix+"upload furelise\\t 5 t 5 t w r e q");
- } else {
- if(!input.split("\\")[1]){MPP.chat.send("You forget something.");
- } else {
- MPP.chat.send("You uploaded song");
- JSNMPBautoplayer.songs[input.split("\\")[0]] = [];
- JSNMPBautoplayer.songs[input.split("\\")[0]].notes = ""+input.split("\\")[1]+"";
- JSNMPBautoplayer.songs[input.split("\\")[0]].name = ""+input.split("\\")[0]+"";
- JSNMPBautoplayer.songsUploaded.push(input.split("\\")[0]);
- }
- }
- }
- if(b ==JSNMPBautoplayer.cmd.prefix+"play"||b== JSNMPBautoplayer.cmd.prefix+"p"){
- if (!input) {
- MPP.chat.send("Usage: "+JSNMPBautoplayer.cmd.prefix+"play [Song Name].");
- }else{
- if (!JSNMPBautoplayer.songs[input]) {
- MPP.chat.send("Not Found");
- }else{
- playnotes(JSNMPBautoplayer.songs[input].notes);
- currentSongName=input;
- MPP.chat.send("Reading song. Name: "+JSNMPBautoplayer.songs[input].name+" ["+formatMSeconds(T+2100)+"]");
- }
- }}
- if(b ==JSNMPBautoplayer.cmd.prefix+"list"){
- MPP.chat.send("Songs: "+JSNMPBautoplayer.songsUploaded);
- }
- if(b ==JSNMPBautoplayer.cmd.prefix+"stop"){
- stopSong=true;
- ii=T+1;
- }
- if(b ==JSNMPBautoplayer.cmd.prefix+"tempo"){
- if(!input){
- MPP.chat.send("Usage: "+JSNMPBautoplayer.cmd.prefix+"tempo [number].");
- }else{
- stopSong=true;
- ii=T+1;
- setTimeout(function(){JSNMPBautoplayer.changeTempo(input); playnotes(JSNMPBautoplayer.songs[currentSongName].notes); MPP.chat.send("Tempo: "+input+"% ["+formatMSeconds(T+2100)+"].");},3000);
- }
- }
- }
- }
- });
- $("body #bottom .relative").append('<div id="jsnmpbautoplaybtn" class="ugly-button 2_btn" style="position: fixed;bottom: 7px;right: 550px;width: 115px;">JSNMPB AutoPlayer</div>');
- $("#jsnmpbautoplaybtn").click(function(){
- MPP.client.emit("notification", { title: "Title", html: `<input id='JSNMPBinputRoom' value='`+localStorage.defaultRoomName+`' onclick='JSNMPBroomPrompt = prompt(), localStorage.defaultRoomName=JSNMPBroomPrompt' style="width: 245px; height: 15px;"> <br><button id='JSNMPBbuttonConnect' onclick='JSNMPBautoplayer.isEnabled=true, document.getElementById("JSNMPBinputRoom").value=localStorage.defaultRoomName, MPP.client.setChannel(localStorage.defaultRoomName)'>Connect</button><button id='JSNMPBbuttonDisconnect' onclick='JSNMPBautoplayer.isEnabled=false'>Disconnect</button></br><br><input type="checkbox" id="visiblejsnmpb" checked/> Visible <input type="checkbox" id="chatjsnmpb" checked/> Chat <input type="checkbox" id="solojsnmpb"> Solo <input type="checkbox" id="welcomesjsnmpb"> Welcomes <input type="color" id="colorRoomjsnmpb" style="width: 14px; height: 20px;"><button id='setclrbtn' onclick='JSNMPBautoplayer.sendArray([{m: "chset", set: {color:document.getElementById("colorRoomjsnmpb").value}}])'>Set Color</button></br>`,duration:-1,target:"#jsnmpbautoplaybtn"});
- var visiblejsnmpb = document.querySelector('#visiblejsnmpb');
- visiblejsnmpb.onclick = function() {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {visible:false}}]);
- if (visiblejsnmpb.checked) {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {visible:true}}]);
- }
- };
- var chatjsnmpb = document.querySelector('#chatjsnmpb');
- chatjsnmpb.onclick = function() {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {chat:false}}]);
- if (chatjsnmpb.checked) {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {chat:true}}]);
- }
- };
- var solojsnmpb = document.querySelector('#solojsnmpb');
- solojsnmpb.onclick = function() {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {crownsolo:false}}]);
- if (solojsnmpb.checked) {
- JSNMPBautoplayer.sendArray([{m: "chset", set: {crownsolo:true}}]);
- }
- };
- var welcomesjsnmpb = document.querySelector('#welcomesjsnmpb');
- //JSNMPBautoplayer.welcomeEnable
- //JSNMPBautoplayer.isEnabled=true;
- welcomesjsnmpb.onclick = function() {
- JSNMPBautoplayer.welcomeDisable();
- if (welcomesjsnmpb.checked) {
- JSNMPBautoplayer.welcomeEnable();
- }
- };
- console.log("test");
- });
- setInterval(function(){if(MPP.client.channel._id==localStorage.defaultRoomName,JSNMPBautoplayer.isEnabled==true){
- JSNMPBautoplayer.sendArray = function(arr){
- MPP.client.sendArray(arr);
- };
- JSNMPBautoplayer.welcomeEnable = function(){
- MPP.client._events["participant added"][2] = function(jomom){MPP.chat.send("Welcome, "+jomom.name+" ("+jomom.color+"). Use "+JSNMPBautoplayer.cmd.prefix+"help for the command list.");};
- };
- }
- if(MPP.client.channel._id!==localStorage.defaultRoomName,JSNMPBautoplayer.isEnabled==false){
- JSNMPBautoplayer.sendArray = function(arr){
- JSNMPBautoplayer.welcomeEnable=function(){};
- };
- }},-Infinity);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement