// ==UserScript==
// @name [GC | BETA] - Dailies Global Preferences Wizard
// @namespace https://gf.qytechs.cn/en/users/1225524-kaitlin
// @match https://grundos.cafe/*
// @match https://www.grundos.cafe/*
// @version .6
// @author Cupkait
// @icon https://i.imgur.com/4Hm2e6z.png
// @require https://code.jquery.com/jquery-3.6.3.min.js
// @require https://update.gf.qytechs.cn/scripts/487476/1328526/%5BGC%20%7C%20Library%5D%20-%20Highlight%20and%20sort%2015%20NP%20stocks.js
// @license MIT
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_addStyle
// @credits Elements of this script are possible in no small part due to anyone helping me collect html examples, find bugs, etc.
// @credits I may eventually include a list of credits, but for now - you know who you are. Thank you <3
// @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=${mainPet}&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...
//
if (window.location.href.endsWith("/stocks/?view_all=True")) {
window.addEventListener('load', highlightRows);
}
// SPOOKY TOILET - Press enter to take a swirl. 🤢
if (window.location.href.endsWith("/halloween/toilet/")) {
const submitButton = $('input[name="jump"].form-control.half-width');
console.log(submitButton.val())
if (submitButton.length > 0) {
submitButton.val("Press Enter or click here to dive in!");
$(document).on("keydown", function (event) {
if (event.key === "Enter") {
submitButton.click();
}
});
}
}
// DEADLY DICE - Press enter to roll the dice.
if (window.location.href.endsWith("worlds/roo/deadlydice/")) {
const submitButton = $('button[type="submit"].form-control.half-width');
if (submitButton.length > 0) {
submitButton.text("Press Enter or click here to play!");
$(document).on("keydown", function (event) {
if (event.key === "Enter") {
submitButton.click();
}
})
}
}
// 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/")) {
const submitButton = $('input[type="submit"][name="joke"]');
const againButton = $('input[type="button"][value="Try Again?"]');
if (againButton.length > 0) {
againButton.val("Press Enter or click to tell another!");
$(document).keydown(function (event) {
if (event.key === "Enter") {
againButton.click();
}
});
} else if (submitButton.length > 0) {
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");
submitButton.val("Press Enter or click here to joke!");
$(document).keydown(function (event) {
if (event.key === "Enter") {
submitButton.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();
}
});
}
}
// BANK INTEREST - Enter to collect bank interest.
if (window.location.href.endsWith("/bank/")) {
const submitButton = $('input[type="submit"].form-control.half-width');
const submitButtonValue = submitButton.val();
console.log(submitButtonValue);
if (submitButtonValue.length > 0) {
const newValue = "Click/Enter to " + submitButtonValue;
submitButton.val(newValue);
$(document).on("keydown", function (event) {
if (event.key === "Enter") {
submitButton.first().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/");
}
}
});