您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Runs when you have ikariam open and provides push notifications when the advisors lights up.
- // ==UserScript==
- // @name Ikariam desktop notifications
- // @namespace Danielv123
- // @version 1.9
- // @description Runs when you have ikariam open and provides push notifications when the advisors lights up.
- // @author Danielv123
- // @match http://*.ikariam.gameforge.com/*
- // @grant none
- // ==/UserScript==
- // request permission on page load
- document.addEventListener('DOMContentLoaded', function () {
- if (Notification.permission !== "granted") {
- Notification.requestPermission();
- }
- });
- // http://s28-en.ikariam.gameforge.com/skin/layout/advisors/mayor_premium_active.png
- // $('#js_GlobalMenu_cities')[0].className == "premiumactive"
- // main checking loop
- setInterval(function() {
- if (Notification.permission !== "granted")
- Notification.requestPermission();
- else {
- // check if the advisors are glowing
- // City advisor
- if ($('#js_GlobalMenu_cities')[0].className == "normalactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Something happened in one of your towns!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/mayor_active.png");
- }
- if ($('#js_GlobalMenu_cities')[0].className == "premiumactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Something happened in one of your towns!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/mayor_premium_active.png");
- }
- // diplomacy advisor
- if ($('#js_GlobalMenu_diplomacy')[0].className == "normalactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Someone sent you a message!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/diplomat_active.png");
- }
- if ($('#js_GlobalMenu_diplomacy')[0].className == "premiumactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Someone sent you a message!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/diplomat_premium_active.png");
- }
- // military advisor
- // by checking if military is !normal we can also include the red status
- if ($('#js_GlobalMenu_military')[0].className == "normalactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Your military advisor is trying to tell you something!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/general_active.png");
- }
- if ($('#js_GlobalMenu_military')[0].className == "premiumactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "Your military advisor is trying to tell you something!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/general_premium_active.png");
- }
- if ($('#js_GlobalMenu_military')[0].className == "normalalert") {
- console.log('Ding!');
- notifyMe("Ikariam", "You are under attack!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/general_alert.png");
- }
- if ($('#js_GlobalMenu_military')[0].className == "premiumalert") {
- console.log('Ding!');
- notifyMe("Ikariam", "You are under attack!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/general_premium_alert.png");
- }
- // research advisor
- if ($('#js_GlobalMenu_research')[0].className == "normalactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "New research aviable!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/scientist_active.png");
- }
- if ($('#js_GlobalMenu_research')[0].className == "premiumactive") {
- console.log('Ding!');
- notifyMe("Ikariam", "New research aviable!", "http://s28-en.ikariam.gameforge.com/skin/layout/advisors/scientist_premium_active.png");
- }
- }
- // wait 60.000 ms (1 min) between checking for notifications
- },30000);
- function notifyMe(title, message, picture) {
- // check if functionality exists
- if (!Notification) {
- alert('Desktop notifications not available in your browser. Try Chromium.');
- return;
- }
- if (!picture) {
- picture = "https://www.jcdanczak.com/images/samples.png";
- }
- // ask for permission to speak
- if (Notification.permission !== "granted")
- Notification.requestPermission();
- else {
- var notification = new Notification(title, {
- // notification icon, should be replaced with the correct advisor later
- icon: picture,
- body: message,
- });
- // kill notifications 700 ms after their birth
- setTimeout(function(){notification.close();}, 7000);
- // if user shows affection for notify, let notify do them a last service before it dies prematurely.
- notification.onclick = function () {
- window.open("http://s28-en.ikariam.gameforge.com/index.php");
- };
- }
- }