Adds a button to find random worlds! Fun yay!!
// ==UserScript==
// @name VRChat Random World
// @description Adds a button to find random worlds! Fun yay!!
// @match https://vrchat.com/home*
// @version 1.0.0
// @author Laku
// @namespace https://greasyfork.org/users/1387751
// ==/UserScript==
async function random_world() {
let json = await fetch("https://vrchat.com/api/1/worlds?n=100&sort=random").then((res) => res.json());
let world = json[Math.floor(Math.random() * 100)];
let url = "https://vrchat.com/home/world/" + world.id + "/info";
window.open(url, '_blank').focus();
}
function add_the_button() {
let nav = document.querySelector("nav>div");
let clone = nav.querySelector("[title=worlds]").cloneNode(true);
clone.setAttribute("style","background: #550239; color: #ff00cb; border-color: #8e063f;");
clone.removeAttribute("href");
clone.setAttribute("title", "randomworld");
clone.onclick = random_world;
clone.querySelector("div").textContent = "Random World";
nav.appendChild(clone);
}
(new MutationObserver(check)).observe(document, {childList: true, subtree: true});
function check(changes, observer) {
if(document.querySelector("nav>div>[title=worlds]")) {
observer.disconnect();
add_the_button();
}
}