AutoExit(CAVEGAME.IO)

Fixed exit confirmation bug. Press F4 to auto-exit and rejoin

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        AutoExit(CAVEGAME.IO)
// @namespace   Violentmonkey Scripts
// @match       https://cavegame.io/*
// @grant       none
// @version     2.0
// @author      Drik
// @description Fixed exit confirmation bug. Press F4 to auto-exit and rejoin
// @license     MIT
// @run-at      document-start
// ==/UserScript==
(function() {
  'use strict';

  Object.defineProperty(window, 'onbeforeunload', {
    configurable: true,
    get: () => null,
    set: () => {}
  });

  const originalAdd = window.addEventListener;
  window.addEventListener = function(type, listener, options) {
    if (type === 'beforeunload') return;
    return originalAdd.call(this, type, listener, options);
  };

  document.addEventListener('keydown', e => {
    if (e.key === 'F4') {
      const tryExit = () => {
        const btn = document.querySelector('.exit-button.exit-button-top.no-select');
        if (btn) {
          btn.click();
          setTimeout(() => {
            document.querySelector('#play-cavegame-io')?.click();
          }, 200);
        }
      };
      setTimeout(tryExit, 0);
    }
  });
})();