Add auto click Chest

Also a workaround for jQuery unbind mouseup event.
This commit is contained in:
tretrauit 2021-07-04 20:02:30 +00:00
parent c44116eee5
commit 01d4db7b8c

View File

@ -1,74 +1,78 @@
// TODO: FIX JQUERY ASYNC (async function() {
// Fetch jQuery
// Fetch jQuery await fetch("https://code.jquery.com/jquery-3.6.0.min.js").then(x => x.text()).then(y => eval(y))
await fetch("https://code.jquery.com/jquery-3.6.0.min.js").then(x => x.text()).then(y => eval(y)).then(() => $("window").off("mouseup")) setTimeout(() => { $("window").off("mouseup") }, 1000)
{ {
// From https://stackoverflow.com/a/53914092 // From https://stackoverflow.com/a/53914092
class ClassWatcher { class ClassWatcher {
constructor(targetNode, classToWatch, classAddedCallback, classRemovedCallback) {
this.targetNode = targetNode
this.classToWatch = classToWatch
this.classAddedCallback = classAddedCallback
this.classRemovedCallback = classRemovedCallback
this.observer = null
this.lastClassState = targetNode.classList.contains(this.classToWatch)
this.init() constructor(targetNode, classToWatch, classAddedCallback, classRemovedCallback) {
} this.targetNode = targetNode
this.classToWatch = classToWatch
init() { this.classAddedCallback = classAddedCallback
this.observer = new MutationObserver(this.mutationCallback) this.classRemovedCallback = classRemovedCallback
this.observe() this.observer = null
} this.lastClassState = targetNode.classList.contains(this.classToWatch)
observe() { this.init()
this.observer.observe(this.targetNode, { attributes: true }) }
}
init() {
disconnect() { this.observer = new MutationObserver(this.mutationCallback)
this.observer.disconnect() this.observe()
} }
mutationCallback = mutationsList => { observe() {
for(let mutation of mutationsList) { this.observer.observe(this.targetNode, { attributes: true })
if (mutation.type === 'attributes' && mutation.attributeName === 'class') { }
let currentClassState = mutation.target.classList.contains(this.classToWatch)
if(this.lastClassState !== currentClassState) { disconnect() {
this.lastClassState = currentClassState this.observer.disconnect()
if(currentClassState) { }
this.classAddedCallback()
} mutationCallback = mutationsList => {
else { for(let mutation of mutationsList) {
this.classRemovedCallback() if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
let currentClassState = mutation.target.classList.contains(this.classToWatch)
if(this.lastClassState !== currentClassState) {
this.lastClassState = currentClassState
if(currentClassState) {
this.classAddedCallback()
}
else {
this.classRemovedCallback()
}
} }
} }
} }
} }
} }
}
function clickFirstButtonByClassName(className) {
function clickFirstButtonByClassName(className) { document.getElementsByClassName(className)[0].dispatchEvent(new MouseEvent("click"));
document.getElementsByClassName(className)[0].dispatchEvent(new MouseEvent("click")); }
} // Click the spin button
// Click the spin button function spin() {
function spin() { if (document.getElementsByClassName("popup-draw__card").length > 0) {
if (document.getElementsByClassName("popup-draw__card").length > 0) { // Do pick random 3 cards instead of spin.
let teams = document.getElementsByClassName("popup-draw__card") let teams = document.getElementsByClassName("popup-draw__card")
for (let i = 0; i < 3; i++) { for (let i = 0; i < 3; i++) {
teams[i].dispatchEvent(new MouseEvent("click")); teams[i].dispatchEvent(new MouseEvent("click"));
}
}
else {
// Spin
clickFirstButtonByClassName("wheel__main--note")
clickFirstButtonByClassName("chest")
} }
} }
else { // Close the dialog
clickFirstButtonByClassName("wheel__main--note") function closeSwal2() {
clickFirstButtonByClassName("swal2-close")
} }
// Watch for SweetAlert 2
new ClassWatcher(document.body, 'swal2-shown', closeSwal2, spin);
spin()
} }
// Close the dialog })();
function closeSwal2() {
clickFirstButtonByClassName("swal2-close")
}
// Watch for SweetAlert 2
let bodywatcher = new ClassWatcher(document.body, 'swal2-shown', closeSwal2, spin);
spin()
}