diff --git a/src/offline/index.html b/src/offline/index.html
index c8164a6..b77ae41 100644
--- a/src/offline/index.html
+++ b/src/offline/index.html
@@ -1,4 +1,4 @@
-
+
+
Beta 1.7.3
-
+
Beta 1.3
@@ -86,7 +92,9 @@
© 2024 MineXLauncher. All rights reserved.
@@ -94,7 +102,14 @@
-
+
diff --git a/src/resources/data/main.json b/src/resources/data/main.json
index 354926f..33d1a8c 100644
--- a/src/resources/data/main.json
+++ b/src/resources/data/main.json
@@ -44,11 +44,17 @@
"updates": [
{
"version": "1.6.1",
- "changelog": ["Eaglercraft 1.9 has been updated to v0.7.0", "Tutorials have been added to the launcher, go check them out!"]
+ "changelog": [
+ "Eaglercraft 1.9 has been updated to v0.7.0",
+ "Tutorials have been added to the launcher, go check them out!"
+ ]
},
{
"version": "1.6",
- "changelog": ["You can now install mods directly from the mods list", "Bugfix: Themes no longer flicker when navigating"]
+ "changelog": [
+ "You can now install mods directly from the mods list",
+ "Bugfix: Themes no longer flicker when navigating"
+ ]
},
{
"version": "1.5",
diff --git a/src/resources/scripts/eagler-launch/1.5.2/main.ts b/src/resources/scripts/eagler-launch/1.5.2/main.ts
index 49b42e0..2011b8a 100644
--- a/src/resources/scripts/eagler-launch/1.5.2/main.ts
+++ b/src/resources/scripts/eagler-launch/1.5.2/main.ts
@@ -14,7 +14,19 @@ window.addEventListener('load', function () {
{ addr: 'wss://relay.shhnowisnottheti.me/', name: 'ayunami relay #1', primary: relayId === 2 },
],
mainMenu: {
- splashes: ['Darviglet!', 'eaglerenophile!', 'You Eagler!', 'Yeeeeeee!', 'yeee', 'EEEEEEEEE!', 'You Darvig!', 'You Vigg!', ':>', '|>', 'You Yumpster!'],
+ splashes: [
+ 'Darviglet!',
+ 'eaglerenophile!',
+ 'You Eagler!',
+ 'Yeeeeeee!',
+ 'yeee',
+ 'EEEEEEEEE!',
+ 'You Darvig!',
+ 'You Vigg!',
+ ':>',
+ '|>',
+ 'You Yumpster!',
+ ],
eaglerLogo: false,
},
};
diff --git a/src/resources/scripts/eagler-launch/1.8.8/eaglermobile-ef.ts b/src/resources/scripts/eagler-launch/1.8.8/eaglermobile-ef.ts
index deb8218..f8787f6 100644
--- a/src/resources/scripts/eagler-launch/1.8.8/eaglermobile-ef.ts
+++ b/src/resources/scripts/eagler-launch/1.8.8/eaglermobile-ef.ts
@@ -2,7 +2,10 @@
// @ts-nocheck
if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
try {
- unsafeWindow.console.warn("DANGER: This userscript is using unsafeWindow. Unsafe websites could potentially use this to gain access to data and other content that the browser normally wouldn't allow!"), Object.defineProperty(window, 'clientWindow', { value: unsafeWindow });
+ unsafeWindow.console.warn(
+ "DANGER: This userscript is using unsafeWindow. Unsafe websites could potentially use this to gain access to data and other content that the browser normally wouldn't allow!",
+ ),
+ Object.defineProperty(window, 'clientWindow', { value: unsafeWindow });
} catch {
Object.defineProperty(window, 'clientWindow', { value: window });
}
@@ -135,8 +138,8 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (...A) {
if (A[0].isValid || !clientWindow.keyboardFix) return I.apply(this, A);
},
- ...g
- )
+ ...g,
+ )
: i.call(this, A, I, ...g);
},
});
@@ -206,7 +209,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
(g.hidden = !0), (g.style.display = 'none');
},
- { passive: !1, once: !0 }
+ { passive: !1, once: !0 },
),
clientWindow.addEventListener(
'focus',
@@ -215,7 +218,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
(g.hidden = !0), (g.style.display = 'none');
}, 300);
},
- { once: !0 }
+ { once: !0 },
),
document.body.appendChild(g)),
g
@@ -235,7 +238,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
A.preventDefault();
},
- !1
+ !1,
),
i.addEventListener('contextmenu', function (A) {
A.preventDefault();
@@ -263,17 +266,19 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
g.preventDefault();
const e = g.targetTouches[0];
A || ((A = e.pageX), (I = e.pageY)), (g.movementX = e.pageX - A), (g.movementY = e.pageY - I);
- var C = clientWindow.fakelock ? new MouseEvent('mousemove', { movementX: g.movementX, movementY: g.movementY }) : new WheelEvent('wheel', { wheelDeltaY: g.movementY });
+ var C = clientWindow.fakelock
+ ? new MouseEvent('mousemove', { movementX: g.movementX, movementY: g.movementY })
+ : new WheelEvent('wheel', { wheelDeltaY: g.movementY });
i.dispatchEvent(C), (A = e.pageX), (I = e.pageY);
},
- !1
+ !1,
),
i.addEventListener(
'touchend',
function (g) {
(A = null), (I = null);
},
- !1
+ !1,
),
d(null != clientWindow.fakelock);
let e = Z('strafeRightButton', 'inGame', 'div');
@@ -287,7 +292,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('w', 'keydown'), e.classList.remove('hide'), c.classList.remove('hide'), n.classList.add('active');
},
- !1
+ !1,
),
n.addEventListener(
'touchmove',
@@ -296,16 +301,28 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
const I = A.targetTouches[0];
g || (g = I.pageX);
let i = I.pageX - g;
- 10 * i > clientWindow.innerHeight ? (e.classList.add('active'), c.classList.remove('active'), C('d', 'keydown'), C('a', 'keyup')) : 10 * i < 0 - clientWindow.innerHeight ? (c.classList.add('active'), e.classList.remove('active'), C('a', 'keydown'), C('d', 'keyup')) : (e.classList.remove('active'), c.classList.remove('active'));
+ 10 * i > clientWindow.innerHeight
+ ? (e.classList.add('active'), c.classList.remove('active'), C('d', 'keydown'), C('a', 'keyup'))
+ : 10 * i < 0 - clientWindow.innerHeight
+ ? (c.classList.add('active'), e.classList.remove('active'), C('a', 'keydown'), C('d', 'keyup'))
+ : (e.classList.remove('active'), c.classList.remove('active'));
},
- !1
+ !1,
),
n.addEventListener(
'touchend',
function (A) {
- C('w', 'keyup'), C('d', 'keyup'), C('a', 'keyup'), e.classList.remove('active'), c.classList.remove('active'), e.classList.add('hide'), c.classList.add('hide'), n.classList.remove('active'), (g = null);
+ C('w', 'keyup'),
+ C('d', 'keyup'),
+ C('a', 'keyup'),
+ e.classList.remove('active'),
+ c.classList.remove('active'),
+ e.classList.add('hide'),
+ c.classList.add('hide'),
+ n.classList.remove('active'),
+ (g = null);
},
- !1
+ !1,
),
e.classList.add('hide'),
c.classList.add('hide'),
@@ -317,14 +334,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('d', 'keydown');
},
- !1
+ !1,
),
o.addEventListener(
'touchend',
function (A) {
C('d', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(o);
let l = Z('leftButton', 'inGame');
@@ -334,14 +351,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('a', 'keydown');
},
- !1
+ !1,
),
l.addEventListener(
'touchend',
function (A) {
C('a', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(l);
let b = Z('backButton', 'inGame');
@@ -351,14 +368,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('s', 'keydown');
},
- !1
+ !1,
),
b.addEventListener(
'touchend',
function (A) {
C('s', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(b);
let w = Z('jumpButton', 'inGame');
@@ -368,14 +385,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C(' ', 'keydown');
},
- !1
+ !1,
),
w.addEventListener(
'touchend',
function (A) {
C(' ', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(w);
let M = Z('crouchButton', 'inGame');
@@ -389,14 +406,16 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
(clientWindow.crouchLock = null != clientWindow.crouchLock), M.classList.toggle('active');
}, 1e3));
},
- !1
+ !1,
),
M.addEventListener(
'touchend',
function (A) {
- clientWindow.crouchLock || (C('shift', 'keyup'), M.classList.remove('active'), (clientWindow.crouchLock = !1)), clearTimeout(clientWindow.crouchTimer);
+ clientWindow.crouchLock ||
+ (C('shift', 'keyup'), M.classList.remove('active'), (clientWindow.crouchLock = !1)),
+ clearTimeout(clientWindow.crouchTimer);
},
- !1
+ !1,
),
document.body.appendChild(M);
let v = Z('inventoryButton', 'inGame');
@@ -406,14 +425,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('e', 'keydown');
},
- !1
+ !1,
),
v.addEventListener(
'touchend',
function (A) {
C('e', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(v);
let m = Z('exitButton', 'inMenu');
@@ -423,53 +442,71 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('`', 'keydown');
},
- !1
+ !1,
),
m.addEventListener(
'touchend',
function (A) {
C('`', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(m);
let h = document.createElement('input', !0);
(h.id = 'hiddenInput'),
h.classList.add('inMenu'),
- (h.style.cssText = 'position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh; width: 8vh; height: 8vh;font-size:20px;z-index: -10;color: transparent;text-shadow: 0 0 0 black;'),
+ (h.style.cssText =
+ 'position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh; width: 8vh; height: 8vh;font-size:20px;z-index: -10;color: transparent;text-shadow: 0 0 0 black;'),
h.addEventListener(
'beforeinput',
function (A) {
A.stopImmediatePropagation(), A.preventDefault(!0);
let I = 'insertLineBreak' == A.inputType ? 'return' : null == A.data ? 'delete' : A.data.slice(-1);
- if ((clientWindow.lastKey || (clientWindow.console.warn('Enabling blocking duplicate key events. Some functionality may be lost.'), (clientWindow.inputFix = !0)), clientWindow.keyboardFix))
+ if (
+ (clientWindow.lastKey ||
+ (clientWindow.console.warn('Enabling blocking duplicate key events. Some functionality may be lost.'),
+ (clientWindow.inputFix = !0)),
+ clientWindow.keyboardFix)
+ )
if ('insertLineBreak' == A.inputType) C('enter', 'keydown'), C('enter', 'keyup');
else {
const g = A.inputType.slice(0, 1);
if ('i' == g && A.data) {
- if (clientWindow.lastKey == I && clientWindow.blockNextInput && clientWindow.inputFix) clientWindow.blockNextInput = !1;
+ if (clientWindow.lastKey == I && clientWindow.blockNextInput && clientWindow.inputFix)
+ clientWindow.blockNextInput = !1;
else {
- I.toLowerCase() != I ? (C('shift', 'keydown'), C(I, 'keydown'), C(I, 'keyup'), C('shift', 'keyup')) : (C(I, 'keydown'), C(I, 'keyup')), (clientWindow.blockNextInput = !0);
+ I.toLowerCase() != I
+ ? (C('shift', 'keydown'), C(I, 'keydown'), C(I, 'keyup'), C('shift', 'keyup'))
+ : (C(I, 'keydown'), C(I, 'keyup')),
+ (clientWindow.blockNextInput = !0);
}
- } else ('d' != g && A.data) || (C('backspace', 'keydown'), C('backspace', 'keyup'), (clientWindow.blockNextInput = !1));
+ } else
+ ('d' != g && A.data) ||
+ (C('backspace', 'keydown'), C('backspace', 'keyup'), (clientWindow.blockNextInput = !1));
}
(clientWindow.lastKey = I), (h.value = ' ');
},
- !1
+ !1,
),
h.addEventListener(
'input',
function (A) {
' ' != h.value && (h.value = ' ');
},
- !1
+ !1,
),
h.addEventListener(
'keydown',
function (A) {
- (229 != A.keyCode && 229 != A.which) || clientWindow.keyboardFix || (clientWindow.console.warn('Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.'), (clientWindow.keyboardFix = !0), clientWindow.lastKey && (C(clientWindow.lastKey, 'keydown'), C(clientWindow.lastKey, 'keyup')));
+ (229 != A.keyCode && 229 != A.which) ||
+ clientWindow.keyboardFix ||
+ (clientWindow.console.warn(
+ 'Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.',
+ ),
+ (clientWindow.keyboardFix = !0),
+ clientWindow.lastKey && (C(clientWindow.lastKey, 'keydown'), C(clientWindow.lastKey, 'keyup')));
},
- !1
+ !1,
),
h.addEventListener('blur', function (A) {
clientWindow.hiddenInputFocused = !1;
@@ -482,14 +519,15 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
A.preventDefault();
},
- !1
+ !1,
),
a.addEventListener(
'touchend',
function (A) {
- A.preventDefault(), clientWindow.hiddenInputFocused ? h.blur() : (h.select(), (clientWindow.hiddenInputFocused = !0));
+ A.preventDefault(),
+ clientWindow.hiddenInputFocused ? h.blur() : (h.select(), (clientWindow.hiddenInputFocused = !0));
},
- !1
+ !1,
),
document.body.appendChild(a);
let p = Z('placeButton', 'inGame');
@@ -499,14 +537,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
t(2, 'mousedown', i);
},
- !1
+ !1,
),
p.addEventListener(
'touchend',
function (A) {
t(2, 'mouseup', i);
},
- !1
+ !1,
),
document.body.appendChild(p);
let R = Z('breakButton', 'inGame');
@@ -516,14 +554,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
t(0, 'mousedown', i);
},
- !1
+ !1,
),
R.addEventListener(
'touchend',
function (A) {
t(0, 'mouseup', i);
},
- !1
+ !1,
),
document.body.appendChild(R);
let W = Z('selectButton', 'inGame');
@@ -533,14 +571,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
t(1, 'mousedown', i);
},
- !1
+ !1,
),
W.addEventListener(
'touchend',
function (A) {
t(1, 'mouseup', i);
},
- !1
+ !1,
),
document.body.appendChild(W);
let u = Z('scrollUpButton', 'inGame');
@@ -550,7 +588,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
G(i, -10);
},
- !1
+ !1,
),
document.body.appendChild(u);
let Y = Z('scrollDownButton', 'inGame');
@@ -560,7 +598,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
G(i, 10);
},
- !1
+ !1,
),
document.body.appendChild(Y);
let S = Z('throwButton', 'inGame');
@@ -570,14 +608,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('q', 'keydown');
},
- !1
+ !1,
),
S.addEventListener(
'touchend',
function (A) {
C('q', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(S);
let j = Z('sprintButton', 'inGame');
@@ -591,14 +629,16 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
(clientWindow.sprintLock = null != clientWindow.sprintLock), j.classList.toggle('active');
}, 1e3));
},
- !1
+ !1,
),
j.addEventListener(
'touchend',
function (A) {
- clientWindow.sprintLock || (C('r', 'keyup'), j.classList.remove('active'), (clientWindow.sprintLock = !1)), clearTimeout(clientWindow.sprintTimer);
+ clientWindow.sprintLock ||
+ (C('r', 'keyup'), j.classList.remove('active'), (clientWindow.sprintLock = !1)),
+ clearTimeout(clientWindow.sprintTimer);
},
- !1
+ !1,
),
document.body.appendChild(j);
let y = Z('pauseButton', 'inGame');
@@ -608,14 +648,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('`', 'keydown');
},
- !1
+ !1,
),
y.addEventListener(
'touchend',
function (A) {
C('`', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(y);
let L = Z('chatButton', 'inGame');
@@ -625,7 +665,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('t', 'keydown');
},
- !1
+ !1,
),
document.body.appendChild(L);
let N = Z('perspectiveButton', 'inGame');
@@ -635,14 +675,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('f', 'keydown'), C('5', 'keydown');
},
- !1
+ !1,
),
N.addEventListener(
'touchend',
function (A) {
C('f', 'keyup'), C('5', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(N);
let U = Z('screenshotButton', 'inGame');
@@ -652,14 +692,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('f', 'keydown'), C('2', 'keydown');
},
- !1
+ !1,
),
U.addEventListener(
'touchend',
function (A) {
C('f', 'keyup'), C('2', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(U);
let z = Z('coordinatesButton', 'inGame');
@@ -669,14 +709,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (A) {
C('f', 'keydown'), C('3', 'keydown');
},
- !1
+ !1,
),
z.addEventListener(
'touchend',
function (A) {
C('f', 'keyup'), C('3', 'keyup');
},
- !1
+ !1,
),
document.body.appendChild(z);
})();
diff --git a/src/resources/scripts/eagler-launch/1.8.8/eaglerpocketmobile.ts b/src/resources/scripts/eagler-launch/1.8.8/eaglerpocketmobile.ts
index 7eed39a..190eacf 100644
--- a/src/resources/scripts/eagler-launch/1.8.8/eaglerpocketmobile.ts
+++ b/src/resources/scripts/eagler-launch/1.8.8/eaglerpocketmobile.ts
@@ -160,7 +160,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
}
return fn.apply(this, args); // Appends the rest of the function specified by addEventListener
},
- ...rest
+ ...rest,
);
} else {
// If it's not a keydown event, behave like normal (hopefully)
@@ -200,14 +200,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
clientY: event.clientY,
screenX: event.screenX,
screenY: event.screenY,
- })
+ }),
);
}
function wheelEvent(element, delta) {
element.dispatchEvent(
new WheelEvent('wheel', {
wheelDeltaY: delta,
- })
+ }),
);
}
function setButtonVisibility(pointerLocked) {
@@ -285,7 +285,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
element.hidden = true;
element.style.display = 'none';
},
- { passive: false, once: true }
+ { passive: false, once: true },
);
window.addEventListener(
'focus',
@@ -295,7 +295,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
element.style.display = 'none';
}, 300);
},
- { once: true }
+ { once: true },
);
document.body.appendChild(element);
}
@@ -347,7 +347,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
e.preventDefault();
},
- false
+ false,
);
touchButton.addEventListener('contextmenu', function (e) {
e.preventDefault();
@@ -393,7 +393,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
}
}
},
- false
+ false,
);
canvas.addEventListener(
@@ -411,7 +411,8 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
if (primaryTouch) {
primaryTouch.distanceX = primaryTouch.clientX - canvasTouchStartX;
primaryTouch.distanceY = primaryTouch.clientY - canvasTouchStartY;
- primaryTouch.squaredNorm = primaryTouch.distanceX * primaryTouch.distanceX + primaryTouch.distanceY * primaryTouch.distanceY;
+ primaryTouch.squaredNorm =
+ primaryTouch.distanceX * primaryTouch.distanceX + primaryTouch.distanceY * primaryTouch.distanceY;
primaryTouch.movementX = primaryTouch.clientX - canvasTouchPreviousX;
primaryTouch.movementY = primaryTouch.clientY - canvasTouchPreviousY;
if (window.canvasTouchMode == 1) {
@@ -439,7 +440,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
screenY: primaryTouch.screenY, // The top four are used for item position when in GUI's, the bottom two are for moving the camera inGame
movementX: primaryTouch.movementX,
movementY: primaryTouch.movementY,
- })
+ }),
);
}
}
@@ -447,7 +448,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
canvasTouchPreviousY = primaryTouch.clientY;
}
},
- false
+ false,
);
function canvasTouchEnd(e) {
@@ -495,7 +496,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
strafeLeftButton.classList.remove('hide');
forwardButton.classList.add('active');
},
- false
+ false,
);
forwardButton.addEventListener(
'touchmove',
@@ -523,7 +524,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
strafeLeftButton.classList.remove('active');
}
},
- false
+ false,
);
forwardButton.addEventListener(
'touchend',
@@ -539,7 +540,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
buttonTouchStartX = null;
},
- false
+ false,
);
strafeRightButton.classList.add('hide');
strafeLeftButton.classList.add('hide');
@@ -552,14 +553,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('d', 'keydown');
},
- false
+ false,
);
rightButton.addEventListener(
'touchend',
function (e) {
keyEvent('d', 'keyup');
},
- false
+ false,
);
document.body.appendChild(rightButton);
const leftButton = createTouchButton('leftButton', 'inGame');
@@ -569,14 +570,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('a', 'keydown');
},
- false
+ false,
);
leftButton.addEventListener(
'touchend',
function (e) {
keyEvent('a', 'keyup');
},
- false
+ false,
);
document.body.appendChild(leftButton);
const backButton = createTouchButton('backButton', 'inGame');
@@ -586,14 +587,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('s', 'keydown');
},
- false
+ false,
);
backButton.addEventListener(
'touchend',
function (e) {
keyEvent('s', 'keyup');
},
- false
+ false,
);
document.body.appendChild(backButton);
const jumpButton = createTouchButton('jumpButton', 'inGame');
@@ -603,14 +604,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent(' ', 'keydown');
},
- false
+ false,
);
jumpButton.addEventListener(
'touchend',
function (e) {
keyEvent(' ', 'keyup');
},
- false
+ false,
);
document.body.appendChild(jumpButton);
@@ -627,7 +628,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
crouchButton.classList.toggle('active');
}, 1000);
},
- false
+ false,
);
crouchButton.addEventListener(
@@ -640,7 +641,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
}
clearTimeout(window.crouchTimer);
},
- false
+ false,
);
document.body.appendChild(crouchButton);
const inventoryButton = createTouchButton('inventoryButton', 'inGame');
@@ -651,7 +652,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('e', 'keydown');
},
- false
+ false,
);
inventoryButton.addEventListener(
'touchend',
@@ -660,7 +661,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('shift', 'keyup'); // Sometimes shift gets stuck on, which interferes with item manipulation in GUI's
keyEvent('e', 'keyup');
},
- false
+ false,
);
document.body.appendChild(inventoryButton);
const exitButton = createTouchButton('exitButton', 'inMenu');
@@ -671,14 +672,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('`', 'keydown');
},
- false
+ false,
);
exitButton.addEventListener(
'touchend',
function (e) {
keyEvent('`', 'keyup');
},
- false
+ false,
);
document.body.appendChild(exitButton);
// ---Input Handling---
@@ -703,7 +704,8 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
const hiddenInput = document.createElement('input', true);
hiddenInput.id = 'hiddenInput';
hiddenInput.classList.add('inMenu');
- hiddenInput.style.cssText = 'position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh; width: 8vh; height: 8vh;font-size:20px;z-index: -10;color: transparent;text-shadow: 0 0 0 black;'; // We hide the input behind a key because display: none and opacity:0 causes issues
+ hiddenInput.style.cssText =
+ 'position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh; width: 8vh; height: 8vh;font-size:20px;z-index: -10;color: transparent;text-shadow: 0 0 0 black;'; // We hide the input behind a key because display: none and opacity:0 causes issues
hiddenInput.addEventListener(
'beforeinput',
function (e) {
@@ -753,7 +755,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
window.lastKey = inputData; // Saves the last key pressed
hiddenInput.value = ' '; //This previously allowed us to have a character to delete, but beforeinput doesn't require this. This does allow us to check wether Duplicate Mode is necessary though
},
- false
+ false,
);
hiddenInput.addEventListener(
'input',
@@ -764,14 +766,16 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
hiddenInput.value = ' ';
}
},
- false
+ false,
);
hiddenInput.addEventListener(
'keydown',
function (e) {
// Enables Compatibility Mode if we receive an invalid key press event
if ((e.keyCode == 229 || e.which == 229) && !window.keyboardFix) {
- window.console.warn('Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.');
+ window.console.warn(
+ 'Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.',
+ );
window.keyboardFix = true;
if (window.lastKey) {
// Resend the last saved key press (which is being tracked by the beforeinput event listener) so the transition to Compatibility Mode isn't noticeable
@@ -780,7 +784,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
}
}
},
- false
+ false,
);
hiddenInput.addEventListener('blur', function (e) {
// Updates window.hiddenInputFocused to reflect the actual state of the focus
@@ -795,7 +799,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
e.preventDefault();
},
- false
+ false,
);
keyboardButton.addEventListener(
'touchend',
@@ -808,7 +812,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
window.hiddenInputFocused = true;
}
},
- false
+ false,
);
document.body.appendChild(keyboardButton);
const placeButton = createTouchButton('placeButton', 'inGame');
@@ -818,14 +822,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
mouseEvent(2, 'mousedown', canvas);
},
- false
+ false,
);
placeButton.addEventListener(
'touchend',
function (e) {
mouseEvent(2, 'mouseup', canvas);
},
- false
+ false,
);
document.body.appendChild(placeButton);
const breakButton = createTouchButton('breakButton', 'inGame');
@@ -835,14 +839,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
mouseEvent(0, 'mousedown', canvas);
},
- false
+ false,
);
breakButton.addEventListener(
'touchend',
function (e) {
mouseEvent(0, 'mouseup', canvas);
},
- false
+ false,
);
document.body.appendChild(breakButton);
const selectButton = createTouchButton('selectButton', 'inGame');
@@ -852,14 +856,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
mouseEvent(1, 'mousedown', canvas);
},
- false
+ false,
);
selectButton.addEventListener(
'touchend',
function (e) {
mouseEvent(1, 'mouseup', canvas);
},
- false
+ false,
);
document.body.appendChild(selectButton);
const scrollUpButton = createTouchButton('scrollUpButton', 'inGame');
@@ -870,7 +874,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
wheelEvent(canvas, -10);
},
- false
+ false,
);
document.body.appendChild(scrollUpButton);
const scrollDownButton = createTouchButton('scrollDownButton', 'inGame');
@@ -881,7 +885,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
wheelEvent(canvas, 10);
},
- false
+ false,
);
document.body.appendChild(scrollDownButton);
const throwButton = createTouchButton('throwButton', 'inGame');
@@ -892,14 +896,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('q', 'keydown');
},
- false
+ false,
);
throwButton.addEventListener(
'touchend',
function (e) {
keyEvent('q', 'keyup');
},
- false
+ false,
);
document.body.appendChild(throwButton);
const sprintButton = createTouchButton('sprintButton', 'inGame');
@@ -914,7 +918,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
sprintButton.classList.toggle('active');
}, 1000);
},
- false
+ false,
);
sprintButton.addEventListener(
@@ -927,7 +931,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
}
clearTimeout(window.sprintTimer);
},
- false
+ false,
);
document.body.appendChild(sprintButton);
const pauseButton = createTouchButton('pauseButton', 'inGame');
@@ -938,14 +942,14 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('`', 'keydown');
},
- false
+ false,
);
pauseButton.addEventListener(
'touchend',
function (e) {
keyEvent('`', 'keyup');
},
- false
+ false,
);
document.body.appendChild(pauseButton);
const chatButton = createTouchButton('chatButton', 'inGame');
@@ -956,7 +960,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
function (e) {
keyEvent('t', 'keydown');
},
- false
+ false,
); // For some reason dispatching a keyup event for this closes the chat, which is really weird
document.body.appendChild(chatButton);
const perspectiveButton = createTouchButton('perspectiveButton', 'inGame');
@@ -968,7 +972,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keydown');
keyEvent('5', 'keydown');
},
- false
+ false,
);
perspectiveButton.addEventListener(
'touchend',
@@ -976,7 +980,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keyup');
keyEvent('5', 'keyup');
},
- false
+ false,
);
document.body.appendChild(perspectiveButton);
const screenshotButton = createTouchButton('screenshotButton', 'inGame');
@@ -988,7 +992,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keydown');
keyEvent('2', 'keydown');
},
- false
+ false,
);
screenshotButton.addEventListener(
'touchend',
@@ -996,7 +1000,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keyup');
keyEvent('2', 'keyup');
},
- false
+ false,
);
document.body.appendChild(screenshotButton);
const coordinatesButton = createTouchButton('coordinatesButton', 'inGame');
@@ -1008,7 +1012,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keydown');
keyEvent('3', 'keydown');
},
- false
+ false,
);
coordinatesButton.addEventListener(
'touchend',
@@ -1016,7 +1020,7 @@ if (new URLSearchParams(window.location.search).get('mobile') === 'true') {
keyEvent('f', 'keyup');
keyEvent('3', 'keyup');
},
- false
+ false,
);
document.body.appendChild(coordinatesButton);
}
diff --git a/src/resources/scripts/main.ts b/src/resources/scripts/main.ts
index 7529e7b..b87b898 100644
--- a/src/resources/scripts/main.ts
+++ b/src/resources/scripts/main.ts
@@ -7,7 +7,10 @@ let articleAnimationLock = false;
const theme = {
load: function (themeToLoad?: string) {
const themeElement = document.querySelector('#theme') as HTMLLinkElement | null;
- if (themeElement) themeElement.href = themeToLoad ? `/resources/styles/themes/${themeToLoad}.css` : `/resources/styles/themes/${storage.local.get('theme') ?? 'default'}.css`;
+ if (themeElement)
+ themeElement.href = themeToLoad
+ ? `/resources/styles/themes/${themeToLoad}.css`
+ : `/resources/styles/themes/${storage.local.get('theme') ?? 'default'}.css`;
},
set: function (newTheme: string) {
storage.local.set('theme', newTheme);
@@ -77,7 +80,9 @@ const game = {
'1.5': '15-client-version',
'b1.3': 'b13-client-version',
};
- const dropdown = clients[client] ? (document.querySelector(`#${clients[client]}`) as HTMLSelectElement | null) : null;
+ const dropdown = clients[client]
+ ? (document.querySelector(`#${clients[client]}`) as HTMLSelectElement | null)
+ : null;
if (dropdown?.value) {
selectedVersion = `https://archive.eaglercraft.rip/Eaglercraft${client === '1.8' ? 'X_1.8' : `_${client}`}/client/${dropdown.value}/index.html`;
game.play();
@@ -174,7 +179,7 @@ const article = {
modal.addEventListener('click', closeArticleHandler);
articleAnimationLock = false;
},
- { once: true }
+ { once: true },
);
}
},
@@ -189,7 +194,7 @@ const article = {
modal.style.display = 'none';
articleAnimationLock = false;
},
- { once: true }
+ { once: true },
);
}
},
@@ -408,7 +413,13 @@ if (window.location.pathname === '/') {
const lastPage = storage.session.get('lastPage');
const isMobile = detect.mobile();
const iframe = document.createElement('iframe');
- iframe.src = !storage.local.get('lastVersion') ? '/welcome/' : lastPage ? lastPage : isMobile ? '/mobile/' : '/home/game/';
+ iframe.src = !storage.local.get('lastVersion')
+ ? '/welcome/'
+ : lastPage
+ ? lastPage
+ : isMobile
+ ? '/mobile/'
+ : '/home/game/';
document.addEventListener('DOMContentLoaded', () => document.body.appendChild(iframe));
@@ -429,7 +440,7 @@ if (window.location.pathname === '/') {
theme.load();
document.addEventListener('DOMContentLoaded', async () => {
- const profileName = document.querySelector('.profile-name');
+ const profileName = document.querySelector('.profile span');
const titleBarText = document.querySelector('.title-bar span');
const lastVersion = storage.local.get('lastVersion');
@@ -440,8 +451,11 @@ if (window.location.pathname === '/') {
if (profileName) profileName.textContent = storage.local.get('username');
if (titleBarText) titleBarText.textContent += ` ${currentVersion}`;
- // @ts-expect-error
- if (lastVersion && gt(coerce(currentVersion, { includePrerelease: true }), coerce(lastVersion, { includePrerelease: true }))) {
+ if (
+ lastVersion &&
+ // @ts-expect-error
+ gt(coerce(currentVersion, { includePrerelease: true }), coerce(lastVersion, { includePrerelease: true }))
+ ) {
alert(`MineXLauncher has been updated to v${currentVersion}!\n\nChanges in v${currentVersion}:\n${changelog}`);
storage.local.set('lastVersion', currentVersion);
}
@@ -469,7 +483,7 @@ if (window.location.pathname === '/') {
if (window.location.pathname === '/settings/') {
document.addEventListener('DOMContentLoaded', async () => {
- const profileName = document.querySelector('.profile-name');
+ const profileName = document.querySelector('.profile span');
const usernameInput = document.querySelector('#username-input') as HTMLInputElement | null;
const themeSelect = document.querySelector('#theme-select') as HTMLSelectElement | null;
const offlineCheckbox = document.querySelector('#offline-checkbox') as HTMLInputElement | null;
@@ -506,7 +520,7 @@ if (window.location.pathname === '/settings/') {
if (offlineCheckbox.checked) {
sw.register('/sw-full.js');
alert(
- 'Offline cache is now downloading.\nThe download size is about 1GB, so it may take a while.\n\nPlease do not leave this page while the download is in progress.\nYou will be notified when the download is complete.'
+ 'Offline cache is now downloading.\nThe download size is about 1GB, so it may take a while.\n\nPlease do not leave this page while the download is in progress.\nYou will be notified when the download is complete.',
);
} else {
sw.register('/sw.js');
@@ -567,12 +581,15 @@ if (window.location.pathname === '/settings/') {
// storage.local.set('offlineCache', offlineCheckbox?.checked ?? false);
// storage.local.set('showAds', true);
storage.local.set('mods', []);
- storage.local.set('lastVersion', (await (await fetch('/resources/data/main.json')).json()).updates[0].version);
+ storage.local.set(
+ 'lastVersion',
+ (await (await fetch('/resources/data/main.json')).json()).updates[0].version,
+ );
if (offlineCheckbox?.checked) {
sw.register('/sw-full.js');
alert(
- 'Offline cache is now downloading.\nThe download size is about 1GB, so it may take a while.\n\nPlease do not leave this page while the download is in progress.\nYou will be notified when the download is complete.'
+ 'Offline cache is now downloading.\nThe download size is about 1GB, so it may take a while.\n\nPlease do not leave this page while the download is in progress.\nYou will be notified when the download is complete.',
);
} else sw.register('/sw.js');
@@ -585,7 +602,14 @@ if (window.location.pathname === '/settings/') {
} else if (window.location.pathname === '/mods/mods/' || window.location.pathname === '/mods/resourcepacks/') {
document.addEventListener('DOMContentLoaded', async () => {
const addonType: 'mods' | 'resourcepacks' = window.location.pathname === '/mods/mods/' ? 'mods' : 'resourcepacks';
- const addonData: { id: string; name: string; description: string; author: string; authorLink: string; source: string }[] = (await (await fetch('/resources/data/main.json')).json()).addons;
+ const addonData: {
+ id: string;
+ name: string;
+ description: string;
+ author: string;
+ authorLink: string;
+ source: string;
+ }[] = (await (await fetch('/resources/data/main.json')).json()).addons;
const modList = document.querySelector('.mod-list');
// @ts-expect-error
addonData[addonType].forEach((addon) => {
@@ -616,7 +640,9 @@ if (window.location.pathname === '/settings/') {
} else if (window.location.pathname === '/updates/') {
document.addEventListener('DOMContentLoaded', async () => {
const updatesContainer = document.querySelector('.updates-container');
- const updateData: { version: string; changelog: string[] }[] = (await (await fetch('/resources/data/main.json')).json()).updates;
+ const updateData: { version: string; changelog: string[] }[] = (
+ await (await fetch('/resources/data/main.json')).json()
+ ).updates;
updateData.forEach((update) => {
const versionHeader = document.createElement('strong');
versionHeader.textContent = `MineXLauncher ${update.version}`;
diff --git a/src/resources/styles/themes/campfire.css b/src/resources/styles/themes/campfire.css
index ad976e7..3b8fc52 100644
--- a/src/resources/styles/themes/campfire.css
+++ b/src/resources/styles/themes/campfire.css
@@ -26,8 +26,8 @@ body {
border-bottom: 1px solid #4a2f1b;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #5a3a2a;
}
diff --git a/src/resources/styles/themes/cherry-blossom.css b/src/resources/styles/themes/cherry-blossom.css
index a8e42c5..16c72bb 100644
--- a/src/resources/styles/themes/cherry-blossom.css
+++ b/src/resources/styles/themes/cherry-blossom.css
@@ -22,8 +22,8 @@ body {
border-bottom: 1px solid #e0d1e3;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #f4c6d0;
}
diff --git a/src/resources/styles/themes/default.css b/src/resources/styles/themes/default.css
index e0ebf01..c99f4de 100644
--- a/src/resources/styles/themes/default.css
+++ b/src/resources/styles/themes/default.css
@@ -67,7 +67,7 @@ body {
text-align: center;
}
-.profile-name {
+.profile span {
font-weight: bold;
display: block;
font-size: 16px;
@@ -83,7 +83,7 @@ body {
scrollbar-color: #555 #333;
}
-.nav-bar .nav-item {
+.nav-bar li {
display: flex;
align-items: center;
padding: 15px 20px;
@@ -91,18 +91,18 @@ body {
transition: background-color 0.2s;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #444;
}
-.nav-bar .nav-item .nav-icon {
+.nav-bar li img {
width: 24px;
height: 24px;
margin-right: 15px;
}
-.nav-bar .nav-item .nav-text {
+.nav-bar li span {
font-size: 14px;
}
@@ -249,7 +249,10 @@ body {
scrollbar-color: #048239 #035525;
max-height: 0;
overflow: auto;
- transition: max-height 0.3s ease-out, padding 0.3s ease-out, opacity 0.3s ease-out;
+ transition:
+ max-height 0.3s ease-out,
+ padding 0.3s ease-out,
+ opacity 0.3s ease-out;
}
.custom-options.open {
@@ -292,7 +295,10 @@ body {
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
- transition: background-color 0.2s, border-color 0.2s, transform 0.2s;
+ transition:
+ background-color 0.2s,
+ border-color 0.2s,
+ transform 0.2s;
overflow: hidden;
position: relative;
}
@@ -539,11 +545,18 @@ body {
font-size: 1rem;
cursor: pointer;
appearance: none;
- background-image: linear-gradient(45deg, transparent 50%, #ffffff 50%), linear-gradient(135deg, #1e1e1e 50%, transparent 50%);
- background-position: right 0.7rem center, right 0.7rem center;
+ background-image: linear-gradient(45deg, transparent 50%, #ffffff 50%),
+ linear-gradient(135deg, #1e1e1e 50%, transparent 50%);
+ background-position:
+ right 0.7rem center,
+ right 0.7rem center;
background-repeat: no-repeat;
- background-size: 0.65rem auto, 0.65rem auto;
- transition: border-color 0.3s, background-color 0.3s;
+ background-size:
+ 0.65rem auto,
+ 0.65rem auto;
+ transition:
+ border-color 0.3s,
+ background-color 0.3s;
}
.version-select:focus {
diff --git a/src/resources/styles/themes/hyperdark.css b/src/resources/styles/themes/hyperdark.css
index dbd37d4..f99369d 100644
--- a/src/resources/styles/themes/hyperdark.css
+++ b/src/resources/styles/themes/hyperdark.css
@@ -18,8 +18,8 @@ body {
background-color: #262626;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #333;
}
diff --git a/src/resources/styles/themes/light.css b/src/resources/styles/themes/light.css
index 7278ab2..2712256 100644
--- a/src/resources/styles/themes/light.css
+++ b/src/resources/styles/themes/light.css
@@ -1,111 +1,117 @@
body {
- background-color: #f5f5f5;
- color: #333;
+ background-color: #f5f5f5;
+ color: #333;
}
.launcher {
- background-color: #fff;
- box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+ background-color: #fff;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
-.title-bar, .top-title, .top-nav, .bottom-bar {
- background-color: #e0e0e0;
- color: #333;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+.title-bar,
+.top-title,
+.top-nav,
+.bottom-bar {
+ background-color: #e0e0e0;
+ color: #333;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.sidebar {
- background-color: #f0f0f0;
- border-right: 1px solid #ddd;
+ background-color: #f0f0f0;
+ border-right: 1px solid #ddd;
}
.profile {
- border-bottom: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
}
-.nav-bar .nav-item {
- color: #333;
+.nav-bar li {
+ color: #333;
}
-.nav-bar .nav-item:hover, .nav-bar .nav-item.selected {
- background-color: #ddd;
+.nav-bar li:hover,
+.nav-bar li.selected {
+ background-color: #ddd;
}
-.main-panel, .main-content {
- background-color: #fafafa;
+.main-panel,
+.main-content {
+ background-color: #fafafa;
}
.installations {
- background-color: #e0e0e0;
- border-top: 1px solid #ddd;
+ background-color: #e0e0e0;
+ border-top: 1px solid #ddd;
}
.custom-select {
- border: 2px solid #ccc;
- background-color: #fff;
- color: #333;
- box-shadow: 4px 4px #ddd;
+ border: 2px solid #ccc;
+ background-color: #fff;
+ color: #333;
+ box-shadow: 4px 4px #ddd;
}
.custom-select:hover {
- box-shadow: 6px 6px #ddd;
+ box-shadow: 6px 6px #ddd;
}
.custom-options {
- border: 2px solid #ccc;
- background-color: #fff;
- box-shadow: 4px 4px #ddd;
+ border: 2px solid #ccc;
+ background-color: #fff;
+ box-shadow: 4px 4px #ddd;
}
.custom-option {
- border-bottom: 1px solid #ccc;
- color: #333;
+ border-bottom: 1px solid #ccc;
+ color: #333;
}
.custom-option:hover {
- background-color: #f0f0f0;
+ background-color: #f0f0f0;
}
.play-button {
- background-color: #4caf50;
- border: 2px solid #388e3c;
- color: #fff;
+ background-color: #4caf50;
+ border: 2px solid #388e3c;
+ color: #fff;
}
.play-button:hover {
- background-color: #66bb6a;
- border-color: #2e7d32;
+ background-color: #66bb6a;
+ border-color: #2e7d32;
}
-.bottom-bar .bottom-bar-left, .bottom-bar .bottom-bar-right {
- color: #333;
+.bottom-bar .bottom-bar-left,
+.bottom-bar .bottom-bar-right {
+ color: #333;
}
.minecraft-button {
- background-color: #e0e0e0;
- border: 1px solid #ccc;
+ background-color: #e0e0e0;
+ border: 1px solid #ccc;
}
.minecraft-button:hover {
- background-color: #d5d5d5;
+ background-color: #d5d5d5;
}
.minecraft-button:active {
- background-color: #bdbdbd;
+ background-color: #bdbdbd;
}
.download-link {
- background-color: #4caf50;
+ background-color: #4caf50;
}
.download-link:hover {
- background-color: #66bb6a;
+ background-color: #66bb6a;
}
.top-nav ul li {
- color: #666;
+ color: #666;
}
.top-nav ul li.selected {
- color: #333;
-}
\ No newline at end of file
+ color: #333;
+}
diff --git a/src/resources/styles/themes/nether.css b/src/resources/styles/themes/nether.css
index 951f284..18cc58e 100644
--- a/src/resources/styles/themes/nether.css
+++ b/src/resources/styles/themes/nether.css
@@ -25,8 +25,8 @@ body {
color: #ff4500;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #5c3c3c;
}
diff --git a/src/resources/styles/themes/overworld.css b/src/resources/styles/themes/overworld.css
index 582bd74..ab6186e 100644
--- a/src/resources/styles/themes/overworld.css
+++ b/src/resources/styles/themes/overworld.css
@@ -25,8 +25,8 @@ body {
color: #00ff00;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #5c7c5c;
}
diff --git a/src/resources/styles/themes/retro.css b/src/resources/styles/themes/retro.css
index 5af0200..219bf23 100644
--- a/src/resources/styles/themes/retro.css
+++ b/src/resources/styles/themes/retro.css
@@ -26,7 +26,7 @@ body {
}
.profile,
-.nav-bar .nav-item,
+.nav-bar li,
.installations,
.custom-select,
.custom-options,
@@ -38,8 +38,8 @@ body {
color: #00ff00;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected,
+.nav-bar li:hover,
+.nav-bar li.selected,
.custom-option:hover,
.play-button:hover,
.minecraft-button:hover,
diff --git a/src/resources/styles/themes/starfall.css b/src/resources/styles/themes/starfall.css
index 414cc97..52d33cb 100644
--- a/src/resources/styles/themes/starfall.css
+++ b/src/resources/styles/themes/starfall.css
@@ -18,8 +18,8 @@ body {
box-shadow: 0 2px 4px rgba(255, 255, 255, 0.2);
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: rgba(255, 255, 255, 0.1);
color: #00ccff;
}
diff --git a/src/resources/styles/themes/the-end.css b/src/resources/styles/themes/the-end.css
index 04858f5..bb2ad26 100644
--- a/src/resources/styles/themes/the-end.css
+++ b/src/resources/styles/themes/the-end.css
@@ -27,8 +27,8 @@ body {
border-bottom: 1px solid #330066;
}
-.nav-bar .nav-item:hover,
-.nav-bar .nav-item.selected {
+.nav-bar li:hover,
+.nav-bar li.selected {
background-color: #330066;
}
diff --git a/src/servers/index.html b/src/servers/index.html
index 0b1bd57..1bcdb06 100644
--- a/src/servers/index.html
+++ b/src/servers/index.html
@@ -1,4 +1,4 @@
-
+
@@ -12,7 +12,14 @@
-
+
@@ -21,32 +28,32 @@
@@ -60,7 +67,9 @@
© 2024 MineXLauncher. All rights reserved.
@@ -68,7 +77,14 @@
-
+
diff --git a/src/settings/index.html b/src/settings/index.html
index 4dcd944..310ac5f 100644
--- a/src/settings/index.html
+++ b/src/settings/index.html
@@ -1,4 +1,4 @@
-
+
@@ -12,7 +12,14 @@
-
+
@@ -21,32 +28,32 @@
@@ -80,7 +87,9 @@
© 2024 MineXLauncher. All rights reserved.
@@ -88,7 +97,14 @@
-
+
diff --git a/src/sw-full.ts b/src/sw-full.ts
index 3ebed3d..ad0e4e9 100644
--- a/src/sw-full.ts
+++ b/src/sw-full.ts
@@ -16,7 +16,7 @@ self.addEventListener('install', (event) => {
console.log(`Cached: ${asset} (${progress})`);
}
- })
+ }),
);
});
@@ -32,7 +32,7 @@ self.addEventListener('activate', (event) => {
} else {
return null;
}
- })
+ }),
);
})
.then(() => {
@@ -46,7 +46,7 @@ self.addEventListener('activate', (event) => {
});
});
});
- })
+ }),
);
});
@@ -54,6 +54,6 @@ self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response ?? fetch(event.request);
- })
+ }),
);
});
diff --git a/src/sw.ts b/src/sw.ts
index 3c62b7e..aa87740 100644
--- a/src/sw.ts
+++ b/src/sw.ts
@@ -55,7 +55,7 @@ self.addEventListener('install', (event) => {
console.log(`Cached: ${asset} (${progress})`);
}
- })
+ }),
);
});
@@ -69,9 +69,9 @@ self.addEventListener('activate', (event) => {
} else {
return null;
}
- })
+ }),
);
- })
+ }),
);
});
@@ -80,13 +80,13 @@ self.addEventListener('fetch', (event) => {
event.respondWith(
fetch(event.request).catch(() => {
return caches.match(OFFLINE_URL);
- })
+ }),
);
} else {
event.respondWith(
fetch(event.request).catch(() => {
return caches.match(event.request);
- })
+ }),
);
}
});
diff --git a/src/updates/index.html b/src/updates/index.html
index 8906e1a..e2c5ac0 100644
--- a/src/updates/index.html
+++ b/src/updates/index.html
@@ -1,4 +1,4 @@
-
+
@@ -12,7 +12,14 @@
-
+
@@ -21,32 +28,32 @@
@@ -61,7 +68,9 @@
© 2024 MineXLauncher. All rights reserved.
@@ -69,7 +78,14 @@
-
+
diff --git a/src/welcome/index.html b/src/welcome/index.html
index 3486aa8..a33049a 100644
--- a/src/welcome/index.html
+++ b/src/welcome/index.html
@@ -1,4 +1,4 @@
-
+
@@ -39,7 +39,9 @@
© 2024 MineXLauncher. All rights reserved.