MH - BWrift Portal Tracker (Public)

Tracks and upload data on Bwrift Portals

目前為 2021-05-28 提交的版本,檢視 最新版本

// ==UserScript==
// @name         MH - BWrift Portal Tracker (Public)
// @version      1.1.2
// @description  Tracks and upload data on Bwrift Portals
// @author       Chromatical
// @match        https://www.mousehuntgame.com/camp.php
// @icon         https://www.google.com/s2/favicons?domain=mousehuntgame.com
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js
// @resource     YOUR_CSS https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_xmlhttpRequest
// @connect      self
// @connect      script.google.com
// @connect      script.googleusercontent.com
// @namespace https://gf.qytechs.cn/users/748165
// ==/UserScript==

// Please state whether you want to display your MH name or not in SETTINGS
// A unique name would let you check your own data (in the future)

$(document).ready(function() {
    var cssTxt = GM_getResourceText ("YOUR_CSS");
    GM_addStyle (cssTxt);
});

//Settings
const useMHname = false; // set to false to use some other names for data submission
const useThisName = 'Anonymous'; //
const debug1 = false;
//Settings end

(function() {
    const Timeout = setTimeout(function(){
        if (user.environment_name == "Bristle Woods Rift"){
            if(debug1){
                createBox();
            }
            checkportal();
            observe();
            //listen(); deprecated
        }
    },1000);
})();

//Observes changes to DOM
function observe(){
    const observer = new MutationObserver(function(){
        if (user.quests.QuestRiftBristleWoods.chamber_status == "open"){
            bwriftTrack();
            submitData();
        }
    });
    const observerTarget = $('.riftBristleWoodsHUD-portalContainer')[0];
    const config = {childList: true, subtree: true};
    observer.observe(observerTarget,config);
}

//Listens to scramble being clicked
/*function listen(){
    var clicked = $(".riftBristleWoodsHUD-portalEquipment-action")[0]
    clicked.addEventListener("click",function(){
        console.log("clicked");
        var clicked2 = $(".mousehuntActionButton")[26]
        clicked.addEventListener("click",function(){
            bwriftTrack()
        })
    })
}*/

//Checks for localstorage
function checkportal(){
    var portalArr = localStorage.getItem("bwrift-portal-stats-p");
    if (portalArr === null){
        var emptySet = []
        localStorage.setItem("bwrift-portal-stats-p",JSON.stringify(emptySet))
    }
}

//Main function
function bwriftTrack(){
    if (debug1){
        console.log("Portal!")
    };
    var now = new Date();
    if (user.quests.QuestRiftBristleWoods.chamber_status == "open"){
        //Sand
        var sandAmt = $(".riftBristleWoodsHUD-footer-item-quantity")[0].innerText

        //Portal
        var portal = document.getElementsByClassName('riftBristleWoodsHUD-portalContainer')[0];
        var portalAmt = portal.children.length;
        var portalName = []
        for (var i=0;i<portalAmt;i++){
            portalName[i] = portal.children[i].getElementsByClassName('riftBristleWoodsHUD-portal-name')[0].textContent;
        };
        //Buffs
        var effects = user.quests.QuestRiftBristleWoods.status_effects;
        var gb,fa,ic;
        //Guard Barracks
        if (effects.un.indexOf("active")>-1){
            gb = "Cursed"
        } else if (effects.ng.indexOf("active")>-1){
            gb = "Buffed"
        } else if (effects.ng == "default"){
            gb = "Default"
        };
        //Frozen Alcove
        if (effects.fr.indexOf("active")>-1){
            fa = "Cursed"
        } else if (effects.ac.indexOf("active")>-1){
            fa = "Buffed"
        } else if (effects.ac == "default"){
            fa = "Default"
        };
        //Ingress
        if (effects.st.indexOf("active")>-1){
            ic = "Cursed"
        } else if (effects.ex.indexOf("active")>-1){
            ic = "Buffed"
        } else if (effects.ex == "default"){
            ic = "Default"
        };


        //Your name
        var name;
        if (useMHname){
            name = user.username
        } else {
            name = useThisName
        };

        //Record the data
        if(portalName[0] !== ""){
            var Arr = JSON.parse(localStorage.getItem("bwrift-portal-stats-p"));
            var newArr = [sandAmt,gb,fa,ic,portalName,name]
            Arr.push(newArr);
            localStorage.setItem("bwrift-portal-stats-p",JSON.stringify(Arr));

         //Submit the data
            var arraystring = JSON.stringify(newArr);
            const webAppUrl = 'https://script.google.com/macros/s/AKfycbyxlMZk2iXty3To2R3Dm_c8zrV_aPfZYrxG9uJF4rXcraCt_YjB4Vmae2Fo8PXyk-oS/exec';
               if (webAppUrl){
                   GM_xmlhttpRequest({
                       method: "POST",
                       url: webAppUrl,
                       data: arraystring,
                       onload: function(response){
                           console.log("data submitted")
                       },
                       onerror: function(response){
                           console.log("data submission failed")
                       }
                   })
               }
        }
    }
}

//Debugging----------------------------------------------------
function createBox(){
    var box = $(".riftBristleWoodsHUD-acolyteStats")[0];
    box.addEventListener("click",function(){
        $.confirm({
            title: 'Portal Scramble Tracker',
            boxWidth: '50%',
            useBootstrap: false,
            closeIcon: true,
            draggable: true,
            content: '' +
            '<form action="" class="formName">' +
            '<div class="form-group">' +
            '<label>Paste your WebApp link here. Only needed the first time unless you need to update it.</label>' +
            '<input type="text" placeholder="Paste WebApp Link Here" class="webapp link" size="100" "/>' +
            '</div>' +
            '</form>',
            buttons: {
                formsubmit: {
                    text: 'Submit Link',
                    btnClass: 'btn-blue',
                    action: function(){
                        submitData()
                    }
                },
                cancel: function(){
                },
            }
        })
    })
}

function submitData(){
     var name;
     if (useMHname){
         name = user.username
     } else {
         name = useThisName
     };

    var lastArray = ['default','default','default','default',['test1','test2','test3'],name]
    var arraystring = JSON.stringify(lastArray)
    const webAppUrl = 'https://script.google.com/macros/s/AKfycbw03hvTIV767ZDooo-bv1I3KEKaqd0BYt-jkngevF0/dev'
    if (webAppUrl){
        GM_xmlhttpRequest({
            method: "POST",
            url: webAppUrl,
            data: arraystring,
            onload: function(response){
                if (debug1){
                    console.log("data submitted")
                }
            },
            onerror: function(response){
                if (debug1){
                    console.log("data submission failed")
                }
            }
        })
    }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址