1
0
mirror of https://github.com/zumbiepig/MineXLauncher.git synced 2025-06-08 07:54:49 +00:00

this is insanely broken

This commit is contained in:
zumbiepig 2024-09-07 10:18:23 -07:00
parent a8c80e7320
commit 830a11bcec
No known key found for this signature in database
GPG Key ID: 17C891BE28B953DE
29 changed files with 775 additions and 941 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -32,6 +32,7 @@
"@types/compression": "^1.7.5", "@types/compression": "^1.7.5",
"@types/debug": "^4.1.12", "@types/debug": "^4.1.12",
"@types/errorhandler": "^1.5.3", "@types/errorhandler": "^1.5.3",
"@types/eslint-config-prettier": "^6.11.3",
"@types/eslint__js": "^8.42.3", "@types/eslint__js": "^8.42.3",
"@types/html-minifier": "^4.0.5", "@types/html-minifier": "^4.0.5",
"@types/morgan": "^1.9.9", "@types/morgan": "^1.9.9",

View File

@ -37,13 +37,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -63,26 +63,18 @@
</div> </div>
<div class="main-content"> <div class="main-content">
<div class="article-list"> <div class="article-list">
<div class="article-item" onclick="article.open('mc-server')"> <div onclick="article.open('mc-server')">
<img class="article-icon" loading="lazy" src="/resources/images/icons/articles/mc-server.webp" /> <img loading="lazy" src="/resources/images/icons/articles/mc-server.webp" />
<div class="article-details"> <div class="article-details">
<strong class="article-name">How To Make An Eaglercraft Server</strong> <strong>How To Make An Eaglercraft Server</strong>
<p class="article-description"> <p>Have you ever wondered how to make an Eaglercraft Server? Read this article to find out how!</p>
Have you ever wondered how to make an Eaglercraft Server? Read this article to find out how!
</p>
</div> </div>
</div> </div>
<div class="article-item" onclick="article.open('cloudflare-tunnel')"> <div onclick="article.open('cloudflare-tunnel')">
<img <img loading="lazy" src="/resources/images/icons/articles/cloudflare-tunnel.webp" />
class="article-icon"
loading="lazy"
src="/resources/images/icons/articles/cloudflare-tunnel.webp"
/>
<div class="article-details"> <div class="article-details">
<strong class="article-name">Setting Up a Cloudflare Tunnel for an Eaglercraft Server</strong> <strong>Setting Up a Cloudflare Tunnel for an Eaglercraft Server</strong>
<p class="article-description"> <p>This brief guide walks you through configuring a Cloudflare Tunnel for your Eaglercraft server.</p>
This brief guide walks you through configuring a Cloudflare Tunnel for your Eaglercraft server.
</p>
</div> </div>
</div> </div>
</div> </div>
@ -90,13 +82,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>
@ -110,168 +100,174 @@
data-full-width-responsive="true" data-full-width-responsive="true"
></ins> ></ins>
</div> </div>
<div id="article-mc-server" class="article"> <div class="article" id="article-mc-server">
<div class="article-content"> <div>
<span class="close-button" onclick="article.close('mc-server')">&times;</span> <span onclick="article.close('mc-server')">&times;</span>
<h1>How To Make An Eaglercraft Server</h1> <div>
<h5>Written by ServerDotSo and revised by zumbiepig</h5> <h1>How To Make An Eaglercraft Server</h1>
<p>Have you ever wondered how to make an Eaglercraft Server?</p> <h5>Written by ServerDotSo and revised by zumbiepig</h5>
<p>In this guide, we will be going over how to setup your own Eaglercraft server.</p> <p>Have you ever wondered how to make an Eaglercraft Server?</p>
<h3>Prerequisites</h3> <p>In this guide, we will be going over how to setup your own Eaglercraft server.</p>
<ul> <h3>Prerequisites</h3>
<li>A server/computer with stable internet access and decent bandwidth</li> <ul>
<li> <li>A server/computer with stable internet access and decent bandwidth</li>
Java 17 installed (Get it from <li>
<a href="https://adoptium.net/temurin/releases/?version=17" target="_blank">here</a>) Java 17 installed (Get it from
</li> <a href="https://adoptium.net/temurin/releases/?version=17" target="_blank">here</a>)
<li>Basic knowledge of your OS's command-line/terminal</li> </li>
<li>Access to your network router (for port forwarding)</li> <li>Basic knowledge of your OS's command-line/terminal</li>
</ul> <li>Access to your network router (for port forwarding)</li>
<h3>Step 1: Set Up Bungee</h3> </ul>
<ol> <h3>Step 1: Set Up Bungee</h3>
<li> <ol>
Download the latest version of Bungee from <li>
<a Download the latest version of Bungee from
href="https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar" <a
target="_blank" href="https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar"
>here</a target="_blank"
>. >here</a
</li> >.
<li>Create a new directory for your server and place the Bungee JAR file in it</li> </li>
<li> <li>Create a new directory for your server and place the Bungee JAR file in it</li>
Create a start script (e.g., <code>start.bat</code> for Windows or <code>start.sh</code> for Linux) with the <li>
following content: Create a start script (e.g., <code>start.bat</code> for Windows or <code>start.sh</code> for Linux) with
<pre><code>java -Xms512M -Xmx512M -jar bungee.jar</code></pre> the following content:
</li> <pre><code>java -Xms512M -Xmx512M -jar bungee.jar</code></pre>
<li>Run the start script to generate configuration files, then stop the server</li> </li>
<li>Edit the <code>config.yml</code> file to configure your proxy settings</li> <li>Run the start script to generate configuration files, then stop the server</li>
</ol> <li>Edit the <code>config.yml</code> file to configure your proxy settings</li>
<h3>Step 2: Set Up Backend Server</h3> </ol>
<ol> <h3>Step 2: Set Up Backend Server</h3>
<li>Download a compatible Minecraft server JAR (e.g., Paper)</li> <ol>
<li>Set up the backend server in a separate directory</li> <li>Download a compatible Minecraft server JAR (e.g., Paper)</li>
<li> <li>Set up the backend server in a separate directory</li>
Create a start script (e.g., <code>start.bat</code> for Windows or <code>start.sh</code> for Linux) with the <li>
following content: Create a start script (e.g., <code>start.bat</code> for Windows or <code>start.sh</code> for Linux) with
<pre><code>java -Xms1024M -Xmx1024M -jar server.jar</code></pre> the following content:
</li> <pre><code>java -Xms1024M -Xmx1024M -jar server.jar</code></pre>
<li>Configure <code>server.properties</code> (Disable online mode, change the port, etc.)</li> </li>
<li>Configure <code>spigot.yml</code> to have this: <code>bungeecord: true</code></li> <li>Configure <code>server.properties</code> (Disable online mode, change the port, etc.)</li>
<li> <li>Configure <code>spigot.yml</code> to have this: <code>bungeecord: true</code></li>
If your server is on a different version than 1.8.8, you need to download the <li>
<a href="https://viaversion.com/setup" target="_blank">ViaVersion plugins</a>. If your server is on a different version than 1.8.8, you need to download the
</li> <a href="https://viaversion.com/setup" target="_blank">ViaVersion plugins</a>.
<li> </li>
Add the backend server to your Bungee <code>config.yml</code> by scrolling to the servers section and <li>
editing/adding an entry for your server, such as <code>localhost:port</code>. Add the backend server to your Bungee <code>config.yml</code> by scrolling to the servers section and
</li> editing/adding an entry for your server, such as <code>localhost:port</code>.
</ol> </li>
<h3>Step 3: Install EaglerXBungee Plugin</h3> </ol>
<ol> <h3>Step 3: Install EaglerXBungee Plugin</h3>
<li> <ol>
Download the EaglerXBungee plugin from <li>
<a Download the EaglerXBungee plugin from
href="https://git.eaglercraft.rip/eaglercraft/eaglercraft-builds/raw/branch/main/EaglercraftX_1.8_EaglerXBungee.jar" <a
target="_blank" href="https://git.eaglercraft.rip/eaglercraft/eaglercraft-builds/raw/branch/main/EaglercraftX_1.8_EaglerXBungee.jar"
>here</a target="_blank"
>. >here</a
</li> >.
<li>Place the downloaded JAR file in the Bungee server's <code>plugins</code> folder</li> </li>
<li>Restart the Bungee server to generate the plugin's configuration files</li> <li>Place the downloaded JAR file in the Bungee server's <code>plugins</code> folder</li>
<li>Configure the EaglerXBungee plugin as needed (disabling online mode, etc.)</li> <li>Restart the Bungee server to generate the plugin's configuration files</li>
</ol> <li>Configure the EaglerXBungee plugin as needed (disabling online mode, etc.)</li>
<h3>Step 4: Set Up Caddy</h3> </ol>
<ol> <h3>Step 4: Set Up Caddy</h3>
<li>Download and install Caddy from <a href="https://caddyserver.com/download" target="_blank">here</a>.</li> <ol>
<li> <li>
Create a file called Caddyfile with this configuration: Download and install Caddy from <a href="https://caddyserver.com/download" target="_blank">here</a>.
<pre><code>localhost {<br> reverse_proxy :8081<br>}</code></pre> </li>
</li> <li>
</ol> Create a file called Caddyfile with this configuration:
<h3>Step 5: Port Forwarding</h3> <pre><code>localhost {<br> reverse_proxy :8081<br>}</code></pre>
<ol> </li>
<li>Access your router's admin panel</li> </ol>
<li> <h3>Step 5: Port Forwarding</h3>
Set up port forwarding for port <code>8081</code> (or whichever port you configured for EaglerXBungee) to <ol>
your server's local IP address <li>Access your router's admin panel</li>
</li> <li>
</ol> Set up port forwarding for port <code>8081</code> (or whichever port you configured for EaglerXBungee) to
<h3>Step 6: Domain Configuration (Optional)</h3> your server's local IP address
<p>If you want to use a custom domain:</p> </li>
<ol> </ol>
<li>Purchase a domain from a domain registrar</li> <h3>Step 6: Domain Configuration (Optional)</h3>
<li>Set up an A record pointing to your server's public IPv4 address</li> <p>If you want to use a custom domain:</p>
<li> <ol>
Edit the Caddyfile you made earlier, replacing <code>example.com</code> with your domain: <li>Purchase a domain from a domain registrar</li>
<pre><code>example.com {<br> reverse_proxy :8081<br>}</code></pre> <li>Set up an A record pointing to your server's public IPv4 address</li>
</li> <li>
<li>Restart Caddy to apply these changes, using <code>caddy stop</code> and <code>caddy start</code>.</li> Edit the Caddyfile you made earlier, replacing <code>example.com</code> with your domain:
</ol> <pre><code>example.com {<br> reverse_proxy :8081<br>}</code></pre>
<h3>Step 7: Connecting to Your Server</h3> </li>
<p> <li>Restart Caddy to apply these changes, using <code>caddy stop</code> and <code>caddy start</code>.</li>
Players can connect to your server using an Eaglercraft client such as MineXLauncher, and entering your </ol>
server's IP address or domain and port. <h3>Step 7: Connecting to Your Server</h3>
</p> <p>
<p>Examples:</p> Players can connect to your server using an Eaglercraft client such as MineXLauncher, and entering your
<li><code>wss://localhost</code></li> server's IP address or domain and port.
<li><code>wss://example.com</code></li> </p>
<h3>Security Considerations</h3> <p>Examples:</p>
<p> <li><code>wss://localhost</code></li>
Ensure you keep all software (especially the EaglerXBungee plugin) up to date and properly secure your server <li><code>wss://example.com</code></li>
to protect against potential vulnerabilities. <h3>Security Considerations</h3>
</p> <p>
Ensure you keep all software (especially the EaglerXBungee plugin) up to date and properly secure your
server to protect against potential vulnerabilities.
</p>
</div>
</div> </div>
</div> </div>
<div id="article-cloudflare-tunnel" class="article"> <div class="article" id="article-cloudflare-tunnel">
<div class="article-content"> <div>
<span class="close-button" onclick="article.close('cloudflare-tunnel')">&times;</span> <span onclick="article.close('cloudflare-tunnel')">&times;</span>
<h1>Setting Up a Cloudflare Tunnel for an Eaglercraft Server</h1> <div>
<h5>Written by zumbiepig and SpeedSlicer</h5> <h1>Setting Up a Cloudflare Tunnel for an Eaglercraft Server</h1>
<p> <h5>Written by zumbiepig and SpeedSlicer</h5>
In this guide, we'll walk you through the steps to set up a Cloudflare Tunnel for your Eaglercraft server, <p>
which is running on <code>ws://localhost:8081</code>. In this guide, we'll walk you through the steps to set up a Cloudflare Tunnel for your Eaglercraft server,
</p> which is running on <code>ws://localhost:8081</code>.
<h3>Prerequisites</h3> </p>
<ul> <h3>Prerequisites</h3>
<li>An Eaglercraft server running on <code>ws://localhost:8081</code></li> <ul>
<li>Access to the computer your Eaglercraft server is running on</li> <li>An Eaglercraft server running on <code>ws://localhost:8081</code></li>
<li>A domain already linked to Cloudflare</li> <li>Access to the computer your Eaglercraft server is running on</li>
</ul> <li>A domain already linked to Cloudflare</li>
<h3>Step 1: Access Cloudflare Tunnels</h3> </ul>
<ol> <h3>Step 1: Access Cloudflare Tunnels</h3>
<li> <ol>
Go to the <a href="https://dash.cloudflare.com/" target="_blank">Dashboard</a> and log in to your Cloudflare <li>
account. Go to the <a href="https://dash.cloudflare.com/" target="_blank">Dashboard</a> and log in to your
</li> Cloudflare account.
<li>Navigate to the <strong>Zero Trust</strong> page using the navigation bar on the left.</li> </li>
<li>Sign up for Cloudflare Zero Trust with the Free Plan if you have not already.</li> <li>Navigate to the <strong>Zero Trust</strong> page using the navigation bar on the left.</li>
<li>Once you are in the dashboard, navigate to <strong>Networks</strong> > <strong>Tunnels</strong>.</li> <li>Sign up for Cloudflare Zero Trust with the Free Plan if you have not already.</li>
</ol> <li>Once you are in the dashboard, navigate to <strong>Networks</strong> > <strong>Tunnels</strong>.</li>
<h3>Step 2: Create a Tunnel</h3> </ol>
<ol> <h3>Step 2: Create a Tunnel</h3>
<li>Click on <strong>Create a tunnel</strong>, and select <strong>Cloudflared</strong>.</li> <ol>
<li>Click <strong>Next</strong>.</li> <li>Click on <strong>Create a tunnel</strong>, and select <strong>Cloudflared</strong>.</li>
<li>Enter a name for the tunnel.</li> <li>Click <strong>Next</strong>.</li>
<li> <li>Enter a name for the tunnel.</li>
Follow the instructions provided on the site to install the tunnel.<br />You should do these instructions on <li>
the computer that your Eaglercraft server is running on. Follow the instructions provided on the site to install the tunnel.<br />You should do these instructions
</li> on the computer that your Eaglercraft server is running on.
</ol> </li>
<h3>Step 3: Configure Domain/Subdomain</h3> </ol>
<ol> <h3>Step 3: Configure Domain/Subdomain</h3>
<li>Select the domain or subdomain you want to use for your server.</li> <ol>
<li>Select <strong>HTTP</strong> for the type.</li> <li>Select the domain or subdomain you want to use for your server.</li>
<li>Enter <code>localhost:8081</code> (or whatever port your server is running on) as the URL.</li> <li>Select <strong>HTTP</strong> for the type.</li>
</ol> <li>Enter <code>localhost:8081</code> (or whatever port your server is running on) as the URL.</li>
<h3>Step 4: Activate Tunnel and Proxy</h3> </ol>
<ol> <h3>Step 4: Activate Tunnel and Proxy</h3>
<li>Start your Eaglercraft server.</li> <ol>
<li>In Eaglercraft, connect to the domain or subdomain you set up.</li> <li>Start your Eaglercraft server.</li>
<li> <li>In Eaglercraft, connect to the domain or subdomain you set up.</li>
You're all set! Players can now join your server using the domain that you linked your tunnel to.<br />Example: <li>
<code>wss://example.com</code> You're all set! Players can now join your server using the domain that you linked your tunnel to.<br />Example:
</li> <code>wss://example.com</code>
</ol> </li>
</ol>
</div>
</div> </div>
</div> </div>
</body> </body>

