You will never miss your turn.
// ==UserScript==
// @name Poker turn reminder
// @namespace http://tampermonkey.net/
// @version 0.1.8
// @description You will never miss your turn.
// @author Jamop[2493903]
// @match https://www.torn.com/loader.php?sid=holdem*
// @grant GM_notification
// @grant GM_getValue
// @grant GM_setValue
// @require https://cdn.jsdelivr.net/npm/sweetalert2@9
// @require https://code.jquery.com/jquery-2.1.4.min.js
// ==/UserScript==
(function() {
'use strict';
window.counter=0;
function misclick_protect(){
document.querySelector('[class*="buttonsWrap___"]').style.setProperty("pointer-events","none");
//$(document.querySelector('[class*="panel___"]')).click(false);
//console.log('[poker]misclick_protect');
var timeout = document.hasFocus() ? 700 : 1500;
setTimeout(rp, timeout);
function rp(){
document.querySelector('[class*="buttonsWrap___"]').style.removeProperty("pointer-events");
document.querySelector('[class*="buttonsWrap___"]').style.setProperty("pointer-events","auto");
//$( document.querySelector('[class*="panel___"]') ).on( 'click' );
//console.log('[poker]misclick_protect removed');
}
};
var buttonsNode = document.querySelector('[class*="buttonsWrap"]');
let buttons_observer = new MutationObserver(mutationRecords => {
for (let i = 0; i < mutationRecords.length; i++) {
//console.log(mutationRecords[i]);
if (mutationRecords[i].type == 'attributes'
&& mutationRecords[i].target.className.includes('default')
&& !mutationRecords[i].target.className.includes('pressed')
){
//console.log('misclick pr '+mutationRecords[i].target.innerText);
//console.log('misclick pr '+mutationRecords[i].target.innerText);
misclick_protect();
}
}
});
buttons_observer.observe(buttonsNode, {
attributes: true,
childList: true,
subtree: true
});
document.addEventListener( 'visibilitychange' , function() {
if (document.hidden) {
//console.log('tab is inactive');
// document.body.style.setProperty('background-image', "url('https://wallpaperaccess.com/download/poker-1219583')", 'important');
//document.body.style.removeProperty('background-Image');
} else {
//console.log('tab is active');
//Swal.close();
//click_protect();
}
}, false );
//var targetNode = document.evaluate('//*[@id="react-root"]/div/main/div[2]/div/div[2]/div[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var targetNode = document.querySelector('[class^="buttonsWrap__"]');
let observer = new MutationObserver(mutationRecords => {
//var circle_img=new Image();circle_img.src="https://www.iconsdb.com/icons/download/color/FFF700/circle-24.png";
//document.querySelector('[class^="dealer__"]').style = 'background:url(https://imgur.com/download/00ehOES) top no-repeat;';
if ($("[class^=playerMe]") && $("[class^=playerMe]").find("[class^=state]")[0].innerText=='Sitting out'){
//console.log('sitout');
GM_notification ( {title: 'sitout', highlight: true} );
Swal.fire('You are sitting out');
}
window.prev_focus = window.focus;
for (let i = 0; i < mutationRecords.length; i++) {
//console.log(mutationRecords[i]);
if (mutationRecords[i].type == 'attributes')
{
//console.log(mutationRecords[i].target.className);
if (mutationRecords[i].target.className.includes('pressed')==true) {
//do not focus
//window.counter=0;
//window.focus=0;
GM_setValue("pressed",1);
break;
}
else {
GM_setValue("pressed",0);
//window.focus=1;
}
}else if (mutationRecords[i].type == 'childList')
{
if (mutationRecords[i].addedNodes.length > 0) {
//focus
//window.focus=1;
//window.prev_focus=1;
GM_setValue("pressed",0);
break;
}
//else window.focus=0;
}
}
//if (document.querySelector('[class^="playerMe__"][class*="active"]')!==null){
// click_protect();
//}
//console.log('pressed - '+GM_getValue("pressed"));
});
var target = document.evaluate('/html/head/title', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var title_observer = new MutationObserver(function(mutations) {
//console.log('Tittle change ');console.log('window.focus '+window.focus);console.log('window.prev_focus '+window.prev_focus);console.log('window.counter '+window.counter);
//console.log('pressed - '+GM_getValue("pressed"));//console.log('window.counter '+window.counter);
if (GM_getValue("pressed")==0 && document.querySelector('[class^="playerMe__"][class*="active"]')!==null) {
//if (GM_getValue("pressed")==0 || window.counter==4) {
//Swal.fire('Accidental click protection');
GM_notification ( {title: 'turn', highlight: true} );
//window.counter=0;
//window.focus=0;
//window.prev_focus=0;
}
if (document.querySelector('[class^="playerMe__"][class*="active"]')!==null){
//window.counter++;
//console.log('!! Your turn');
}
});
var config = { childList: true, characterData: true}
title_observer.observe(target, config);
observer.observe(targetNode, {
attributes: true,
childList: true,
subtree: true
});
})();