/*jshint esversion: 6 */ // ==UserScript== // @name Builded // @namespace https://git.swee.codes/swee/Builded // @version 0.1 // @description Vencord, but for Guilded // @author Swee // @match https://*.guilded.gg/* // @match https://builded.swee.codes/settings // @icon https://git.swee.codes/swee/Builded/raw/branch/main/Builded-solid.svg // @grant GM_setValue // @grant GM_getValue // @require https://code.jquery.com/jquery-3.7.1.min.js // @require https://github.com/pie6k/jquery.initialize/raw/refs/heads/master/jquery.initialize.min.js // @run-at document-body // ==/UserScript== function waitForElm(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { observer.disconnect(); resolve(document.querySelector(selector)); } }); // If you get "parameter 1 is not of type 'Node'" error, see https://stackoverflow.com/a/77855838/492336 observer.observe(document.body, { childList: true, subtree: true }); }); } (async () => { let settings_HTML = `

There are no features here... Want to suggest some here? :3

`; let customloader = await GM.getValue("customLoader", `

Guilded load...

`) let customloader_enable = await GM.getValue("customLoaderEnable", true) let settings_entry = ` ` if (location.host == "www.guilded.gg") { console.info("Guilded.GG detected."); $.initialize('.NavV4TeamSelectorBottomOptionsList-container', function() { console.info("Injecting settings entry...") $(this)[0].innerHTML = settings_entry; }); $.initialize('#loading', function() { $(this)[0].innerHTML = customloader; }); } else { document.body.innerHTML += settings_HTML; } console.info("Builded Loaded <3"); })();