Rebinds the MineFun.io controls for easier use by MineCraft players
// ==UserScript==
// @name MineCraft Keybind
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Rebinds the MineFun.io controls for easier use by MineCraft players
// @author Qwerty Matthew
// @license MIT
// @match https://minefun.io/*
// @match https://*.minefun.io/*
// @run-at document-start
// @grant none
// ==/UserScript==
(function() {
'use strict';
function remapKey(e) {
// Leave the keys alone if you're typing in chat
if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') return;
// 1. CROUCH: Left Shift triggers 'C'.
if (e.code === 'ShiftLeft') {
Object.defineProperty(e, 'code', { value: 'KeyC' });
}
// DISABLE ORIGINAL C: If you press physical C, stop it from triggering crouch
else if (e.code === 'KeyC') {
e.preventDefault();
e.stopPropagation();
Object.defineProperty(e, 'code', { value: 'None' });
}
// 2. SPRINT: Right Option / Alt (right of spacebar) triggers 'ShiftLeft'
else if (e.code === 'AltRight') {
Object.defineProperty(e, 'code', { value: 'ShiftLeft' });
}
// 3. INVENTORY: 'E' triggers 'X'.
else if (e.code === 'KeyE') {
Object.defineProperty(e, 'code', { value: 'KeyX' });
}
// DISABLE ORIGINAL X: If you press physical X, stop it from opening inventory
else if (e.code === 'KeyX') {
e.preventDefault();
e.stopPropagation();
Object.defineProperty(e, 'code', { value: 'None' });
}
}
// Capture everything instantly on the way down and up
window.addEventListener('keydown', remapKey, true);
window.addEventListener('keyup', remapKey, true);
})();