mirror of
https://github.com/zumbiepig/MineXLauncher.git
synced 2025-06-08 09:24:48 +00:00
.
This commit is contained in:
parent
0af92d1139
commit
4cfe54f5f1
@ -35,12 +35,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -76,12 +76,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
@ -94,7 +90,7 @@
|
|||||||
data-full-width-responsive="true"
|
data-full-width-responsive="true"
|
||||||
></ins>
|
></ins>
|
||||||
</div>
|
</div>
|
||||||
<div class="article" id="article-mc-server">
|
<div class="article" data-article-id="mc-server">
|
||||||
<div>
|
<div>
|
||||||
<span onclick="article.close('mc-server')">×</span>
|
<span onclick="article.close('mc-server')">×</span>
|
||||||
<div>
|
<div>
|
||||||
@ -210,7 +206,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="article" id="article-cloudflare-tunnel">
|
<div class="article" data-article-id="cloudflare-tunnel">
|
||||||
<div>
|
<div>
|
||||||
<span onclick="article.close('cloudflare-tunnel')">×</span>
|
<span onclick="article.close('cloudflare-tunnel')">×</span>
|
||||||
<div>
|
<div>
|
||||||
|
@ -222,12 +222,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -96,12 +96,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -84,12 +84,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -116,12 +116,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -41,12 +41,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -69,12 +69,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -66,12 +66,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -35,12 +35,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -82,12 +82,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -160,8 +160,8 @@ const navigate = {
|
|||||||
|
|
||||||
const article = {
|
const article = {
|
||||||
open: function (articleId: string) {
|
open: function (articleId: string) {
|
||||||
const modal = document.querySelector(`#article-${articleId}`) as HTMLElement | null;
|
const modal = document.querySelector(`.article[data-article-id='${articleId}']`) as HTMLElement | null;
|
||||||
const modalContent = document.querySelector(`#article-${articleId} div`) as HTMLElement | null;
|
const modalContent = document.querySelector(`.article[data-article-id='${articleId}'] > div`) as HTMLElement | null;
|
||||||
if (!articleAnimationLock && modal && modalContent) {
|
if (!articleAnimationLock && modal && modalContent) {
|
||||||
articleAnimationLock = true;
|
articleAnimationLock = true;
|
||||||
modal.style.animation = '0.5s ease-in-out 1 normal article';
|
modal.style.animation = '0.5s ease-in-out 1 normal article';
|
||||||
@ -184,7 +184,7 @@ const article = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
close: function (articleId: string) {
|
close: function (articleId: string) {
|
||||||
const modal = document.querySelector(`#article-${articleId}`) as HTMLElement | null;
|
const modal = document.querySelector(`.article[data-article-id='${articleId}']`) as HTMLElement | null;
|
||||||
if (!articleAnimationLock && modal) {
|
if (!articleAnimationLock && modal) {
|
||||||
articleAnimationLock = true;
|
articleAnimationLock = true;
|
||||||
modal.style.animation = '0.5s ease-in-out 1 reverse article-tempfix';
|
modal.style.animation = '0.5s ease-in-out 1 reverse article-tempfix';
|
||||||
@ -301,26 +301,6 @@ const detect = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const mods = {
|
const mods = {
|
||||||
check: function (mod: string): boolean {
|
|
||||||
const mods: string[] = storage.local.get('mods') ?? [];
|
|
||||||
return mods.includes(mod);
|
|
||||||
},
|
|
||||||
add: function (mod: string): void {
|
|
||||||
const mods: string[] = storage.local.get('mods') ?? [];
|
|
||||||
if (!mods.includes(mod)) {
|
|
||||||
mods.push(mod);
|
|
||||||
mods.sort();
|
|
||||||
storage.local.set('mods', mods);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
remove: function (mod: string): void {
|
|
||||||
const mods: string[] = storage.local.get('mods') ?? [];
|
|
||||||
const modIndex = mods.indexOf(mod);
|
|
||||||
if (modIndex !== -1) {
|
|
||||||
mods.splice(modIndex, 1);
|
|
||||||
storage.local.set('mods', mods);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
toggle: function (modId: string): void {
|
toggle: function (modId: string): void {
|
||||||
const mod = `/resources/mods/downloads/${modId}.js`;
|
const mod = `/resources/mods/downloads/${modId}.js`;
|
||||||
const mods: string[] = storage.local.get('mods') ?? [];
|
const mods: string[] = storage.local.get('mods') ?? [];
|
||||||
@ -329,7 +309,7 @@ const mods = {
|
|||||||
mods.push(mod);
|
mods.push(mod);
|
||||||
mods.sort();
|
mods.sort();
|
||||||
storage.local.set('mods', mods);
|
storage.local.set('mods', mods);
|
||||||
const modInstallElem = document.querySelector(`#mod-${modId}`);
|
const modInstallElem = document.querySelector(`.mod-list > div .links .install[data-mod-id='${modId}']`);
|
||||||
if (modInstallElem) {
|
if (modInstallElem) {
|
||||||
modInstallElem.textContent = 'Uninstall';
|
modInstallElem.textContent = 'Uninstall';
|
||||||
modInstallElem.classList.add('installed');
|
modInstallElem.classList.add('installed');
|
||||||
@ -337,7 +317,7 @@ const mods = {
|
|||||||
} else {
|
} else {
|
||||||
mods.splice(modIndex, 1);
|
mods.splice(modIndex, 1);
|
||||||
storage.local.set('mods', mods);
|
storage.local.set('mods', mods);
|
||||||
const modInstallElem = document.querySelector(`#mod-${modId}`);
|
const modInstallElem = document.querySelector(`.mod-list > div .links .install[data-mod-id='${modId}']`);
|
||||||
if (modInstallElem) {
|
if (modInstallElem) {
|
||||||
modInstallElem.textContent = 'Install';
|
modInstallElem.textContent = 'Install';
|
||||||
modInstallElem.classList.remove('installed');
|
modInstallElem.classList.remove('installed');
|
||||||
@ -402,11 +382,13 @@ const base64Gzip = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (detect.mobile()) {
|
function downloadFile(url: string, name?: string) {
|
||||||
const link = document.createElement('link');
|
const a = document.createElement('a');
|
||||||
link.rel = 'stylesheet';
|
a.href = url;
|
||||||
link.href = '/resources/styles/mobile.css';
|
a.download = name ?? '';
|
||||||
document.head.appendChild(link);
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
document.body.removeChild(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.location.pathname === '/') {
|
if (window.location.pathname === '/') {
|
||||||
@ -437,6 +419,13 @@ if (window.location.pathname === '/') {
|
|||||||
if (iframe.contentWindow) iframe.contentWindow.installPwaEvent = event;
|
if (iframe.contentWindow) iframe.contentWindow.installPwaEvent = event;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
if (detect.mobile()) {
|
||||||
|
const link = document.createElement('link');
|
||||||
|
link.rel = 'stylesheet';
|
||||||
|
link.href = '/resources/styles/mobile.css';
|
||||||
|
document.head.appendChild(link);
|
||||||
|
}
|
||||||
|
|
||||||
theme.load();
|
theme.load();
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
@ -602,7 +591,7 @@ if (window.location.pathname === '/settings/') {
|
|||||||
} else if (window.location.pathname === '/mods/mods/' || window.location.pathname === '/mods/resourcepacks/') {
|
} else if (window.location.pathname === '/mods/mods/' || window.location.pathname === '/mods/resourcepacks/') {
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const addonType: 'mods' | 'resourcepacks' = window.location.pathname === '/mods/mods/' ? 'mods' : 'resourcepacks';
|
const addonType: 'mods' | 'resourcepacks' = window.location.pathname === '/mods/mods/' ? 'mods' : 'resourcepacks';
|
||||||
const addonData: {
|
const data: {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description: string;
|
||||||
@ -612,14 +601,14 @@ if (window.location.pathname === '/settings/') {
|
|||||||
}[] = (await (await fetch('/resources/data/main.json')).json()).addons;
|
}[] = (await (await fetch('/resources/data/main.json')).json()).addons;
|
||||||
const modList = document.querySelector('.mod-list');
|
const modList = document.querySelector('.mod-list');
|
||||||
// @ts-expect-error
|
// @ts-expect-error
|
||||||
addonData[addonType].forEach((addon) => {
|
data[addonType].forEach((addon) => {
|
||||||
const modItem = document.createElement('div');
|
const modItem = document.createElement('div');
|
||||||
modItem.innerHTML = `<img loading="lazy" src="/resources/mods/icons/${addon.id}.webp" /><div class="details"><strong>${
|
modItem.innerHTML = `<img loading="lazy" src="/resources/mods/icons/${addon.id}.webp" /><div class="details"><strong>${
|
||||||
addon.name
|
addon.name
|
||||||
}</strong><p class="author">By <a href="${addon.authorLink}" target="_blank">${addon.author}</a></p><p class="description">${addon.description}</p></div><div class="links">${
|
}</strong><p class="author">By <a href="${addon.authorLink}" target="_blank">${addon.author}</a></p><p class="description">${addon.description}</p></div><div class="links">${
|
||||||
addonType === 'mods'
|
addonType === 'mods'
|
||||||
? `<a href="/resources/mods/downloads/${addon.id}.js" class="download" download>Download</a><a class="install" id="mod-${addon.id}" onclick="mods.toggle('${addon.id}')">Install</a>`
|
? `<span class="download" onclick="downloadFile('/resources/mods/downloads/${addon.id}.js', '${addon.name}.js')">Download</span><span class="install" data-mod-id="${addon.id}" onclick="mods.toggle('${addon.id}')">Install</span>`
|
||||||
: `<a href="/resources/mods/downloads/${addon.id}.zip" class="download" download>Download</a>`
|
: `<span class="download" onclick="downloadFile('/resources/mods/downloads/${addon.id}.zip' '${addon.name}.zip')">Download</span>`
|
||||||
}</div>`;
|
}</div>`;
|
||||||
modList?.appendChild(modItem);
|
modList?.appendChild(modItem);
|
||||||
});
|
});
|
||||||
@ -627,11 +616,11 @@ if (window.location.pathname === '/settings/') {
|
|||||||
if (addonType === 'mods') {
|
if (addonType === 'mods') {
|
||||||
const installedMods = storage.local.get('mods') ?? [];
|
const installedMods = storage.local.get('mods') ?? [];
|
||||||
const modElements = document.querySelectorAll('.mod-list > div .links .install');
|
const modElements = document.querySelectorAll('.mod-list > div .links .install');
|
||||||
modElements.forEach((modElement) => {
|
modElements.forEach((element) => {
|
||||||
const modId = /^mod-(.*)$/.exec(modElement.id)?.[1];
|
const modId = (element as HTMLElement).dataset['modId'];
|
||||||
if (installedMods.includes(`/resources/mods/downloads/${modId}.js`)) {
|
if (installedMods.includes(`/resources/mods/downloads/${modId}.js`)) {
|
||||||
modElement.textContent = 'Uninstall';
|
element.textContent = 'Uninstall';
|
||||||
modElement.classList.add('installed');
|
element.classList.add('installed');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -639,27 +628,29 @@ if (window.location.pathname === '/settings/') {
|
|||||||
} else if (window.location.pathname === '/updates/') {
|
} else if (window.location.pathname === '/updates/') {
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const updatesContainer = document.querySelector('.updates-container');
|
const updatesContainer = document.querySelector('.updates-container');
|
||||||
const updateData: { version: string; changelog: string[] }[] = (
|
const data: { version: string; changelog: string[] }[] = (
|
||||||
await (await fetch('/resources/data/main.json')).json()
|
await (await fetch('/resources/data/main.json')).json()
|
||||||
).updates;
|
).updates;
|
||||||
updateData.forEach((update) => {
|
data.forEach((update) => {
|
||||||
const versionHeader = document.createElement('strong');
|
const version = document.createElement('div');
|
||||||
versionHeader.textContent = `MineXLauncher ${update.version}`;
|
const name = document.createElement('strong');
|
||||||
updatesContainer?.appendChild(versionHeader);
|
name.textContent = `MineXLauncher ${update.version}`;
|
||||||
|
|
||||||
const changelog = document.createElement('ul');
|
const changes = document.createElement('ul');
|
||||||
update.changelog.forEach((change) => {
|
update.changelog.forEach((change) => {
|
||||||
const changelogItem = document.createElement('li');
|
const item = document.createElement('li');
|
||||||
changelogItem.textContent = change;
|
item.textContent = change;
|
||||||
changelog.appendChild(changelogItem);
|
changes.appendChild(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
updatesContainer?.appendChild(changelog);
|
version.appendChild(name);
|
||||||
|
version.appendChild(changes);
|
||||||
|
updatesContainer?.appendChild(version);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.location.hostname === null) {
|
if (window.location.hostname === null) {
|
||||||
// Stop the minifier from removing these functions
|
// Stop the minifier from removing these functions
|
||||||
console.debug([navigate, query, versionSelector, game, mods, base64Gzip, article]);
|
console.debug([navigate, query, versionSelector, game, mods, base64Gzip, article, downloadFile]);
|
||||||
}
|
}
|
||||||
|
@ -321,21 +321,16 @@ body {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
color: #ddd;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-top: 1px solid #333;
|
border-top: 1px solid #333;
|
||||||
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom-bar > div {
|
.bottom-bar > span[onclick]:hover {
|
||||||
display: flex;
|
|
||||||
margin: 0 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottom-bar > div a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.updates-container {
|
.updates-container {
|
||||||
|
@ -62,12 +62,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -78,12 +78,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -61,12 +61,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
|
@ -36,12 +36,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
<div>
|
<span onclick="window.open('https://discord.gg/VRwbRJjXzt')">Join the MineXLauncher Discord</span>
|
||||||
<a href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
|
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span>© 2024 MineXLauncher. All rights reserved.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user