- // ==UserScript==
- // @name Moomoo.io - 1.8.0 AutoScroll
- // @author Seryo
- // @description Key-triggered autoscroll. I've removed the ping function with the 'R' key to keep the bull helmet scroll anonymous. You can also ping by clicking the minimap.
-
- // @ - Bull Hat (Key: "R")
- // @ - Soldier Helmet (Key: "G")
- // @ - Tank Gear (Key: "Z")
- // @ - Bearbarian Armor (Key: "M")
- // @ - Booster Hat (Key: "B")
- // @ - Flipper Hat (Key: "Y")
- // @ - EMP Helmet (Key: "J")
- // @ - Samurai Armor (Key: "U")
- // @ - Turret Hat (Key: "T")
- // @ - Fluff Head (Key: "I")
- // @ - Spike Gear (Key: "H")
- // @ - Monkey Tail (Key: "O")
-
- // @version 0.1
- // @match *://*.moomoo.io/*
- // @namespace https://gf.qytechs.cn/users/1190411
- // @icon https://cdn.glitch.com/82ae8945-dcc6-4276-98a9-665381b4cd2b/cursor12.png
- // @license MIT
- // @grant none
- // @require https://gf.qytechs.cn/scripts/440839-moomoo-items/code/MooMoo%20Items.js?version=1023778
- // @require https://gf.qytechs.cn/scripts/423602-msgpack/code/msgpack.js?version=1005014
- // ==/UserScript==
-
- class MooMoo {
- static get hotkeys() {
- return {
- hat_hotkeys: {
- bull_hat: { id: 7, key: "r", scroll: { toggle: true, time: 0, top: 1450 } },
- soldier_helmet: { id: 6, key: "g", scroll: { toggle: true, time: 0, top: 1200 } },
- tank_gear: { id: 40, key: "z", scroll: { toggle: true, time: 0, top: 2050 } },
- bearbarian_armor: { id: 26, key: "m", scroll: { toggle: true, time: 0, top: 1600 } },
- booster_hat: { id: 12, key: "b", scroll: { toggle: true, time: 0, top: 1550 } },
- flipper_hat: { id: 31, key: "y", scroll: { toggle: true, time: 0, top: 1000 } },
- emp_helmet: { id: 22, key: "j", scroll: { toggle: true, time: 0, top: 1500 } },
- samurai_armor: { id: 20, key: "u", scroll: { toggle: true, time: 0, top: 1900 } },
- turret_hat: { id: 53, key: "t", scroll: { toggle: true, time: 0, top: 1850 } },
- fluff_head: { id: 30, key: "i", scroll: { toggle: true, time: 0, top: 200 } },
- spike_gear: { id: 11, key: "h", scroll: { toggle: true, time: 0, top: 1800 } },
- monkey_tail: { id: 11, key: "o", scroll: { toggle: true, time: 0, top: 250 } }
- }
- };
- }
-
- static init(arg) {
- this.hathotkeys();
- this.canvas = document.getElementById("gameCanvas");
- this.result = "";
- this.initcps();
- this.doc = document;
- this.initlisteners();
- this.id = `#${arg.match(/d="?g(.*)?I/g)[0].match(/(?=g).*(?=)/)[0]}`;
- window.addEventListener("load", (event) => {
- MooMoo.initHTML();
- });
- }
-
- static get() {
- return new Promise((resolve) => {
- fetch(arguments[0])
- .then((res) => res.text())
- .then((res) => {
- return resolve(res);
- });
- });
- }
-
- static smoothscroll(scrolltop, time) {
- $('#storeHolder').animate({
- scrollTop: scrolltop
- }, time);
- }
-
- static hathotkeys() {
- let hotkeys = this.hotkeys.hat_hotkeys;
- let locale = this;
- for (let i in this.hotkeys.hat_hotkeys) {
- document.addEventListener('keydown', (e) => {
- if (document.activeElement.type == "text") return;
- if (e.key.toLowerCase() == hotkeys[i].key) {
- if (!hotkeys[i].scroll.toggle) return;
-
- if (document.getElementById("storeMenu").style.display === "block") {
- locale.smoothscroll(hotkeys[i].scroll.top, hotkeys[i].scroll.time);
- }
-
- e.preventDefault();
- e.stopPropagation();
- }
- });
- }
- }
- }
-
- (async () => {
- const game = await MooMoo.get(document.location.href);
- MooMoo.init(game);
- var ws;
- WebSocket.prototype._send = WebSocket.prototype.send;
- WebSocket.prototype.send = function (m) {
- if (MooMoo.decode(m)[0] == "c") {
- MooMoo.handleHit(m);
- }
- if (!ws) {
- document.ws = this;
- ws = this;
- this.addEventListener('message', function (message) {
- MooMoo.setws(this);
- MooMoo.getwsmessage(message);
- });
- }
- this._send(m);
- };
- })();