View File

@ -67,179 +67,170 @@
</ul> </ul>
</div> </div>
<div class="main-content"> <div class="main-content">
<div class="archive-section"> <div class="archive">
<label for="18-client-version" class="version-label">1.8 versions:</label> <div>
<select id="18-client-version" class="version-select"> <label for="18-client-version">1.8 versions:</label>
<option disabled selected hidden value="">Select version</option> <select id="18-client-version">
<optgroup label="Releases"> <option disabled selected hidden value="">Select version</option>
<option value="u35">u35</option> <optgroup label="Releases">
<option value="u34">u34</option> <option value="u35">u35</option>
<option value="u33">u33</option> <option value="u34">u34</option>
<option value="u32">u32</option> <option value="u33">u33</option>
<option value="u31">u31</option> <option value="u32">u32</option>
<option value="u30">u30</option> <option value="u31">u31</option>
<option value="u29">u29</option> <option value="u30">u30</option>
<option value="u28">u28</option> <option value="u29">u29</option>
<option value="u27">u27</option> <option value="u28">u28</option>
<option value="u26">u26</option> <option value="u27">u27</option>
<option value="u25">u25</option> <option value="u26">u26</option>
<option value="u24">u24</option> <option value="u25">u25</option>
<option value="u23">u23</option> <option value="u24">u24</option>
<option value="u22">u22</option> <option value="u23">u23</option>
<option value="u21">u21</option> <option value="u22">u22</option>
<option value="u20">u20</option> <option value="u21">u21</option>
<option value="u19">u19</option> <option value="u20">u20</option>
<option value="u18">u18</option> <option value="u19">u19</option>
<option value="u17">u17</option> <option value="u18">u18</option>
<option value="u16">u16</option> <option value="u17">u17</option>
<option value="u15">u15</option> <option value="u16">u16</option>
<option value="u14">u14</option> <option value="u15">u15</option>
<option value="u13">u13</option> <option value="u14">u14</option>
<option value="u12">u12</option> <option value="u13">u13</option>
<option value="u11">u11</option> <option value="u12">u12</option>
<option value="u10">u10</option> <option value="u11">u11</option>
<option value="u9">u9</option> <option value="u10">u10</option>
<option value="u8">u8</option> <option value="u9">u9</option>
<option value="u7">u7</option> <option value="u8">u8</option>
<option value="u6">u6</option> <option value="u7">u7</option>
<option value="u5">u5</option> <option value="u6">u6</option>
<option value="u4">u4</option> <option value="u5">u5</option>
<option value="u3">u3</option> <option value="u4">u4</option>
<option value="u2">u2</option> <option value="u3">u3</option>
<option value="u1">u1</option> <option value="u2">u2</option>
<option value="u0">u0</option> <option value="u1">u1</option>
</optgroup> <option value="u0">u0</option>
<optgroup label="Pre-Releases"> </optgroup>
<option value="rc-03">rc-03</option> <optgroup label="Pre-Releases">
<option value="rc-02">rc-02</option> <option value="rc-03">rc-03</option>
<option value="rc-01">rc-01</option> <option value="rc-02">rc-02</option>
<option value="pre-alpha">pre-alpha</option> <option value="rc-01">rc-01</option>
</optgroup> <option value="pre-alpha">pre-alpha</option>
</select> </optgroup>
<button class="archive-button" onclick="game.archive('1.8')">Open</button> </select>
<button onclick="game.archive('1.8')">Open</button>
</div>
<div>
<label for="15-client-version">1.5 versions:</label>
<select id="15-client-version">
<option disabled selected hidden value="">Select version</option>
<optgroup label="Service Packs">
<option value="sp1.01">sp1.01</option>
<option value="sp1">sp1</option>
</optgroup>
<optgroup label="Releases">
<option value="22w43a">22w43a</option>
<option value="22w42c">22w42c</option>
<option value="22w42b">22w42b</option>
<option value="22w42a">22w42a</option>
<option value="22w41a">22w41a</option>
<option value="22w40a">22w40a</option>
<option value="22w38a">22w38a</option>
<option value="22w36a">22w36a</option>
<option value="22w35c">22w35c</option>
<option value="22w35b">22w35b</option>
<option value="22w35a">22w35a</option>
<option value="22w34d">22w34d</option>
<option value="22w34c">22w34c</option>
<option value="22w34b">22w34b</option>
<option value="22w34a">22w34a</option>
<option value="22w30a">22w30a</option>
<option value="22w29b">22w29b</option>
<option value="22w29a">22w29a</option>
<option value="22w23c">22w23c</option>
<option value="22w23b">22w23b</option>
<option value="22w23a">22w23a</option>
<option value="22w22a">22w22a</option>
<option value="22w20b">22w20b</option>
<option value="22w20a">22w20a</option>
<option value="22w19a">22w19a</option>
<option value="22w16h">22w16h</option>
<option value="22w16g">22w16g</option>
<option value="22w16f">22w16f</option>
<option value="22w16e">22w16e</option>
<option value="22w16d">22w16d</option>
<option value="22w16c">22w16c</option>
<option value="22w16b">22w16b</option>
<option value="22w16a">22w16a</option>
<option value="22w15d">22w15d</option>
<option value="22w15c">22w15c</option>
<option value="22w15b">22w15b</option>
<option value="22w15a">22w15a</option>
<option value="22w14d">22w14d</option>
<option value="22w14c">22w14c</option>
<option value="22w14b">22w14b</option>
<option value="22w14a">22w14a</option>
<option value="22w13i">22w13i</option>
<option value="22w13h">22w13h</option>
<option value="22w13g">22w13g</option>
<option value="22w13f">22w13f</option>
<option value="22w13e">22w13e</option>
<option value="22w13d">22w13d</option>
<option value="22w13c">22w13c</option>
<option value="22w13b">22w13b</option>
<option value="22w13a">22w13a</option>
<option value="22w10d">22w10d</option>
<option value="22w10c">22w10c</option>
<option value="22w10b">22w10b</option>
<option value="22w10a">22w10a</option>
<option value="22w07a">22w07a</option>
<option value="22w04b">22w04b</option>
<option value="22w04a">22w04a</option>
<option value="22w03c">22w03c</option>
<option value="22w03b">22w03b</option>
<option value="22m03a">22m03a</option>
<option value="22m02a">22m02a</option>
<option value="22m01a">22m01a</option>
</optgroup>
<optgroup label="Pre-Releases">
<option value="21m12-24">21m12-24</option>
<option value="21m12-17">21m12-17</option>
<option value="20m06-29">20m06-29</option>
</optgroup>
</select>
<button onclick="game.archive('1.5')">Open</button>
</div>
<div>
<label for="b13-client-version">Select Beta 1.3 version:</label>
<select id="b13-client-version">
<option disabled selected hidden value="">Select version</option>
<optgroup label="Releases">
<option value="23w49a">23w49a</option>
<option value="22w22b">22w22b</option>
<option value="22w22a">22w22a</option>
<option value="22w17a">22w17a</option>
</optgroup>
</select>
<button onclick="game.archive('b1.3')">Open</button>
</div>
<button onclick="window.open('https://archive.eaglercraft.rip/EaglercraftX_1.8/server/')">
1.8 EaglerXBungee Jar
</button>
<button onclick="window.open('https://archive.eaglercraft.rip/Eaglercraft_1.5/server/')">
Eaglercraft 1.5 Server
</button>
<button onclick="window.open('https://archive.eaglercraft.rip/Eaglercraft_b1.3/server/')">
Eaglercraft Beta 1.3 Server
</button>
</div> </div>
<div class="archive-section">
<label for="15-client-version" class="version-label">1.5 versions:</label>
<select id="15-client-version" class="version-select">
<option disabled selected hidden value="">Select version</option>
<optgroup label="Service Packs">
<option value="sp1.01">sp1.01</option>
<option value="sp1">sp1</option>
</optgroup>
<optgroup label="Releases">
<option value="22w43a">22w43a</option>
<option value="22w42c">22w42c</option>
<option value="22w42b">22w42b</option>
<option value="22w42a">22w42a</option>
<option value="22w41a">22w41a</option>
<option value="22w40a">22w40a</option>
<option value="22w38a">22w38a</option>
<option value="22w36a">22w36a</option>
<option value="22w35c">22w35c</option>
<option value="22w35b">22w35b</option>
<option value="22w35a">22w35a</option>
<option value="22w34d">22w34d</option>
<option value="22w34c">22w34c</option>
<option value="22w34b">22w34b</option>
<option value="22w34a">22w34a</option>
<option value="22w30a">22w30a</option>
<option value="22w29b">22w29b</option>
<option value="22w29a">22w29a</option>
<option value="22w23c">22w23c</option>
<option value="22w23b">22w23b</option>
<option value="22w23a">22w23a</option>
<option value="22w22a">22w22a</option>
<option value="22w20b">22w20b</option>
<option value="22w20a">22w20a</option>
<option value="22w19a">22w19a</option>
<option value="22w16h">22w16h</option>
<option value="22w16g">22w16g</option>
<option value="22w16f">22w16f</option>
<option value="22w16e">22w16e</option>
<option value="22w16d">22w16d</option>
<option value="22w16c">22w16c</option>
<option value="22w16b">22w16b</option>
<option value="22w16a">22w16a</option>
<option value="22w15d">22w15d</option>
<option value="22w15c">22w15c</option>
<option value="22w15b">22w15b</option>
<option value="22w15a">22w15a</option>
<option value="22w14d">22w14d</option>
<option value="22w14c">22w14c</option>
<option value="22w14b">22w14b</option>
<option value="22w14a">22w14a</option>
<option value="22w13i">22w13i</option>
<option value="22w13h">22w13h</option>
<option value="22w13g">22w13g</option>
<option value="22w13f">22w13f</option>
<option value="22w13e">22w13e</option>
<option value="22w13d">22w13d</option>
<option value="22w13c">22w13c</option>
<option value="22w13b">22w13b</option>
<option value="22w13a">22w13a</option>
<option value="22w10d">22w10d</option>
<option value="22w10c">22w10c</option>
<option value="22w10b">22w10b</option>
<option value="22w10a">22w10a</option>
<option value="22w07a">22w07a</option>
<option value="22w04b">22w04b</option>
<option value="22w04a">22w04a</option>
<option value="22w03c">22w03c</option>
<option value="22w03b">22w03b</option>
<option value="22m03a">22m03a</option>
<option value="22m02a">22m02a</option>
<option value="22m01a">22m01a</option>
</optgroup>
<optgroup label="Pre-Releases">
<option value="21m12-24">21m12-24</option>
<option value="21m12-17">21m12-17</option>
<option value="20m06-29">20m06-29</option>
</optgroup>
</select>
<button class="archive-button" onclick="game.archive('1.5')">Open</button>
</div>
<div class="archive-section">
<label for="b13-client-version" class="version-label">Select Beta 1.3 version:</label>
<select id="b13-client-version" class="version-select">
<option disabled selected hidden value="">Select version</option>
<optgroup label="Releases">
<option value="23w49a">23w49a</option>
<option value="22w22b">22w22b</option>
<option value="22w22a">22w22a</option>
<option value="22w17a">22w17a</option>
</optgroup>
</select>
<button class="archive-button" onclick="game.archive('b1.3')">Open</button>
</div>
<button
class="archive-link"
onclick="window.open('https://archive.eaglercraft.rip/EaglercraftX_1.8/server/')"
>
1.8 EaglerXBungee Jar
</button>
<button
class="archive-link"
onclick="window.open('https://archive.eaglercraft.rip/Eaglercraft_1.5/server/')"
>
Eaglercraft 1.5 Server
</button>
<button
class="archive-link"
onclick="window.open('https://archive.eaglercraft.rip/Eaglercraft_b1.3/server/')"
>
Eaglercraft Beta 1.3 Server
</button>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -72,45 +72,43 @@
</div> </div>
</div> </div>
<div class="installations"> <div class="installations">
<div class="custom-select-wrapper"> <div>
<div class="custom-select" onclick="versionSelector.toggle()"> <div class="selector" onclick="versionSelector.toggle()">
<span class="custom-select-trigger">Select a client</span> <span>Select a client</span>
</div> </div>
<div class="custom-options"> <div class="options">
<div class="custom-option" onclick="game.select('/game/web/clients/eaglerforge/', 'EaglerForge')"> <div onclick="game.select('/game/web/clients/eaglerforge/', 'EaglerForge')">
<img src="/resources/images/icons/clients/eaglerforge.webp" /> <img src="/resources/images/icons/clients/eaglerforge.webp" />
<span>EaglerForge</span> <span>EaglerForge</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/clients/resent/', 'Resent Client')"> <div onclick="game.select('/game/web/clients/resent/', 'Resent Client')">
<img src="/resources/images/icons/clients/resent.webp" /> <img src="/resources/images/icons/clients/resent.webp" />
<span>Resent Client</span> <span>Resent Client</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/clients/shadow/', 'Shadow Client')"> <div onclick="game.select('/game/web/clients/shadow/', 'Shadow Client')">
<img src="/resources/images/icons/clients/shadow.webp" /> <img src="/resources/images/icons/clients/shadow.webp" />
<span>Shadow Client</span> <span>Shadow Client</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/clients/astra/', 'Astra Client')"> <div onclick="game.select('/game/web/clients/astra/', 'Astra Client')">
<img src="/resources/images/icons/clients/astra.webp" /> <img src="/resources/images/icons/clients/astra.webp" />
<span>Astra Client</span> <span>Astra Client</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/clients/starlike/', 'Starlike Client')"> <div onclick="game.select('/game/web/clients/starlike/', 'Starlike Client')">
<img src="/resources/images/icons/clients/starlike.webp" /> <img src="/resources/images/icons/clients/starlike.webp" />
<span>Starlike Client</span> <span>Starlike Client</span>
</div> </div>
</div> </div>
</div> </div>
<button class="play-button" onclick="game.play()">Play</button> <button onclick="game.play()">Play</button>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -69,30 +69,30 @@
<div class="main-content"> <div class="main-content">
<div class="downloads"> <div class="downloads">
<h3>Downloads:</h3> <h3>Downloads:</h3>
<a class="download-link" href="/game/offline/main/EaglercraftL_1.9.html" download>1.9.4</a> <a href="/game/offline/main/EaglercraftL_1.9.html" download>1.9.4</a>
<a class="download-link" href="/game/offline/main/EaglercraftX_1.8.html" download>1.8.8</a> <a href="/game/offline/main/EaglercraftX_1.8.html" download>1.8.8</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_1.5.html" download>1.5.2</a> <a href="/game/offline/main/Eaglercraft_1.5.html" download>1.5.2</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_1.2.5.html" download>1.2.5</a> <a href="/game/offline/main/Eaglercraft_1.2.5.html" download>1.2.5</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_b1.7.3.html" download>Beta 1.7.3</a> <a href="/game/offline/main/Eaglercraft_b1.7.3.html" download>Beta 1.7.3</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_b1.3.html" download>Beta 1.3</a> <a href="/game/offline/main/Eaglercraft_b1.3.html" download>Beta 1.3</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_a1.2.6.html" download>Alpha 1.2.6</a> <a href="/game/offline/main/Eaglercraft_a1.2.6.html" download>Alpha 1.2.6</a>
<a class="download-link" href="/game/offline/main/Eaglercraft_Indev.html" download>Indev</a> <a href="/game/offline/main/Eaglercraft_Indev.html" download>Indev</a>
<br /><br /> <br /><br />
<a class="download-link" href="/game/offline/clients/EaglerForge.html" download>EaglerForge</a> <a href="/game/offline/clients/EaglerForge.html" download>EaglerForge</a>
<a class="download-link" href="/game/offline/clients/Resent_Client.html" download>Resent Client</a> <a href="/game/offline/clients/Resent_Client.html" download>Resent Client</a>
<a class="download-link" href="/game/offline/clients/Shadow_Client.html" download>Shadow Client</a> <a href="/game/offline/clients/Shadow_Client.html" download>Shadow Client</a>
<a class="download-link" href="/game/offline/clients/Astra_Client.html" download>Astra Client</a> <a href="/game/offline/clients/Astra_Client.html" download>Astra Client</a>
<a class="download-link" href="/game/offline/clients/Starlike_Client.html" download>Starlike Client</a> <a href="/game/offline/clients/Starlike_Client.html" download>Starlike Client</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left">Join the MineXLauncher Discord</a> <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -72,65 +72,63 @@
</div> </div>
</div> </div>
<div class="installations"> <div class="installations">
<div class="custom-select-wrapper"> <div>
<div class="custom-select" onclick="versionSelector.toggle()"> <div class="selector" onclick="versionSelector.toggle()">
<span class="custom-select-trigger">Select a version</span> <span>Select a version</span>
</div> </div>
<div class="custom-options"> <div class="options">
<div class="custom-option" onclick="game.select('/game/web/main/1.9.4/', '1.9.4')"> <div onclick="game.select('/game/web/main/1.9.4/', '1.9.4')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.9.4</span> <span>1.9.4</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/1.8.8/', '1.8.8')"> <div onclick="game.select('/game/web/main/1.8.8/', '1.8.8')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.8.8</span> <span>1.8.8</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/1.5.2/', '1.5.2')"> <div onclick="game.select('/game/web/main/1.5.2/', '1.5.2')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.5.2</span> <span>1.5.2</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/Eaglercraft_1.2.5.html', '1.2.5')"> <div onclick="game.select('/game/offline/main/Eaglercraft_1.2.5.html', '1.2.5')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.2.5</span> <span>1.2.5</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/b1.7.3/', 'Beta 1.7.3')"> <div onclick="game.select('/game/web/main/b1.7.3/', 'Beta 1.7.3')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Beta 1.7.3</span> <span>Beta 1.7.3</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/b1.3/', 'Beta 1.3')"> <div onclick="game.select('/game/web/main/b1.3/', 'Beta 1.3')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Beta 1.3</span> <span>Beta 1.3</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/a1.2.6/', 'Alpha')"> <div onclick="game.select('/game/web/main/a1.2.6/', 'Alpha')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Alpha 1.2.6</span> <span>Alpha 1.2.6</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/infdev/', 'Infdev')"> <div onclick="game.select('/game/web/main/infdev/', 'Infdev')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Infdev</span> <span>Infdev</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/indev/', 'Indev')"> <div onclick="game.select('/game/web/main/indev/', 'Indev')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Indev</span> <span>Indev</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/web/main/classic/', 'Classic')"> <div onclick="game.select('/game/web/main/classic/', 'Classic')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Classic</span> <span>Classic</span>
</div> </div>
</div> </div>
</div> </div>
<button class="play-button" onclick="game.play()">Play</button> <button onclick="game.play()">Play</button>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -36,7 +36,7 @@
<img src="/resources/images/covers/minecraft.webp" /> <img src="/resources/images/covers/minecraft.webp" />
</div> </div>
<div class="installations"> <div class="installations">
<button class="play-button" onclick="game.play('/game/web/main/1.8.8/?mobile=true')">Play</button> <button onclick="game.play('/game/web/main/1.8.8/?mobile=true')">Play</button>
<a <a
class="play-button" class="play-button"
style="text-decoration: none" style="text-decoration: none"
@ -49,13 +49,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -68,18 +68,16 @@
<div class="mod-list"></div> <div class="mod-list"></div>
</div> </div>
<div class="installations"> <div class="installations">
<button class="play-button" onclick="game.play('/game/web/clients/eaglerforge/')">Play</button> <button onclick="game.play('/game/web/clients/eaglerforge/')">Play</button>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -70,13 +70,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -37,13 +37,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -40,24 +40,24 @@
</div> </div>
</div> </div>
<div class="installations"> <div class="installations">
<div class="custom-select-wrapper"> <div>
<div class="custom-select" onclick="versionSelector.toggle()"> <div class="selector" onclick="versionSelector.toggle()">
<span class="custom-select-trigger">Select a version</span> <span>Select a version</span>
</div> </div>
<div class="custom-options"> <div class="options">
<div class="custom-option" onclick="game.select('/game/offline/main/EaglercraftL_1.9.html', '1.9.4')"> <div onclick="game.select('/game/offline/main/EaglercraftL_1.9.html', '1.9.4')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.9.4</span> <span>1.9.4</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/EaglercraftX_1.8.html', '1.8.8')"> <div onclick="game.select('/game/offline/main/EaglercraftX_1.8.html', '1.8.8')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.8.8</span> <span>1.8.8</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/Eaglercraft_1.5.html', '1.5.2')"> <div onclick="game.select('/game/offline/main/Eaglercraft_1.5.html', '1.5.2')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.5.2</span> <span>1.5.2</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/Eaglercraft_1.2.5.html', '1.2.5')"> <div onclick="game.select('/game/offline/main/Eaglercraft_1.2.5.html', '1.2.5')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>1.2.5</span> <span>1.2.5</span>
</div> </div>
@ -75,29 +75,27 @@
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Beta 1.3</span> <span>Beta 1.3</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/Eaglercraft_a1.2.6.html', 'Alpha')"> <div onclick="game.select('/game/offline/main/Eaglercraft_a1.2.6.html', 'Alpha')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Alpha 1.2.6</span> <span>Alpha 1.2.6</span>
</div> </div>
<div class="custom-option" onclick="game.select('/game/offline/main/Eaglercraft_Indev.html', 'Indev')"> <div onclick="game.select('/game/offline/main/Eaglercraft_Indev.html', 'Indev')">
<img src="/resources/images/icons/clients/all.webp" /> <img src="/resources/images/icons/clients/all.webp" />
<span>Indev</span> <span>Indev</span>
</div> </div>
</div> </div>
</div> </div>
<button class="play-button" onclick="game.play()">Play</button> <button onclick="game.play()">Play</button>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -20,24 +20,24 @@ const theme = {
const versionSelector = { const versionSelector = {
open: function () { open: function () {
const customOptions = document.querySelector('.custom-options'); const customOptions = document.querySelector('.installations div .installations div .options divs');
const customSelect = document.querySelector('.custom-select'); const customSelect = document.querySelector('.installations div .selector');
if (customOptions && customSelect) { if (customOptions && customSelect) {
customOptions.classList.add('open'); customOptions.classList.add('open');
customSelect.classList.add('open'); customSelect.classList.add('open');
} }
}, },
close: function () { close: function () {
const customOptions = document.querySelector('.custom-options'); const customOptions = document.querySelector('.installations div .installations div .options divs');
const customSelect = document.querySelector('.custom-select'); const customSelect = document.querySelector('.installations div .selector');
if (customOptions && customSelect) { if (customOptions && customSelect) {
customOptions.classList.remove('open'); customOptions.classList.remove('open');
customSelect.classList.remove('open'); customSelect.classList.remove('open');
} }
}, },
toggle: function () { toggle: function () {
const customOptions = document.querySelector('.custom-options'); const customOptions = document.querySelector('.installations div .installations div .options divs');
const customSelect = document.querySelector('.custom-select'); const customSelect = document.querySelector('.installations div .selector');
if (customOptions && customSelect) { if (customOptions && customSelect) {
customOptions.classList.toggle('open'); customOptions.classList.toggle('open');
customSelect.classList.toggle('open'); customSelect.classList.toggle('open');
@ -64,7 +64,7 @@ const game = {
}, },
select: function (path: string, name?: string) { select: function (path: string, name?: string) {
selectedVersion = path; selectedVersion = path;
const selector = document.querySelector('.custom-select'); const selector = document.querySelector('.installations div .selector');
if (selector?.textContent) { if (selector?.textContent) {
if (name) { if (name) {
selector.textContent = `Selected: ${name}`; selector.textContent = `Selected: ${name}`;
@ -614,8 +614,7 @@ if (window.location.pathname === '/settings/') {
// @ts-expect-error // @ts-expect-error
addonData[addonType].forEach((addon) => { addonData[addonType].forEach((addon) => {
const modItem = document.createElement('div'); const modItem = document.createElement('div');
modItem.classList.add('mod-item'); modItem.innerHTML = `<img loading="lazy" src="/resources/mods/icons/${addon.id}.webp" /><div class="mod-details"><strong>${
modItem.innerHTML = `<img class="mod-icon" loading="lazy" src="/resources/mods/icons/${addon.id}.webp" /><div class="mod-details"><strong class="mod-name">${
addon.name addon.name
}</strong><p class="mod-author">By <a href="${addon.authorLink}" target="_blank">${addon.author}</a></p><p class="mod-description">${addon.description}</p></div><div class="mod-links">${ }</strong><p class="mod-author">By <a href="${addon.authorLink}" target="_blank">${addon.author}</a></p><p class="mod-description">${addon.description}</p></div><div class="mod-links">${
addonType === 'mods' addonType === 'mods'

View File

@ -4,6 +4,6 @@
margin: 10px auto 0 auto; margin: 10px auto 0 auto;
} }
.play-button { .installations button {
padding: 10px 10px; padding: 10px 10px;
} }

View File

@ -41,32 +41,32 @@ body {
border-top: 1px solid #4a2f1b; border-top: 1px solid #4a2f1b;
} }
.custom-select { .installations div .selector {
background-color: #5a3a2a; background-color: #5a3a2a;
border: 2px solid #4a2f1b; border: 2px solid #4a2f1b;
color: #f5e0c3; color: #f5e0c3;
box-shadow: 4px 4px #2b1b0f; box-shadow: 4px 4px #2b1b0f;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #2b1b0f; box-shadow: 6px 6px #2b1b0f;
} }
.custom-options { .installations div .installations div .options divs {
background-color: #4a2f1b; background-color: #4a2f1b;
box-shadow: 4px 4px #2b1b0f; box-shadow: 4px 4px #2b1b0f;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #6a4a3a; background-color: #6a4a3a;
} }
.play-button { .installations button {
background-color: #ff6600; background-color: #ff6600;
border: 2px solid #cc5200; border: 2px solid #cc5200;
} }
.play-button:hover { .installations button:hover {
background-color: #ff8533; background-color: #ff8533;
border-color: #b34700; border-color: #b34700;
} }
@ -77,24 +77,11 @@ body {
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.3); box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.3);
} }
.minecraft-button { .downloads a {
background-color: #cc5200;
border: 1px solid #4a2f1b;
}
.minecraft-button:hover {
background-color: #e65c00;
}
.minecraft-button:active {
background-color: #b34700;
}
.download-link {
background-color: #ff6600; background-color: #ff6600;
} }
.download-link:hover { .downloads a:hover {
background-color: #ff8533; background-color: #ff8533;
} }

View File

@ -59,33 +59,33 @@ body {
border-top: 1px solid #e0d1e3; border-top: 1px solid #e0d1e3;
} }
.custom-select { .installations div .selector {
border: 2px solid #f2c8d5; border: 2px solid #f2c8d5;
background-color: #f9e6f1; background-color: #f9e6f1;
color: #333; color: #333;
} }
.custom-options { .installations div .installations div .options divs {
border: 2px solid #f2c8d5; border: 2px solid #f2c8d5;
background-color: #fceef2; background-color: #fceef2;
color: #333; color: #333;
scrollbar-color: #f2c8d5 #fceef2; scrollbar-color: #f2c8d5 #fceef2;
} }
.custom-option { .installations div .options div {
border-bottom: 1px solid #f2c8d5; border-bottom: 1px solid #f2c8d5;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #f8d4e4; background-color: #f8d4e4;
} }
.play-button { .installations button {
background-color: #e5a1b8; background-color: #e5a1b8;
border: 2px solid #d0808e; border: 2px solid #d0808e;
} }
.play-button:hover { .installations button:hover {
background-color: #f7b7bc; background-color: #f7b7bc;
border-color: #d0808e; border-color: #d0808e;
} }
@ -95,33 +95,20 @@ body {
border-top: 1px solid #e0d1e3; border-top: 1px solid #e0d1e3;
} }
.bottom-bar .bottom-bar-left, .bottom-bar div .bottom-bar-left,
.bottom-bar .bottom-bar-right { .bottom-bar div .bottom-bar-right {
color: #333; color: #333;
} }
.bottom-bar .bottom-bar-left:hover { .bottom-bar div .bottom-bar-left:hover {
color: #e5a1b8; color: #e5a1b8;
} }
.minecraft-button { .downloads a {
background-color: #f2c8d5;
border: 1px solid #e0d1e3;
}
.minecraft-button:hover {
background-color: #e5a1b8;
}
.minecraft-button:active {
background-color: #d0808e; background-color: #d0808e;
} }
.download-link { .downloads a:hover {
background-color: #d0808e;
}
.download-link:hover {
background-color: #e5a1b8; background-color: #e5a1b8;
} }

View File

@ -203,13 +203,55 @@ body {
border-top: 1px solid #333; border-top: 1px solid #333;
} }
.custom-select-wrapper { .installations button {
background-color: #0f990f;
border: 2px solid #007700;
padding: 10px 40px;
border-radius: 5px;
cursor: pointer;
color: #fff;
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
transition:
background-color 0.2s,
border-color 0.2s,
transform 0.2s;
overflow: hidden;
position: relative;
}
.installations button:hover {
background-color: #17b117;
border-color: #005500;
transform: scale(1.05);
}
.installations button:hover::before {
width: 0;
height: 0;
}
.installations button::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 300%;
height: 300%;
background-color: rgba(255, 255, 255, 0.1);
transition: all 0.4s ease-out;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.installations div {
position: relative; position: relative;
display: inline-block; display: inline-block;
width: 250px; width: 250px;
} }
.custom-select { .installations div .selector {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -225,15 +267,15 @@ body {
transition: box-shadow 0.3s; transition: box-shadow 0.3s;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #4e4e50; box-shadow: 6px 6px #4e4e50;
} }
.custom-select.open { .installations div .selector.open {
border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px;
} }
.custom-options { .installations div .options {
position: absolute; position: absolute;
bottom: calc(100% + 2px); bottom: calc(100% + 2px);
left: 0; left: 0;
@ -255,14 +297,7 @@ body {
opacity 0.3s ease-out; opacity 0.3s ease-out;
} }
.custom-options.open { .installations div .options div {
display: block;
max-height: 200px;
padding: 10px 0;
opacity: 1;
}
.custom-option {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10px; padding: 10px;
@ -271,62 +306,27 @@ body {
transition: background-color 0.3s; transition: background-color 0.3s;
} }
.custom-option:last-child { .installations div .options div.open {
display: block;
max-height: 200px;
padding: 10px 0;
opacity: 1;
}
.installations div .options div:last-child {
border-bottom: none; border-bottom: none;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #127e3f; background-color: #127e3f;
} }
.custom-option img { .installations div .options div img {
width: 32px; width: 32px;
height: 32px; height: 32px;
margin-right: 10px; margin-right: 10px;
} }
.play-button {
background-color: #0f990f;
border: 2px solid #007700;
padding: 10px 40px;
border-radius: 5px;
cursor: pointer;
color: #fff;
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
transition:
background-color 0.2s,
border-color 0.2s,
transform 0.2s;
overflow: hidden;
position: relative;
}
.play-button:hover {
background-color: #17b117;
border-color: #005500;
transform: scale(1.05);
}
.play-button:hover::before {
width: 0;
height: 0;
}
.play-button::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 300%;
height: 300%;
background-color: rgba(255, 255, 255, 0.1);
transition: all 0.4s ease-out;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.bottom-bar { .bottom-bar {
background-color: #2c2c2c; background-color: #2c2c2c;
padding: 10px 20px; padding: 10px 20px;
@ -339,24 +339,24 @@ body {
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.2); box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.2);
} }
.bottom-bar .bottom-bar-links { .bottom-bar div {
display: flex; display: flex;
} }
.bottom-bar .bottom-bar-left { .bottom-bar div .left {
color: #ddd; color: #ddd;
margin-right: 10px; margin-right: 10px;
text-decoration: none; text-decoration: none;
} }
.bottom-bar .bottom-bar-right { .bottom-bar div .right {
color: #ddd; color: #ddd;
margin-left: 10px; margin-left: 10px;
text-decoration: none; text-decoration: none;
} }
.bottom-bar .bottom-bar-left.link:hover, .bottom-bar div a[class='left']:hover,
.bottom-bar .bottom-bar-right.link:hover { .bottom-bar div a[class='right']:hover {
text-decoration: underline; text-decoration: underline;
cursor: pointer; cursor: pointer;
} }
@ -375,30 +375,6 @@ body {
padding: 5px 0 20px 30px; padding: 5px 0 20px 30px;
} }
.minecraft-button {
background-color: #a9a9a9;
border: 1px solid #333;
border-radius: 5px;
padding: 10px 20px;
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
cursor: pointer;
outline: none;
}
.minecraft-button:hover {
background-color: #bdbdbd;
}
.minecraft-button:active {
background-color: #8a8a8a;
}
.version-label {
margin-right: 10px;
}
.downloads { .downloads {
padding: 25px; padding: 25px;
padding-top: 5px; padding-top: 5px;
@ -406,7 +382,7 @@ body {
align-items: center; align-items: center;
} }
.download-link { .downloads a {
display: inline-block; display: inline-block;
background-color: #048239; background-color: #048239;
color: #fff; color: #fff;
@ -417,7 +393,7 @@ body {
transition: background-color 0.3s; transition: background-color 0.3s;
} }
.download-link:hover { .downloads a:hover {
background-color: #00cc00; background-color: #00cc00;
} }
@ -431,7 +407,7 @@ body {
scrollbar-color: #555 #333; scrollbar-color: #555 #333;
} }
.mod-item { .mod-list div {
background-color: #333; background-color: #333;
border-radius: 8px; border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
@ -441,7 +417,7 @@ body {
padding-bottom: 35px; padding-bottom: 35px;
} }
.mod-item .mod-icon { .mod-list div img {
width: 80px; width: 80px;
height: 80px; height: 80px;
margin: 0 auto 10px; margin: 0 auto 10px;
@ -449,34 +425,34 @@ body {
object-fit: cover; object-fit: cover;
} }
.mod-item .mod-details { .mod-list div .mod-details {
padding: 10px 0; padding: 10px 0;
} }
.mod-item .mod-name { .mod-list div .mod-details strong {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
color: #fff; color: #fff;
} }
.mod-item .mod-author { .mod-list div .mod-details .mod-author {
font-size: 12px; font-size: 12px;
color: #ccc; color: #ccc;
margin-bottom: 5px; margin-bottom: 5px;
} }
.mod-item .mod-author a { .mod-list div .mod-details .mod-author a {
color: #0000ee; color: #0000ee;
} }
.mod-item .mod-description { .mod-list div .mod-details .mod-description {
font-size: 14px; font-size: 14px;
color: #bbb; color: #bbb;
margin-bottom: 10px; margin-bottom: 10px;
} }
.mod-item .mod-links { .mod-list div .mod-links {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
width: calc(100% - 10px); width: calc(100% - 10px);
@ -486,8 +462,8 @@ body {
justify-content: center; justify-content: center;
} }
.mod-item .mod-links .mod-download, .mod-list div .mod-links .mod-download,
.mod-item .mod-links .mod-install { .mod-list div .mod-links .mod-install {
flex: 1; flex: 1;
margin: 0 5px; margin: 0 5px;
padding: 5px; padding: 5px;
@ -497,32 +473,130 @@ body {
transition: background-color 0.3s; transition: background-color 0.3s;
} }
.mod-item .mod-links .mod-download { .mod-list div .mod-links .mod-download {
background-color: #555; background-color: #555;
} }
.mod-item .mod-links .mod-download:hover { .mod-list div .mod-links .mod-download:hover {
cursor: pointer; cursor: pointer;
background-color: #777; background-color: #777;
} }
.mod-item .mod-links .mod-install { .mod-list div .mod-links .mod-install {
background-color: #4c4; background-color: #4c4;
} }
.mod-item .mod-links .mod-install:hover { .mod-list div .mod-links .mod-install:hover {
cursor: pointer; cursor: pointer;
background-color: #00b300; background-color: #00b300;
} }
.mod-item .mod-links .mod-install.installed { .mod-list div .mod-links .mod-install.installed {
background-color: #ff0000; background-color: #ff0000;
} }
.mod-item .mod-links .mod-install.installed:hover { .mod-list div .mod-links .mod-install.installed:hover {
background-color: #cc0000; background-color: #cc0000;
} }
.article-list {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
padding: 10px;
text-align: center;
scrollbar-width: thin;
scrollbar-color: #555 #333;
}
.article-list div {
background-color: #333;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
padding: 10px;
text-align: center;
position: relative;
padding-bottom: 0;
}
.article-list div:hover {
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
cursor: pointer;
background-color: #3d3d3d;
}
.article-list div img {
width: 80px;
height: 80px;
margin: 0 auto 10px;
border-radius: 5px;
object-fit: cover;
}
.article-list div .article-details {
padding: 10px 0;
}
.article-list div .article-details strong {
font-size: 16px;
font-weight: bold;
margin-bottom: 5px;
color: #fff;
}
.article-list div .article-details p {
font-size: 14px;
color: #bbb;
margin-bottom: 10px;
}
.article {
display: none;
position: fixed;
width: 500vw;
height: 500vh;
overflow: auto;
background-color: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
}
.article div {
background-color: #333;
padding: 20px;
border: 1px solid #888;
width: 65vw;
height: 85vh;
max-width: 85vw;
border-radius: 15px;
color: #fff;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #555 #333;
position: relative;
}
.article div span {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
position: absolute;
top: 15px;
right: 15px;
}
.article div span:hover,
.article div span:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.article div div a {
color: #0000ee;
}
.server-list { .server-list {
display: flex; display: flex;
flex: 1; flex: 1;
@ -535,7 +609,18 @@ body {
border: none; border: none;
} }
.version-select { .archive div {
margin: 1rem;
padding: 1rem;
border: 2px solid #3c3c3c;
border-radius: 8px;
background-color: #2e2e2e;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.archive div select {
width: 100%; width: 100%;
padding: 0.5rem; padding: 0.5rem;
border: 2px solid #4a4a4a; border: 2px solid #4a4a4a;
@ -559,72 +644,53 @@ body {
background-color 0.3s; background-color 0.3s;
} }
.version-select:focus { .archive div select:focus {
border-color: #4a90e2; border-color: #00cc00;
outline: none; outline: none;
background-color: #2e2e2e; background-color: #2e2e2e;
} }
.version-select option { .archive div select option {
background-color: #1e1e1e; background-color: #1e1e1e;
color: #ffffff; color: #ffffff;
} }
.version-label { .archive div label {
font-size: 1rem; font-size: 1rem;
color: #ffffff; color: #ffffff;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
margin-right: 10px;
} }
.archive-section { .archive button {
margin: 1rem;
padding: 1rem;
border: 2px solid #3c3c3c;
border-radius: 8px;
background-color: #2e2e2e;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.archive-button {
padding: 0.5rem 1rem;
margin-top: 0.5rem;
border: none;
border-radius: 5px;
background-color: #4a90e2;
color: #ffffff;
font-size: 1rem;
cursor: pointer;
transition: background-color 0.3s;
}
.archive-link {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
margin: 0.5rem 1rem; margin: 0.5rem 1rem;
border: none; border: none;
border-radius: 5px; border-radius: 5px;
background-color: #4a90e2; background-color: #048239;
color: #ffffff; color: #ffffff;
font-size: 1rem; font-size: 1rem;
cursor: pointer; cursor: pointer;
transition: background-color 0.3s; transition: background-color 0.3s;
width: calc(100% - 2rem);
} }
.archive-button:hover, .archive button:hover {
.archive-link:hover { background-color: #00cc00;
background-color: #357abd;
} }
.archive-button:focus, .archive button:focus {
.archive-link:focus {
outline: none; outline: none;
box-shadow: 0 0 0 2px #357abd; box-shadow: 0 0 0 2px #00cc00;
} }
.archive-button:active, .archive button:active {
.archive-link:active { transform: scale(0.99);
transform: scale(0.95); }
.archive div button {
margin: 0.5rem 0 0 0;
width: 100%;
} }
.settings { .settings {
@ -635,12 +701,12 @@ body {
justify-content: center; justify-content: center;
} }
.settings-section { .settings form {
margin: 5px; margin: 5px;
} }
.settings-input, .settings form input[type='text'],
.settings-select { .settings form select {
width: calc(100% - 22px); width: calc(100% - 22px);
padding: 10px; padding: 10px;
margin-bottom: 10px; margin-bottom: 10px;
@ -651,17 +717,17 @@ body {
appearance: none; appearance: none;
} }
.settings-checkbox { .settings form input[type='checkbox'] {
padding: 10px; padding: 10px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.settings-input:focus, .settings form input[type='text']:focus,
.settings-select:focus { .settings form select:focus {
outline: none; outline: none;
} }
.setup-submit { .settings form button[type='submit'] {
width: 100%; width: 100%;
padding: 10px; padding: 10px;
border: none; border: none;
@ -672,11 +738,10 @@ body {
transition: background-color 0.2s; transition: background-color 0.2s;
} }
.setup-submit:hover { .settings form button[type='submit']:hover {
background-color: #00ff00; background-color: #00ff00;
} }
.setup-page,
.error-page { .error-page {
display: flex; display: flex;
flex: 1; flex: 1;
@ -687,104 +752,6 @@ body {
padding-bottom: 7%; padding-bottom: 7%;
} }
.article-list {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
padding: 10px;
text-align: center;
scrollbar-width: thin;
scrollbar-color: #555 #333;
}
.article-item {
background-color: #333;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
padding: 10px;
text-align: center;
position: relative;
padding-bottom: 0;
}
.article-item:hover {
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
cursor: pointer;
background-color: #3d3d3d;
}
.article-item .article-icon {
width: 80px;
height: 80px;
margin: 0 auto 10px;
border-radius: 5px;
object-fit: cover;
}
.article-item .article-details {
padding: 10px 0;
}
.article-item .article-name {
font-size: 16px;
font-weight: bold;
margin-bottom: 5px;
color: #fff;
}
.article-item .article-description {
font-size: 14px;
color: #bbb;
margin-bottom: 10px;
}
.article {
display: none;
position: fixed;
width: 500vw;
height: 500vh;
overflow: auto;
background-color: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
}
.article .article-content {
background-color: #333;
padding: 20px;
border: 1px solid #888;
width: 65vw;
height: 85vh;
max-width: 85vw;
border-radius: 15px;
color: #fff;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #555 #333;
position: relative;
}
.article .article-content a {
color: #0000ee;
}
.article .article-content .close-button {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
position: absolute;
top: 15px;
right: 15px;
}
.article .article-content .close-button:hover,
.article .article-content .close-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
@media (max-width: 1750px) { @media (max-width: 1750px) {
.mod-list, .mod-list,
.article-list { .article-list {

View File

@ -48,18 +48,18 @@ body {
background-color: #1c1c1c; background-color: #1c1c1c;
} }
.custom-select { .installations div .selector {
border: 2px solid #444; border: 2px solid #444;
background-color: #333; background-color: #333;
color: #e0e0e0; color: #e0e0e0;
box-shadow: 4px 4px #111; box-shadow: 4px 4px #111;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #111; box-shadow: 6px 6px #111;
} }
.custom-options { .installations div .installations div .options divs {
border: 2px solid #444; border: 2px solid #444;
background-color: #222; background-color: #222;
box-shadow: 4px 4px #111; box-shadow: 4px 4px #111;
@ -67,21 +67,21 @@ body {
scrollbar-color: #333 #222; scrollbar-color: #333 #222;
} }
.custom-option { .installations div .options div {
border-bottom: 1px solid #444; border-bottom: 1px solid #444;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #333; background-color: #333;
} }
.play-button { .installations button {
background-color: #444; background-color: #444;
border: 2px solid #333; border: 2px solid #333;
color: #e0e0e0; color: #e0e0e0;
} }
.play-button:hover { .installations button:hover {
background-color: #555; background-color: #555;
border-color: #444; border-color: #444;
} }
@ -91,37 +91,24 @@ body {
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.5); box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.5);
} }
.bottom-bar .bottom-bar-left { .bottom-bar div .bottom-bar-left {
color: #e0e0e0; color: #e0e0e0;
} }
.bottom-bar .bottom-bar-left:hover { .bottom-bar div .bottom-bar-left:hover {
color: #aaa; color: #aaa;
} }
.bottom-bar .bottom-bar-right { .bottom-bar div .bottom-bar-right {
color: #e0e0e0; color: #e0e0e0;
} }
.minecraft-button { .downloads a {
background-color: #333;
border: 1px solid #444;
}
.minecraft-button:hover {
background-color: #444;
}
.minecraft-button:active {
background-color: #555;
}
.download-link {
background-color: #333; background-color: #333;
color: #e0e0e0; color: #e0e0e0;
} }
.download-link:hover { .downloads a:hover {
background-color: #444; background-color: #444;
} }

View File

@ -45,66 +45,53 @@ body {
border-top: 1px solid #ddd; border-top: 1px solid #ddd;
} }
.custom-select { .installations div .selector {
border: 2px solid #ccc; border: 2px solid #ccc;
background-color: #fff; background-color: #fff;
color: #333; color: #333;
box-shadow: 4px 4px #ddd; box-shadow: 4px 4px #ddd;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #ddd; box-shadow: 6px 6px #ddd;
} }
.custom-options { .installations div .installations div .options divs {
border: 2px solid #ccc; border: 2px solid #ccc;
background-color: #fff; background-color: #fff;
box-shadow: 4px 4px #ddd; box-shadow: 4px 4px #ddd;
} }
.custom-option { .installations div .options div {
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
color: #333; color: #333;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #f0f0f0; background-color: #f0f0f0;
} }
.play-button { .installations button {
background-color: #4caf50; background-color: #4caf50;
border: 2px solid #388e3c; border: 2px solid #388e3c;
color: #fff; color: #fff;
} }
.play-button:hover { .installations button:hover {
background-color: #66bb6a; background-color: #66bb6a;
border-color: #2e7d32; border-color: #2e7d32;
} }
.bottom-bar .bottom-bar-left, .bottom-bar div .bottom-bar-left,
.bottom-bar .bottom-bar-right { .bottom-bar div .bottom-bar-right {
color: #333; color: #333;
} }
.minecraft-button { .downloads a {
background-color: #e0e0e0;
border: 1px solid #ccc;
}
.minecraft-button:hover {
background-color: #d5d5d5;
}
.minecraft-button:active {
background-color: #bdbdbd;
}
.download-link {
background-color: #4caf50; background-color: #4caf50;
} }
.download-link:hover { .downloads a:hover {
background-color: #66bb6a; background-color: #66bb6a;
} }

View File

@ -40,32 +40,32 @@ body {
border-top: 1px solid #5c3c3c; border-top: 1px solid #5c3c3c;
} }
.custom-select { .installations div .selector {
background-color: #8b0000; background-color: #8b0000;
border: 2px solid #4c2c2c; border: 2px solid #4c2c2c;
box-shadow: 4px 4px #5c3c3c; box-shadow: 4px 4px #5c3c3c;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #5c3c3c; box-shadow: 6px 6px #5c3c3c;
} }
.custom-options { .installations div .installations div .options divs {
background-color: #4c2c2c; background-color: #4c2c2c;
border: 2px solid #4c2c2c; border: 2px solid #4c2c2c;
box-shadow: 4px 4px #5c3c3c; box-shadow: 4px 4px #5c3c3c;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #8b0000; background-color: #8b0000;
} }
.play-button { .installations button {
background-color: #ff4500; background-color: #ff4500;
border: 2px solid #8b0000; border: 2px solid #8b0000;
} }
.play-button:hover { .installations button:hover {
background-color: #ff6347; background-color: #ff6347;
border-color: #8b0000; border-color: #8b0000;
} }
@ -76,29 +76,16 @@ body {
box-shadow: 0 -2px 4px rgba(255, 69, 0, 0.2); box-shadow: 0 -2px 4px rgba(255, 69, 0, 0.2);
} }
.bottom-bar .bottom-bar-left, .bottom-bar div .bottom-bar-left,
.bottom-bar .bottom-bar-right { .bottom-bar div .bottom-bar-right {
color: #ffcc00; color: #ffcc00;
} }
.minecraft-button { .downloads a {
background-color: #8b0000;
border: 1px solid #4c2c2c;
}
.minecraft-button:hover {
background-color: #a52a2a;
}
.minecraft-button:active {
background-color: #5c3c3c;
}
.download-link {
background-color: #8b0000; background-color: #8b0000;
} }
.download-link:hover { .downloads a:hover {
background-color: #ff4500; background-color: #ff4500;
} }

View File

@ -40,32 +40,32 @@ body {
border-top: 1px solid #5c7c5c; border-top: 1px solid #5c7c5c;
} }
.custom-select { .installations div .selector {
background-color: #00b000; background-color: #00b000;
border: 2px solid #4c6c4c; border: 2px solid #4c6c4c;
box-shadow: 4px 4px #5c7c5c; box-shadow: 4px 4px #5c7c5c;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #5c7c5c; box-shadow: 6px 6px #5c7c5c;
} }
.custom-options { .installations div .installations div .options divs {
background-color: #4c6c4c; background-color: #4c6c4c;
border: 2px solid #4c6c4c; border: 2px solid #4c6c4c;
box-shadow: 4px 4px #5c7c5c; box-shadow: 4px 4px #5c7c5c;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #00b000; background-color: #00b000;
} }
.play-button { .installations button {
background-color: #00ff00; background-color: #00ff00;
border: 2px solid #00b000; border: 2px solid #00b000;
} }
.play-button:hover { .installations button:hover {
background-color: #32ff32; background-color: #32ff32;
border-color: #00b000; border-color: #00b000;
} }
@ -76,29 +76,16 @@ body {
box-shadow: 0 -2px 4px rgba(0, 255, 0, 0.2); box-shadow: 0 -2px 4px rgba(0, 255, 0, 0.2);
} }
.bottom-bar .bottom-bar-left, .bottom-bar div .bottom-bar-left,
.bottom-bar .bottom-bar-right { .bottom-bar div .bottom-bar-right {
color: #00ff00; color: #00ff00;
} }
.minecraft-button { .downloads a {
background-color: #00b000;
border: 1px solid #4c6c4c;
}
.minecraft-button:hover {
background-color: #32cd32;
}
.minecraft-button:active {
background-color: #5c7c5c;
}
.download-link {
background-color: #00b000; background-color: #00b000;
} }
.download-link:hover { .downloads a:hover {
background-color: #00ff00; background-color: #00ff00;
} }

View File

@ -28,11 +28,10 @@ body {
.profile, .profile,
.nav-bar li, .nav-bar li,
.installations, .installations,
.custom-select, .installations div .selector,
.custom-options, .installations div .installations div .options divs,
.play-button, .installations button,
.minecraft-button, .downloads a {
.download-link {
background-color: #111; background-color: #111;
border: 2px solid #00ff00; border: 2px solid #00ff00;
color: #00ff00; color: #00ff00;
@ -40,42 +39,40 @@ body {
.nav-bar li:hover, .nav-bar li:hover,
.nav-bar li.selected, .nav-bar li.selected,
.custom-option:hover, .installations div .options div:hover,
.play-button:hover, .installations button:hover,
.minecraft-button:hover, .downloads a:hover {
.download-link:hover {
background-color: #333; background-color: #333;
} }
.custom-select:hover, .installations div .selector:hover,
.custom-select.open, .installations div .selector.open,
.play-button:hover, .installations button:hover,
.minecraft-button:hover, .downloads a:hover {
.download-link:hover {
box-shadow: none; box-shadow: none;
} }
.custom-option { .installations div .options div {
border-bottom: 1px solid #00ff00; border-bottom: 1px solid #00ff00;
} }
.custom-option:last-child { .installations div .options div:last-child {
border-bottom: none; border-bottom: none;
} }
.play-button::before { .installations button::before {
background-color: rgba(0, 255, 0, 0.1); background-color: rgba(0, 255, 0, 0.1);
} }
.play-button:hover::before { .installations button:hover::before {
background-color: rgba(0, 255, 0, 0.2); background-color: rgba(0, 255, 0, 0.2);
} }
.play-button span { .installations button span {
animation: none; animation: none;
} }
.bottom-bar .bottom-bar-left:hover { .bottom-bar div .bottom-bar-left:hover {
text-decoration: none; text-decoration: none;
color: #00ff00; color: #00ff00;
} }

View File

@ -24,31 +24,31 @@ body {
color: #00ccff; color: #00ccff;
} }
.custom-select, .installations div .selector,
.custom-options { .installations div .installations div .options divs {
background-color: rgba(0, 0, 0, 0.8); background-color: rgba(0, 0, 0, 0.8);
color: #00ccff; color: #00ccff;
border: 2px solid #00ccff; border: 2px solid #00ccff;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: rgba(0, 204, 255, 0.2); background-color: rgba(0, 204, 255, 0.2);
} }
.play-button { .installations button {
background-color: #00ccff; background-color: #00ccff;
border: 2px solid #0099cc; border: 2px solid #0099cc;
} }
.play-button:hover { .installations button:hover {
background-color: #00e6ff; background-color: #00e6ff;
border-color: #0077aa; border-color: #0077aa;
} }
.download-link { .downloads a {
background-color: #00ccff; background-color: #00ccff;
} }
.download-link:hover { .downloads a:hover {
background-color: #00e6ff; background-color: #00e6ff;
} }

View File

@ -42,59 +42,46 @@ body {
border-top: 1px solid #330066; border-top: 1px solid #330066;
} }
.custom-select { .installations div .selector {
background-color: #4d0099; background-color: #4d0099;
border: 2px solid #330066; border: 2px solid #330066;
box-shadow: 4px 4px #6600cc; box-shadow: 4px 4px #6600cc;
} }
.custom-select:hover { .installations div .selector:hover {
box-shadow: 6px 6px #6600cc; box-shadow: 6px 6px #6600cc;
} }
.custom-options { .installations div .installations div .options divs {
background-color: #330066; background-color: #330066;
border: 2px solid #22004d; border: 2px solid #22004d;
box-shadow: 4px 4px #6600cc; box-shadow: 4px 4px #6600cc;
} }
.custom-option:hover { .installations div .options div:hover {
background-color: #4d0099; background-color: #4d0099;
} }
.play-button { .installations button {
background-color: #6600cc; background-color: #6600cc;
border: 2px solid #330066; border: 2px solid #330066;
} }
.play-button:hover { .installations button:hover {
background-color: #8000ff; background-color: #8000ff;
border-color: #22004d; border-color: #22004d;
} }
.bottom-bar .bottom-bar-left:hover { .bottom-bar div .bottom-bar-left:hover {
text-decoration: underline; text-decoration: underline;
color: #b300b3; color: #b300b3;
} }
.minecraft-button { .downloads a {
background-color: #8000ff;
border: 1px solid #330066;
}
.minecraft-button:hover {
background-color: #9933ff;
}
.minecraft-button:active {
background-color: #6600cc;
}
.download-link {
background-color: #4d0099; background-color: #4d0099;
} }
.download-link:hover { .downloads a:hover {
background-color: #8000ff; background-color: #8000ff;
} }

View File

@ -66,13 +66,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -63,36 +63,32 @@
</div> </div>
<div class="main-content"> <div class="main-content">
<div class="settings"> <div class="settings">
<div class="settings-section"> <form>
<label for="username-input">Username:</label> <label for="username-input">Username:</label>
<input type="text" class="settings-input" id="username-input" /> <input id="username-input" type="text" />
</div>
<div class="settings-section">
<label for="theme-select">Theme:</label> <label for="theme-select">Theme:</label>
<select id="theme-select" class="settings-select"> <select id="theme-select">
<option disabled hidden value=""></option> <option disabled hidden value=""></option>
</select> </select>
</div> </form>
<!-- <div class="settings-section"> <!-- <div>
<label for="offline-checkbox">Enable offline use:</label> <label for="offline-checkbox">Enable offline use:</label>
<input type="checkbox" class="settings-checkbox" id="offline-checkbox" /> <input id="offline-checkbox" type="checkbox" />
</div> --> </div> -->
<!-- <div class="settings-section"> <!-- <div>
<label for="ads-checkbox">Show ads:</label> <label for="ads-checkbox">Show ads:</label>
<input type="checkbox" class="settings-checkbox" id="ads-checkbox" /> <input id="ads-checkbox" type="checkbox" />
</div> --> </div> -->
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -67,13 +67,11 @@
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -19,32 +19,30 @@
<div class="content"> <div class="content">
<div class="main-panel"> <div class="main-panel">
<div class="main-content"> <div class="main-content">
<div class="setup-page"> <div class="settings">
<h2>Welcome to MineXLauncher!</h2> <h2>Welcome to MineXLauncher!</h2>
<p>Let's get you setup.</p> <p>Let's get you setup.</p>
<form id="setup-form"> <form id="setup-form">
<label for="username-input">Username:</label> <label for="username-input">Username:</label>
<input id="username-input" class="settings-input" placeholder="Enter username" /> <input id="username-input" type="text" placeholder="Enter username" />
<label for="theme-select">Theme:</label> <label for="theme-select">Theme:</label>
<select id="theme-select" class="settings-select"> <select id="theme-select">
<option disabled hidden value=""></option> <option disabled hidden value=""></option>
</select> </select>
<!-- <label for="offline-checkbox">Enable offline use:</label> <!-- <label for="offline-checkbox">Enable offline use:</label>
<input type="checkbox" id="offline-checkbox" class="settings-checkbox" /> --> <input id="offline-checkbox" type="checkbox" /> -->
<button type="submit" class="setup-submit">Submit</button> <button type="submit">Submit</button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<div class="bottom-bar-links"> <div>
<a href="https://discord.gg/VRwbRJjXzt" class="bottom-bar-left link" target="_blank" <a class="left" href="https://discord.gg/VRwbRJjXzt" target="_blank">Join the MineXLauncher Discord</a>
>Join the MineXLauncher Discord</a
>
</div> </div>
<div class="bottom-bar-links"> <div>
<span class="bottom-bar-right">© 2024 MineXLauncher. All rights reserved.</span> <span class="right">© 2024 MineXLauncher. All rights reserved.</span>
</div> </div>
</div> </div>
</div> </div>