TankTrouble Util Library

Shared library for TankTrouble

Tính đến 13-12-2023. Xem phiên bản mới nhất.

Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta // @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();
			}
		});
	});
});