您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows certain buttons to be clicked with the keyboard arrows instead of using a mouse.
// ==UserScript== // @name FarmRPG Arrow Buttons // @namespace duck.wowow // @version 0.2 // @description Allows certain buttons to be clicked with the keyboard arrows instead of using a mouse. // @author Odung // @match https://*.farmrpg.com/index.php // @match https://*.farmrpg.com/ // @icon https://www.google.com/s2/favicons?sz=64&domain=farmrpg.com // @grant none // ==/UserScript== /* FARMING/CROPS Left Arrow: Harvest All Up Arrow: Plant All Right Arrow: Grape Juice KITCHEN Left Arrow: Stir All Up Arrow: Taste All Right Arrow: Season All Down Arrow: Collect All EXPLORING Left Arrow: Manual Exploring Up Arrow: Cider Right Arrow: Arnold Palmer FISHING Left Arrow: Sell All Up Arrow: Single Nets Right Arrow: Multiple Nets Down Arrow: Manual (for mealworms) */ (function () { 'use strict'; const activeKeys = new Set(); const eventHandlers = new Map(); function observePage() { const targetNode = document.querySelector('#fireworks'); if (!targetNode) { setTimeout(observePage, 500); return; } const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'attributes' && mutation.attributeName === 'data-page') { removeEventListeners(); const dataPage = mutation.target.getAttribute('data-page'); if (dataPage === 'xfarm') setupXFarmListeners(); else if (dataPage === 'fishing') setupFishingListeners(); else if (dataPage === 'area') setupAreaListeners(); else if (dataPage === 'kitchen') setupKitchenListeners(); } } }); observer.observe(targetNode, { attributes: true }); } function clickButton(selector) { const button = document.querySelector(selector); if (button) button.click(); } function createKeydownHandler(keyMappings) { return (event) => { if (keyMappings[event.code] && !activeKeys.has(event.code)) { activeKeys.add(event.code); clickButton(keyMappings[event.code]); } }; } function setupXFarmListeners() { const keyMappings = { ArrowLeft: '.button.btnorange.harvestallbtn', ArrowUp: '.button.btnblue.plantallbtn', ArrowRight: '.button.btnpurple.drinkgjbtnnc' }; const keydownHandler = createKeydownHandler(keyMappings); document.addEventListener('keydown', keydownHandler); eventHandlers.set('xfarm', keydownHandler); } function setupKitchenListeners() { const keyMappings = { ArrowLeft: '.button.btngreenalt.stirmealall', ArrowUp: '.button.btnblue.tastemealall', ArrowRight: '.button.btnpurple.seasonmealall', ArrowDown: '.button.btnorange.cookreadyallbtn' }; const keydownHandler = createKeydownHandler(keyMappings); document.addEventListener('keydown', keydownHandler); eventHandlers.set('kitchen', keydownHandler); } function setupFishingListeners() { const keyMappings = { ArrowLeft: '.button.btngreenalt.sellallfishbtnnc', ArrowUp: '.button.btnblue.castnetbtnnc.disable-select', ArrowRight: '.button.btnpurple.cnlnl.castnetbtnnc.disable-select', ArrowDown: '#water' }; const keydownHandler = createKeydownHandler(keyMappings); document.addEventListener('keydown', keydownHandler); eventHandlers.set('fishing', keydownHandler); } function setupAreaListeners() { const keyMappings = { ArrowLeft: '.item-content.explorebtn', ArrowUp: '.item-content.drinkcidernc', ArrowRight: '.item-content.drinklmnc' }; const keydownHandler = createKeydownHandler(keyMappings); document.addEventListener('keydown', keydownHandler); eventHandlers.set('area', keydownHandler); } function removeEventListeners() { for (const [page, handler] of eventHandlers) { document.removeEventListener('keydown', handler); } eventHandlers.clear(); } document.addEventListener('keyup', (event) => { activeKeys.delete(event.code); }); observePage(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址