mirror of
https://github.com/FlamedDogo99/EaglerMobile.git
synced 2024-11-23 20:46:04 -08:00
Reverted injection, trying unsafeWindow again
This commit is contained in:
parent
42a2e8b768
commit
2a04b33729
|
@ -6,17 +6,20 @@
|
|||
// @downloadURL https://raw.githubusercontent.com/FlamedDogo99/EaglerMobile/main/eaglermobile.user.js
|
||||
// @license Apache License 2.0 - http://www.apache.org/licenses/
|
||||
// @match https://eaglercraft.com/mc/*
|
||||
// @version 3.0.3-alpha-5
|
||||
// @version 3.0.3-alpha-4
|
||||
// @updateURL https://raw.githubusercontent.com/FlamedDogo99/EaglerMobile/main/eaglermobile.user.js
|
||||
// @run-at document-start
|
||||
// @grant unsafeWindow
|
||||
// ==/UserScript==
|
||||
|
||||
// THIS IS LAZY AND CAN EXPOSE INTERNALS
|
||||
// IN THE FUTURE, JUST INJECT A SCRIPT TAG
|
||||
|
||||
var mobileScript = document.createElement("script");
|
||||
mobileScript.id = "mobileScript";
|
||||
mobileScript.textContent = `
|
||||
try {
|
||||
window = unsafeWindow ?? window
|
||||
} catch {
|
||||
|
||||
}
|
||||
|
||||
function isMobile() {
|
||||
try {
|
||||
|
@ -61,7 +64,8 @@ function logManager() {
|
|||
|
||||
// better charCodeAt function
|
||||
String.prototype.toKeyCode = function() {
|
||||
const keyCodeList = {"0": 48, "1": 49, "2": 50, "3": 51, "4": 52, "5": 53, "6": 54, "7": 55, "8": 56, "9": 57, "backspace": 8, "tab": 9, "enter": 13, "shift": 16, "ctrl": 17, "alt": 18, "pause_break": 19, "caps_lock": 20, "escape": 27, " ": 32, "page_up": 33, "page_down": 34, "end": 35, "home": 36, "left_arrow": 37, "up_arrow": 38, "right_arrow": 39, "down_arrow": 40, "insert": 45, "delete": 46, "a": 65, "b": 66, "c": 67, "d": 68, "e": 69, "f": 70, "g": 71, "h": 72, "i": 73, "j": 74, "k": 75, "l": 76, "m": 77, "n": 78, "o": 79, "p": 80, "q": 81, "r": 82, "s": 83, "t": 84, "u": 85, "v": 86, "w": 87, "x": 88, "y": 89, "z": 90, "left_window_key": 91, "right_window_key": 92, "select_key": 93, "numpad_0": 96, "numpad_1": 97, "numpad_2": 98, "numpad_3": 99, "numpad_4": 100, "numpad_5": 101, "numpad_6": 102, "numpad_7": 103, "numpad_8": 104, "numpad_9": 105, "*": 106, "+": 107, "-": 109, ".": 110, "/": 111, "f1": 112, "f2": 113, "f3": 114, "f4": 115, "f5": 116, "f6": 117, "f7": 118, "f8": 119, "f9": 120, "f10": 121, "f11": 122, "f12": 123, "num_lock": 144, "scroll_lock": 145, ";": 186, "=": 187, ",": 188, "-": 189, ".": 190, "/": 191, "\`": 192, "[": 219, "\\\": 220, "]": 221, "\\"": 222};
|
||||
const keyCodeList = {"0": 48, "1": 49, "2": 50, "3": 51, "4": 52, "5": 53, "6": 54, "7": 55, "8": 56, "9": 57, "backspace": 8, "tab": 9, "enter": 13, "shift": 16, "ctrl": 17, "alt": 18, "pause_break": 19, "caps_lock": 20, "escape": 27, " ": 32, "page_up": 33, "page_down": 34, "end": 35, "home": 36, "left_arrow": 37, "up_arrow": 38, "right_arrow": 39, "down_arrow": 40, "insert": 45, "delete": 46, "a": 65, "b": 66, "c": 67, "d": 68, "e": 69, "f": 70, "g": 71, "h": 72, "i": 73, "j": 74, "k": 75, "l": 76, "m": 77, "n": 78, "o": 79, "p": 80, "q": 81, "r": 82, "s": 83, "t": 84, "u": 85, "v": 86, "w": 87, "x": 88, "y": 89, "z": 90, "left_window_key": 91, "right_window_key": 92, "select_key": 93, "numpad_0": 96, "numpad_1": 97, "numpad_2": 98, "numpad_3": 99, "numpad_4": 100, "numpad_5": 101, "numpad_6": 102, "numpad_7": 103, "numpad_8": 104, "numpad_9": 105, "*": 106, "+": 107, "-": 109, ".": 110, "/": 111, "f1": 112, "f2": 113, "f3": 114, "f4": 115, "f5": 116, "f6": 117, "f7": 118, "f8": 119, "f9": 120, "f10": 121, "f11": 122, "f12": 123, "num_lock": 144, "scroll_lock": 145, ";": 186, "=": 187, ",": 188, "-": 189, ".": 190, "/": 191, "\u0060": 192, "[": 219, "\u005C": 220, "]": 221, "\u0022": 222};
|
||||
|
||||
return keyCodeList[this];
|
||||
}
|
||||
// Ignores keydown events that don't have the isValid parameter set to true
|
||||
|
@ -195,6 +199,24 @@ document.createElement = function(type, ignore) {
|
|||
return element;
|
||||
}
|
||||
|
||||
// Lazy way to hide touch controls through CSS.
|
||||
let inGameStyle = document.createElement("style");
|
||||
inGameStyle.id = "inGameStyle";
|
||||
inGameStyle.textContent = `
|
||||
.inGame {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inGameStyle);
|
||||
|
||||
let inMenuStyle = document.createElement("style");
|
||||
inMenuStyle.id = "inMenuStyle";
|
||||
inMenuStyle.textContent = `
|
||||
.inMenu {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inMenuStyle);
|
||||
|
||||
|
||||
// The canvas is created by the client after it finishes unzipping and loading. When the canvas is created, this applies any necessary event listeners
|
||||
function waitForElm(selector) {
|
||||
return new Promise(resolve => {
|
||||
|
@ -366,8 +388,8 @@ function insertCanvasElements() {
|
|||
document.body.appendChild(inventoryButton);
|
||||
let exitButton = createTouchButton("exitButton", "inMenu");
|
||||
exitButton.style.cssText = "top: 0vh; margin: auto; left: 0vh; right:8vh; width: 8vh; height: 8vh;"
|
||||
exitButton.addEventListener("touchstart", function(e){keyEvent("\`", "keydown")}, false);
|
||||
exitButton.addEventListener("touchend", function(e){keyEvent("\`", "keyup")}, false);
|
||||
exitButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
exitButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(exitButton);
|
||||
// input for keyboard button
|
||||
let hiddenInput = document.createElement('input', true);
|
||||
|
@ -382,7 +404,7 @@ function insertCanvasElements() {
|
|||
hiddenInput.addEventListener("input", function(e) {
|
||||
e.preventDefault(true);
|
||||
let inputData = e.data == null ? "delete" : e.data.slice(-1);
|
||||
console.log("Received input by " + e.inputType + ": " + e.data + " -> " + inputData);
|
||||
console.log(`Received input by ${e.inputType}: ${e.data} -> ${inputData}`);
|
||||
|
||||
window.lastKey = inputData
|
||||
hiddenInput.value = " "; // We need a character to detect deleting
|
||||
|
@ -471,8 +493,8 @@ function insertCanvasElements() {
|
|||
document.body.appendChild(sprintButton);
|
||||
let pauseButton = createTouchButton("pauseButton", "inGame");
|
||||
pauseButton.style.cssText = "top: 0vh; margin: auto; left: 0vh; right: 32vh; width: 8vh; height: 8vh;"
|
||||
pauseButton.addEventListener("touchstart", function(e){keyEvent("\`", "keydown")}, false);
|
||||
pauseButton.addEventListener("touchend", function(e){keyEvent("\`", "keyup")}, false);
|
||||
pauseButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
pauseButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(pauseButton);
|
||||
let chatButton = createTouchButton("chatButton", "inGame");
|
||||
chatButton.style.cssText = "top: 0vh; margin: auto; left: 0vh; right: 16vh; width: 8vh; height: 8vh;"
|
||||
|
@ -521,24 +543,6 @@ function insertCanvasElements() {
|
|||
document.temp = new logManager();
|
||||
document.temp.init();
|
||||
}
|
||||
`
|
||||
document.documentElement.appendChild(mobileScript);
|
||||
// Lazy way to hide touch controls through CSS.
|
||||
let inGameStyle = document.createElement("style");
|
||||
inGameStyle.id = "inGameStyle";
|
||||
inGameStyle.textContent = `
|
||||
.inGame {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inGameStyle);
|
||||
|
||||
let inMenuStyle = document.createElement("style");
|
||||
inMenuStyle.id = "inMenuStyle";
|
||||
inMenuStyle.textContent = `
|
||||
.inMenu {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inMenuStyle);
|
||||
// CSS for touch screen buttons, along with fixing iOS's issues with 100vh ignoring the naviagtion bar, and actually disabling zoom because safari ignores user-scalable=no :(
|
||||
let customStyle = document.createElement("style");
|
||||
customStyle.textContent = `
|
||||
|
|
Loading…
Reference in New Issue
Block a user