// ==UserScript== // @name VRChat WEB Shorthand // @namespace http://tampermonkey.net/ // @version 1.0 // @description Adds shorthands for web site features. (Quick launch world and invite buttons for friends list) // @author slick // @match https://www.tampermonkey.net/index.php?version=4.10.6105&ext=fire&updated=true // @grant none // @require http://code.jquery.com/jquery-3.4.1.min.js // @include /.*?:\/\/.*?vrchat.*?\..*?(home|launch|api).*?/ // @downloadURL none // ==/UserScript== (function() { 'use strict'; var limitReshreshMs = 1000; var lastRefresh = Date.now(); $(document).ready(setTimeout(function() { addLaunchButton(); //addRefreshButton(); setDOMEvent(".friend-container", addLaunchButton); setDOMEvent(".location-container", addLaunchButton); setDOMEvent(".home-content", addLaunchButton); }, 3000)); function setDOMEvent(element, callback) { $("body").on('DOMSubtreeModified', element, function() { setTimeout(function() {callback();}, 200); }); } function addLaunchButton() { if(!canRefresh()) return; $( ".launchb" ).remove(); $('.location-title').each(function( index ) { var webLink = $( this ).children()[1].href; var link = webLink.substring(webLink.indexOf('=')+1, webLink.lastIndexOf('&')); var instanceId = webLink.substring(webLink.lastIndexOf('=')+1); var fullLink = link + ":" + instanceId; var launchButton = '

LAUNCH WORLD
'; $(this).append(launchButton); }); } function addRefreshButton() { var refreshButton = '  Refresh'; $('.navbar-header').append(refreshButton); $("#refreshb").click (addLaunchButton); } function canRefresh() { if((Date.now() - lastRefresh) >= limitReshreshMs) { lastRefresh = Date.now(); return true; } return false; } })();