TankTrouble Util Library

Shared library for TankTrouble

Version vom 13.12.2023. Aktuellste Version

Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greatest.deepsurf.us/scripts/482092/1294883/TankTrouble%20Util%20Library.js

// ==UserScript==
// @name        TankTrouble Util Library
// @author      commander
// @namespace   https://github.com/asger-finding
// @version     0.0.1
// @license     GPL-3.0
// @description Shared library for TankTrouble
// @match       *://*.tanktrouble.com/*
// @grant       none
// @run-at      document-start
// @noframes
// ==/UserScript==

/* jshint esversion: 8 */

/**
 * Fires when the document is readyState `interactive` or `complete`
 * @returns Promise that resolves upon content loaded
 */
const contentLoaded = () => new Promise(promiseResolve => {
	if (document.readyState === 'interactive' || document.readyState === 'complete') promiseResolve();
	else document.addEventListener('DOMContentLoaded', () => promiseResolve());
});

/**
 * Fires when the `main()` function is done on TankTrouble.
 * @returns Promise that resolves upon content initialized
 */
const contentInitalized = () => new Promise(promiseResolve => {
	contentLoaded().then(() => {
		const contentInitHook = Content.init;
		Reflect.defineProperty(Content, 'init', {
			/**
			 * Resolve after Content.init call finishes
			 *
			 * @param args Arguments to pass
			 */
			value: (...args) => {
				contentInitHook(...args);

				promiseResolve();
			}
		});
	});
});