mirror of
https://github.com/zumbiepig/MineXLauncher.git
synced 2025-06-08 09:24:48 +00:00
.
This commit is contained in:
parent
b37f22e6eb
commit
50276b8608
@ -17,7 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="main-panel">
|
<div class="main-panel">
|
||||||
|
@ -9,6 +9,35 @@
|
|||||||
<link rel="stylesheet" id="theme" onload="document.documentElement.style.display = ''" />
|
<link rel="stylesheet" id="theme" onload="document.documentElement.style.display = ''" />
|
||||||
<script src="/resources/scripts/google-tag.js"></script>
|
<script src="/resources/scripts/google-tag.js"></script>
|
||||||
<script src="/resources/scripts/main.js"></script>
|
<script src="/resources/scripts/main.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
const modal = document.getElementById('article-modal');
|
||||||
|
const modalContent = document.getElementById('article-modal-content');
|
||||||
|
const closeButton = document.querySelector('.close-button');
|
||||||
|
|
||||||
|
document.querySelectorAll('.article-item').forEach((item) => {
|
||||||
|
item.addEventListener('click', function () {
|
||||||
|
const articleName = this.querySelector('.article-name').textContent;
|
||||||
|
const articleDescription = this.querySelector('.article-description').textContent;
|
||||||
|
|
||||||
|
modalContent.innerHTML = `
|
||||||
|
<h2>${articleName}</h2>
|
||||||
|
<p>${articleDescription}</p>
|
||||||
|
`;
|
||||||
|
|
||||||
|
modal.style.display = 'block';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
closeButton.addEventListener('click', function () {
|
||||||
|
modal.style.display = 'none';
|
||||||
|
});
|
||||||
|
|
||||||
|
modal.addEventListener('click', function () {
|
||||||
|
modal.style.display = 'none';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="ads-container">
|
<div class="ads-container">
|
||||||
@ -16,12 +45,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
@ -65,6 +94,27 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="article-modal" id="article-modal">
|
||||||
|
<span class="close-button">×</span>
|
||||||
|
<div id="article-content">
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
<p>hello world</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-bar">
|
<div class="bottom-bar">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -13,12 +13,12 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item selected" onclick="navigate.mobile()">
|
<li class="nav-item selected" onclick="navigate.mobile()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="main-panel">
|
<div class="main-panel">
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item selected" href="/offline/">
|
<li class="nav-item selected" href="/offline/">
|
||||||
|
@ -763,3 +763,51 @@ nav {
|
|||||||
color: #bbb;
|
color: #bbb;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.article-modal {
|
||||||
|
display: none;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1000;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
background-color: #333;
|
||||||
|
margin: 15% auto;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #888;
|
||||||
|
width: 80%;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
max-width: 80vw;
|
||||||
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
||||||
|
animation: slide-down 0.3s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
color: #aaa;
|
||||||
|
float: right;
|
||||||
|
font-size: 28px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button:hover,
|
||||||
|
.close-button:focus {
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide-down {
|
||||||
|
from {
|
||||||
|
transform: translateY(-50px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translateY(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item" onclick="navigate.updates()">
|
<li class="nav-item" onclick="navigate.updates()">
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<span class="profile-name" id="profile-name"></span>
|
<span class="profile-name"></span>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<li class="nav-item selected" onclick="navigate.updates()">
|
<li class="nav-item selected" onclick="navigate.updates()">
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<span class="game-title">Updates</span>
|
<span class="game-title">Updates</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<div class="updates-container" id="updates-container"></div>
|
<div class="updates-container"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="launcher">
|
<div class="launcher">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
<span id="title-bar-text">MineXLauncher</span>
|
<span>MineXLauncher</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="main-panel">
|
<div class="main-panel">
|
||||||
|
@ -377,8 +377,8 @@ if (window.location.pathname === '/') {
|
|||||||
theme.load();
|
theme.load();
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const profileName = document.getElementById('profile-name');
|
const profileName = document.querySelector('.profile-name');
|
||||||
const titleBarText = document.getElementById('title-bar-text');
|
const titleBarText = document.querySelector('.title-bar span');
|
||||||
|
|
||||||
const lastVersion = storage.local.get('lastVersion');
|
const lastVersion = storage.local.get('lastVersion');
|
||||||
const updateData = (await (await fetch('/resources/data/main.json')).json()).updates;
|
const updateData = (await (await fetch('/resources/data/main.json')).json()).updates;
|
||||||
@ -407,7 +407,7 @@ if (window.location.pathname === '/') {
|
|||||||
googleAdsPush.text = '(adsbygoogle = window.adsbygoogle || []).push({});';
|
googleAdsPush.text = '(adsbygoogle = window.adsbygoogle || []).push({});';
|
||||||
document.body.appendChild(googleAdsPush);
|
document.body.appendChild(googleAdsPush);
|
||||||
|
|
||||||
const adsContainers = Array.from(document.getElementsByClassName('ads-container')) as HTMLElement[];
|
const adsContainers = document.querySelectorAll('ads-container');
|
||||||
adsContainers.forEach((adsContainer) => {
|
adsContainers.forEach((adsContainer) => {
|
||||||
adsContainer.style.display = 'flex';
|
adsContainer.style.display = 'flex';
|
||||||
});
|
});
|
||||||
@ -417,12 +417,12 @@ if (window.location.pathname === '/') {
|
|||||||
|
|
||||||
if (window.location.pathname === '/settings/') {
|
if (window.location.pathname === '/settings/') {
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const profileName = document.getElementById('profile-name');
|
const profileName = document.querySelector('.profile-name');
|
||||||
const usernameInput = document.getElementById('username-input') as HTMLInputElement;
|
const usernameInput = document.getElementById('username-input') as HTMLInputElement;
|
||||||
const themeSelect = document.getElementById('theme-select') as HTMLSelectElement;
|
const themeSelect = document.getElementById('theme-select') as HTMLSelectElement;
|
||||||
// const offlineCheckbox = document.getElementById('offline-checkbox') as HTMLInputElement;
|
// const offlineCheckbox = document.getElementById('offline-checkbox') as HTMLInputElement;
|
||||||
// const adsCheckbox = document.getElementById('ads-checkbox') as HTMLInputElement;
|
// const adsCheckbox = document.getElementById('ads-checkbox') as HTMLInputElement;
|
||||||
const themeData: { id: string; name: string }[] = (await (await fetch('/resources/data/main.json')).json()).themes;
|
const themeData: { id: string; name: string }[] = await(await fetch('/resources/data/main.json')).json().themes;
|
||||||
|
|
||||||
themeData.forEach((theme: { id: string; name: string }) => {
|
themeData.forEach((theme: { id: string; name: string }) => {
|
||||||
const option = document.createElement('option');
|
const option = document.createElement('option');
|
||||||
@ -462,7 +462,7 @@ if (window.location.pathname === '/settings/') {
|
|||||||
|
|
||||||
/* adsCheckbox.addEventListener('change', () => {
|
/* adsCheckbox.addEventListener('change', () => {
|
||||||
storage.local.set('showAds', adsCheckbox.checked);
|
storage.local.set('showAds', adsCheckbox.checked);
|
||||||
const adsContainers = Array.from(document.getElementsByClassName('ads-container')) as HTMLElement[];
|
const adsContainers = querySelectorAll('ads-container');
|
||||||
adsContainers.forEach((adsContainer) => (adsContainer.style.display = 'none'));
|
adsContainers.forEach((adsContainer) => (adsContainer.style.display = 'none'));
|
||||||
}); */
|
}); */
|
||||||
});
|
});
|
||||||
@ -543,7 +543,7 @@ 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 = Array.from(document.getElementsByClassName('mod-install')) as HTMLAnchorElement[];
|
const modElements = document.querySelectorAll('mod-install');
|
||||||
modElements.forEach((modElement) => {
|
modElements.forEach((modElement) => {
|
||||||
const modId = /^mod-install-(.*)$/.exec(modElement.id)?.[1];
|
const modId = /^mod-install-(.*)$/.exec(modElement.id)?.[1];
|
||||||
if (installedMods.includes(`/resources/mods/downloads/${modId}.js`)) {
|
if (installedMods.includes(`/resources/mods/downloads/${modId}.js`)) {
|
||||||
@ -555,7 +555,7 @@ 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.getElementById('updates-container');
|
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) => {
|
updateData.forEach((update) => {
|
||||||
const versionHeader = document.createElement('strong');
|
const versionHeader = document.createElement('strong');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user