// ==UserScript==
// @name [GC | BETA] - Dailies Global Preferences Wizard
// @namespace https://greasyfork.org/en/users/1225524-kaitlin
// @match https://grundos.cafe/*
// @match https://www.grundos.cafe/*
// @version .2
// @author Cupkait
// @icon https://i.imgur.com/4Hm2e6z.png
// @require https://code.jquery.com/jquery-3.6.3.min.js
// @license MIT
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_addStyle
//
//
//
// @description Global script that only runs relevant code on individual dailies pages. Run the "Set Variable" command in the menu to set up active pet redirects. Currently a known issue with having blank entries default to your identified main pet. If you leave a question blank, it just won't redirect your active pet for that daily.
// Upcoming feature(s):
// On-screen menu for setting/resetting variables.
// Setting your Wishing Well preferences.
//
//
// If I've missed a daily, I either don't have it or forgot about it - PLEASE tell me so I can add it in :D
//
//
// ==/UserScript==
$(document).ready(function() {
function setVariableValue(variableName, promptMessage) {
var currentValue = GM_getValue(variableName, '');
if (!currentValue) {
var userInput = prompt(promptMessage + '\n\nPet name is CASE SENSITIVE. Use proper capitalization.\nIf you have no preference, set it to match your main pet.');
if (userInput !== '') {
GM_setValue(variableName, userInput || mainPet);
}
}};
function checkAndSetVariables() {
setVariableValue('mainPet', 'What pet do you want to be active by default?\n\nNOTE: Do not leave this one blank, it is the only required value.');
setVariableValue('turmyPetpet', 'Turmaculus can eat petpets. Which pet has a petpet he can safely eat?\n\nNote: If you can beat him in the BD you can get your petpet back, you will just lose any petpet levels and other progress when reattaching.');
setVariableValue('questPet', 'Faerie and Kitchen quests give random stat increases. What pet do you want to receive these?');
setVariableValue('labPet', 'The lab ray can randomly change species, color, and stats. What pet do you want to use as a lab rat?');
setVariableValue('scratchcardPet', 'Scratchcards have the possibility of increasing levels. What pet do you want to receive these?');
setVariableValue('labPetpet', 'What pet has the petpet that you want to zap?');
setVariableValue('jellyPet', 'When visiting the Green Jelly your pet may turn Jelly. Which pet would you prefer this happen to?');
setVariableValue('spookyPetpet', 'Which pet has a Spooky petpet (so they can visit the toilet)?');
setVariableValue('wheelPet', 'Wheels can give random stat increases, decreases, and illnesses. What pet do you want these to affect?');
setVariableValue('employedPet', 'Some people want all job stats to stay on the same pet. If you care, which pet should they go to?');
setVariableValue('firstCoord', 'Set your first Buried Treasure coordinate. Pick a number 1-473.');
setVariableValue('secondCoord', 'Set your second Buried Treasure coordinate. Pick a number 1-473.');
};
checkAndSetVariables();
GM_registerMenuCommand('Set Variables', function() {
checkAndSetVariables();
});
function updateLink(originalPath, updatedPath) {
const linkElement = $(`#aio_sidebar a[href="${originalPath}"]`);
if (linkElement.length > 0) {
linkElement.attr('href', updatedPath);
}
};
var mainPet = GM_getValue('mainPet', '');
var turmyPetpet = GM_getValue('turmyPetpet', '');
var questPet = GM_getValue('questPet', '');
var labPet = GM_getValue('labPet', '');
var scratchcardPet = GM_getValue('scratchcardPet', '');
var labPetpet = GM_getValue('labPetpet', '');
var jellyPet = GM_getValue('jellyPet', '');
var spookyPetpet = GM_getValue('spookyPetpet', '');
var wheelPet = GM_getValue('wheelPet', '');
var employedPet = GM_getValue('employedPet', '');
var firstCoord = GM_getValue('firstCoord', '');
var secondCoord = GM_getValue('secondCoord', '');
updateLink('/games/stockmarket/stocks/', '/games/stockmarket/stocks/?view_all=True');
updateLink('/pirates/buriedtreasure/', `/pirates/buriedtreasure/play/?${firstCoord},${secondCoord}`);
updateLink('/medieval/symolhole/', `/setactivepet/?pet_name=Dobbie&redirect=/medieval/symolhole/`);
updateLink('/medieval/turmaculus/', `/setactivepet/?pet_name=${turmyPetpet}&redirect=/medieval/turmaculus/`);
updateLink('/faerieland/springs/', `/setactivepet/?pet_name=${questPet}&redirect=/faerieland/springs/`);
updateLink('/island/kitchen/',`/setactivepet/?pet_name=${questPet}&redirect=/island/kitchen/`);
updateLink('/faerieland/quests/',`/setactivepet/?pet_name=${questPet}&redirect=/faerieland/quests/`);
updateLink('/desert/shrine/',`/setactivepet/?pet_name=${questPet}&redirect=/desert/shrine/`);
updateLink('/halloween/toilet/',`/setactivepet/?pet_name=${spookyPetpet}&redirect=/halloween/toilet/`);
updateLink('/winter/kiosk/',`/setactivepet/?pet_name=${scratchcardPet}&redirect=/winter/kiosk/`);
updateLink('/halloween/kiosk/',`/setactivepet/?pet_name=${scratchcardPet}&redirect=/halloween/kiosk/`);
updateLink('/desert/kiosk/',`/setactivepet/?pet_name=${scratchcardPet}&redirect=/desert/kiosk/`);
updateLink('/medieval/brightvale/wheel/',`/setactivepet/?pet_name=${wheelPet}&redirect=/medieval/brightvale/wheel/`);
updateLink('/faerieland/wheel/',`/setactivepet/?pet_name=${wheelPet}&redirect=/faerieland/wheel/`);
updateLink('/prehistoric/wheel/',`/setactivepet/?pet_name=${wheelPet}&redirect=/prehistoric/wheel/`);
updateLink('/halloween/wheel/',`/setactivepet/?pet_name=${wheelPet}&redirect=/halloween/wheel/`);
updateLink('/jelly/greenjelly/',`/setactivepet/?pet_name=${jellyPet}&redirect=/jelly/greenjelly/`);
updateLink('/winter/snowager/', `/setactivepet/?pet_name=${mainPet}&redirect=/winter/snowager/approach/`);
updateLink('/jelly/jelly/','/jelly/take_jelly/');
updateLink('/prehistoric/plateau/omelette/',`/prehistoric/plateau/omelette/approach/`);
updateLink('/desert/fruitmachine/', `/desert/fruitmachine2/`);
updateLink('/faerieland/tdmbgpop/', `/faerieland/tdmbgpop/visit/`);
updateLink('/island/tombola/', `/island/tombola/play`);
updateLink('/neoschool/courses/', `/neoschool/course/`);
//updateLink('', '');
//updateLink('', '');
// Placeholder template to add other link updates...
// WHEELS -- Enter to spin, prize displayed automatically.
if (window.location.href.endsWith('/halloween/wheel/') ||
window.location.href.endsWith('/prehistoric/wheel/') ||
window.location.href.endsWith('/faerieland/wheel/')) {
const submitButton = $('input[type="submit"][name="spin"]');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to spin!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
} else {
$('#spinning').hide();
$('#prize-container').show();
}
};
// KNOWLEDGE WHEEL - Enter to spin, prize displayed automatically.
if (window.location.href.endsWith('/medieval/brightvale/wheel/')) {
const submitButton = $('input[type="submit"].form-control.half-width');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to spin!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
} else {
$('#spinning').hide();
$('#prize-container').show();
}
};
// SYMOL HOLE - Method is randomized. Press enter to enter the hole, slow-mode for results is disabled.
if (window.location.href.endsWith('/medieval/symolhole/')) {
const hole = $('#waiting');
if (!hole.length) {
const options = $('#enter_action option:not([disabled])');
const randomIndex = Math.floor(Math.random() * options.length);
options.eq(randomIndex).prop('selected', true);
const submitButton = $('input[type="submit"][name="enter"]');
if (submitButton.length) {
submitButton.val('Press Enter or click here to enter!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
} else if (hole !== undefined) {
hole.hide();
$('#wait-for-me').show();
}
};
// HEALING SPRINGS -- Press enter to heal.
if (window.location.href.endsWith('/faerieland/springs/')) {
const submitButton = $('input[type="submit"].form-control.half-width');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to heal!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
};
// FISHING - Press enter to fish. If you unlocked free bulk fishing, this will be prioritized.
if (window.location.href.endsWith('/water/fishing/')) {
let getCost = $('main p:eq(2)').text();
if (getCost === "You can also choose to send all of your eligible pets fishing at the same time for FREE!!") {
const submitButton = $('input[type="submit"][value="Fish with Everyone!"]');
if (submitButton.length) {
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
} else {
const submitButton = $('input[type="submit"][value="Reel in Your Line"]');
if (submitButton.length) {
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
}
};
// GREEN JELLY - Enter to approach.
if (window.location.href.endsWith('/jelly/greenjelly/')) {
const submitButton = $('input[type="submit"].form-control.half-width');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to visit!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
};
// GRUMPY OLD KING - Enter to submit, known avatar elements applied
if (window.location.href.endsWith('/medieval/grumpyoldking/')) {
generateJoke();
$('#question1').val('What');
$('#question2').val('do');
$('#question3').val('you do if');
$('#question4').val('*Leave blank*');
$('#question5').val('fierce');
$('#question6').val('Grundos');
$('#question7').val('*Leave blank*');
$('#question8').val('has eaten too much');
$('#question9').val('*Leave blank*');
$('#question10').val('tin of olives');
const submitButton = $('input[type="submit"][name="joke"]');
const againButton = $('input[type="button"][value="Try Again?"]');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to joke!');
$(document).keydown(function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
} else if (againButton.length > 0) {
againButton.val('Press Enter or click to tell another!');
$(document).keydown(function(event) {
if (event.key === 'Enter') {
againButton.click();
}
});
} else {
console.log("You already told two jokes.");
}};
// WISE OLD KING - Enter to submit, inserts known required avatar variables & randomly generates the remaining values.
if (window.location.href.endsWith('/medieval/wiseking/')) {
generateJoke();
$('#wisdom2').val('pride');
const submitButton = $('input[type="submit"][name="impress"]');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to impress!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
};
// COLTZANS SHRINE - Enter to visit.
if (window.location.href.endsWith('/desert/shrine/')) {
const submitButton = $('.center').find('input[type="submit"].form-control');
if (submitButton.length === 2) {
submitButton.first().val('Press Enter or click here to visit!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.first().click();
}
});
}
};
// LOTTERY - Enter to use Quick Pick.
if (window.location.href.endsWith('/games/lottery/')) {
const submitButton = $('input[type="submit"].form-control.half-width');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to buy 20!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
};
// TURMACULUS - Enter to try and wake.
if (window.location.href.endsWith('/medieval/turmaculus/')) {
const options = $('#wakeup option:not([disabled])');
const randomIndex = Math.floor(Math.random() * options.length);
options.eq(randomIndex).prop('selected', true);
const submitButton = $('input[type="submit"][name="wake"]');
if (submitButton.length > 0) {
submitButton.val('Press Enter or click here to enter!');
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
submitButton.click();
}
});
}
};
// NEOSCHOOL - If you're on a course, go straight to it. If you aren't, go to the course menu.
if (window.location.href.endsWith('/neoschool/course/')) {
const error = $('.errorpage');
if (error.length > 0) {
window.location.replace("/neoschool/courses/");
}
}
});