- // ==UserScript==
- // @name DHM Desktop Notifications
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Desktop Notifications for DHM
- // @author level
- // @match https://dhm.idle-pixel.com/
- // @run-at document-idle
- // @grant none
- // @license MIT
- // ==/UserScript==
- var VERSION_NUMBER = "1.0";
-
- window.addEventListener("load", function() {
- console.log('Loading DHM Helper...');
- var loaded = false;
- loading();
- var Hinterval = setInterval(loading, 100);
-
- function loading() {
- if (loaded === false) {
- console.log("Loaded DHM Helper");
- loaded = true;
- addStyles();
- createNav();
- createMenu();
- init();
- }
- }
-
- function addStyles() {
- let style = document.createElement('style');
- style.innerHTML = `
- #dhm-helper-menu {
- position: absolute;
- background: white;
- width: 700px;
- height: 777px;
- max-width: 100%;
- max-height: 100%;
- z-index: 10000;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- box-shadow: black 0 0 15px 1px;
- overflow-y: auto;
- }
- #dhm-helper-menu h1, #dhm-helper-menu span, #dhm-helper-menu p {
- color: black;
- text-align: center;
- }
- #dhm-helper-menu h1 img {
- margin: 0 10px 0 10px;
- }
- #dhm-helper-menu h1 img:nth-child(1) {
- transform: scaleX(-1);
- }
- .dhm-helper-headerContainer {
- text-align: center;
- }
- #dhm-helper-menu hr {
- background-color: #e0e0e0;
- width: 100%;
- }
- .dhm-helper-inputContainer {
- max-width: 400px;
- margin: 0 auto;
- height: 40px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- }
- .dhm-helper-inputContainer input[type="checkbox"] {
- width: 20px;
- height: 20px;
- }
- .dhm-helper-inputContainer-sub input[type="checkbox"] {
- margin-left: 25px;
- }
- .dhm-helper-inputContainer-sub-sub input[type="checkbox"] {
- margin-left: 50px;
- }
- .dhm-helper-inputContainer label {
- color: black;
- font-size: 20px;
- }
- #dhm-helper-menu span {
- color: #5a5a5a;
- padding: 5px;
- }
- .dialogue-button {
- border:1px solid silver;
- background-color:#e6e6e6;
- border-radius:3pt;
- color:black;
- font-size:14pt;
- text-align:center;
- cursor:pointer;
- padding:10px;
- }`;
- document.head.appendChild(style);
- }
-
- function createNav() {
- let navItem = document.createElement('div');
- let miscTab = document.querySelectorAll("#tab-misc > .main-button");
- navItem.innerHTML = `<div onclick="window.toggleMenu2()" class="main-button" style="cursor: pointer;">
- <table>
- <tbody><tr>
- <td><img src="images/bronzeStarLamp.png" class="img-small"></td>
- <td style="text-align:right;padding-right:20px;font-size:12pt;">DESKTOP NOTFICATIONS</td>
- </tr>
- </tbody></table>
- </div>`;
- miscTab[2].parentNode.insertBefore(navItem,miscTab[3]);
- }
-
- function createMenu() {
- let menu = document.createElement('div');
- menu.setAttribute('id', 'dhm-helper-menu');
- menu.style.display = 'none';
-
- let closeButton = document.createElement('div');
- closeButton.setAttribute('class', 'dialogue-button');
- closeButton.innerText = "Close";
- closeButton.addEventListener('click', toggleMenu)
- menu.appendChild(closeButton);
-
- let headerContainer = document.createElement('div');
- headerContainer.setAttribute('class', 'dhm-helper-headerContainer');
-
- let header = document.createElement('h1');
- let headerImage = document.createElement('img');
- headerImage.setAttribute('src', 'images/bronzeStarLamp.png');
- headerImage.setAttribute('class', 'img-medium');
- let headerImage2 = headerImage.cloneNode(true);
- header.innerText = "DHM Helper";
- header.insertBefore(headerImage, header.firstChild);
- header.appendChild(headerImage2);
- headerContainer.appendChild(header);
-
- let version = document.createElement('span');
- version.innerText = "Version: " + VERSION_NUMBER;
- headerContainer.appendChild(version);
-
- menu.appendChild(headerContainer);
-
- let hr = document.createElement('hr');
- menu.appendChild(hr);
-
- // Global Notifications Checkbox
- let notificationsInputContainer = document.createElement('div');
- notificationsInputContainer.setAttribute('class', 'dhm-helper-inputContainer');
- let notificationsInput = document.createElement('input');
- notificationsInput.setAttribute('type', 'checkbox');
- notificationsInput.setAttribute('name', 'dhm-notificationsInput');
- notificationsInput.setAttribute('data-storage', 'hNotifications');
-
- if (localStorage.hNotifications === "true") {
- notificationsInput.setAttribute('checked', 'checked');
- }
- notificationsInput.addEventListener("change", grantNotifications);
-
- let notificationsLabel = document.createElement('label');
- notificationsLabel.setAttribute('for', 'checkbox');
- notificationsLabel.innerText = "Desktop Notifications";
-
- notificationsInputContainer.append(notificationsInput);
- notificationsInputContainer.append(notificationsLabel);
-
- menu.appendChild(notificationsInputContainer);
-
- // Daily Mission Notifications Checkbox
- let dailyInputContainer = document.createElement('div');
- dailyInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let dailyInput = document.createElement('input');
- dailyInput.setAttribute('type', 'checkbox');
- dailyInput.setAttribute('name', 'dhm-notificationsInput');
- dailyInput.setAttribute('data-storage', 'hDaily');
-
- if (localStorage.hDaily === "true") {
- dailyInput.setAttribute('checked', 'checked');
- }
- dailyInput.addEventListener("change", toggleStorage);
-
- let dailyLabel = document.createElement('label');
- dailyLabel.setAttribute('for', 'checkbox');
- dailyLabel.innerText = "Daily Mission Notifications";
-
- dailyInputContainer.append(dailyInput);
- dailyInputContainer.append(dailyLabel);
-
- menu.appendChild(dailyInputContainer);
-
- // Treasure Map Notifications Checkbox
- let mapInputContainer = document.createElement('div');
- mapInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let mapInput = document.createElement('input');
- mapInput.setAttribute('type', 'checkbox');
- mapInput.setAttribute('name', 'dhm-notificationsInput');
- mapInput.setAttribute('data-storage', 'hMap');
-
- if (localStorage.hMap === "true") {
- mapInput.setAttribute('checked', 'checked');
- }
- mapInput.addEventListener("change", toggleStorage);
-
- let mapLabel = document.createElement('label');
- mapLabel.setAttribute('for', 'checkbox');
- mapLabel.innerText = "Treasure Map Notifications";
-
- mapInputContainer.append(mapInput);
- mapInputContainer.append(mapLabel);
-
- menu.appendChild(mapInputContainer);
-
- // Event Notifications Checkbox
- let eventInputContainer = document.createElement('div');
- eventInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let eventInput = document.createElement('input');
- eventInput.setAttribute('type', 'checkbox');
- eventInput.setAttribute('name', 'dhm-notificationsInput');
- eventInput.setAttribute('data-storage', 'hEvent');
-
- if (localStorage.hEvent === "true") {
- eventInput.setAttribute('checked', 'checked');
- }
- eventInput.addEventListener("change", toggleStorage);
-
- let eventLabel = document.createElement('label');
- eventLabel.setAttribute('for', 'checkbox');
- eventLabel.innerText = "Event Notifications";
-
- eventInputContainer.append(eventInput);
- eventInputContainer.append(eventLabel);
-
- menu.appendChild(eventInputContainer);
-
- // Research Notifications Checkbox
- let researchInputContainer = document.createElement('div');
- researchInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let researchInput = document.createElement('input');
- researchInput.setAttribute('type', 'checkbox');
- researchInput.setAttribute('name', 'dhm-notificationsInput');
- researchInput.setAttribute('data-storage', 'hResearch');
-
- if (localStorage.hResearch === "true") {
- researchInput.setAttribute('checked', 'checked');
- }
- researchInput.addEventListener("change", toggleStorage);
-
- let researchLabel = document.createElement('label');
- researchLabel.setAttribute('for', 'checkbox');
- researchLabel.innerText = "Research Notifications";
-
- researchInputContainer.append(researchInput);
- researchInputContainer.append(researchLabel);
-
- menu.appendChild(researchInputContainer);
-
- // Train Notifications Checkbox
- let trainInputContainer = document.createElement('div');
- trainInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let trainInput = document.createElement('input');
- trainInput.setAttribute('type', 'checkbox');
- trainInput.setAttribute('name', 'dhm-notificationsInput');
- trainInput.setAttribute('data-storage', 'hTrain');
-
- if (localStorage.hTrain === "true") {
- trainInput.setAttribute('checked', 'checked');
- }
- trainInput.addEventListener("change", toggleStorage);
-
- let trainLabel = document.createElement('label');
- trainLabel.setAttribute('for', 'checkbox');
- trainLabel.innerText = "Train Notifications";
-
- trainInputContainer.append(trainInput);
- trainInputContainer.append(trainLabel);
-
- menu.appendChild(trainInputContainer);
-
- // Rocket Notifications Checkbox
- let rocketInputContainer = document.createElement('div');
- rocketInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let rocketInput = document.createElement('input');
- rocketInput.setAttribute('type', 'checkbox');
- rocketInput.setAttribute('name', 'dhm-notificationsInput');
- rocketInput.setAttribute('data-storage', 'hRocket');
-
- if (localStorage.hRocket === "true") {
- rocketInput.setAttribute('checked', 'checked');
- }
- rocketInput.addEventListener("change", toggleStorage);
-
- let rocketLabel = document.createElement('label');
- rocketLabel.setAttribute('for', 'checkbox');
- rocketLabel.innerText = "Rocket Notifications";
-
- rocketInputContainer.append(rocketInput);
- rocketInputContainer.append(rocketLabel);
-
- menu.appendChild(rocketInputContainer);
-
- // Furnace Notifications Checkbox
- let furnaceInputContainer = document.createElement('div');
- furnaceInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let furnaceInput = document.createElement('input');
- furnaceInput.setAttribute('type', 'checkbox');
- furnaceInput.setAttribute('name', 'dhm-notificationsInput');
- furnaceInput.setAttribute('data-storage', 'hFurnace');
-
- if (localStorage.hFurnace === "true") {
- furnaceInput.setAttribute('checked', 'checked');
- }
- furnaceInput.addEventListener("change", toggleStorage);
-
- let furnaceLabel = document.createElement('label');
- furnaceLabel.setAttribute('for', 'checkbox');
- furnaceLabel.innerText = "Furnace Notifications";
-
- furnaceInputContainer.append(furnaceInput);
- furnaceInputContainer.append(furnaceLabel);
-
- menu.appendChild(furnaceInputContainer);
-
- // Foundry Notifications Checkbox
- let foundryInputContainer = document.createElement('div');
- foundryInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let foundryInput = document.createElement('input');
- foundryInput.setAttribute('type', 'checkbox');
- foundryInput.setAttribute('name', 'dhm-notificationsInput');
- foundryInput.setAttribute('data-storage', 'hFoundry');
-
- if (localStorage.hFoundry === "true") {
- foundryInput.setAttribute('checked', 'checked');
- }
- foundryInput.addEventListener("change", toggleStorage);
-
- let foundryLabel = document.createElement('label');
- foundryLabel.setAttribute('for', 'checkbox');
- foundryLabel.innerText = "Foundry Notifications";
-
- foundryInputContainer.append(foundryInput);
- foundryInputContainer.append(foundryLabel);
-
- menu.appendChild(foundryInputContainer);
-
- // Refinary Notifications Checkbox
- let refinaryInputContainer = document.createElement('div');
- refinaryInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let refinaryInput = document.createElement('input');
- refinaryInput.setAttribute('type', 'checkbox');
- refinaryInput.setAttribute('name', 'dhm-notificationsInput');
- refinaryInput.setAttribute('data-storage', 'hRefinary');
-
- if (localStorage.hRefinary === "true") {
- refinaryInput.setAttribute('checked', 'checked');
- }
- refinaryInput.addEventListener("change", toggleStorage);
-
- let refinaryLabel = document.createElement('label');
- refinaryLabel.setAttribute('for', 'checkbox');
- refinaryLabel.innerText = "Refinary Notifications";
-
- refinaryInputContainer.append(refinaryInput);
- refinaryInputContainer.append(refinaryLabel);
-
- menu.appendChild(refinaryInputContainer);
-
- // Tree Notifications Checkbox
- let treeInputContainer = document.createElement('div');
- treeInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let treeInput = document.createElement('input');
- treeInput.setAttribute('type', 'checkbox');
- treeInput.setAttribute('name', 'dhm-notificationsInput');
- treeInput.setAttribute('data-storage', 'hTree');
-
- if (localStorage.hTree === "true") {
- treeInput.setAttribute('checked', 'checked');
- }
- treeInput.addEventListener("change", toggleStorage);
-
- let treeLabel = document.createElement('label');
- treeLabel.setAttribute('for', 'checkbox');
- treeLabel.innerText = "Tree Notifications";
-
- treeInputContainer.append(treeInput);
- treeInputContainer.append(treeLabel);
-
- menu.appendChild(treeInputContainer);
-
- // Planter Notifications Checkbox
- let planterInputContainer = document.createElement('div');
- planterInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let planterInput = document.createElement('input');
- planterInput.setAttribute('type', 'checkbox');
- planterInput.setAttribute('name', 'dhm-notificationsInput');
- planterInput.setAttribute('data-storage', 'hPlanter');
-
- if (localStorage.hPlanter === "true") {
- planterInput.setAttribute('checked', 'checked');
- }
- planterInput.addEventListener("change", toggleStorage);
-
- let planterLabel = document.createElement('label');
- planterLabel.setAttribute('for', 'checkbox');
- planterLabel.innerText = "Planter Notifications";
-
- planterInputContainer.append(planterInput);
- planterInputContainer.append(planterLabel);
-
- menu.appendChild(planterInputContainer);
-
- // Explorer Notifications Checkbox
- let explorerInputContainer = document.createElement('div');
- explorerInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let explorerInput = document.createElement('input');
- explorerInput.setAttribute('type', 'checkbox');
- explorerInput.setAttribute('name', 'dhm-notificationsInput');
- explorerInput.setAttribute('data-storage', 'hExplorer');
-
- if (localStorage.hExplorer === "true") {
- explorerInput.setAttribute('checked', 'checked');
- }
- explorerInput.addEventListener("change", toggleStorage);
-
- let explorerLabel = document.createElement('label');
- explorerLabel.setAttribute('for', 'checkbox');
- explorerLabel.innerText = "Explorer Notifications";
-
- explorerInputContainer.append(explorerInput);
- explorerInputContainer.append(explorerLabel);
-
- menu.appendChild(explorerInputContainer);
-
- // Cousin Notifications Checkbox
- let cousinInputContainer = document.createElement('div');
- cousinInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let cousinInput = document.createElement('input');
- cousinInput.setAttribute('type', 'checkbox');
- cousinInput.setAttribute('name', 'dhm-notificationsInput');
- cousinInput.setAttribute('data-storage', 'hCousin');
-
- if (localStorage.hCousin === "true") {
- cousinInput.setAttribute('checked', 'checked');
- }
- cousinInput.addEventListener("change", toggleStorage);
-
- let cousinLabel = document.createElement('label');
- cousinLabel.setAttribute('for', 'checkbox');
- cousinLabel.innerText = "Cousin Notifications";
-
- cousinInputContainer.append(cousinInput);
- cousinInputContainer.append(cousinLabel);
-
- menu.appendChild(cousinInputContainer);
-
- // Boat Notifications Checkbox
- let boatInputContainer = document.createElement('div');
- boatInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let boatInput = document.createElement('input');
- boatInput.setAttribute('type', 'checkbox');
- boatInput.setAttribute('name', 'dhm-notificationsInput');
- boatInput.setAttribute('data-storage', 'hBoat');
-
- if (localStorage.hBoat === "true") {
- boatInput.setAttribute('checked', 'checked');
- }
- boatInput.addEventListener("change", toggleStorage);
-
- let boatLabel = document.createElement('label');
- boatLabel.setAttribute('for', 'checkbox');
- boatLabel.innerText = "Boat Notifications";
-
- boatInputContainer.append(boatInput);
- boatInputContainer.append(boatLabel);
-
- menu.appendChild(boatInputContainer);
-
- // Chef Notifications Checkbox
- let chefInputContainer = document.createElement('div');
- chefInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let chefInput = document.createElement('input');
- chefInput.setAttribute('type', 'checkbox');
- chefInput.setAttribute('name', 'dhm-notificationsInput');
- chefInput.setAttribute('data-storage', 'hChef');
-
- if (localStorage.hChef === "true") {
- chefInput.setAttribute('checked', 'checked');
- }
- chefInput.addEventListener("change", toggleStorage);
-
- let chefLabel = document.createElement('label');
- chefLabel.setAttribute('for', 'checkbox');
- chefLabel.innerText = "Chef Notifications";
-
- chefInputContainer.append(chefInput);
- chefInputContainer.append(chefLabel);
-
- menu.appendChild(chefInputContainer);
-
- // Goblin Shop Notifications Checkbox
- let goblinShopInputContainer = document.createElement('div');
- goblinShopInputContainer.setAttribute('class', 'dhm-helper-inputContainer dhm-helper-inputContainer-sub');
- let goblinShopInput = document.createElement('input');
- goblinShopInput.setAttribute('type', 'checkbox');
- goblinShopInput.setAttribute('name', 'dhm-notificationsInput');
- goblinShopInput.setAttribute('data-storage', 'hGoblinShop');
-
- if (localStorage.hGoblinShop === "true") {
- goblinShopInput.setAttribute('checked', 'checked');
- }
- goblinShopInput.addEventListener("change", toggleStorage);
-
- let goblinShopLabel = document.createElement('label');
- goblinShopLabel.setAttribute('for', 'checkbox');
- goblinShopLabel.innerText = "Goblin Shop Notifications";
-
- goblinShopInputContainer.append(goblinShopInput);
- goblinShopInputContainer.append(goblinShopLabel);
-
- menu.appendChild(goblinShopInputContainer);
-
- document.body.appendChild(menu);
- }
-
- function grantNotifications() {
- if (localStorage["hNotifications"] && localStorage["hNotifications"] == "true") {
- localStorage["hNotifications"] = "false";
- } else {
- if (Notification.permission !== "granted") {
- Notification.requestPermission(function(permission) {
- if (permission === "granted") {
- localStorage["hNotifications"] = "true";
- } else {
- alert("You will need to need desktop notifcations for DHM alerts to work.")
- }
- });
- } else {
- localStorage["hNotifications"] = "true";
- }
- }
- }
-
- function toggleStorage() {
- let name = this.getAttribute('data-storage');
- if (localStorage[name] && localStorage[name] == "true") {
- localStorage[name] = "false";
- } else {
- localStorage[name] = "true";
- }
- }
-
- function toggleMenu() {
- let menu = document.getElementById('dhm-helper-menu');
- menu.style.display = menu.style.display === 'none' ? '' : 'none';
- }
-
- window.toggleMenu2 = toggleMenu
-
- function init() {
- // Daily Mission
- var dailyObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-dailyMissionNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hDaily === "true")) {
- var notification = new Notification("Daily Mission Available",{ icon: 'images/dailyMissions.png' });
- }
- }
- });
- });
-
- var dailyTarget = document.getElementById('notification-dailyMissionNotification');
- dailyObserver.observe(dailyTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Treasure Map
- var mapObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-treasureMapNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hMap === "true")) {
- var notification = new Notification("Treasure Map Found",{ icon: 'images/treasureMap.png' });
- }
- }
- });
- });
-
- var mapTarget = document.getElementById('notification-treasureMapNotification');
- mapObserver.observe(mapTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Green Treasure Map
- var greenMapObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-greenTreasureMapNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hMap === "true")) {
- var notification = new Notification("Green Treasure Map Found",{ icon: 'images/greenTreasureMap.png' });
- }
- }
- });
- });
-
- var greenMapTarget = document.getElementById('notification-greenTreasureMapNotification');
- greenMapObserver.observe(greenMapTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Event
- var eventObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("main-button-event").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hEvent === "true")) {
- var notification = new Notification("Event Coming",{ icon: 'images/meteorEvent.png' });
- }
- }
- });
- });
-
- var eventTarget = document.getElementById('main-button-event');
- eventObserver.observe(eventTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Event Glowing
- var glowingObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-eventFullyActiveNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hEvent === "true")) {
- var notification = new Notification("Event Glowing",{ icon: 'images/meteorActionEvent.png' });
- }
- }
- });
- });
-
- var glowingTarget = document.getElementById('notification-eventFullyActiveNotification');
- glowingObserver.observe(glowingTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Researcher
- var researchObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-researcherNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hResearch === "true")) {
- var notification = new Notification("Research Ready",{ icon: 'images/researcher.png' });
- }
- }
- });
- });
-
- var researchTarget = document.getElementById('notification-researcherNotification');
- researchObserver.observe(researchTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Train Ready
- var trainObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-profileNotificationsOffTrain").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hTrain === "true")) {
- var notification = new Notification("Train Ready",{ icon: 'images/train.png' });
- }
- }
- });
- });
-
- var trainTarget = document.getElementById('notification-profileNotificationsOffTrain');
- trainObserver.observe(trainTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Train at Destination
- var trainDestinationObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-trainNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hTrain === "true")) {
- var notification = new Notification("Train Ready To Collect",{ icon: 'images/train.png' });
- }
- }
- });
- });
-
- var trainDestinationTarget = document.getElementById('notification-trainNotification');
- trainDestinationObserver.observe(trainDestinationTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Rocket Ready
- var rocketObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-profileNotificationsOffRocket").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hRocket === "true")) {
- var notification = new Notification("Rocket Ready",{ icon: 'images/rocket.png' });
- }
- }
- });
- });
-
- var rocketTarget = document.getElementById('notification-profileNotificationsOffRocket');
- rocketObserver.observe(rocketTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Rocket at Destination
- var rocketDestinationObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-rocketNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hRocket === "true")) {
- var notification = new Notification("Rocket Ready To Collect",{ icon: 'images/rocket.png' });
- }
- }
- });
- });
-
- var rocketDestinationTarget = document.getElementById('notification-rocketNotification');
- rocketDestinationObserver.observe(rocketDestinationTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Furnace Idle
- var furnaceObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-profileNotificationsOffFurnace").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hFurnace === "true")) {
- var notification = new Notification("Furnace Empty",{ icon: 'images/goldFurnace.png' });
- }
- }
- });
- });
-
- var furnaceTarget = document.getElementById('notification-profileNotificationsOffFurnace');
- furnaceObserver.observe(furnaceTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Foundry Idle
- var foundryObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-charcoalFoundryPercentage").style.display == "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hFoundry === "true")) {
- var notification = new Notification("Foundry Empty",{ icon: 'images/charcoalFoundry.png' });
- }
- }
- });
- });
-
- var foundryTarget = document.getElementById('notification-charcoalFoundryPercentage');
- foundryObserver.observe(foundryTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Refinary Idle
- var refinaryObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-goldBarRefineryNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hRefinary === "true")) {
- var notification = new Notification("Refinary Ready",{ icon: 'images/goldRefinary.png' });
- }
- }
- });
- });
-
- var refinaryTarget = document.getElementById('notification-goldBarRefineryNotification');
- refinaryObserver.observe(refinaryTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Tree Ready
- var treeObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-treeNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hTree === "true")) {
- var notification = new Notification("Tree Ready",{ icon: 'images/tree.png' });
- }
- }
- });
- });
-
- var treeTarget = document.getElementById('notification-treeNotification');
- treeObserver.observe(treeTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Planter Empty
- var planterObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-profileNotificationsOffPlanter").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hPlanter === "true")) {
- var notification = new Notification("Planter Idle",{ icon: 'images/planter.png' });
- }
- }
- });
- });
-
- var planterTarget = document.getElementById('notification-profileNotificationsOffPlanter');
- planterObserver.observe(planterTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Explorer Idle
- var explorerObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-exploringNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hExplorer === "true")) {
- var notification = new Notification("Explorer Idle",{ icon: 'images/explorer.png' });
- }
- }
- });
- });
-
- var explorerTarget = document.getElementById('notification-exploringNotification');
- explorerObserver.observe(explorerTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Cousin Idle
- var cousinObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-exploringNotification2").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hCousin === "true")) {
- var notification = new Notification("Cousin Idle",{ icon: 'images/goblinCousin.png' });
- }
- }
- });
- });
-
- var cousinTarget = document.getElementById('notification-exploringNotification2');
- cousinObserver.observe(cousinTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Boat Idle
- var boatObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-rowBoatNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hBoat === "true")) {
- var notification = new Notification("Boat Ready",{ icon: 'images/rowBoat.png' });
- }
- }
- });
- });
-
- var boatTarget = document.getElementById('notification-rowBoatNotification');
- boatObserver.observe(boatTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Canoe Idle
- var canoeObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-canoeBoatNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hBoat === "true")) {
- var notification = new Notification("Canoe Ready",{ icon: 'images/canoeBoat.png' });
- }
- }
- });
- });
-
- var canoeTarget = document.getElementById('notification-canoeBoatNotification');
- canoeObserver.observe(canoeTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Sail Idle
- var sailObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-sailBoatNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hBoat === "true")) {
- var notification = new Notification("Sail Ready",{ icon: 'images/sailBoat.png' });
- }
- }
- });
- });
-
- var sailTarget = document.getElementById('notification-sailBoatNotification');
- sailObserver.observe(sailTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Steam Idle
- var steamObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-steamBoatNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hBoat === "true")) {
- var notification = new Notification("Steam Ready",{ icon: 'images/steamBoat.png' });
- }
- }
- });
- });
-
- var steamTarget = document.getElementById('notification-steamBoatNotification');
- steamObserver.observe(steamTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Trawler Idle
- var trawlerObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-trawlerNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hBoat === "true")) {
- var notification = new Notification("Trawler Ready",{ icon: 'images/trawler.png' });
- }
- }
- });
- });
-
- var trawlerTarget = document.getElementById('notification-trawlerNotification');
- trawlerObserver.observe(trawlerTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Chef Ready
- var chefObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-chefNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hChef === "true")) {
- var notification = new Notification("Chef Ready",{ icon: 'images/chef.png' });
- }
- }
- });
- });
-
- var chefTarget = document.getElementById('notification-chefNotification');
- chefObserver.observe(chefTarget, { attributes : true, attributeFilter : ['style'] });
-
- // Goblin Shop
- var goblinShopObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutationRecord) {
- if (document.getElementById("notification-gemGoblinShopNotification").style.display !== "none") {
- if ((localStorage.hNotifications === "true") && (localStorage.hGoblinShop === "true")) {
- var notification = new Notification("Goblin Shop New Items",{ icon: 'images/gemGoblinShopIcon.png' });
- }
- }
- });
- });
-
- var goblinShopTarget = document.getElementById('notification-gemGoblinShopNotification');
- goblinShopObserver.observe(goblinShopTarget, { attributes : true, attributeFilter : ['style'] });
-
- }
- });
-
-