Shared library for TankTrouble userscript development
目前為
此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/482092/1294933/TankTrouble%20Development%20Library.js
// ==UserScript==
// @name TankTrouble Development Library
// @author commander
// @namespace https://github.com/asger-finding
// @version 0.0.2
// @license GPL-3.0
// @description Shared library for TankTrouble userscript development
// @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();
}
});
});
});