Melvor Idle Change Game Mode

Adds a button to the settings page to allow the user to change their game mode at will

Ekde 2022/01/24. Vidu La ĝisdata versio.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name        Melvor Idle Change Game Mode
// @description Adds a button to the settings page to allow the user to change their game mode at will
// @version     .1
// @namespace   Silber
// @match       https://melvoridle.com/*
// @match       https://www.melvoridle.com/*
// @match       https://test.melvoridle.com/*
// @grant       none
// ==/UserScript==
/* jshint esversion: 6 */

((main) => {
    var script = document.createElement('script');
    script.textContent = `try { (${main})(); } catch (e) { console.log(e); }`;
    document.body.appendChild(script).parentNode.removeChild(script);
})(() => {
    'use strict';

    function hccoScript() {
        // function for dropdown to use
        window.changeGameMode = function (modeId) {
            modeId = parseInt(modeId);
            if (currentGamemode != modeId) {
                currentGamemode = modeId;
                saveData();
                location.href='index.php';
            }
        }

        // injecting button into the settings UI
        if ($("#settings-container")){
            var settingsContainer = $("#settings-container");
            var values = ["Standard", "Hardcore", "Adventure", "Chaos"];
 
            settingsContainer.find(".block-content")
                .append($(document.createElement('h2'))
                    .html('Script Settings'))
                .append($(document.createElement('div'))
                    .append(
                        $(document.createElement('label')).prop({
                            for: 'gameMode'
                        }).html('Choose your game mode: ')
                    )
                    .append(
                        $(document.createElement('select')).prop({
                            id: 'gameMode',
                            name: 'gameMode'
                        })
                    )
                )
            
            var index = 0;
            for (const val of values) {
                $('#gameMode').append($(document.createElement('option')).prop({
                    value: index,
                    text: val.charAt(0).toUpperCase() + val.slice(1)
                }))
                index++;
            }

            $("#gameMode").change(function () {
                changeGameMode($(this).val());
            })
        }
    }

    function loadScript() {
        if (typeof confirmedLoaded !== 'undefined' && confirmedLoaded) {
            clearInterval(interval);
            console.log('Loading HCCO Script');
            hccoScript();
        }
    }

    const interval = setInterval(loadScript, 500);
});