scripts/Games/Arena_of_Valor/AWC_AutoSpin.js

67 lines
2.2 KiB
JavaScript
Raw Normal View History

2021-07-03 19:46:24 +00:00
// TODO: FIX JQUERY ASYNC
// Fetch jQuery
await fetch("https://code.jquery.com/jquery-3.6.0.min.js").then(x => x.text()).then(y => eval(y)).then(() => $("window").off("mouseup"))
{
// From https://stackoverflow.com/a/53914092
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()
}
init() {
this.observer = new MutationObserver(this.mutationCallback)
this.observe()
}
observe() {
this.observer.observe(this.targetNode, { attributes: true })
}
disconnect() {
this.observer.disconnect()
}
mutationCallback = mutationsList => {
for(let mutation of mutationsList) {
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) {
document.getElementsByClassName(className)[0].dispatchEvent(new MouseEvent("click"));
}
// Click the spin button
function spin() {
clickFirstButtonByClassName("wheel__main--note")
}
// Close the dialog
function closeSwal2() {
clickFirstButtonByClassName("swal2-close")
}
// Watch for SweetAlert 2
let bodywatcher = new ClassWatcher(document.body, 'swal2-shown', closeSwal2, spin);
spin()
}