Advertisement
wherr

TownStar Additional Leaderboard Buttons

May 9th, 2022 (edited)
1,030
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Leaderboard Jump
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1
  5. // @description  Adds jump to buttons for the leaderboard
  6. // @author       wherr
  7. // @match        https://townstar.sandbox-games.com/launch
  8. // @grant        none
  9. // @run-at       document-start
  10. // ==/UserScript==
  11.  
  12. (function() {
  13.     'use strict';
  14.  
  15.     // Change these to whatever additional buttons you want (set to May Mayhem by default)
  16.     let jumpToButtons = [
  17.         2000,
  18.         1000,
  19.         300,
  20.         200,
  21.         100,
  22.     ];
  23.     let loaded = 0;
  24.  
  25.     new MutationObserver(function(mutations) {
  26.         if (document.querySelector('.leaderboard .tab-buttons') && loaded == 0) {
  27.             loaded = 1;
  28.             LoadLeaderBoardJumpButtons();
  29.             self.disconnect();
  30.         }
  31.     }).observe(document, {childList: true, subtree: true});
  32.  
  33.     function LoadLeaderBoardJumpButtons() {
  34.         let tabButtons = document.querySelector('.leaderboard .tab-buttons');
  35.  
  36.         for (let button of jumpToButtons) {
  37.             let buttonElem = document.createElement('button');
  38.             buttonElem.classList.add('tab', 'button-top-' + button);
  39.  
  40.             let buttonSpan = document.createElement('span');
  41.             buttonSpan.innerHTML = 'Top ' + button;
  42.  
  43.             buttonElem.onclick = function (){
  44.                 let leaderboardUI = Game.app.root.findByName('LeaderboardUi').script.leaderboardUi.UI;
  45.                 leaderboardUI.playerTarget && API.scoreLeaderboard(button - 5, button + 5).then((e=>{
  46.                     leaderboardUI.playerTarget.innerHTML = "",
  47.                     leaderboardUI.setLeaderboard(e, !0);
  48.                     leaderboardUI.div.querySelector(".player-rank-" + button).scrollIntoView();
  49.                 }
  50.                 ))
  51.             };
  52.  
  53.             buttonElem.appendChild(buttonSpan);
  54.             tabButtons.insertBefore(buttonElem, tabButtons.querySelector('.button-top-10'));
  55.         }
  56.     }
  57. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement