您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Keyboard controls for Bilge Dice. Streak tracking tweaked so the new in-game streak is displayed during gameplay. You can now press enter to start a game with a default Ante, which is set to 10 NP unless you change it.
- // ==UserScript==
- // @name [GC] - Bilge Dice Keyboard Controls & Tracking Enhancements
- // @namespace https://greasyfork.org/en/users/1225524-kaitlin
- // @match https://www.grundos.cafe/games/bilgedice/*
- // @license MIT
- // @version 2.3
- // @grant GM_getValue
- // @grant GM_setValue
- // @author Cupkait
- // @icon https://i.imgur.com/4Hm2e6z.png
- // @description Keyboard controls for Bilge Dice. Streak tracking tweaked so the new in-game streak is displayed during gameplay. You can now press enter to start a game with a default Ante, which is set to 10 NP unless you change it.
- // ==/UserScript==
- const activeGame = document.querySelector("#bilge-dice-user-wrapper");
- const gameStart = document.querySelector("form.mt-1");
- //CHANGE BELOW TO HAVE ENTER DEFAULT TO A SPECIFIC ANTE AMOUNT
- //** Don't set a default higher than you've unlocked or it won't work!
- //1=10 NP, 2=50 NP,3=100 NP, 4=200 NP, 5=500 NP,6=1000 NP
- const defaultAnteIndex = 1;
- function indexElements(elements) {
- if (elements) {
- elements.forEach((element, index) => {
- const key = (index + 1).toString();
- const label = document.createElement('label');
- label.textContent = key;
- label.style.fontWeight = 'bold';
- label.style.fontSize = '10px';
- label.style.color = 'black';
- label.style.background = 'EEEEEE';
- label.style.marginRight = '1px';
- element.parentNode.insertBefore(label, element);
- });
- }
- }
- function createPlayStreakDiv() {
- const playStreakDiv = document.createElement('div');
- playStreakDiv.textContent = `${GM_getValue("playStreak", "N/A")}`;
- return playStreakDiv;
- }
- function handleCheckboxEvent(key, checkboxes) {
- const index = parseInt(key) - 1;
- if (checkboxes.length > 0 && index < checkboxes.length) {
- checkboxes[index].checked = !checkboxes[index].checked;
- checkboxes[index].dispatchEvent(new Event('change', { bubbles: true }));
- }
- }
- function handleEnterKeyEvent(buttonSelector) {
- const button = document.querySelector(buttonSelector);
- if (button) {
- button.click();
- }
- }
- if (activeGame) {
- const pageContent = document.querySelector('#page_content');
- pageContent.appendChild(createPlayStreakDiv());
- indexElements(activeGame.querySelectorAll('input[type="checkbox"]'));
- const submitButton = document.querySelector("#bilge-dice-user-wrapper > form");
- const spaceText = document.createElement('p');
- spaceText.textContent = '(Press Space to Keep All)';
- spaceText.style.fontSize = '10px';
- spaceText.style.width = 'auto';
- spaceText.style.fontWeight = 'bold';
- spaceText.style.textAlign = 'center';
- submitButton.insertAdjacentElement('afterend', spaceText);
- document.addEventListener('keydown', event => {
- const key = event.key;
- if (key >= '1' && key <= '6') {
- handleCheckboxEvent(key, activeGame.querySelectorAll('input[type="checkbox"]'));
- }
- if (key === ' ') {
- event.preventDefault();
- const checkboxes = activeGame.querySelectorAll('input[type="checkbox"]');
- checkboxes.forEach(checkbox => {
- checkbox.checked = !checkbox.checked;
- checkbox.dispatchEvent(new Event('change', { bubbles: true }));
- });
- }
- if (key === 'Enter') {
- handleEnterKeyEvent('#bilge-dice-user-wrapper input[type="submit"]');
- }
- });
- } else if (gameStart) {
- const playStreakElement = document.querySelector("#page_content > div:nth-child(6) > p:nth-child(1)");
- const playStreak = playStreakElement ? playStreakElement.textContent : null;
- if (playStreak) {
- GM_setValue("playStreak", playStreak);
- }
- const pageContent = document.querySelector('#page_content');
- pageContent.appendChild(createPlayStreakDiv());
- indexElements(gameStart.querySelectorAll('input[type="submit"]'));
- document.addEventListener('keydown', event => {
- const key = event.key;
- if (key >= '1' && key <= '6') {
- handleEnterKeyEvent('#page_content > div:nth-child(5) > form input[type="submit"]');
- }
- if (key === 'Enter') {
- const options = gameStart.querySelectorAll('input[type="submit"]');
- const selectedOption = options[defaultAnteIndex - 1];
- if (selectedOption) {
- selectedOption.click();
- }
- }
- });
- } else {
- const pageContent = document.querySelector('#page_content');
- if (pageContent) {
- pageContent.appendChild(createPlayStreakDiv());
- }
- document.addEventListener('keydown', event => {
- if (event.key === 'Enter') {
- handleEnterKeyEvent('#page_content input[type="submit"]');
- }
- });
- }