// ==UserScript== // @name MH King's Crowns+ // @author Ben Loll - Warden Slayer#2302 // @namespace https://greasyfork.org/en/users/227259-wardenslayer // @version 1.2.1 // @description Platinum Corwns, Locked Favorites, and More! // @include https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js // @include http://www.mousehuntgame.com/* // @include https://www.mousehuntgame.com/* // @downloadURL none // ==/UserScript== //=================================================================================== $(document).ready(function() { var observer = new MutationObserver(callback); var observerOptions = { childList: true, attributes: false, subtree: false, }; observer.observe($("#tabbarContent_page_2").get(0), observerOptions); }); // function callback(mutationList, observer) { mutationList.forEach((mutation) => { switch(mutation.type) { case 'childList': console.log("Mutation",localStorage.getItem('haltCode')) if (localStorage.getItem('haltCode') == "Y") { localStorage.setItem('haltCode', "N") break; } buildToolbar() if (localStorage.getItem('ShowAllCrowns') == "Y") { buildCrownHeaders(); sortCrowns(); localStorage.setItem('haltCode', "Y"); } break; } }) }; // function buildToolbar(){ //If we already have an hideLe Section, do not make another if ($('.toolBar').length > 0) return; var toolBar = document.createElement("div"); toolBar.classList.add('toolBar') //Lock Favs Cb var lockFavs = document.createElement('input'); lockFavs.type = "checkbox"; lockFavs.name = "lockFavs"; lockFavs.value = ""; lockFavs.id = "lockFavs"; if (localStorage.getItem('LockFavs') == "Y") { lockFavs.checked = "Yes"; } else { lockFavs.checked = ""; } var lockFavsLabel = document.createElement('label') lockFavsLabel.htmlFor = "lockFavsLabel"; lockFavsLabel.appendChild(document.createTextNode('Lock Favorites')); toolBar.appendChild(lockFavs); toolBar.appendChild(lockFavsLabel); //All Crowns Cb var showAllCrowns = document.createElement('input'); showAllCrowns.type = "checkbox"; showAllCrowns.name = "showAllCrowns"; showAllCrowns.value = ""; showAllCrowns.id = "showAllCrowns"; showAllCrowns.checked = ""; if (localStorage.getItem('ShowAllCrowns') == "Y") { showAllCrowns.checked = "Yes"; } else { showAllCrowns.checked = ""; } var showAllCrownsLabel = document.createElement('label') showAllCrownsLabel.htmlFor = "showAllCrownsLabel"; showAllCrownsLabel.appendChild(document.createTextNode('Show Community Crowns')); toolBar.appendChild(showAllCrowns); toolBar.appendChild(showAllCrownsLabel); //Comminity Ranks Cb var communityRanks = document.createElement('input'); communityRanks.type = "checkbox"; communityRanks.name = "communityRanks"; communityRanks.value = ""; communityRanks.id = "communityRanks"; communityRanks.checked = ""; if (localStorage.getItem('ShowCommunityRanks') == "Y") { communityRanks.checked = "Yes"; } else { communityRanks.checked = ""; } var communityRanksLabel = document.createElement('label') communityRanksLabel.htmlFor = "communityRanksLabel"; communityRanksLabel.appendChild(document.createTextNode('Show Community Ranks')); toolBar.appendChild(communityRanks); toolBar.appendChild(communityRanksLabel); //last var crownBreak = $(".crownbreak").first(); if ($(".crownheader.crownheadertop").length < 1) { var header = $(".crownbreak").last().clone(); header.insertBefore($(".crownheader.crownheadergold")) crownBreak = $(header); } crownBreak.append(toolBar) $(".toolBar").css({"float":"right"}) }; //================================= Lock Favs ==================================== // $(document).on('change', '#lockFavs', function() { if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) { // //check to see if the cb was JUST checked if(this.checked) { // Put the checked value into storage localStorage.setItem('LockFavs', "Y"); lockFavs.checked = "Yes"; lockFavorites(); } else { // Put the checked value into storage localStorage.setItem('LockFavs', "N"); lockFavs.checked = ""; unlockFavorites(); } } }); // function lockFavorites(){ var allMice = $(".favoriteCrownToggle.crownAction"); //var cloneMice = allMice.clone(true) allMice.off("click"); } function unlockFavorites(){ var allMice = $(".favoriteCrownToggle.crownAction"); allMice.on("click"); } //================================== Crowns ===================================== // $(document).on('change', '#showAllCrowns', function() { if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) { // //check to see if the cb was JUST checked if(this.checked) { // Put the checked value into storage localStorage.setItem('ShowAllCrowns', "Y"); showAllCrowns.checked = "Yes"; buildCrownHeaders(); sortCrowns(); } else { // Put the checked value into storage localStorage.setItem('ShowAllCrowns', "N"); showAllCrowns.checked = ""; hideCrowns(); } } }); // function buildCrownHeaders () { var crownBreak = $(".crownbreak").first(); var spacer1 = $(".crownbreak").last().clone().attr('id', 'spacer1'); var spacer2 = spacer1.clone().attr('id', 'spacer2'); var spacer3 = spacer1.clone().attr('id', 'spacer3'); var platinumHeader = $("
Platinum Crowns
Earned at 1000 catches
") var diamondHeader = $("
Diamond Crowns
Earned at 2500 catches
") var masterHeader = $("
Master Crowns
Earned at 5000 catches
") //Add Larry Later <10 // //Plat var allMice = $(".mousebox"); var allGold = allMice.find(".numcatches.gold"); if (allGold.filter(function(index){ if($(this).text() >= 600){ return true; } else { return false; } }).length > 0 && $(".crownheader.crownheaderplatinum").length < 1) { platinumHeader.insertAfter(crownBreak); spacer3.insertAfter(platinumHeader); } //Diamond if (allGold.filter(function(index){ if($(this).text() >= 800){ return true; } else { return false; } }).length > 0 && $(".crownheader.crownheaderdiamond").length < 1) { diamondHeader.insertAfter(crownBreak); spacer1.insertAfter(diamondHeader); } //Master if (allGold.filter(function(index){ if($(this).text() >= 900){ return true; } else { return false; } }).length > 0 && $(".crownheader.crownheadermaster").length < 1) { masterHeader.insertAfter(crownBreak); spacer2.insertAfter(masterHeader); } } function sortCrowns() { //Plat if ($(".crownheader.crownheaderplatinum").length > 0) { sortPlatinum() } //Diamond if ($(".crownheader.crownheaderdiamond").length > 0) { sortDiamond() } //Master if ($(".crownheader.crownheadermaster").length > 0) { sortMaster() } //Favorites if ($(".crownheader.crownheadertop").length > 0) { sortFavotitesAfterSort() } //================ } function sortPlatinum() { var allMice = $(".mousebox"); var allGold = allMice.find(".numcatches.gold"); var allPlatinum = allGold.filter(function(index) { if ($(this).text() >= 600 && $(this).parent().parent().parent().attr("data-action") === "addFavoriteCrown") { return true; } else if ($(this).text() >= 600 && $(".mousebox").length > 0) { return true; } else { return false; } }) if($(".mousebox").length > 0) { allPlatinum = allPlatinum.parent().parent().not(".mousebox.favorite"); } else { allPlatinum = allPlatinum.parent().parent().parent(); } var platinumHeader = $(".crownheader.crownheaderplatinum") var goldHeader = $(".crownheader.crownheadergold") allPlatinum.insertAfter(platinumHeader); allPlatinum.find(".numcatches.gold").removeClass("numcatches gold").addClass("numcatches plat"); localStorage.setItem('PlatCrownCount', allPlatinum.length); var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, ''); goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-localStorage.getItem('PlatCrownCount'))+")") platinumHeader.find(".crownquantity").text("("+localStorage.getItem('PlatCrownCount')+")") //var img = crown-platinum platinumHeader.css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat left top"); $(".numcatches.plat").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } function sortDiamond() { var allMice = $(".mousebox"); var allPlat = allMice.find(".numcatches.plat"); var allDiamond = allPlat.filter(function(index) { if ($(this).text() >= 800 && $(this).parent().parent().parent().attr("data-action") === "addFavoriteCrown") { return true; } else if ($(this).text() >= 800 && $(".mousebox").length > 0) { return true; } else { return false; } }) if($(".mousebox").length > 0) { allDiamond = allDiamond.parent().parent().not(".mousebox.favorite"); } else { allDiamond = allDiamond.parent().parent().parent(); } var diamondHeader = $(".crownheader.crownheaderdiamond") var platinumHeader = $(".crownheader.crownheaderplatinum") allDiamond.insertAfter(diamondHeader); allDiamond.find(".numcatches.plat").removeClass("numcatches plat").addClass("numcatches diamond"); localStorage.setItem('DiamondCrownCount', allDiamond.length); localStorage.setItem('PlatCrownCount',parseInt(localStorage.getItem('PlatCrownCount'),10)-allDiamond.length); platinumHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('PlatCrownCount'),10)+")") diamondHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('DiamondCrownCount'),10)+")") //var img = crown-platinum diamondHeader.css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat left top"); $(".numcatches.diamond").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } function sortMaster() { var allMice = $(".mousebox"); var allDiamond = allMice.find(".numcatches.diamond"); var allMaster = allDiamond.filter(function(index) { if ($(this).text() >= 900 && $(this).parent().parent().parent().attr("data-action") === "addFavoriteCrown") { return true; } else if ($(this).text() >= 900 && $(".mousebox").length > 0) { return true; } else { return false; } }); if($(".mousebox").length > 0) { allMaster = allMaster.parent().parent().not(".mousebox.favorite"); } else { allMaster = allMaster.parent().parent().parent(); }; var masterHeader = $(".crownheader.crownheadermaster") var diamondHeader = $(".crownheader.crownheaderdiamond") allMaster.insertAfter(masterHeader); allMaster.find(".numcatches.diamond").removeClass("numcatches diamond").addClass("numcatches master"); localStorage.setItem('MasterCrownCount', allMaster.length); localStorage.setItem('DiamondCrownCount',parseInt(localStorage.getItem('DiamondCrownCount'),10)-allMaster.length); diamondHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('DiamondCrownCount'),10)+")") masterHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('MasterCrownCount'),10)+")") //var img = crown-platinum masterHeader.css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat left top"); $(".numcatches.master").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } function sortFavotitesAfterSort() { var topHeader = $(".crownheader.crownheadertop") var allMice = $(".mousebox.favorite"); var allFavorites = allMice.find(".numcatches.gold"); var nonFavs = $(".mousebox").not(".mousebox favorite"); var goldHeader = $(".crownheader.crownheadergold") var platinumHeader = $(".crownheader.crownheaderplatinum") var diamondHeader = $(".crownheader.crownheaderdiamond") var masterHeader = $(".crownheader.crownheadermaster") var seen = {}; allFavorites.each(function() { var txt = $(this).text(); if (seen[txt]) { //move fav to new crown class if (txt >= 900) { $(this).parent().parent().insertAfter(masterHeader) $(this).removeClass("numcatches gold").addClass("numcatches master") localStorage.setItem('MasterCrownCount', parseInt(localStorage.getItem('MasterCrownCount'),10)+1); var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, ''); goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")") masterHeader.find(".crownquantity").text("("+localStorage.getItem('MasterCrownCount')+")"); $(".numcatches.master").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); var masterResult = filterOutTopFavs($(".numcatches.master").parent().find(".name")) masterResult = masterResult.parent().find(".numcatches.master") var masterArray = sortAcsending(masterResult); masterArray.every(function(cell) { $(cell).parent().parent().detach().insertAfter(masterHeader); return true; }) } else if (txt >= 800) { $(this).parent().parent().insertAfter(diamondHeader) $(this).removeClass("numcatches gold").addClass("numcatches diamond") localStorage.setItem('DiamondCrownCount', parseInt(localStorage.getItem('DiamondCrownCount'),10)+1); var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, ''); goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")") diamondHeader.find(".crownquantity").text("("+localStorage.getItem('DiamondCrownCount')+")"); $(".numcatches.diamond").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); var diamondResult = filterOutTopFavs($(".numcatches.diamond").parent().find(".name")) diamondResult = diamondResult.parent().find(".numcatches.diamond") var diamondArray = sortAcsending(diamondResult); diamondArray.every(function(cell) { $(cell).parent().parent().detach().insertAfter(diamondHeader); return true; }) } else if (txt >= 600) { $(this).parent().parent().insertAfter(platinumHeader) $(this).removeClass("numcatches gold").addClass("numcatches plat") localStorage.setItem('PlatCrownCount', parseInt(localStorage.getItem('PlatCrownCount'),10)+1); var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, ''); goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")") platinumHeader.find(".crownquantity").text("("+localStorage.getItem('PlatCrownCount')+")"); $(".numcatches.plat").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); var platResult = filterOutTopFavs($(".numcatches.plat").parent().find(".name")) platResult = platResult.parent().find(".numcatches.plat") var platArray = sortAcsending(platResult); platArray.every(function(cell) { $(cell).parent().parent().detach().insertAfter(platinumHeader); return true; }) } } else { //change top fav to new crown class only if (txt >= 900) { $(this).removeClass("numcatches gold").addClass("numcatches master") $(".numcatches.master").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } else if (txt >= 800) { $(this).removeClass("numcatches gold").addClass("numcatches diamond") $(".numcatches.diamond").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } else if (txt >= 600) { $(this).removeClass("numcatches gold").addClass("numcatches plat") $(".numcatches.plat").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top"); } seen[txt] = true; } }); } //================================================================ HIDE function hideCrowns() { var allMice = $(".mousebox"); var allPlat = allMice.find(".numcatches.plat"); var allDiamond = allMice.find(".numcatches.diamond"); var allMaster = allMice.find(".numcatches.master"); var goldHeader = $(".crownheader.crownheadergold") var platinumHeader = $(".crownheader.crownheaderplatinum") var diamondHeader = $(".crownheader.crownheaderdiamond") var masterHeader = $(".crownheader.crownheadermaster") removeTheseCrowns(allMaster); removeTheseCrowns(allDiamond); removeTheseCrowns(allPlat); allPlat.removeClass("numcatches plat").addClass("numcatches gold"); allDiamond.removeClass("numcatches diamond").addClass("numcatches gold"); allMaster.removeClass("numcatches master").addClass("numcatches gold"); var result = filterOutTopFavs($(".numcatches.gold").parent().find(".name")) result = result.parent().find(".numcatches.gold") var array = sortAcsending(result); array.every(function(cell) { $(cell).parent().parent().detach().insertAfter(goldHeader); return true; }) goldHeader.find(".crownquantity").text("("+result.length+")") $(".crownheader.crownheaderplatinum").remove(); $(".crownheader.crownheaderdiamond").remove(); $(".crownheader.crownheadermaster").remove(); $("#spacer1").remove(); $("#spacer2").remove(); $("#spacer3").remove(); } function removeTheseCrowns(elements) { var goldHeader = $(".crownheader.crownheadergold") var crown = elements.attr("class") if (crown == "numcatches plat") { crown = ".numcatches.plat" } else if (crown == "numcatches diamond") { crown = ".numcatches.diamond" } else if (crown == "numcatches master") { crown = ".numcatches.master" } var result = filterOutTopFavs(elements.parent().find(".name")); result = result.parent().find(crown) result.parent().parent().detach().insertAfter(goldHeader); } function filterOutTopFavs(elements) { var seen = {}; var result = elements.filter(function() { var txt = $(this).text(); if (seen[txt]) { return true; } else { seen[txt] = true; if ($(this).parent().parent().hasClass("mousebox favorite")) { return false; } else { return true; } } }) return result; } function sortAcsending(result) { var array = result.toArray(); array = array.sort(function(a,b) { a = parseInt($(a).text(),10) b = parseInt($(b).text(),10) return a-b; }); return array; } //================================= Community Crowns ==================================== // $(document).on('change', '#communityRanks', function() { if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) { // //check to see if the cb was JUST checked if(this.checked) { // Put the checked value into storage localStorage.setItem('ShowCommunityRanks', "Y"); communityRanks.checked = "Yes"; } else { // Put the checked value into storage localStorage.setItem('ShowCommunityRanks', "N"); communityRanks.checked = ""; } } }); //TO DO //add favorite link is gone using mousebox with crowns showing //MHCC /+90% crowned ranks? //Fix lock code