Compare commits
88 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a95bc7641e | |||
|
|
ae6e332cd2 | ||
|
|
db9c37781b | ||
|
|
45f5724a9e |
||
|
|
9feac53eaa | ||
|
|
1edd63bb5b | ||
|
|
79e4bb9376 | ||
|
|
ce4e62b8b3 | ||
|
|
91ffcc3e59 | ||
|
|
a3ba9f596a |
||
|
|
e805100ffb | ||
|
|
67acd6ea78 | ||
|
|
b91efeea8a | ||
|
|
ffd5390b22 | ||
|
|
d50214725e | ||
|
|
34cf2ba582 | ||
|
|
bfc0ec0b6e | ||
|
|
e3fbed11e9 | ||
|
|
3dfca0cecf | ||
|
|
e13f4c59cb | ||
|
|
23204a4e69 | ||
|
|
c750a1268a |
||
|
|
8f9dd1aa5d | ||
|
|
21aa180b46 |
||
|
|
2083fb992f |
||
|
|
3457846613 | ||
|
|
9d789ff132 |
||
|
|
743564b79c |
||
|
|
5a79bb386f |
||
|
|
002f5497ff |
||
|
|
a63473fc26 |
||
|
|
b7e533b86a |
||
|
|
69c97cc5a7 |
||
|
|
ea74dde2c8 |
||
|
|
6db1af70fb | ||
|
|
ff85893a29 | ||
|
|
97926bbf99 | ||
|
|
c60932508e | ||
|
|
5d876fce55 | ||
|
|
fcfdfd46f6 | ||
|
|
26cd4a98fe |
||
|
|
c3ca943b45 | ||
|
|
8ba599b332 | ||
|
|
3ea5cbc753 |
||
|
|
8401177d95 |
||
|
|
71044adbe7 |
||
|
|
84d0521f4c |
||
|
|
1bf9162242 | ||
|
|
a628b1d66d |
||
|
|
c9a02c6120 |
||
|
|
3773cc21be |
||
|
|
4176e024fd |
||
|
|
0bf76c05f4 |
||
|
|
72080070db |
||
|
|
a384b7f901 | ||
|
|
470bf9018c | ||
|
|
8696442e61 | ||
|
|
ad1168da95 | ||
|
|
0ee38817a6 |
||
|
|
39cb217e47 | ||
|
|
c45cf77beb |
||
|
|
3025ffb114 |
||
|
|
f99d4778b6 |
||
|
|
7114816128 |
||
|
|
40fc163e6c |
||
|
|
c00085a2be |
||
|
|
b17e48e64f |
||
|
|
0321369d82 |
||
|
|
6fe083e996 |
||
|
|
670c6ddfd9 |
||
|
|
dcd9f4a9ff |
||
|
|
4f74aab9c2 |
||
|
|
45f9a87862 |
||
|
|
7a3e45857c |
||
|
|
cf8edf0d62 | ||
|
|
cc5cbb0d8c |
||
|
|
0fccb404ce |
||
|
|
ec2498ff8a |
||
|
|
5a9a391509 |
||
|
|
3eb9502dec |
||
|
|
24a522cbd3 |
||
|
|
868525a1b2 |
||
|
|
35af1ab0f7 |
||
|
|
4c6e606c5a |
||
|
|
62435298cb |
||
|
|
25b9ec4143 |
||
|
|
b5a42d7cf9 |
||
|
|
4a130dea85 |
3
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"liveServer.settings.port": 5502
|
||||
}
|
||||
96
1.3.html
|
|
@ -1,28 +1,78 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>1.3 Clients</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="loader.js" defer></script>
|
||||
<script src="sounds.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
<h1 align="center" style="font-size: 54px; margin-bottom: -10px; text-decoration: none">1.3 Clients</h1>
|
||||
<p align="center" style='font-family: inter-medium;'>There is only one 💀</p>
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 75s linear infinite;
|
||||
}
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Eagler 1.3<p style="font-size: 14px; padding-bottom: 15px;">Version: Eaglercraft 1.3</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="eagler1.3.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
</div>
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<h1
|
||||
style="
|
||||
font-size: xxx-large;
|
||||
text-shadow: 2px 2px 2px black;
|
||||
margin-bottom: 0;
|
||||
"
|
||||
>
|
||||
1.3 Clients
|
||||
</h1>
|
||||
<p class="splash-text">
|
||||
<a
|
||||
href="/"
|
||||
class="github-link"
|
||||
style="color: yellow; font-size: 17px; margin-top: -10px"
|
||||
>Back home</a
|
||||
>
|
||||
</p>
|
||||
<div class="vflex" id="container" style="justify-content: center">
|
||||
<!--load clients into here-->
|
||||
<div id="cclients">
|
||||
<ul id="clients"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
<div class="backdrop-blur"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
100
1.5.html
|
|
@ -1,40 +1,72 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>1.5 Clients</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="sounds.js" defer></script>
|
||||
<script src="loader.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
<h1 align="center" style="font-size: 54px; margin-bottom: -10px; text-decoration: none">1.5 Clients</h1>
|
||||
<p align="center" style='font-family: inter-medium;'>Take your pick.</p>
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 95s linear infinite;
|
||||
}
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Eagler 1.5<p style="font-size: 14px; padding-bottom: 15px;">Version: Service Pack #1</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.5/eagler1.5.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Precision Client<p style="font-size: 14px; padding-bottom: 15px;">Version: Unknown</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="PrecisionClient.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Ayuncraft<p style="font-size: 14px; padding-bottom: 15px;">Version: Ayuncraft Web</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.5/ayunami-1.5.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">NitClient<p style="font-size: 14px; padding-bottom: 15px;">Version: NitClient 2.0</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="nitclient.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Nebula<p style="font-size: 14px; padding-bottom: 15px;">Updated: 11/21/23</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="nebula.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
</div>
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Kerosene<p style="font-size: 14px; padding-bottom: 15px;">Updated: 11/21/23</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="kerosene.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">CoderCraft<p style="font-size: 14px; padding-bottom: 15px;">Updated: 11/21/23</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="codercraft.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Odd Future Client<p style="font-size: 14px; padding-bottom: 15px;">Updated: 6/1/22</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="oddfutureclient.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">FuchsiaX<p style="font-size: 14px; padding-bottom: 15px;">FuchsiaX Web</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.5/fuchsiax.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Nova Client<p style="font-size: 14px; padding-bottom: 15px;">Version: 1.0 (First Release)</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="warning.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
</div>
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<h1 style="font-size: xxx-large; text-shadow: 2px 2px 2px black; margin-bottom: 0;">1.5 Clients</h1>
|
||||
<p class="splash-text">
|
||||
<a
|
||||
href="/"
|
||||
class="github-link"
|
||||
style="color: yellow; font-size: 17px; margin-top: -10px;"
|
||||
>Back home</a
|
||||
>
|
||||
</p>
|
||||
<div class="vflex" id="container" style="justify-content: center;">
|
||||
<!--load clients into here-->
|
||||
<div id="cclients">
|
||||
<ul id="clients">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
<div class="backdrop-blur"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
103
1.8.html
|
|
@ -1,45 +1,72 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>1.8 Clients</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="sounds.js" defer></script>
|
||||
<script src="loader.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
<h1 align="center" style="font-size: 54px; margin-bottom: -10px; text-decoration: none">1.8 Clients</h1>
|
||||
<p align="center" style='font-family: inter-medium;'>Take your pick.</p>
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 95s linear infinite;
|
||||
}
|
||||
|
||||
<br><br>
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">EaglercraftX<p style="font-size: 14px; padding-bottom: 15px;">Version: u30</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/EaglercraftX.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Eagler Reborn<p style="font-size: 14px; padding-bottom: 15px;">Version: 1.1</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/Eagler-Reborn.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Shadow Client<p style="font-size: 14px; padding-bottom: 15px;">Version: 3.0 (Beta)</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/shadowclient30beta.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">Pi Client<p style="font-size: 14px; padding-bottom: 15px;">Version: 1.0 (First Release)</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/pi-client.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">DragonX Lite<p style="font-size: 14px; padding-bottom: 15px;">Version: DragonX Lite</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/DragonXLite.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
<button class="button" style="height: 200px; margin: 15px; cursor: unset;">DragonX<p style="font-size: 14px; padding-bottom: 15px;">Version: DragonX V4</p><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding: 10px; padding-right: 40px; padding-left: 40px;" href="clients/1.8/DragonX_V4.html"><span class="material-icons-round">play_circle</span> Play</a></button><br>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<h1 style="font-size: xxx-large; text-shadow: 2px 2px 2px black; margin-bottom: 0;">1.8 Clients</h1>
|
||||
<p class="splash-text">
|
||||
<a
|
||||
href="/"
|
||||
class="github-link"
|
||||
style="color: yellow; font-size: 17px; margin-top: -10px;"
|
||||
>Back home</a
|
||||
>
|
||||
</p>
|
||||
<div class="vflex" id="container" style="justify-content: center;">
|
||||
<!--load clients into here-->
|
||||
<div id="cclients">
|
||||
<ul id="clients">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
<div class="backdrop-blur"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
37
README.md
|
|
@ -1,30 +1,25 @@
|
|||
# Welcome to Eaglercraft Extras!
|
||||
This is a website similar to EaglerCrack (if you know it) where you can find all things related to Eaglercraft!
|
||||
There are currently 3 developers, and I am trying to update this as much as possible for it to be the best it can be.
|
||||
I recomment looking through some of the features below!
|
||||
|
||||
# Welcome to Eaglercraft Extras!!!!
|
||||
The best addons website for Eaglercraft. Constantly updated to bring you the latest versions of Eagler, and providing you with other clients, texture packs, and more!
|
||||
## Features
|
||||
- Find pre-built worlds to download and play!
|
||||
- Search for servers to play with other people!
|
||||
- Download resource packs to customize your Eaglercraft!
|
||||
- Look at a <b>giant</b> selection of clients to play on!
|
||||
- Download skins for Eaglercraft!
|
||||
- See our built-in Quick Guide made by Thundiverter!
|
||||
- Download skins for your Eaglercraft character!
|
||||
- We have 1.3, 1.5, and 1.8 clients for Eaglercraft!
|
||||
- The best part? It's 100% <u>free!</u>
|
||||
|
||||
## Meet the Developers
|
||||
|
||||
### Hey there! I'm cobblesteve.
|
||||
I started this project in April, and I wanted it to become the alternative for EaglerCrack.
|
||||
I'm making it for a website I have right now, which currently uses EaglerCrack as a source.
|
||||
### Hey there! I'm x8r.
|
||||
I started this project in April 2024, and I wanted it to become the alternative for Eaglercrack.
|
||||
I'm making it for a website I have right now, which currently uses Eaglercrack as a source.
|
||||
|
||||
About Me:
|
||||
- Knows HTML and CSS
|
||||
- Learning JavaScript and Python
|
||||
- Barely knows Python
|
||||
- Has a YouTube channel >>> https://youtube.com/@cobblesteve.official
|
||||
- Knows HTML, CSS, Javascript, Typescript, and Svelte
|
||||
- Learning Astro and Node
|
||||
- Likes to play Minecraft, Geometry Dash, A Dance of Fire and Ice (ADOFAI), and more!
|
||||
- yea :D
|
||||
|
||||
### Hey there! I'm SyntaxError52.
|
||||
|
||||
|
|
@ -32,13 +27,11 @@ Here are some things about me:
|
|||
- Knows HTML, CSS, and Python
|
||||
- Learning JavaScript
|
||||
- Barely knows JavaScript
|
||||
- yea :D
|
||||
|
||||
### Hey there! I'm SprintingSnail69.
|
||||
- Knows HTML, CSS, and a little JavaScript
|
||||
- Learning more JavaScript
|
||||
- Has a YouTube channel --> https://youtube.com/@SprintingSnailBS
|
||||
- Insane at Brawl Stars, Clash Royale, and Clash of Clans
|
||||
|
||||
### Hey there! I'm Bahabryra.
|
||||
|
||||
Here are some things about me:
|
||||
- Knows HTML, CSS, and Scratch
|
||||
- Learning Python and JavaScript
|
||||
- Barely knows Python and Javascript
|
||||
- yea :D
|
||||
### Thanks to Thundiverter for making the quickguide!
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
## Some clients aren't safe!
|
||||
|
||||
Use these at your own risk. Some problems are glitching screens, keybinds changing, etc.
|
||||
These clients can be malicious, but we can't tell which ones. That's why we need **you!**
|
||||
You can help us identify these clients by telling us which ones in the discussions section.
|
||||
BIN
assets/Minecraft.woff2
Normal file
BIN
assets/bg.jpg
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
assets/btn-minecraft-hover.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/btn-minecraft.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
assets/click.ogg
Normal file
BIN
assets/dirt.webp
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/font.ttf
Normal file
BIN
assets/home.png
Normal file
|
After Width: | Height: | Size: 2 KiB |
BIN
assets/hover.ogg
Normal file
BIN
assets/icon.png
Normal file
|
After Width: | Height: | Size: 259 KiB |
BIN
assets/intro.mp4
Normal file
0
assets/json/1.11.json
Normal file
0
assets/json/1.14.json
Normal file
9
assets/json/1.3.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[
|
||||
{
|
||||
"name": "EaglercraftX 1.3",
|
||||
"version": "Unknown",
|
||||
"url": "/clients/1.3/eagler1.3.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "lax1dude"
|
||||
}
|
||||
]
|
||||
65
assets/json/1.5.json
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
[
|
||||
{
|
||||
"name": "EaglercraftX 1.5",
|
||||
"version": "Service Pack #1",
|
||||
"url": "/clients/1.5/eagler1.5.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "lax1dude and ayunami2000"
|
||||
},
|
||||
{
|
||||
"name": "Precision Client",
|
||||
"version": "Unknown",
|
||||
"url": "/clients/1.5/PrecisionClient.html",
|
||||
"icon": "/assets/precision.png",
|
||||
"author": "LazerXTeam"
|
||||
},
|
||||
{
|
||||
"name": "NitClient",
|
||||
"version": "2.0",
|
||||
"url": "/clients/1.5/nitclient.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "Unknown"
|
||||
},
|
||||
{
|
||||
"name": "Nebula",
|
||||
"version": "Service Pack #1",
|
||||
"url": "/clients/1.5/nebula.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "eviuhu9fvhfudiaefuieavnui"
|
||||
},
|
||||
{
|
||||
"name": "Kerosene",
|
||||
"version": "Unknown",
|
||||
"url": "/clients/1.5/kerosene.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "Anonymous"
|
||||
},
|
||||
{
|
||||
"name": "CoderCraft",
|
||||
"version": "November 21st 2023",
|
||||
"url": "/clients/1.5/codercraft.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "AriesTropixDev"
|
||||
},
|
||||
{
|
||||
"name": "Odd Future Client",
|
||||
"version": "June 1st 2022",
|
||||
"url": "/clients/1.5/oddfutureclient.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "AriesTropixDev"
|
||||
},
|
||||
{
|
||||
"name": "FuchsiaX",
|
||||
"version": "FuchsiaX Web",
|
||||
"url": "/clients/1.5/fuchsiax.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "ayunami2000"
|
||||
},
|
||||
{
|
||||
"name": "Nova Client",
|
||||
"version": "1.0",
|
||||
"url": "/clients/1.5/N0VA CLIENT.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "A3R10"
|
||||
}
|
||||
]
|
||||
44
assets/json/1.8.json
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
[
|
||||
{
|
||||
"name": "EaglercraftX",
|
||||
"version": "u53",
|
||||
"url": "/clients/1.8/eaglercraftx.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "lax1dude, ayunami2000"
|
||||
},
|
||||
{
|
||||
"name": "Shadow Client",
|
||||
"version": "3.0 Beta",
|
||||
"url": "/clients/1.8/shadowclient30beta.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "PeytonPlayz595"
|
||||
},
|
||||
{
|
||||
"name": "Starlike Client",
|
||||
"version": "Unknown",
|
||||
"url": "/clients/1.8/Starlike_Client.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "zumbiepig"
|
||||
},
|
||||
{
|
||||
"name": "Pi Client",
|
||||
"version": "1.0",
|
||||
"url": "/clients/1.8/pi-client.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "SnesLover22"
|
||||
},
|
||||
{
|
||||
"name": "DragonX Lite",
|
||||
"version": "4.0",
|
||||
"url": "/clients/1.8/DragonXLite.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "averycoolusername"
|
||||
},
|
||||
{
|
||||
"name": "DragonX",
|
||||
"version": "4.0",
|
||||
"url": "/clients/1.8/DragonX_V4.html",
|
||||
"icon": "/assets/eaglercraftx.jpg",
|
||||
"author": "3TERN4LF1R3"
|
||||
}
|
||||
]
|
||||
0
assets/json/1.9.json
Normal file
0
assets/json/mobile.json
Normal file
62
assets/json/packs.json
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
[
|
||||
{
|
||||
"name": "Blue 128x",
|
||||
"icon": "/assets/packs/blue128.png",
|
||||
"author": "Latenci",
|
||||
"url": "/packs/!%20%C2%A79Blue%20%C2%A77Revamp%20%C2%A78%C2%A7f128x%C2%A78.zip"
|
||||
},
|
||||
{
|
||||
"name": "Nebula 16x",
|
||||
"icon": "https://i.ytimg.com/vi/57zOso31fdw/maxresdefault.jpg",
|
||||
"author": "Akooa, ItzStef",
|
||||
"url": "/packs/!%20%20%20%20%20%20%C2%A7bnebu%C2%A73l%C2%A7ba%20%C2%A78[%C2%A7f16%C2%A75x%C2%A78].zip"
|
||||
},
|
||||
{
|
||||
"name": "Nicofruit 16x",
|
||||
"icon": "https://i.ytimg.com/vi/hf_c4-a1SYs/maxresdefault.jpg",
|
||||
"author": "kenopacks, NotNico",
|
||||
"url": "/packs/!%20%20%20%20%C2%A7bNico%C2%A73Fruit%20%C2%A7f[16x]%20.zip"
|
||||
},
|
||||
{
|
||||
"name": "Bombie's 180k 16x",
|
||||
"icon": "https://i.ytimg.com/vi/-XopXelFSHM/maxresdefault.jpg",
|
||||
"author": "Tori, Bombie",
|
||||
"url": "/packs/!%20%20%20%20%20%20%20%20%20%C2%A7b%C2%A7lBombies%20%C2%A78[%C2%A7f180k%C2%A78].zip"
|
||||
},
|
||||
{
|
||||
"name": "Lunar 16x",
|
||||
"icon": "https://i.ytimg.com/vi/p24vp0JNTgw/maxresdefault.jpg",
|
||||
"author": "lunox",
|
||||
"url": "/packs/!%20%20%20%20%20%20%20Lunar%20[%C2%A7816x%C2%A7f].zip"
|
||||
},
|
||||
{
|
||||
"name": "Fatcat 16x",
|
||||
"icon": "https://i.ytimg.com/vi/pzA8x768f7w/maxresdefault.jpg",
|
||||
"author": "looshy",
|
||||
"url": "/packs/!%20%20%20%20%20%C2%A7bfat%20cat%20%C2%A7f[%C2%A7b16%C2%A77x%C2%A7f].zip"
|
||||
},
|
||||
{
|
||||
"name": "Toxica 16x",
|
||||
"icon": "https://i.ytimg.com/vi/k7j32FTGzQY/maxresdefault.jpg",
|
||||
"author": "Rh56",
|
||||
"url": "/packs/!%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%C2%A75t%C3%B3xica%20%C2%A7816x.zip"
|
||||
},
|
||||
{
|
||||
"name": "XLEXXD v3 16x",
|
||||
"icon": "https://pvprp.com/assets/packs/xlexxdd/14767/banner.png?v=2025-09-17%2004:46:38",
|
||||
"author": "xlexxdd",
|
||||
"url": "/packs/!%20%20%C2%A7bxlexxd%20v3%20%C2%A78[%C2%A7f16x%C2%A78].zip"
|
||||
},
|
||||
{
|
||||
"name": "Dynamic Duo 32x",
|
||||
"icon": "https://i.ytimg.com/vi/2EZ4d4UX_Gs/maxresdefault.jpg",
|
||||
"author": "iSparkton",
|
||||
"url": "/packs/!%20%C2%A7bDynamic%20%C2%A77Duo%20%C2%A78Revamp%20%C2%A78[%C2%A7732x%C2%A78].zip"
|
||||
},
|
||||
{
|
||||
"name": "Nebula 32x",
|
||||
"icon": "https://i.ytimg.com/vi/mCxuobFmvQ0/maxresdefault.jpg",
|
||||
"author": "Akooa, ItzStef",
|
||||
"url": "/packs/!%20%20%20%20%20%20%C2%A7bnebu%C2%A73l%C2%A7ba%20%C2%A78[%C2%A7f32%C2%A75x%C2%A78].zip"
|
||||
}
|
||||
]
|
||||
8
assets/json/worlds.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
{
|
||||
"name": "Skyblock",
|
||||
"icon": "/worlds/images/skyblock.png",
|
||||
"author": "x8r",
|
||||
"url": "/worlds/Skyblock.epk"
|
||||
}
|
||||
]
|
||||
BIN
assets/mcbold.otf
Normal file
BIN
assets/menu2.ogg
Normal file
BIN
assets/minecraft-regular.ttf
Normal file
BIN
assets/minecraft_font.ttf
Normal file
BIN
assets/packs/blue128.png
Normal file
|
After Width: | Height: | Size: 848 KiB |
BIN
assets/pano.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
assets/panorama.png
Normal file
|
After Width: | Height: | Size: 898 KiB |
BIN
assets/play.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
assets/precision.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
assets/servers/aeon.jpg
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
assets/servers/ap.png
Normal file
|
After Width: | Height: | Size: 486 KiB |
BIN
assets/servers/arch.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
assets/servers/cc.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/servers/clever.png
Normal file
|
After Width: | Height: | Size: 649 KiB |
BIN
assets/servers/gg.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
assets/servers/mc.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
assets/servers/ricenetwork.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/servers/tl.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
assets/servers/zentic.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
assets/servers/zyth.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
assets/title.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
88
clients.html
|
|
@ -1,34 +1,66 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>Clients</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="sounds.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
<br>
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 95s linear infinite;
|
||||
}
|
||||
|
||||
<h1 align="center" style="font-size: 40px;">Choose your Version</h1>
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
<br><br><br><br>
|
||||
|
||||
<div class="container">
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.8</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.8.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.5</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.5.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
<button class="button" style="height: 250px; cursor: unset; margin: 15px;"><h1 style="font-size: 32px;">1.3</h1><br><a class="play-hover" style="text-decoration: none; color: white; border-radius: 12.5px; background-color: dodgerblue; padding-top: 10px; padding-bottom: 10px; padding-right: 40px; padding-left: 40px;" href="1.3.html"><span class="material-icons-round">input</span> Select</a></button><br>
|
||||
</div>
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<h1 style="font-size: xxx-large; text-shadow: 2px 2px 2px black;">Clients</h1>
|
||||
<div class="vflex">
|
||||
<a href="1.3.html">
|
||||
<button class="button">1.3</button>
|
||||
</a>
|
||||
<a href="1.5.html">
|
||||
<button class="button">1.5</button>
|
||||
</a>
|
||||
<a href="1.8.html">
|
||||
<button class="button">1.8</button>
|
||||
</a>
|
||||
</div>
|
||||
</center>
|
||||
<div class="backdrop-blur"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
46244
clients/1.11/eag1_11_2.html
Normal file
21
clients/1.14/CreateClient.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
━━━━━━━━━━━━━━━━━ Copyright Eagler Devs ━━━━━━━━━━━━━━━━━
|
||||
|
||||
🚀 Welcome to Client Customization Instructions 🚀
|
||||
|
||||
Are you ready to personalize your CLIENT and take it to the next level? Follow these steps:
|
||||
|
||||
📦 Edit the `package.json` File:
|
||||
- Open the `package.json` file for your CLIENT.
|
||||
- Customize the client according to your creative vision.
|
||||
|
||||
🎨 Add Your Client's Source Code:
|
||||
- Inject your creative genius into your client by crafting code in HTML, CSS, JS, and Python.
|
||||
- Your imagination is the only limit!
|
||||
|
||||
🔄 Keep Your Client Updated:
|
||||
- Regularly sync your client with this repository to stay up-to-date with the latest enhancements and features.
|
||||
|
||||
🎉 Have Fun!
|
||||
- Building and customizing your CLIENT should be an enjoyable journey. Explore, create, and have a blast!
|
||||
|
||||
Happy coding! 🚀
|
||||
4
clients/1.14/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Eaglercraft 1.14 Revival
|
||||
Hey Guys! It's The Splat Cat! Let's take a moment to look at this! You see that? Eaglerdevs was DMCA'd, so sadly, we can't play this. UNTIL NOW!!! I am currently working on reviving this! I will have to create all the assets depended on from SCRATCH! Not like scratch coding, like from THE COMPLETE BEGINNING!
|
||||
Progress: 24%
|
||||
Eaglercraft 1.14 Revival!
|
||||
BIN
clients/1.14/assets.epk
Normal file
31382
clients/1.14/classes.js
Normal file
1
clients/1.14/client.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
3
clients/1.14/current_version
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
V 0.0.3-alpha
|
||||
Released at 6-10-23
|
||||
Released by : AR-DEV-1 , Lead Dev , EaglerDevs
|
||||
BIN
clients/1.14/favicon.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
54
clients/1.14/fix-webm-duration.js
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
// fix-webm-duration source is at https://github.com/yusitnikov/fix-webm-duration
|
||||
|
||||
/*
|
||||
* The MIT license (for fix-webm-duration)
|
||||
*
|
||||
* Copyright (c) 2018 Yury Sitnikov
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
(function(m,e){"function"===typeof define&&define.amd?define(e):"undefined"!==typeof module&&module.exports?module.exports=e():window.ysFixWebmDuration=e()})("fix-webm-duration",function(){function m(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function e(a,b){this.name=a||"Unknown";this.type=b||"Unknown"}function l(a,b){e.call(this,a,b||"Uint")}function k(a,b){e.call(this,a,b||"Float")}function h(a,b){e.call(this,a,b||"Container")}function n(a){h.call(this,"File","File");
|
||||
this.setSource(a)}function p(a,b,c,d){"object"===typeof c&&(d=c,c=void 0);if(!c)return new Promise(function(g){p(a,b,g,d)});try{var f=new FileReader;f.onloadend=function(){try{var g=new n(new Uint8Array(f.result));g.fixDuration(b,d)&&(a=g.toBlob(a.type))}catch(q){}c(a)};f.readAsArrayBuffer(a)}catch(g){c(a)}}var r={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",
|
||||
type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",
|
||||
type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},
|
||||
1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},
|
||||
103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},
|
||||
27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",
|
||||
type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},
|
||||
11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",
|
||||
type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",
|
||||
type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",
|
||||
type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},
|
||||
101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",
|
||||
type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},
|
||||
2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",
|
||||
type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},
|
||||
1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},
|
||||
24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",
|
||||
type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",
|
||||
type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};e.prototype.updateBySource=function(){};e.prototype.setSource=function(a){this.source=a;this.updateBySource()};e.prototype.updateByData=function(){};e.prototype.setData=function(a){this.data=
|
||||
a;this.updateByData()};m(l,e);l.prototype.updateBySource=function(){this.data="";for(var a=0;a<this.source.length;a++){var b=this.source[a].toString(16);this.data+=1===b.length%2?"0"+b:b}};l.prototype.updateByData=function(){var a=this.data.length/2;this.source=new Uint8Array(a);for(var b=0;b<a;b++){var c=this.data.substr(2*b,2);this.source[b]=parseInt(c,16)}};l.prototype.getValue=function(){return parseInt(this.data,16)};l.prototype.setValue=function(a){var b=this.setData;a=a.toString(16);b.call(this,
|
||||
1===a.length%2?"0"+a:a)};m(k,e);k.prototype.getFloatArrayType=function(){return this.source&&4===this.source.length?Float32Array:Float64Array};k.prototype.updateBySource=function(){var a=this.source.reverse();this.data=(new (this.getFloatArrayType())(a.buffer))[0]};k.prototype.updateByData=function(){var a=new (this.getFloatArrayType())([this.data]);this.source=(new Uint8Array(a.buffer)).reverse()};k.prototype.getValue=function(){return this.data};k.prototype.setValue=function(a){this.setData(a)};
|
||||
m(h,e);h.prototype.readByte=function(){return this.source[this.offset++]};h.prototype.readUint=function(){var a=this.readByte(),b=8-a.toString(2).length;a-=1<<7-b;for(var c=0;c<b;c++)a*=256,a+=this.readByte();return a};h.prototype.updateBySource=function(){this.data=[];for(this.offset=0;this.offset<this.source.length;this.offset=b){var a=this.readUint();b=this.readUint();var b=Math.min(this.offset+b,this.source.length),c=this.source.slice(this.offset,b),d=r[a]||{name:"Unknown",type:"Unknown"},f=e;
|
||||
switch(d.type){case "Container":f=h;break;case "Uint":f=l;break;case "Float":f=k}d=new f(d.name,d.type);d.setSource(c);this.data.push({id:a,idHex:a.toString(16),data:d})}};h.prototype.writeUint=function(a,b){for(var c=1,d=128;a>=d&&8>c;c++,d*=128);if(!b)for(a=d+a,b=c-1;0<=b;b--)d=a%256,this.source[this.offset+b]=d,a=(a-d)/256;this.offset+=c};h.prototype.writeSections=function(a){for(var b=this.offset=0;b<this.data.length;b++){var c=this.data[b],d=c.data.source,f=d.length;this.writeUint(c.id,a);this.writeUint(f,
|
||||
a);a||this.source.set(d,this.offset);this.offset+=f}return this.offset};h.prototype.updateByData=function(){var a=this.writeSections("draft");this.source=new Uint8Array(a);this.writeSections()};h.prototype.getSectionById=function(a){for(var b=0;b<this.data.length;b++){var c=this.data[b];if(c.id===a)return c.data}return null};m(n,h);n.prototype.fixDuration=function(a,b){b=b&&b.logger;void 0===b?b=function(q){console.log(q)}:b||=function(){};var c=this.getSectionById(139690087);if(!c)return b("[fix-webm-duration] Segment section is missing"),
|
||||
!1;var d=c.getSectionById(88713574);if(!d)return b("[fix-webm-duration] Info section is missing"),!1;var f=d.getSectionById(710577);if(!f)return b("[fix-webm-duration] TimecodeScale section is missing"),!1;var g=d.getSectionById(1161);if(g)if(0>=g.getValue())b("[fix-webm-duration] Duration section is present, but the value is empty"),g.setValue(a);else return b("[fix-webm-duration] Duration section is present"),!1;else b("[fix-webm-duration] Duration section is missing"),g=new k("Duration","Float"),
|
||||
g.setValue(a),d.data.push({id:1161,data:g});f.setValue(1E6);d.updateByData();c.updateByData();this.updateByData();return!0};n.prototype.toBlob=function(a){return new Blob([this.source.buffer],{type:a||"video/webm"})};return p.default=p});
|
||||
42
clients/1.14/index.html
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="Play minecraft 1.8.9 in your browser" />
|
||||
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.9" />
|
||||
<title>Eaglercraft 1.14 By EaglerDevs</title>
|
||||
<meta property="og:locale" content="en-US" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="EaglercraftX 1.8.9" />
|
||||
<meta property="og:description" content="Play minecraft 1.8.9 in your browser" />
|
||||
<meta property="og:image" content="favicon.png" />
|
||||
<link type="image/png" rel="shortcut icon" href="favicon.png" />
|
||||
<script type="text/javascript" src="classes.js"></script>
|
||||
<script type="text/javascript" src="fix-webm-duration.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.addEventListener("load", () => {
|
||||
if(document.location.href.startsWith("file:")) {
|
||||
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||
}else {
|
||||
window.eaglercraftXOpts = {
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epk",
|
||||
localesURI: "lang/",
|
||||
servers: [
|
||||
{ addr: "wss://sus.shhnowisnottheti.me", name: "Ayunboom" },
|
||||
{ addr: "wss://aeon-network.net/1.8", name: "Aeon" },
|
||||
{ addr: "wss://beta.vanillacraftsmp.org/", name: "VanillaCraft" },
|
||||
{ addr: "wss://mc.sealcentral.co", name: "SealCraft" },
|
||||
{ addr: "wss://g.deev.is/eaglerx-reference", name: "Reference Implementation" },
|
||||
{ addr: "wss://play.craftclue.rocks", name: "CraftClue"}
|
||||
]
|
||||
};
|
||||
main();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100vw;height:100vh;overflow:hidden;" id="game_frame">
|
||||
</body>
|
||||
</html>
|
||||
52412
clients/1.8/Starlike_Client.html
Normal file
265
clients/1.8/eaglercraftx.html
Normal file
|
|
@ -1,2 +1 @@
|
|||
# Welcome to the Clients folder!
|
||||
I'll move them over later (lol)
|
||||
|
|
|
|||
82
credits.html
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>Credits</title>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="sounds.js" defer></script>
|
||||
<script src="index.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 95s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style><br>
|
||||
<center>
|
||||
<img
|
||||
src="assets/title.png"
|
||||
style="margin: -50px; margin-bottom: -100px; scale: auto"
|
||||
alt="the-gay-ass-dev-who-made-us-use-a-fucking-image-made-me-do-this-shit-please-help-im-stuck-in-his-fucking-liveshare-and-in-his-basement-HELP.png"
|
||||
/>
|
||||
<p class="splash-text">Credits</p>
|
||||
<div class="vflex">
|
||||
<h1>Developers</h1>
|
||||
<p>x8r (xor)</p>
|
||||
<p>SyntaxError52</p>
|
||||
|
||||
<h1>Design</h1>
|
||||
<p>x8r</p>
|
||||
|
||||
<h1>Design Inspiration</h1>
|
||||
<p>Mojang</p>
|
||||
<p>Legacy Edition Minigames</p>
|
||||
|
||||
<h1>Website Inspiration</h1>
|
||||
<p>EaglercrackX</p>
|
||||
<p>Eaglercraft</p>
|
||||
</div><br>
|
||||
</center>
|
||||
<center>
|
||||
<a href="/">
|
||||
<button class="button">Return Home</button>
|
||||
</a>
|
||||
</center><br>
|
||||
<div class="backdrop-blur"></div>
|
||||
</body>
|
||||
</html>
|
||||
24
credits.txt
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
Eaglercraft Extras Credits
|
||||
------------------------------------------------
|
||||
All clients, pack, skins, and server credits go to their respective authors
|
||||
------------------------------------------------
|
||||
|
||||
>> x8r (xor)
|
||||
~ head developer
|
||||
~ author of loader.js (genius)
|
||||
~ wrote css, html, and js
|
||||
~ does most things on the website
|
||||
|
||||
>> SyntaxError52
|
||||
~ Co-Dev of EaglercraftExtras
|
||||
~ Bug fixes
|
||||
~ Skins Page and Skins
|
||||
~ Created help form
|
||||
~ QoL changes
|
||||
|
||||
------------------------------------------------
|
||||
To contact please go to https://forms.gle/Aj2pX9dXKSRJMzRT8 for any user requests
|
||||
or contact _x8rr on discord.
|
||||
------------------------------------------------
|
||||
Eaglercraft Extras: v2.1.0 - 9/21/2025
|
||||
BuildID: Kpz1VR
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f969a41bd33716f416b50c24024d12f2990959414098bdcb80d63a1310feca99
|
||||
size 15335322
|
||||
475
home.css
|
|
@ -1,177 +1,406 @@
|
|||
@font-face {
|
||||
font-family: inter-bold;
|
||||
src: url(assets/Inter-Bold.ttf);
|
||||
font-family: mc;
|
||||
src: url('/assets/Minecraft.woff2');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: inter-semibold;
|
||||
src: url(assets/Inter-SemiBold.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: inter-medium;
|
||||
src: url(assets/Inter-Medium.ttf);
|
||||
font-family: mc bold;
|
||||
src: url('/assets/mcbold.otf');
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: inter-bold;
|
||||
font-family: mc;
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
background: url("/assets/dirt.webp");
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
color: white;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: mc;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
background: rgb(29, 29, 29);
|
||||
color: white;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1, h2, p {
|
||||
text-shadow: 2px 2px 2px black;
|
||||
}
|
||||
|
||||
h2, h1 {
|
||||
font-family: mc bold;
|
||||
}
|
||||
|
||||
.button {
|
||||
text-align: center;
|
||||
border-radius: 20px;
|
||||
height: 100px;
|
||||
width: 250px;
|
||||
font-size: 25px;
|
||||
font-family: inter-semibold;
|
||||
color: white;
|
||||
background-color: rgb(29, 29, 29);
|
||||
border-color: white;
|
||||
border-width: 0.5px;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
border-style: solid;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
margin: 5px;
|
||||
background: url('/assets/btn-minecraft.png');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
border: none;
|
||||
width: 400px;
|
||||
height: 40px;
|
||||
margin: 7px;
|
||||
padding: 10px 0;
|
||||
scale: 120%;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
font-size: 17px;
|
||||
text-align: center;
|
||||
text-shadow: 1px 1px black;
|
||||
}
|
||||
|
||||
.clientButton {
|
||||
height: 200px;
|
||||
cursor: unset;
|
||||
margin: 15px;
|
||||
.button:hover {
|
||||
background: url('/assets/btn-minecraft-hover.png');
|
||||
color: yellow;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
border: none;
|
||||
filter: grayscale(0%);
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: rgba(116, 116, 116, 0.671);
|
||||
scale: 105%;
|
||||
a.play-hover {
|
||||
transition: 0.2s;
|
||||
}
|
||||
|
||||
a.play-hover:hover {
|
||||
filter: brightness(0.8);
|
||||
}
|
||||
|
||||
.vflex {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.big-button {
|
||||
text-align: center;
|
||||
border-radius: 30px;
|
||||
height: 300px;
|
||||
width: 455px;
|
||||
font-size: 25px;
|
||||
font-family: inter-semibold;
|
||||
color: white;
|
||||
background-color: rgb(29, 29, 29);
|
||||
border-color: white;
|
||||
border-width: 0.5px;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
border-style: solid;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
margin: 10px;
|
||||
text-align: center;
|
||||
border-radius: 00px;
|
||||
height: 300px;
|
||||
width: 455px;
|
||||
font-size: 25px;
|
||||
font-family: mc;
|
||||
color: white;
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
border-color: rgba(255, 255, 255, 0);
|
||||
border-width: 0.5px;
|
||||
box-shadow: none;
|
||||
none: none;
|
||||
border-style: solid;
|
||||
cursor: pointer;
|
||||
transition: 0.2s;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.big-button:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.center-logo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.top-bar {
|
||||
scale: 50%;
|
||||
padding: 0%;
|
||||
scale: 50%;
|
||||
padding: 0%;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline;
|
||||
float: left;
|
||||
display: inline;
|
||||
float: left;
|
||||
font-family: mc;
|
||||
vertical-align: 20px;
|
||||
}
|
||||
|
||||
li a {
|
||||
display: block;
|
||||
padding: 8px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
transition: 0.5s;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
font-family: inter-medium;
|
||||
display: block;
|
||||
padding: 9px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
transition: 0.2s;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
font-family: mc;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li a:hover {
|
||||
background-color: rgb(56, 56, 56);
|
||||
border-radius: 10px;
|
||||
|
||||
background-color: rgba(255, 255, 255, 0.233);
|
||||
border-radius: 0px;
|
||||
z-index: 9999999;
|
||||
}
|
||||
|
||||
ul {
|
||||
background-color: black;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border-radius: 10px;
|
||||
padding-top: 5px;
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border-radius: 0px;
|
||||
padding: 8px;
|
||||
font-family: mc;
|
||||
position: sticky;
|
||||
top: 1rem;
|
||||
z-index: 99999;
|
||||
}
|
||||
|
||||
.active {
|
||||
background-color: dodgerblue;
|
||||
border-radius: 10px;
|
||||
background-color: #008000;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.innerbutton {
|
||||
text-align: center;
|
||||
border-radius: 20px;
|
||||
height: 75px;
|
||||
width: 200px;
|
||||
font-size: 14px;
|
||||
font-family: inter-semibold;
|
||||
color: white;
|
||||
background-color: rgb(26, 26, 26);
|
||||
border-color: white;
|
||||
border-width: 0.5px;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
border-style: solid;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
margin: 5px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
text-align: center;
|
||||
border-radius: 0px;
|
||||
height: 75px;
|
||||
width: 200px;
|
||||
font-size: 14px;
|
||||
font-family: mc;
|
||||
color: white;
|
||||
background-color: rgb(26, 26, 26);
|
||||
border-color: rgba(255, 255, 255, 0);
|
||||
border-width: 0.5px;
|
||||
box-shadow: none;
|
||||
none: none;
|
||||
border-style: solid;
|
||||
cursor: pointer;
|
||||
transition: 0.2s;
|
||||
margin: 5px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.material-icons-round {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 2;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: -2.5px;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga';
|
||||
font-family: "Material Icons";
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 2;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: -2.5px;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Support for IE. */
|
||||
font-feature-settings: "liga";
|
||||
}
|
||||
|
||||
.status {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
border-radius: 0px;
|
||||
font-size: 18px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.online {
|
||||
color: lime;
|
||||
}
|
||||
|
||||
.offline {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.unknown {
|
||||
color: goldenrod;
|
||||
}
|
||||
|
||||
.ip {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
background-color: #008000;
|
||||
border-radius: 0px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.copyLink {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
background-color: #008000;
|
||||
padding: 10px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
border-radius: 0px;
|
||||
text-align: center;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.status.online span {
|
||||
color: green;
|
||||
}
|
||||
.status.offline span {
|
||||
color: red;
|
||||
}
|
||||
.status.unknown span {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
#clients {
|
||||
align-items: center;
|
||||
z-index: 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#client {
|
||||
background: rgba(0, 0, 0, 0.0);
|
||||
width: 70vw;
|
||||
height: 15vh;
|
||||
padding: 10px;
|
||||
margin: 5px;
|
||||
z-index: 1;
|
||||
align-self: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
cursor: pointer;
|
||||
font-family: mc;
|
||||
transform: translateX(-50%);
|
||||
text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.568);
|
||||
}
|
||||
|
||||
#client img {
|
||||
position: relative;
|
||||
height: 99%;
|
||||
left: -42.5%;
|
||||
aspect-ratio: 1/1;
|
||||
}
|
||||
|
||||
#client h1 {
|
||||
position: relative;
|
||||
top: -100%;
|
||||
left: 17%;
|
||||
font-size: 22px;
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
font-family: mc;
|
||||
}
|
||||
|
||||
#client p {
|
||||
position: relative;
|
||||
top: -110%;
|
||||
left: 17%;
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
color: lightgray;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.github-link {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#playbtn {
|
||||
position: relative;
|
||||
left: .2%;
|
||||
scale: 30%;
|
||||
bottom: 500%;
|
||||
background: rgba(0, 0, 0, 0.444);
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#client a {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#client:hover {
|
||||
outline: #f0f0f0 solid 3px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.splash-text {
|
||||
color: yellow;
|
||||
text-shadow: 2px 2px 4px black;
|
||||
font-size: 1.4em;
|
||||
font: 600;
|
||||
}
|
||||
|
||||
#toast {
|
||||
background: rgba(0, 0, 0, 0.616);
|
||||
color: white;
|
||||
height: 20px;
|
||||
width: 200px;
|
||||
position: fixed;
|
||||
right: -40%;
|
||||
top: 2%;
|
||||
padding: 20px 30px;
|
||||
outline: 3px white solid;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
vertical-align: middle;
|
||||
transition: 0.5s cubic-bezier(0.215, 0.610, 0.610, 1);
|
||||
}
|
||||
|
||||
li > * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
filter: brightness(0.77);
|
||||
}
|
||||
|
||||
button:disabled:hover {
|
||||
filter: brightness(0.77);
|
||||
background: url("assets/btn-minecraft.png");
|
||||
color: white;
|
||||
}
|
||||
|
||||
#introVid {
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
transition: 0.3s;
|
||||
background: white;
|
||||
transform: translateX(-50%);
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#opening {
|
||||
text-shadow: 2px 2px 2px transparent;
|
||||
}
|
||||
119
index.html
|
|
@ -1,40 +1,93 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<title>Eaglercraft Extras</title>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="sounds.js" defer></script>
|
||||
<script src="index.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px;" class="active" href="index.html">Home</a></li>
|
||||
<li><a href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
</ul>
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
background: url("assets/pano.png");
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-repeat: repeat-x;
|
||||
margin: 0;
|
||||
animation: panorama 95s linear infinite;
|
||||
}
|
||||
|
||||
<br><br><br><br>
|
||||
@keyframes panorama {
|
||||
0% {
|
||||
background-position: 0;
|
||||
}
|
||||
|
||||
<div style="display: flex; justify-content: center;">
|
||||
<img src="assets/mc-logo.png" style="height: 175px; margin-right: 25px;" alt="logo">
|
||||
<h1 style="font-size: 42px; font-family: inter-bold; margin-top: 60px;">Eaglercraft Extras</h1>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div class="container">
|
||||
<button class="big-button"><u>Announcements</u> <br><br>Resource Packs out now! Servers coming next. Worlds will take longer as I have to create them myself.</button>
|
||||
<button class="big-button">Need Help?<br><br>Fill out an issue or start a discussion! We'll be sure to get back to it.</button>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
100% {
|
||||
background-position: calc(100vh / 144 * -820);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<img
|
||||
src="assets/title.png"
|
||||
style="margin: -50px; margin-bottom: -100px; scale: auto"
|
||||
alt="the-gay-ass-dev-who-made-us-use-a-fucking-image-made-me-do-this-shit-please-help-im-stuck-in-his-fucking-liveshare-and-in-his-basement-HELP.png"
|
||||
/>
|
||||
<p class="splash-text">
|
||||
Contact us on our anonymous form
|
||||
<a
|
||||
href="https://forms.gle/Aj2pX9dXKSRJMzRT8"
|
||||
target="_blank"
|
||||
class="github-link"
|
||||
style="color: yellow;"
|
||||
>here</a
|
||||
>.
|
||||
</p>
|
||||
<div class="vflex">
|
||||
<a href="clients.html" class="a">
|
||||
<button class="button">Clients</button>
|
||||
</a>
|
||||
<a href="servers.html" class="a">
|
||||
<button class="button">Servers</button>
|
||||
</a>
|
||||
<a href="packs.html" class="a">
|
||||
<button class="button">Resource Packs</button>
|
||||
</a>
|
||||
<a href="worlds.html" class="a">
|
||||
<button class="button" onmouseover="document.getElementById('hoversound').play()">Worlds</button>
|
||||
</a>
|
||||
<a href="skins.html" class="a">
|
||||
<button disabled class="button">Skins (In Development)</button>
|
||||
</a>
|
||||
<a href="credits.html" target="blank" class="a">
|
||||
<button class="button">Credits</button>
|
||||
</a>
|
||||
</div>
|
||||
</center>
|
||||
<div class="backdrop-blur"></div>
|
||||
<video src="assets/intro.mp4" id="introVid">
|
||||
</video>
|
||||
<p id="opening" style="color: black; z-index: 100; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); display: none; text-shadow: transparent;">Please Click.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
26
index.js
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
const vid = document.getElementById("introVid");
|
||||
const p = document.getElementById("opening")
|
||||
console.debug(vid)
|
||||
p.style.display = "block";
|
||||
const menuMusic = new Audio("/assets/menu2.ogg")
|
||||
|
||||
const seen = sessionStorage.getItem("seenVid")
|
||||
|
||||
if (seen !== "true") {
|
||||
document.addEventListener("click", () => {
|
||||
vid.play();
|
||||
p.style.display = "none";
|
||||
});
|
||||
|
||||
vid.addEventListener("ended", () => {
|
||||
vid.style.opacity = "0";
|
||||
console.log("opacity set");
|
||||
setTimeout(() => {
|
||||
vid.style.display = "none";
|
||||
sessionStorage.setItem("seenVid", "true")
|
||||
}, 300); // small delay so opacity fade is visible
|
||||
});
|
||||
} else {
|
||||
vid.style.display = "none"
|
||||
p.style.display = "none"
|
||||
}
|
||||
15
installguide.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# How to install Worlds
|
||||
|
||||
To start, simply download the file
|
||||
|
||||
### If the file ends in .epk
|
||||
1. Go to your Eaglercraft client of choice
|
||||
2. Click **Singleplayer**
|
||||
3. Then click **Create New World**
|
||||
4. Now click **Load EPK File** and select the downloaded file
|
||||
|
||||
### If the file ends in .zip
|
||||
1. Go to your Eaglercraft client of choice
|
||||
2. Click **Singleplayer**
|
||||
3. Then click **Create New World**
|
||||
4. Now click **Import Vanilla World** and select the downloaded file
|
||||
76
loader.js
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
client json loader
|
||||
(c) 2025: x8r and the eaglercraft extras team
|
||||
licensed under gnu gpl v3
|
||||
|
||||
https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||
https://github.com/x8rr/
|
||||
https://github.com/eaglercraftextras/
|
||||
*/
|
||||
|
||||
// set up globals
|
||||
let res;
|
||||
let data;
|
||||
|
||||
// get doms
|
||||
const clientsList = document.getElementById("clients");
|
||||
|
||||
// get json
|
||||
async function getJSON(v) {
|
||||
res = await fetch(`assets/json/${v}.json`);
|
||||
data = await res.json();
|
||||
}
|
||||
|
||||
// now load clients and append children
|
||||
function loadClients(v) {
|
||||
getJSON(v)
|
||||
.then(() => {
|
||||
console.log(`Array: ${data}`);
|
||||
})
|
||||
.then(() => {
|
||||
data.forEach((data) => {
|
||||
// create new elements
|
||||
const newClient = document.createElement("li");
|
||||
const newTitle = document.createElement("h1");
|
||||
const newVersion = document.createElement("p");
|
||||
const newLink = document.createElement("a");
|
||||
const newIcon = document.createElement("img");
|
||||
const newPlaybtn = document.createElement("img");
|
||||
const newAuthor = document.createElement("p");
|
||||
|
||||
// set attributes
|
||||
newClient.setAttribute("id", "client");
|
||||
newTitle.setAttribute("id", "title");
|
||||
newVersion.setAttribute("id", "ver");
|
||||
newLink.setAttribute("id", "link");
|
||||
newIcon.setAttribute("id", "icon");
|
||||
newPlaybtn.setAttribute("id", "playbtn");
|
||||
newAuthor.setAttribute("id", "ver");
|
||||
|
||||
// update content
|
||||
newTitle.textContent = data.name;
|
||||
newVersion.textContent = `Version: ${data.version}`;
|
||||
newAuthor.textContent = `Author: ${data.author}`;
|
||||
newLink.href = data.url;
|
||||
newIcon.src = data.icon;
|
||||
|
||||
// move elements into list
|
||||
clientsList.appendChild(newClient);
|
||||
newClient.appendChild(newIcon);
|
||||
newClient.appendChild(newTitle);
|
||||
newClient.appendChild(newVersion);
|
||||
newClient.appendChild(newAuthor);
|
||||
newIcon.appendChild(newLink);
|
||||
newClient.appendChild(newLink);
|
||||
newLink.appendChild(newPlaybtn);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (window.location.href.includes("1.8.html")) {
|
||||
loadClients("1.8");
|
||||
} else if (window.location.href.includes("1.5.html")) {
|
||||
loadClients("1.5");
|
||||
} else {
|
||||
loadClients("1.3");
|
||||
}
|
||||
|
|
@ -1,216 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="translated-ltr"><head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Minecraft Quick Guide</title>
|
||||
<link rel="shortcut icon" href="images/knowledge_book.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="stylesheet" href="fonts/inter.css">
|
||||
<link type="text/css" rel="stylesheet" charset="UTF-8" href="https://www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.26tY-h6gH9w.L.W.O/am=AgM/d=0/rs=AN8SPfrixlL1amy8r1f0UQHcZ2HL9amUjg/m=el_main_css"></head>
|
||||
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<img src="images/knowledge_book.png" width="48px">
|
||||
<h1><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Minecraft Quick Guide</font></font></h1>
|
||||
<a href="/" style="font-weight: 600; background-color: #363636;"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potions</font></font></a>
|
||||
<!--<a href="#">Зачарования</a>
|
||||
<a href="#">Рецепты</a>-->
|
||||
</header>
|
||||
|
||||
<div style="width: 100%; height: 64px; user-select: none;"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">none</font></font></div>
|
||||
|
||||
<section>
|
||||
<h2><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potions</font></font></h2>
|
||||
<ul>
|
||||
<li><img src="images/redstone.png"> <b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Redstone</font></font></b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> increases the duration of effects. Weakens enhanced potions.</font></font></li>
|
||||
<li><img src="images/glowstone_dust.png"> <b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Glowstone Dust</font></font></b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> enhances effects, but reduces their duration.</font></font></li>
|
||||
<li><img src="images/gunpowder.png"> <b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Gunpowder</font></font></b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> makes potions explosive.</font></font></li>
|
||||
<li><img src="images/dragon_breath.png"> <b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Dragon's Breath</font></font></b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> makes potions foggy (settling).</font></font></li>
|
||||
</ul>
|
||||
<table>
|
||||
<!-- Header -->
|
||||
<tbody><tr>
|
||||
<th rowspan="2"></th>
|
||||
<th rowspan="2"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Name</font></font></th>
|
||||
<th colspan="3"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Effect (duration)</font></font></th>
|
||||
<th rowspan="2"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Recipe</font></font></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th width="20%"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">No amplifiers</font></font></th>
|
||||
<th width="20%"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+</font></font><img src="images/redstone.png"></th>
|
||||
<th width="20%"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+</font></font><img src="images/glowstone_dust.png"></th>
|
||||
</tr>
|
||||
|
||||
<!-- Мутное зелье -->
|
||||
<tr>
|
||||
<td><img src="images/potions/water_bottle.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Cloudy Potion</font></font></td>
|
||||
<td><span style="color: #aaaaaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">No effect</font></font></span></td>
|
||||
<td><span style="color: #aaaaaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></span></td>
|
||||
<td><span style="color: #aaaaaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></span></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> water flask</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/nether_wart.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Nether Wart</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
|
||||
<!-- Зелье ночного зрения -->
|
||||
<tr>
|
||||
<td><img src="images/potions/night_vision_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Night Vision Potion</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Night Vision (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to see much better in the dark.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Night Vision (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to see much better in the dark.</font></font></td>
|
||||
<td><span style="color: #aaaaaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></span></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/golden_carrot.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Golden Carrot</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
|
||||
<!-- Зелье невидимости -->
|
||||
<tr>
|
||||
<td><img src="images/potions/invisibility_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Invisibility potion</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Invisibility (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> The player becomes invisible.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Invisibility (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> The player becomes invisible.</font></font></td>
|
||||
<td style="color: #aaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/fermented_spider_eye.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Pickled Spider Eye</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
|
||||
<!-- Зелье прыгучести -->
|
||||
<tr>
|
||||
<td><img src="images/potions/leaping_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potion of Jumping</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Jumping (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to jump ½ block higher.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Jumping (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to jump ½ block higher.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Jumping II (1:30):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to jump 1 ¼ blocks higher.</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/rabbit_foot.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> rabbit's foot</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
|
||||
<!-- Зелье огнестойкости -->
|
||||
<tr>
|
||||
<td><img src="images/potions/fire_resistance_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potion of Fire Resistance</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Fire Resistance (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Immunity to damage from lava, magma blocks, bonfires, and efreeti alike.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Fire Resistance (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Immunity to damage from lava, magma blocks, bonfires, and efreeti alike.</font></font></td>
|
||||
<td style="color: #aaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/rabbit_foot.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Magma Clump</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<!-- Зелье стремительности -->
|
||||
<tr>
|
||||
<td><img src="images/potions/swiftness_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potion of Swiftness</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Speed (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases movement speed by 20%.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Speed (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases movement speed by 20%.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Speed II (1:30):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases movement speed by 40%.</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/sugar.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> sugar</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<!-- Зелье водного дыхания -->
|
||||
<tr>
|
||||
<td><img src="images/potions/water_breathing_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Water Breathing Potion</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Water Breathing (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to not breathe underwater.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Water Breathing (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Allows you to avoid breathing underwater.</font></font></td>
|
||||
<td style="color: #aaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/pufferfish.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Pufferfish</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<!-- Зелье исцеления -->
|
||||
<tr>
|
||||
<td><img src="images/potions/healing_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Healing Potion</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Healing:</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> +4 units. health ( </font></font><img src="images/full_heart.png" id="h"><img src="images/full_heart.png" id="h"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">).</font></font></td>
|
||||
<td style="color: #aaa"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">—</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Healing II:</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> +8 units. health ( </font></font><img src="images/full_heart.png" id="h"><img src="images/full_heart.png" id="h"><img src="images/full_heart.png" id="h"><img src="images/full_heart.png" id="h"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/glistering_melon_slice.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Sparkling Watermelon Slice</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<!-- Зелье регенерации -->
|
||||
<tr>
|
||||
<td><img src="images/potions/regeneration_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Regeneration Potion</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Regeneration (0:45):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Restores 1 unit. health ( </font></font><img src="images/half_heart.png" id="h"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">) every 2.5 seconds.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Regeneration (1:30):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Restores 1 unit. health ( </font></font><img src="images/half_heart.png" id="h"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">) every 2.5 seconds.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Regeneration II (0:22):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Restores 1 unit. health ( </font></font><img src="images/half_heart.png" id="h"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">) every 1.2 seconds.</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/ghast_tear.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Ghast Tear</font></font></li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<!-- Зелье силы -->
|
||||
<tr>
|
||||
<td><img src="images/potions/strength_potion.png"></td>
|
||||
<td><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Potion of Strength</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Strength (3:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases the player's damage dealt by 3.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Strength (8:00):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases the player's damage dealt by 3.</font></font></td>
|
||||
<td><b style="color: #5555ff"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Strength II (1:30):</font></font></b><br><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Increases the player's damage dealt by 6.</font></font></td>
|
||||
<td><ul>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Base:</font></font></b> <img src="images/potions/water_bottle.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Cloudy Potion</font></font></li>
|
||||
<li><b><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Ingredient:</font></font></b> <img src="images/blaze_powder.png"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> Fire Powder</font></font></li>
|
||||
</ul></td>
|
||||
|
||||
</tbody></table>
|
||||
</section>
|
||||
|
||||
<div id="madebythundiverter">
|
||||
Made by <a href="https://thundiverter.github.io">Thundiverter</a> Translated by <a href="github.com/cobblesteve01" target="_blank">cobblesteve01</a>
|
||||
</div>
|
||||
|
||||
<!-- Code injected by live-server -->
|
||||
<script>
|
||||
// <![CDATA[ <-- For SVG support
|
||||
if ('WebSocket' in window) {
|
||||
(function () {
|
||||
function refreshCSS() {
|
||||
var sheets = [].slice.call(document.getElementsByTagName("link"));
|
||||
var head = document.getElementsByTagName("head")[0];
|
||||
for (var i = 0; i < sheets.length; ++i) {
|
||||
var elem = sheets[i];
|
||||
var parent = elem.parentElement || head;
|
||||
parent.removeChild(elem);
|
||||
var rel = elem.rel;
|
||||
if (elem.href && typeof rel != "string" || rel.length == 0 || rel.toLowerCase() == "stylesheet") {
|
||||
var url = elem.href.replace(/(&|\?)_cacheOverride=\d+/, '');
|
||||
elem.href = url + (url.indexOf('?') >= 0 ? '&' : '?') + '_cacheOverride=' + (new Date().valueOf());
|
||||
}
|
||||
parent.appendChild(elem);
|
||||
}
|
||||
}
|
||||
var protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://';
|
||||
var address = protocol + window.location.host + window.location.pathname + '/ws';
|
||||
var socket = new WebSocket(address);
|
||||
socket.onmessage = function (msg) {
|
||||
if (msg.data == 'reload') window.location.reload();
|
||||
else if (msg.data == 'refreshcss') refreshCSS();
|
||||
};
|
||||
if (sessionStorage && !sessionStorage.getItem('IsThisFirstTime_Log_From_LiveServer')) {
|
||||
console.log('Live reload enabled.');
|
||||
sessionStorage.setItem('IsThisFirstTime_Log_From_LiveServer', true);
|
||||
}
|
||||
})();
|
||||
}
|
||||
else {
|
||||
console.error('Upgrade your browser. This Browser is NOT supported WebSocket for Live-Reloading.');
|
||||
}
|
||||
// ]]>
|
||||
</script><div id="goog-gt-tt" class="VIpgJd-yAWNEb-L7lbkb skiptranslate" style="border-radius: 12px; margin: 0 0 0 -23px; padding: 0; font-family: 'Google Sans', Arial, sans-serif;" data-id=""><div id="goog-gt-vt" class="VIpgJd-yAWNEb-hvhgNd"><div class=" VIpgJd-yAWNEb-hvhgNd-l4eHX-i3jM8c"><img src="https://fonts.gstatic.com/s/i/productlogos/translate/v14/24px.svg" width="24" height="24" alt=""></div><div class=" VIpgJd-yAWNEb-hvhgNd-k77Iif-i3jM8c"><div class="VIpgJd-yAWNEb-hvhgNd-IuizWc" dir="ltr">Original text</div><div id="goog-gt-original-text" class="VIpgJd-yAWNEb-nVMfcd-fmcmS VIpgJd-yAWNEb-hvhgNd-axAV1"></div></div><div class="VIpgJd-yAWNEb-hvhgNd-N7Eqid ltr"><div class="VIpgJd-yAWNEb-hvhgNd-N7Eqid-B7I4Od ltr" dir="ltr"><div class="VIpgJd-yAWNEb-hvhgNd-UTujCb">Rate this translation</div><div class="VIpgJd-yAWNEb-hvhgNd-eO9mKe">Your feedback will be used to help improve Google Translate</div></div><div class="VIpgJd-yAWNEb-hvhgNd-xgov5 ltr"><button id="goog-gt-thumbUpButton" type="button" class="VIpgJd-yAWNEb-hvhgNd-bgm6sf" title="Good translation" aria-label="Good translation" aria-pressed="false"><span id="goog-gt-thumbUpIcon"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" class="VIpgJd-yAWNEb-hvhgNd-THI6Vb NMm5M"><path d="M21 7h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 0S7.08 6.85 7 7H2v13h16c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73V9c0-1.1-.9-2-2-2zM7 18H4V9h3v9zm14-7l-3 7H9V8l4.34-4.34L12 9h9v2z"></path></svg></span><span id="goog-gt-thumbUpIconFilled"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" class="VIpgJd-yAWNEb-hvhgNd-THI6Vb NMm5M"><path d="M21 7h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 0S7.08 6.85 7 7v13h11c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73V9c0-1.1-.9-2-2-2zM5 7H1v13h4V7z"></path></svg></span></button><button id="goog-gt-thumbDownButton" type="button" class="VIpgJd-yAWNEb-hvhgNd-bgm6sf" title="Poor translation" aria-label="Poor translation" aria-pressed="false"><span id="goog-gt-thumbDownIcon"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" class="VIpgJd-yAWNEb-hvhgNd-THI6Vb NMm5M"><path d="M3 17h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 24s7.09-6.85 7.17-7h5V4H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2zM17 6h3v9h-3V6zM3 13l3-7h9v10l-4.34 4.34L12 15H3v-2z"></path></svg></span><span id="goog-gt-thumbDownIconFilled"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" class="VIpgJd-yAWNEb-hvhgNd-THI6Vb NMm5M"><path d="M3 17h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 24s7.09-6.85 7.17-7V4H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2zm16 0h4V4h-4v13z"></path></svg></span></button></div></div><div id="goog-gt-votingHiddenPane" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te_lib" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text" name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form><iframe name="votingFrame" frameborder="0"></iframe></div></div></div>
|
||||
|
||||
|
||||
</body></html>
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
body {
|
||||
margin: 0;
|
||||
font-family: Inter;
|
||||
background-color: #121212;
|
||||
}
|
||||
|
||||
header {
|
||||
position: fixed;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: row; justify-content: flex-start; align-items: center;
|
||||
background-color: #1F1F1F;
|
||||
box-shadow: 1px 7px 5px -3px rgba(0, 0, 0, 0.35);
|
||||
|
||||
img { margin: 8px 8px 8px 24px; }
|
||||
h1 { margin: 8px 24px 8px 0px; font-size: 20px; color: #fff; }
|
||||
|
||||
a {
|
||||
margin: 8px 4px 8px 4px; padding: 12px 18px 12px 18px;
|
||||
border-radius: 4px;
|
||||
font-size: 16px;
|
||||
color: #fff; text-decoration: none;
|
||||
&:hover { background-color: #2D2D2D; }
|
||||
&:active { background-color: #363636; }
|
||||
}
|
||||
}
|
||||
|
||||
section {
|
||||
max-width: 1280px;
|
||||
margin: 6px auto 6px auto;
|
||||
color: #fff;
|
||||
h2 { font-size: 36px; margin: 32px 0px 0px 0px; }
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
overflow-x: scroll;
|
||||
img { display: inline-block; vertical-align: middle; width: 32px;
|
||||
&#h { width: 18px; }
|
||||
}
|
||||
th { background-color: #242424; font-weight: bold; padding: 12px;
|
||||
}
|
||||
td { background-color: #1D1D1D; padding: 12px; }
|
||||
}
|
||||
|
||||
ul li { list-style-type: square;
|
||||
img { display: inline-block; vertical-align: middle; width: 32px; }
|
||||
}
|
||||
|
||||
#madebythundiverter {
|
||||
width: 100%;
|
||||
margin-top: 32px;
|
||||
padding: 12px 0px 12px 0px;
|
||||
background-color: #1F4E79;
|
||||
color: #fff; font-size: 90%;
|
||||
text-align: center;
|
||||
a { color: #fff; text-decoration: none;
|
||||
&:hover { text-decoration: underline; }
|
||||
}
|
||||
}
|
||||
|
||||
/* SCROLLBAR */
|
||||
::-webkit-scrollbar {
|
||||
width: 16px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: none;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #212121;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #242424;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background: #2C2C2C;
|
||||
}
|
||||
85
misc/robots.txt
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# If ur reading this...
|
||||
# U like Balls
|
||||
|
||||
|
||||
|
||||
|
||||
# We're no strangers to love
|
||||
# You know the rules and so do I (do I)
|
||||
# A full commitment's what I'm thinking of
|
||||
# You wouldn't get this from any other guy
|
||||
# I just wanna tell you how I'm feeling
|
||||
# Gotta make you understand
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
# We've known each other for so long
|
||||
# Your heart's been aching, but you're too shy to say it (say it)
|
||||
# Inside, we both know what's been going on (going on)
|
||||
# We know the game and we're gonna play it
|
||||
# And if you ask me how I'm feeling
|
||||
# Don't tell me you're too blind to see
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
# (Ooh, give you up)
|
||||
# (Ooh, give you up)
|
||||
# (Ooh) Never gonna give, never gonna give (give you up)
|
||||
# (Ooh) Never gonna give, never gonna give (give you up)
|
||||
# We've known each other for so long
|
||||
# Your heart's been aching, but you're too shy to say it (to say it)
|
||||
# Inside, we both know what's been going on (going on)
|
||||
# We know the game and we're gonna play it
|
||||
# I just wanna tell you how I'm feeling
|
||||
# Gotta make you understand
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
# Never gonna give you up
|
||||
# Never gonna let you down
|
||||
# Never gonna run around and desert you
|
||||
# Never gonna make you cry
|
||||
# Never gonna say goodbye
|
||||
# Never gonna tell a lie and hurt you
|
||||
|
||||
# GET RICKROLLED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#11
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>N0VA CLIENT</title>
|
||||
<link rel="shortcut icon" href="assets/mc-logo.png" type="image/x-icon">
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="home.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet">
|
||||
|
|
@ -17,8 +17,8 @@
|
|||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="mc quick guide/index.html" target="_blank">Quick Guide</a></li>
|
||||
<li style="float: right;"><a href="https://github.com/cobblesteve01/Eaglercraft-Extras" target="_blank"><img src="assets/github.png" style="height: 25px; color: white;" alt=""></a></li>
|
||||
<li><a href="quickguide/index.html" target="_blank">Quick Guide</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br><br><br>
|
||||
|
|
@ -27,13 +27,13 @@
|
|||
|
||||
<br>
|
||||
|
||||
<p align="center" style="font-size: 20px; font-family: inter-medium;">Before you go, we want to tell you that this client's voicechat<br>feature is <b>not</b> completely safe and could leak<br>your IP address. Proceed with caution!</p>
|
||||
<p align="center" style="font-size: 20px; font-family: mc;">Before you go, we want to tell you that this client's voicechat<br>feature is <b>not</b> completely safe and could leak<br>your IP address. Proceed with caution!</p>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div class="container">
|
||||
<a href="clients.html">
|
||||
<button class="button" style="background-color: dodgerblue; border-width: 0; margin: 5px;">Back to Safety</button>
|
||||
<button class="button" style="background-color: #008000; border-width: 0; margin: 5px;">Back to Safety</button>
|
||||
</a>
|
||||
|
||||
<a href="clients/1.5/N0VA CLIENT.html">
|
||||
88
mobile.html
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Mobile Clients</title>
|
||||
<link rel="shortcut icon" href="assets/icon.png" type="image/x-icon" />
|
||||
<link rel="stylesheet" href="home.css" />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/icon?family=Material+Icons+Round"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-B23XL7G2NK"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
gtag("config", "G-B23XL7G2NK");
|
||||
</script>
|
||||
<body>
|
||||
<ul>
|
||||
<li><a style="margin-left: 5px" href="index.html">Home</a></li>
|
||||
<li><a class="active" href="clients.html">Clients</a></li>
|
||||
<li><a href="worlds.html">Worlds</a></li>
|
||||
<li><a href="packs.html">Resource Packs</a></li>
|
||||
<li><a href="servers.html">Servers</a></li>
|
||||
<li><a href="skins.html">Skins</a></li>
|
||||
<li>
|
||||
<a href="quickguide/index.html" target="_blank">Quick Guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1
|
||||
align="center"
|
||||
style="font-size: 54px; margin-bottom: -10px; text-decoration: none"
|
||||
>
|
||||
Mobile Clients
|
||||
</h1>
|
||||
<p align="center" style="">There is only one 💀</p>
|
||||
<br /><br /><br />
|
||||
|
||||
<div class="container">
|
||||
<button
|
||||
class="button"
|
||||
style="
|
||||
height: 200px;
|
||||
margin: 15px;
|
||||
cursor: unset;
|
||||
font-family: mc;
|
||||
"
|
||||
>
|
||||
EaglercraftX
|
||||
<p
|
||||
style="
|
||||
font-size: 14px;
|
||||
padding-bottom: 15px;
|
||||
font-family: mc;
|
||||
"
|
||||
>
|
||||
Author: Irv77
|
||||
</p>
|
||||
<a
|
||||
class="play-hover"
|
||||
style="
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
border-radius: 0px;
|
||||
background-color: #008000;
|
||||
padding: 10px;
|
||||
padding-right: 40px;
|
||||
padding-left: 40px;
|
||||
font-family: mc;
|
||||
"
|
||||
href="mobile/index.html"
|
||||
><span class="material-icons-round">play_circle</span> Play</a
|
||||
></button
|
||||
><br />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
mobile/assets.epk
Normal file
44842
mobile/classes.js
Normal file
1
mobile/classes.js.map
Normal file
620
mobile/eaglerpocketmobile.user.js
Normal file
|
|
@ -0,0 +1,620 @@
|
|||
function isMobile() {
|
||||
try {
|
||||
document.createEvent("TouchEvent");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(!isMobile()) {
|
||||
alert("WARNING: This script was created for mobile, and may break functionality in non-mobile browsers!");
|
||||
}
|
||||
window.keyboardEnabled = false;
|
||||
window.crouchLock = false;
|
||||
window.sprintLock = false;
|
||||
window.keyboardFix = false; // temporarily set to true until I can figure out whats going wrong with the event listener in charge of switching it
|
||||
// Used for changing touchmove events to mousemove events
|
||||
var previousTouchX = null;
|
||||
var previousTouchY = null;
|
||||
var startTouchX = null;
|
||||
// better charCodeAt function
|
||||
String.prototype.toKeyCode = function() {
|
||||
const keyCodeList = {"0": 48, "1": 49, "2": 50, "3": 51, "4": 52, "5": 53, "6": 54, "7": 55, "8": 56, "9": 57, "backspace": 8, "tab": 9, "enter": 13, "shift": 16, "ctrl": 17, "alt": 18, "pause_break": 19, "caps_lock": 20, "escape": 27, " ": 32, "page_up": 33, "page_down": 34, "end": 35, "home": 36, "left_arrow": 37, "up_arrow": 38, "right_arrow": 39, "down_arrow": 40, "insert": 45, "delete": 46, "a": 65, "b": 66, "c": 67, "d": 68, "e": 69, "f": 70, "g": 71, "h": 72, "i": 73, "j": 74, "k": 75, "l": 76, "m": 77, "n": 78, "o": 79, "p": 80, "q": 81, "r": 82, "s": 83, "t": 84, "u": 85, "v": 86, "w": 87, "x": 88, "y": 89, "z": 90, "left_window_key": 91, "right_window_key": 92, "select_key": 93, "numpad_0": 96, "numpad_1": 97, "numpad_2": 98, "numpad_3": 99, "numpad_4": 100, "numpad_5": 101, "numpad_6": 102, "numpad_7": 103, "numpad_8": 104, "numpad_9": 105, "*": 106, "+": 107, "-": 109, ".": 110, "/": 111, "f1": 112, "f2": 113, "f3": 114, "f4": 115, "f5": 116, "f6": 117, "f7": 118, "f8": 119, "f9": 120, "f10": 121, "f11": 122, "f12": 123, "num_lock": 144, "scroll_lock": 145, ";": 186, "=": 187, ",": 188, "-": 189, ".": 190, "/": 191, "`": 192, "[": 219, "\\": 220, "]": 221, "\"": 222};
|
||||
return keyCodeList[this];
|
||||
}
|
||||
// Ignores keydown events that don't have the isValid parameter set to true
|
||||
const _addEventListener = EventTarget.prototype.addEventListener;
|
||||
Object.defineProperty(EventTarget.prototype, "addEventListener", {
|
||||
value: function (type, fn, ...rest) {
|
||||
if(type == 'keydown') {
|
||||
_addEventListener.call(this, type, function(...args) {
|
||||
if(!args[0].isValid && window.keyboardFix) {
|
||||
return;
|
||||
}
|
||||
return fn.apply(this, args);
|
||||
}, ...rest);
|
||||
} else {
|
||||
_addEventListener.call(this, type, fn, ...rest);
|
||||
}
|
||||
}
|
||||
});
|
||||
// Allows typing in #hiddenInput
|
||||
const _preventDefault = Event.prototype.preventDefault;
|
||||
Event.prototype.preventDefault = function() {
|
||||
if(document.activeElement.id != "hiddenInput") {
|
||||
this._preventDefault = _preventDefault;
|
||||
this._preventDefault();
|
||||
}
|
||||
}
|
||||
// Key and mouse events
|
||||
// Note: the client must have the key, keyCode, and which parameters defined or it will crash
|
||||
// Note: for text inputs, the client only reads from the "key" paramater
|
||||
// * an exception to this appears to be the shift and backspace key
|
||||
// Note: for inGame inputs, the client only reads from the "keyCode character"
|
||||
function keyEvent(name, state) {
|
||||
const charCode = name.toKeyCode();
|
||||
let evt = new KeyboardEvent(state, {
|
||||
key: name,
|
||||
keyCode: charCode,
|
||||
which: charCode
|
||||
});
|
||||
evt.isValid = true; // Disables fix for bad keyboard input
|
||||
window.dispatchEvent(evt);
|
||||
}
|
||||
function mouseEvent(number, state, canvas) {
|
||||
canvas.dispatchEvent(new PointerEvent(state, {"button": number}))
|
||||
}
|
||||
function wheelEvent(canvas, delta) {
|
||||
canvas.dispatchEvent(new WheelEvent("wheel", {
|
||||
"wheelDeltaY": delta
|
||||
}));
|
||||
}
|
||||
function setButtonVisibility(pointerLocked) {
|
||||
let inGameStyle = document.getElementById('inGameStyle');
|
||||
let inMenuStyle = document.getElementById('inMenuStyle');
|
||||
inGameStyle.disabled = pointerLocked;
|
||||
inMenuStyle.disabled = !pointerLocked;
|
||||
}
|
||||
// POINTERLOCK
|
||||
// When requestpointerlock is called, this dispatches an event, saves the requested element to window.fakelock, and unhides the touch controls
|
||||
window.fakelock = null;
|
||||
|
||||
Object.defineProperty(Element.prototype, "requestPointerLock", {
|
||||
value: function() {
|
||||
window.fakelock = this
|
||||
document.dispatchEvent(new Event('pointerlockchange'));
|
||||
setButtonVisibility(true);
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Makes pointerLockElement return window.fakelock
|
||||
Object.defineProperty(Document.prototype, "pointerLockElement", {
|
||||
get: function() {
|
||||
return window.fakelock;
|
||||
}
|
||||
});
|
||||
// When exitPointerLock is called, this dispatches an event, clears the
|
||||
Object.defineProperty(Document.prototype, "exitPointerLock", {
|
||||
value: function() {
|
||||
window.fakelock = null
|
||||
document.dispatchEvent(new Event('pointerlockchange'));
|
||||
setButtonVisibility(false);
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
// FULLSCREEN
|
||||
window.fakefull = null;
|
||||
// Stops the client from crashing when fullscreen is requested
|
||||
Object.defineProperty(Element.prototype, "requestFullscreen", {
|
||||
value: function() {
|
||||
window.fakefull = this
|
||||
document.dispatchEvent(new Event('fullscreenchange'));
|
||||
return true
|
||||
}
|
||||
});
|
||||
Object.defineProperty(document, "fullscreenElement", {
|
||||
get: function() {
|
||||
return window.fakefull;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(Document.prototype, "exitFullscreen", {
|
||||
value: function() {
|
||||
window.fakefull = null
|
||||
document.dispatchEvent(new Event('fullscreenchange'));
|
||||
return true
|
||||
}
|
||||
});
|
||||
|
||||
// FILE UPLOADING
|
||||
// Safari doesn't recognize the element.click() used to display the file uploader as an action performed by the user, so it ignores it.
|
||||
// This hijacks the element.createElement() function to add the file upload to the DOM, so the user can manually press the button again.
|
||||
const _createElement = document.createElement;
|
||||
document.createElement = function(type, ignore) {
|
||||
this._createElement = _createElement;
|
||||
var element = this._createElement(type);
|
||||
if(type == "input" && !ignore) {
|
||||
document.querySelectorAll('#fileUpload').forEach(e => e.parentNode.removeChild(e));
|
||||
element.id = "fileUpload";
|
||||
element.addEventListener('change', function(e) {
|
||||
element.hidden = true;
|
||||
element.style.display = "none";
|
||||
}, {passive: false, once: true});
|
||||
window.addEventListener('focus', function(e) {
|
||||
setTimeout(() => {
|
||||
element.hidden = true;
|
||||
element.style.display = "none";
|
||||
}, 300)
|
||||
}, { once: true })
|
||||
document.body.appendChild(element);
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
// Lazy way to hide touch controls through CSS.
|
||||
let inGameStyle = document.createElement("style");
|
||||
inGameStyle.id = "inGameStyle";
|
||||
inGameStyle.textContent = `
|
||||
.inGame {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inGameStyle);
|
||||
|
||||
let inMenuStyle = document.createElement("style");
|
||||
inMenuStyle.id = "inMenuStyle";
|
||||
inMenuStyle.textContent = `
|
||||
.inMenu {
|
||||
display: none;
|
||||
}`;
|
||||
document.documentElement.appendChild(inMenuStyle);
|
||||
|
||||
|
||||
// The canvas is created by the client after it finishes unzipping and loading. When the canvas is created, this applies any necessary event listeners
|
||||
function waitForElm(selector) {
|
||||
return new Promise(resolve => {
|
||||
if (document.querySelector(selector)) {
|
||||
return resolve(document.querySelector(selector));
|
||||
}
|
||||
const observer = new MutationObserver(mutations => {
|
||||
if (document.querySelector(selector)) {
|
||||
observer.disconnect();
|
||||
resolve(document.querySelector(selector));
|
||||
}
|
||||
});
|
||||
observer.observe(document.documentElement, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
});
|
||||
}
|
||||
function createTouchButton(buttonClass, buttonDisplay, elementName) {
|
||||
var touchButton = document.createElement(elementName ?? 'button', true);
|
||||
touchButton.classList.add(buttonClass);
|
||||
touchButton.classList.add(buttonDisplay);
|
||||
touchButton.classList.add("mobileControl");
|
||||
touchButton.addEventListener("touchmove", function(e){e.preventDefault()}, false);
|
||||
return touchButton;
|
||||
}
|
||||
|
||||
function toggleKeyboard() {
|
||||
const keyboardInput = document.getElementById('hiddenInput');
|
||||
if (window.keyboardEnabled) {
|
||||
window.keyboardEnabled = false;
|
||||
keyboardInput.blur();
|
||||
} else {
|
||||
window.keyboardEnabled = true;
|
||||
keyboardInput.select();
|
||||
}
|
||||
}
|
||||
|
||||
waitForElm('canvas').then(() => {insertCanvasElements()});
|
||||
function insertCanvasElements() {
|
||||
// Translates touchmove events to mousemove events when inGame, and touchmove events to wheele events when inMenu
|
||||
var canvas = document.querySelector('canvas');
|
||||
canvas.addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
const touch = e.targetTouches[0]; // We can get away with this because every other touch event will be on different elements
|
||||
|
||||
if (!previousTouchX) {
|
||||
previousTouchX = touch.pageX;
|
||||
previousTouchY = touch.pageY;
|
||||
}
|
||||
e.movementX = touch.pageX - previousTouchX;
|
||||
e.movementY = touch.pageY - previousTouchY;
|
||||
var evt = window.fakelock ? new MouseEvent("mousemove", {movementX: e.movementX, movementY: e.movementY}) : new WheelEvent("wheel", {"wheelDeltaY": e.movementY});
|
||||
canvas.dispatchEvent(evt);
|
||||
previousTouchX = touch.pageX;
|
||||
previousTouchY = touch.pageY;
|
||||
}, false);
|
||||
|
||||
canvas.addEventListener("touchend", function(e) {
|
||||
previousTouchX = null;
|
||||
previousTouchY = null;
|
||||
}, false)
|
||||
//Updates button visibility on load
|
||||
setButtonVisibility(window.fakelock != null);
|
||||
// Adds all of the touch screen controls
|
||||
// Theres probably a better way to do this but this works for now
|
||||
let strafeRightButton = createTouchButton("strafeRightButton", "inGame", "div");
|
||||
strafeRightButton.classList.add("strafeSize");
|
||||
strafeRightButton.style.cssText = "left:24vh;bottom:22vh;"
|
||||
document.body.appendChild(strafeRightButton);
|
||||
let strafeLeftButton = createTouchButton("strafeLeftButton", "inGame", "div");
|
||||
strafeLeftButton.classList.add("strafeSize");
|
||||
strafeLeftButton.style.cssText = "left:5.5vh;bottom:22vh;"
|
||||
document.body.appendChild(strafeLeftButton);
|
||||
|
||||
let forwardButton = createTouchButton("forwardButton", "inGame", "div");
|
||||
forwardButton.style.cssText = "left:14vh;bottom:22vh;"
|
||||
forwardButton.addEventListener("touchstart", function(e){
|
||||
keyEvent("w", "keydown");
|
||||
strafeRightButton.classList.remove("hide");
|
||||
strafeLeftButton.classList.remove("hide");
|
||||
forwardButton.classList.add("active");
|
||||
}, false);
|
||||
forwardButton.addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
const touch = e.targetTouches[0]; // We can get away with this because every other touch event will be on different elements
|
||||
|
||||
if (!startTouchX) {
|
||||
startTouchX = touch.pageX;
|
||||
}
|
||||
let movementX = touch.pageX - startTouchX;
|
||||
if((movementX * 10) > window.innerHeight) {
|
||||
strafeRightButton.classList.add("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
keyEvent("d", "keydown");
|
||||
keyEvent("a", "keyup");
|
||||
|
||||
} else if ((movementX * 10) < (0 - window.innerHeight)) {
|
||||
strafeLeftButton.classList.add("active");
|
||||
strafeRightButton.classList.remove("active");
|
||||
keyEvent("a", "keydown");
|
||||
keyEvent("d", "keyup");
|
||||
} else {
|
||||
strafeRightButton.classList.remove("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
|
||||
}
|
||||
}, false);
|
||||
forwardButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("w", "keyup");
|
||||
keyEvent("d", "keyup");
|
||||
keyEvent("a", "keyup");
|
||||
strafeRightButton.classList.remove("active");
|
||||
strafeLeftButton.classList.remove("active");
|
||||
strafeRightButton.classList.add("hide");
|
||||
strafeLeftButton.classList.add("hide");
|
||||
forwardButton.classList.remove("active");
|
||||
|
||||
startTouchX = null;
|
||||
}, false);
|
||||
strafeRightButton.classList.add("hide");
|
||||
strafeLeftButton.classList.add("hide");
|
||||
document.body.appendChild(forwardButton);
|
||||
|
||||
|
||||
let rightButton = createTouchButton("rightButton", "inGame");
|
||||
rightButton.style.cssText = "left:24vh;bottom:12vh;"
|
||||
rightButton.addEventListener("touchstart", function(e){keyEvent("d", "keydown")}, false);
|
||||
rightButton.addEventListener("touchend", function(e){keyEvent("d", "keyup")}, false);
|
||||
document.body.appendChild(rightButton);
|
||||
let leftButton = createTouchButton("leftButton", "inGame");
|
||||
leftButton.style.cssText = "left: 4vh; bottom:12vh;"
|
||||
leftButton.addEventListener("touchstart", function(e){keyEvent("a", "keydown")}, false);
|
||||
leftButton.addEventListener("touchend", function(e){keyEvent("a", "keyup")}, false);
|
||||
document.body.appendChild(leftButton);
|
||||
let backButton = createTouchButton("backButton", "inGame");
|
||||
backButton.style.cssText = "left:14vh;bottom:2vh;"
|
||||
backButton.addEventListener("touchstart", function(e){keyEvent("s", "keydown")}, false);
|
||||
backButton.addEventListener("touchend", function(e){keyEvent("s", "keyup")}, false);
|
||||
document.body.appendChild(backButton);
|
||||
let jumpButton = createTouchButton("jumpButton", "inGame");
|
||||
jumpButton.style.cssText = "right:20vh;bottom:20vh;"
|
||||
jumpButton.addEventListener("touchstart", function(e){keyEvent(" ", "keydown")}, false);
|
||||
jumpButton.addEventListener("touchend", function(e){keyEvent(" ", "keyup")}, false);
|
||||
document.body.appendChild(jumpButton);
|
||||
|
||||
let crouchButton = createTouchButton("crouchButton", "inGame");
|
||||
crouchButton.style.cssText = "left:14vh;bottom:12vh;"
|
||||
crouchButton.addEventListener("touchstart", function(e){
|
||||
keyEvent("shift", "keydown")
|
||||
window.crouchLock = window.crouchLock ? null : false
|
||||
crouchTimer = setTimeout(function(e) {
|
||||
window.crouchLock = (window.crouchLock != null);
|
||||
crouchButton.classList.toggle('active');
|
||||
}, 1000);
|
||||
}, false);
|
||||
|
||||
crouchButton.addEventListener("touchend", function(e) {
|
||||
if(!window.crouchLock) {
|
||||
keyEvent("shift", "keyup")
|
||||
crouchButton.classList.remove('active');
|
||||
window.crouchLock = false
|
||||
}
|
||||
clearTimeout(crouchTimer);
|
||||
}, false);
|
||||
document.body.appendChild(crouchButton);
|
||||
let inventoryButton = createTouchButton("inventoryButton", "inGame");
|
||||
inventoryButton.classList.add("smallMobileControl");
|
||||
inventoryButton.style.cssText = "right:19.5vh;bottom:0vh;"
|
||||
inventoryButton.addEventListener("touchstart", function(e){keyEvent("e", "keydown")}, false);
|
||||
inventoryButton.addEventListener("touchend", function(e){keyEvent("e", "keyup")}, false);
|
||||
document.body.appendChild(inventoryButton);
|
||||
let exitButton = createTouchButton("exitButton", "inMenu");
|
||||
exitButton.classList.add("smallMobileControl");
|
||||
exitButton.style.cssText = "top: 0.5vh; margin: auto; left: 1vh; right:8vh;"
|
||||
exitButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
exitButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(exitButton);
|
||||
// input for keyboard button
|
||||
let hiddenInput = document.createElement('input', true);
|
||||
hiddenInput.id = "hiddenInput"
|
||||
hiddenInput.classList.add("inMenu")
|
||||
// We are hiding the text input behind button because opacity was causing problems.
|
||||
hiddenInput.style.cssText = "position:absolute;top: 0vh; margin: auto; left: 8vh; right:0vh;font-size:20px;z-index:-10;color: transparent;text-shadow: 0 0 0 black;";
|
||||
hiddenInput.value = " " //Allows delete to be detected before input is changed
|
||||
hiddenInput.addEventListener("input", function(e) {
|
||||
let inputData = e.data ?? "delete"; // backspace makes null
|
||||
window.lastKey = inputData
|
||||
hiddenInput.value = " "; // We need a character to detect deleting
|
||||
if(window.keyboardFix) {
|
||||
if(e.inputType == 'insertText') {
|
||||
let isShift = (inputData.toLowerCase() != inputData);
|
||||
if(isShift) {
|
||||
keyEvent("shift", "keydown")
|
||||
keyEvent(inputData, "keydown");
|
||||
keyEvent(inputData, "keyup");
|
||||
keyEvent("shift", "keyup")
|
||||
} else {
|
||||
keyEvent(inputData, "keydown");
|
||||
keyEvent(inputData, "keyup");
|
||||
}
|
||||
} else if (e.inputType == 'deleteContentForward' || e.inputType == 'deleteContentBackward') {
|
||||
keyEvent("backspace", "keydown")
|
||||
keyEvent("backspace", "keyup")
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
hiddenInput.addEventListener("keydown", function(e) {
|
||||
if(!(e.key && e.keyCode && e.which) && !window.keyboardFix) {
|
||||
console.warn("Switching from keydown to input events due to invalid KeyboardEvent. Some functionality will be lost.")
|
||||
window.keyboardFix = true;
|
||||
if(window.lastKey) {
|
||||
keyEvent(window.lastKey, "keydown")
|
||||
keyEvent(window.lastKey, "keyup")
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
document.body.appendChild(hiddenInput);
|
||||
let keyboardButton = createTouchButton("keyboardButton", "inMenu");
|
||||
keyboardButton.classList.add("smallMobileControl");
|
||||
keyboardButton.style.cssText = "top: 0.5vh; margin: auto; left: 6vh; right:0vh;"
|
||||
keyboardButton.addEventListener("touchstart", function(e){e.preventDefault();hiddenInput.blur()}, false);
|
||||
keyboardButton.addEventListener("touchend", function(e){e.preventDefault();toggleKeyboard()}, false);
|
||||
document.body.appendChild(keyboardButton);
|
||||
let placeButton = createTouchButton("placeButton", "inGame");
|
||||
placeButton.style.cssText = "right:6vh;bottom:37vh;"
|
||||
placeButton.addEventListener("touchstart", function(e){mouseEvent(2, "mousedown", canvas)}, false);
|
||||
placeButton.addEventListener("touchend", function(e){mouseEvent(2, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(placeButton);
|
||||
let breakButton = createTouchButton("breakButton", "inGame");
|
||||
breakButton.style.cssText = "right:19vh;bottom:41vh;"
|
||||
breakButton.addEventListener("touchstart", function(e){mouseEvent(0, "mousedown", canvas)}, false);
|
||||
breakButton.addEventListener("touchend", function(e){mouseEvent(0, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(breakButton);
|
||||
let selectButton = createTouchButton("selectButton", "inGame");
|
||||
selectButton.style.cssText = "right:6vh;bottom:49vh;"
|
||||
selectButton.addEventListener("touchstart", function(e){mouseEvent(1, "mousedown", canvas)}, false);
|
||||
selectButton.addEventListener("touchend", function(e){mouseEvent(1, "mouseup", canvas)}, false);
|
||||
document.body.appendChild(selectButton);
|
||||
let scrollUpButton = createTouchButton("scrollUpButton", "inGame");
|
||||
scrollUpButton.classList.add("smallMobileControl");
|
||||
scrollUpButton.style.cssText = "right:6.6vh;bottom:0vh;"
|
||||
scrollUpButton.addEventListener("touchstart", function(e){wheelEvent(canvas, -10)}, false);
|
||||
document.body.appendChild(scrollUpButton);
|
||||
let scrollDownButton = createTouchButton("scrollDownButton", "inGame");
|
||||
scrollDownButton.classList.add("smallMobileControl");
|
||||
scrollDownButton.style.cssText = "right:25.8vh;bottom:0vh;"
|
||||
scrollDownButton.addEventListener("touchstart", function(e){wheelEvent(canvas, 10)}, false);
|
||||
document.body.appendChild(scrollDownButton);
|
||||
let throwButton = createTouchButton("throwButton", "inGame");
|
||||
throwButton.classList.add("smallMobileControl");
|
||||
throwButton.style.cssText = "right:13vh;bottom:0vh;"
|
||||
throwButton.addEventListener("touchstart", function(e){keyEvent("q", "keydown")}, false);
|
||||
throwButton.addEventListener("touchend", function(e){keyEvent("q", "keyup")}, false);
|
||||
document.body.appendChild(throwButton);
|
||||
let sprintButton = createTouchButton("sprintButton", "inGame");
|
||||
sprintButton.style.cssText = "right:19vh;bottom:53vh;"
|
||||
sprintButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("r", "keydown");
|
||||
window.sprintLock = window.sprintLock ? null : false
|
||||
sprintTimer = setTimeout(function(e) {
|
||||
window.sprintLock = (window.sprintLock != null);
|
||||
sprintButton.classList.toggle('active');
|
||||
}, 1000);
|
||||
}, false);
|
||||
|
||||
sprintButton.addEventListener("touchend", function(e) {
|
||||
if(!window.sprintLock) {
|
||||
keyEvent("r", "keyup");
|
||||
sprintButton.classList.remove('active');
|
||||
window.sprintLock = false
|
||||
}
|
||||
clearTimeout(sprintTimer);
|
||||
}, false);
|
||||
document.body.appendChild(sprintButton);
|
||||
let pauseButton = createTouchButton("pauseButton", "inGame");
|
||||
pauseButton.classList.add("smallMobileControl");
|
||||
pauseButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 0vh;"
|
||||
pauseButton.addEventListener("touchstart", function(e){keyEvent("`", "keydown")}, false);
|
||||
pauseButton.addEventListener("touchend", function(e){keyEvent("`", "keyup")}, false);
|
||||
document.body.appendChild(pauseButton);
|
||||
let chatButton = createTouchButton("chatButton", "inGame");
|
||||
chatButton.classList.add("smallMobileControl");
|
||||
chatButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 14vh;"
|
||||
chatButton.addEventListener("touchstart", function(e){keyEvent("t", "keydown")}, false);
|
||||
document.body.appendChild(chatButton);
|
||||
let perspectiveButton = createTouchButton("perspectiveButton", "inGame");
|
||||
perspectiveButton.classList.add("smallMobileControl");
|
||||
perspectiveButton.style.cssText = "top: 0.5vh; margin: auto; left: 0vh; right: 28vh;"
|
||||
perspectiveButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("5", "keydown");
|
||||
}, false);
|
||||
perspectiveButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("5", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(perspectiveButton);
|
||||
let screenshotButton = createTouchButton("screenshotButton", "inGame");
|
||||
screenshotButton.classList.add("smallMobileControl");
|
||||
screenshotButton.style.cssText = "top: 0.5vh; margin: auto; left: 28vh; right: 0vh;"
|
||||
screenshotButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("2", "keydown");
|
||||
}, false);
|
||||
screenshotButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("2", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(screenshotButton);
|
||||
let coordinatesButton = createTouchButton("coordinatesButton", "inGame");
|
||||
coordinatesButton.classList.add("smallMobileControl");
|
||||
coordinatesButton.style.cssText = "top: 0.5vh; margin: auto; left: 14vh; right: 0vh;"
|
||||
coordinatesButton.addEventListener("touchstart", function(e) {
|
||||
keyEvent("f", "keydown");
|
||||
keyEvent("3", "keydown");
|
||||
}, false);
|
||||
coordinatesButton.addEventListener("touchend", function(e) {
|
||||
keyEvent("f", "keyup");
|
||||
keyEvent("3", "keyup");
|
||||
}, false);
|
||||
document.body.appendChild(coordinatesButton);
|
||||
}
|
||||
// CSS for touch screen buttons, along with fixing iOS's issues with 100vh ignoring the naviagtion bar, and actually disabling zoom because safari ignores user-scalable=no :(
|
||||
let customStyle = document.createElement("style");
|
||||
customStyle.textContent = `
|
||||
.mobileControl {
|
||||
position: absolute;
|
||||
width: 9vh;
|
||||
height: 9vh;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
padding:0px;
|
||||
background-color: transparent;
|
||||
box-sizing: content-box;
|
||||
image-rendering: pixelated;
|
||||
background-size: cover;
|
||||
outline:none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
margin: 1vh;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.mobileControl:active {
|
||||
opacity: 0.75;
|
||||
}
|
||||
.strafeSize {
|
||||
width: 7.5vh;
|
||||
height: 7.5vh;
|
||||
}
|
||||
.smallMobileControl {
|
||||
width: 6vh;
|
||||
height: 6vh;
|
||||
margin: 1vh 0vh;
|
||||
}
|
||||
html, body {
|
||||
height: -webkit-fill-available !important;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
#fileUpload {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 100vw;
|
||||
top: 0;
|
||||
bottom: 100vh;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color:rgba(255,255,255,0.5);
|
||||
}
|
||||
.strafeRightButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAARRJREFUOE+dk0EORTAQhkci2HAEF3ESJ7Rgyw2cwAEkVhI7QhDJe/n7Mk3R0rxu0M7/dWb841RV9SHDmufZdHTbdwCCoO97a5EaOAwDtW1LEtQ0zQnkui4dx/EKBwTLyfNclAZQFEU0juOjGDHLsshLANr3/QdCWUjRdqnZWoO6rqO6rk93pGkqvx9BV3EQBFK4ritZgbIsEyJVrKajA03TdO8RQCYIgAziPqE0LQh/rSxLLQyQJEkojmN6BeFWE+xaFmKNGXE/dDATSBqSfXQ1mwpTy4KQzXtyNoN0Y8EwiNXfzplbG1Ln9r+c/TY2p2ZjYLnWN6HuXPqoKAryPE/EYDMMQzHRWNu2Sa3v++KdYzkezy+eN1EbyruiHgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.strafeLeftButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUFJREFUOE+dlDGqhDAQhrMgKhYWHsCLeARP4Lk8hIW9N7CxtbQQrAQLQVFUhPf485gwyWbZfZvGJM58zvz546Oqqh/BxrZtfPnx/EEgEzCO40eQaZpE3/dCggBp21ZLdBxH3Pf9BOP7mHddJ2NegoiA4CAIxL7vVjCqkaCyLKVGqOhVFbYeKRag67p0ECUURaHlJkki4jjW9sIwFMuySH0UCMJCNA7yfV+tj+NQcxP6LxAvhaBZlsntr0FIBoyD1nX904haIwGHYRB1XQveHlUFSJqmAhpRRU8g3gIEN0EEiaJIWQGtaaB5njWfmCCzEvqo5iO0RiBbezYI95E0ZJ7n0pD8+E0/cU2443GF1KlxEJns3W3lcVbQO4DtvRIbFdGv4BsQcuSpAdQ0jWLg3tA4z1NOPc+TT9d11TskY59ifgE9QD9CDm6XPgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.forwardButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAcZJREFUSEulVEuqwkAQ7OAnoujalRfxCJ4gl/ESHsKFa72BJ3AhIiJk60IwKH6ZR43U0JlMiOH1xsx0T1ldU9PRarUy4sX1evW3aq+jxWJher2ePXg4HGoD+AdOp5PsdjuxwEhuNpsCaLPZlPf7bfcHg0Euf7lcROeZPB6P9tMBb7dbB8IiHEQQvKod1O/3+y/wbDYzw+HQMQaz2+1mwTQjMAwxRz1zBM6y7AuMA9CG7bKQDLFeLpd2OZlMXJ0vRRD4fD67ln0J5vO5ZU9ZkiRxqmjwghRkrLWlrmmaynq9ljiOJYoiud/vMh6PZTQaBS8bGj+fz7wUqPTbA9tGoyGtVssCvV4v+Xw+ollrQqXAmgbZdjodt22MkcfjUcoaditcni+Fz5ZO8VnrLp2PtSu0FJotWEJfBL4RYE2H+MA5xijUNtNsAQZd6YwyrStdEdKWbMkca+0QPqzcy/PtRrZgSZuFnrPW+mfgqrmg87CeBg76uA5gqBauKABzVmAIMbrdbm7IcB/W0wOIjvrpgdQdmwAPMtZ28tsEc90JH4vugMDOxxiZfDH/1RjnLfB0OjUhUCT7/X7wf5CDDRHtdtv+4sK4Rv4PfpOwZeVjdiYAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.rightButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAVhJREFUSEudlT2qhTAQhSOICKK1lRtxCS7PRVjYuwaxtbKyFewURUS4j5PHyNy8/OibKpiZb04mmdFrmuYjDLZtm2nL+d1TwSpsmiYJSdNU0NpGnedZjOMovLquP1EUibZtnSqeOAAKk2As+r53xvm+L67r0volSSKWZZFqX4MRoMIJSN+d4KqqZOY8z0WWZV8qbcoBXtf1txS4FBSdBwAchqE4jsOYQFcTgM/z/AZzRwLTN1sCLug1+EkC+AzDIIIg+KuYLkNVrB6bTlAUhUAMmbbGtlJgD08Nx+aGBBz+L7Dusozgsixlg+BV6BTrVMLPWQoX2FRb/r5R433fZanuy3sKtj03Dr47zwV2NYjahY/Appa2Tau7QbhiOhIFmibZazACqEF0k4yAfKKpIrSKbUqe7t0NglLQ7+RpsMtPjk2Au66Tow7DgxscyOI4lkv4wbgv9yP/HwHyemKMQPbVAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.leftButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAUdJREFUSEutlTuqhUAMQEcQEUFrt+a6XIa17sDG1sJSsBLsFEVFuJcEMoxhPm8uL5WOycl3YtA0zUcYZN930yfneaCCVdA8z05jncKyLGIcRxFUVYUR933/E4gbAfS+bzs4DEPxPM/LVncGClmWiXVdMVorGAAgHOxKC8AgP5VimibRti0CiqJ4+ZLgsiw/eZ6LYRic0anAOI7FeZ5a8LZtIgAwuIRumoQDSc8ExlLYwCYgB1Pj4PxVCh4xdLeua7SHlE3iFTFBCQhTQRPCHXjVmINt4+UFBpCrFJSFN5ii/Gvz1KyszePp/8u4qaPjckClAJvjOPCCeUVsc6C70riEdBcExitJEmyiLQPdxMjtxsGUFhnptptpddLNM0bsWo3qd+7kFTH9TnyANl253bquk3qQRhRF+A7PXK7rkkdpmqIO6QOQ5AuINXqeGbRlFgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.backButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAXtJREFUSEuVlT3KhEAMhiMsKgt6BC/iETyB59pDWFjrDWxsLSwFK8FCUFZ2RdiPCBky+ca/wBbjxGfeeROzVp7nPxDxfr/lo9trC8F7oK7rbgP7voemacBK03RTXFXVbYjpBYRiKHBd17Cuq8r1fR/meYbn8wnjOGqMx+OhcjGP7yN4WRazYp6MEAx+KK45nK81MHqJ3pyFhJ1aIcFJkpydoe3HcazWmscmsOu6l+CfzweM4NfrtXUFt6JtWyiKAo7g6Dn+wjCEIAiU56h4miawCDwMg1YgtIPACKAi8mtItbiniscV8+KcqUYoqeWHGcHSVK5a7km1JEoVz+QxQfZUm9ReBlOiSbXJWw7Wise7gn95UvWet3TLf11x9OVx1Sa1XMguGK8kBw8OmSzLNlFRFAGCKAh66vHecKEJxqGHs+KoK64MHQm/1G7yJf71yTHKi7cNelRMfyeXps7FpA1clqVKx+nP4/v9bkvP87Tn2KsUjuOAbdtqjXt/DvSA6WCSwboAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.jumpButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAARlJREFUOE+dlD2KhVAMhSMIWrkx1+CqXISFtS7C1sLSVrAQFEVFmOFcyH25eXNVJpWS+OXkz6Cu6x8Stq6rfH39HEjQX5BhGG5h4zhS3/cUlGVpFLVt+yp7GIZ0XZeNBQTmgJIkoW3bjEMGywwcw36AzvN0QTrbPM9UVZXhpGlKgGgDaFmWD6jrOkcFQ+I4Nt/u++7AOOkXSPZIQ1AGPtQwJHBAmAy6D9MQXYqGOT2SoKIoiMvxjRGwLMtMKywoz3MzflakQVyWhGqQGb8G/ac0BzRNk52aD3bbbK2IS3gaP8fZqWmQXMq7hfzaI5+ip8PDliPRK0USBgVs+mjNiUAR/wqeVPj8FtQ0jY3BJcOO4/ByoyiyPo77BUACR9z5EdScAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.crouchButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAASVJREFUOE+dlDsKhEAMhkcQtPJiVh7AU3kCKwsLKz2ErYWlrWAhKIqKsEsCmc08fLB/pSR++ZPM6FRV9RFMy7Lw19fPDgfZIH3f38KGYRBd1wknz3N01DTNq+qu64rzPGUuQEAKKAgCsa4rBngyr0A5FAfQcRwqSK82TZMoyxI5YRgKgOgC0DzPP1DbtooLgvi+j99u26bAqKgB4jPikCiK0EmapgYMCigg2AxMH6RDeCtFURgwZUYclGWZgHbAiU0Ei+MYRyFBSZLg+smRDoK2wCXJBsL166B/WlNA4zjKrdlgtvkow9YdUQtP66c8uTUdxA/l3YE0ztGVo6eLR0t45YjDwAFJv7R4RcAR/QqeXFzFJaiua5kDNxm07/sl1/M8GaO8L0fuVtxHFTIkAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.crouchButton:active {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAStJREFUOE+dlLGKhEAMhiOICqKdYGthaetL2GhlNQ9nZWFh5YtZiIKwRwLJjXHc3bu/WZnJfPknyazXtu0LACAMQ/whHcch3/qD44IgkK26rsFDUJIkjwc/bRRFAVmW/YJw4Rv5vg/neUooQlDiCEFpmsK2bbRhB9sJOIb3nSCdbV1XWJaFOE3TUCKtG6gsy4sLhkRRRGf3fb/AOKnTEWezIV3XkZNhGG4wjBeQMYbaz8XWEPsq8zzfYI+gcRwBr4NOXGKYMYZKIaC+7184XOxIg/Ba6JLlAuV5Dp4G/edqBOLJtrvmgrnqgy6rqroPpF2TT+3n2EeQPZTvBpLjBKRr9M17wxhugoD0HOlnwmBcZ9nv8ALiv4J3brAzWnEcy5I3TRNN9l9lQ/DsD7Mvyc0ay6bsAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.inventoryButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAedJREFUOE+tlM1OwkAQx6elTYiCkSMnvKAX38KLr+DRm69hfAIP3jwbE24ceA4+TDBpCMWEFGgMBCgBUlrzXzLLLsVYo3NpOjv72/987Bq1Wi2mf7AgCATFYOB0OiXTNCV6s9mQYRiUyWSkbzKZHDx6uVyS7/vU7Xa3wPl8Ts1mkxgSx7EAAQhfFEUaHH7ECEWGIb6u6+4UAliv16VCAMIwJMuyxAb8Q72qdl8q1MmUkW6j0dCAgADAZYAiVoON+OeD4O/1erpCABEAs237YK14nRcBRUlg/X6f1uv1toYodrvdFikiVQ7CBiiEArVhh05DyhLY6XRoNBpJIMAMTTtRCeBwOCQ057h8KRiB80a5XC61DzXUFAIYF8/o/u6W3t0Penh8ovJJNuErZU2yS+eJOMdxdk1Bygy8ub4iz/+k55dXCfzJd3F6JIZaU+h5Hi0WC/IiS5xUNEMqFAo0Ho81Xz6fp9lspvlQGplypVKJB4MBAci3I20j1DipUAWqQ4yZ+24ecfD+FCSAqKFq2MSDrN5bvi081BgxWAKIOVSvFwYcm9W7zI+BGsfXL1FDBvImfgiQGgNYKWfCzxti8NqgWQbXEO9ZGuMUkcF+UySw1WqJGvzFMIOr1WqrsFqtaiws/sYAYvsC6d7MZCUlFo0AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.chatButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAh5JREFUOE99lN8vA0EQx2fjkYY3HvB/8V4kEg8SBJUGVVJU4rfeVRO01bpIT8VviYjEq2tF678g5ZGVmbm9Hy02l9zd7MxnZ747u+Lhsig7OrtBDQkS8BFCkAn/BQiQUrILmvHTfqOfeXEDAkE4397Z5TqQn/BBmMtwtQACTy5vQU8kQTxcFSmJSqncsKAT4AGohBQwrqcBpHQzUiDlUB/gpFL3QSAsX5WGIBUcHJn4K47sWmyONERN4toBfftA6ISQz9q7q4ONRM2UiM2BVtAW50izFT3N2t9fmKTRa7lMhr7REIF2tExDVv3BXtqAlkAbJGIRml9JZmhjxN1ZgXatalk0MTAehs/am73DvHOubrxrmNH2/DSDUjkW+7ZokGfFYo0GQ9PwUXuDhJb9Vaf+YA80B9pgPRIm/9W9QwZdF3LYflCxShQ4FI4QSPWRl6ZsWNrqTIgkW9vPc2nnRtbOiEHDs/P/gNBDUGnxqXHqz80Dg97iNLcvsWtfnrghv7+/YGxhmWA4cPX6sTQ5xtpJgK3DY8B4YWZSEvsANcJRD4mODjeAmiiSu2EnbzKokN6l81gpPVPARCzuBP4GoeKwGe1DnDwy+UwqULWMIHe7fSeepXFuBVUWmvWjAouNIDS8WJyRs6K6PjzXinOVeIr1ZJSSj6UqGHmDU8SC7R70/3NrqnnVqM51oy9FZXRDd7Oxa+C7y9/ZXKGnfI9WP7ZEKinpenUjAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.pauseButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAjJJREFUOE9lVO1qE1EQnXkK+6P6FP7oI/gMraIoFIMr1WL9aNEfRWNtS1Li1ti6aYr5sEkXyRrRRC2IFNqCgptIE5/myszcO7tbLwuZPTv3zJmTOxcP+10zMXkB3DJggB5EZIjeERCMMZJCMIX2l/Ki3jdAIqLv5ybPJwmchxkS4RVyV4AIP/QPINiuAB5+6bKI0WD4X0HdkCJwghxhIWgAGJMockQu4ewGlXImYCJq37VGROn2RU3WlqQvwx7S98KbOscZIpc4ffOW7mm+3uRYMHFZMImLQUOiH72IPfo7HKqCmdxtNbRZ9jmeyXm8kZIdRnix0uQ/Br9/6nAH4zhWsy97c7YeQt3f4PiKd0dV1vwNjYvVlph90A2ZaBSLR7Suzt21McJuqUB5cE0xgN1SkTHKL73dE6KvnRZDo3igVa7P39NztFNYZ/zG/IK2y5j9Z17W2tLa5/CdVWSJEGB24YESba++YILZ+4TRQthaW9HD+6oeMil+bNUMndrT3/ZAIkLu4aJWLz/Pc5x7tKhE5ZU8m05Pee890H6MmlVD54A8cstbeqxm+8+WGfaWnujI+E+XtbWtdiREncYOz+No8EeEI0Lv+KcoMgYuTV3kuH/ySwsR5oa4sh9JAUc0HhKRnBNxIjXxAuit4NoiONjviNlERMBpLIqcKr0+UteKXiWaCZBSVDVHgzGE7VAkUsN2yLLvotV9zyinfcF63uQ3g0SN7UEmKWlV1abbp8G1F94/2dEyKXciad8AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.exitButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAiBJREFUOE99U11rE1EQnfsvFKwg/QkK+iaIio+KJNAnbUQoRaGgf0NRTFPU3TTJBjfdTZpN/aJtUHwU8anJJlH/y8o5c+92k1bnJXvn48yZMxNzmETZ2aXzQjMikunn6YYgkuZtb/+LGAAZY+TMuaX/IfwzBpBWMxAzHMQZaEyPxkw+rWeRpCPteFWDWIdRRiITC+Qm1KgRybJ5cOtzFKtBxO5mOIiyLBOZjca5RqXVCvPiRl01QYKIlCsVFu1sw6/p1VbEhgSCa3I0IoHSfQVxFtsigBfJRNt1BXKjHfQ77DcbpQyUKw9yEBSiCSkXDP6O7zN/sx3raJ97IcWejVOOEO1/lX4cHoMVFuDg7pRWpHzrGnO2gq6O+SFqM06NrPWG3wi2eFZ43y6tyN3rV/PcN+GuAu2FDTL/lU7owI6MGLm3vk6NcWMa0O01a5vHQxoRrzPQmt22bxkpEOpWHz2eE9aBoSNg69VXtomIFw1Uo27zbc4IHw83NsjCCax6z7/R2Xv5gmD13nslsONvcSe/0ykDa0+f6N3YYggLS7qhOye+Xz97zt9G/yNZmtCrZSjC+mEH33/mWwPIzSuXyO5wwX/j8kWOHySflFHo16jRdKQawVAEQ7JOpqOd9Iu0yMiIeefV+F+bjSe5gAv3d0L4on5kZOxoP9I/kvSTvDM6uCPiai0j+ItvsnU+PJYvLOteYfZ89WqKiZrg/LkONucvWvgqB/7CAfgAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.keyboardButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAfdJREFUOE+VVN1KG0EU/ubait7ZC9un6IXP4BvU9qJQJFhsEUGpPkAsWJL+xEjMxhRjEhMXyRqx2lYoRfCmF81uyca3UGKvp5xzZpJsFI3Lwjkz88035+ebUafHdf1w/DHsp6FBv1KKp2isoKC1FghNk2ss4byjH1BEROtj44+6AMapCInwCrk9gAj3j0/gbOSgTr/VOYjQ9yPAzo47nIRTBLTuRhT6waB7IzgmovRtakTEaRO7orR4cKefyG4zJkLUPcpWU6rRrc11P+kUBfHryOMatYIAz2Ze96VnOmXaZTtoi11aTyGZK3Fj1M/DGqPPGw08n53D0PAI/rUv2V61L/BgePTamPCEKaQ+IJmvSAlO6i4TtfwAL97MRyLiUI0UIm03c18+JvBpa0eIvtcqJD+EDR8v5xeQyZYQm5661RIpYXKJVXwuVCW1r26ZjyWi2OJbo2UR5E1RWDkSIrP6Dultl3uhDioFTapt/gnwamkZmWwZsemnbG/67BrZ9Eoc6zt7oP3KK+U16SBsBDg8+30vUU5OPEGm6glRrbjJ9zH0/0phSYzmgg7i53Y9uZP9RJ3bLe0SPd7iO7s1KTYREa5JEfXqb8AkeyLK6zO/BbfqSoiUsCGMjkVVdr1XY4xz3sd1fM3pnC9tN5vMm9QbnH2n+uv5HyQVKCmWNUnHAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.placeButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAd5JREFUOE+tlMlqQkEQRfs5gAv10xwQEf1Fd4J+h8PChYi6EKeNOCvqC6fltv2ISQxJgQjd1afq1vCCVqsVmn+w/X5vKYGAm83GxGIxh77dbiYIAhOPx93Zer1+Gfp0OpnVamVGo9EDuNvtTLfbNYKEYWhBADm73+8ROOf42IyCwP6Px+NnhgDb7bbLEMD1ejWJRMI+kJxsNvtlccjOSUZup9OJAIGS5eFwMM1m0zpXKhUHJEN8KBNBJ5NJNEOAOGDJZNI9JBjAVCpl8vl8JEOglASbTqfmcrk8akix+/2+lYhUOfHgeDxaIHflcvlbyQ44HA7Ncrl0QB4L6mdYLBbfBy4WC+tMg3xLp9MOTq2oqW+ZTMZ2nBpGMgQITA3QI78Rr+5rtZoNOBgMnk1Bsg+kATK/EQLqnnqXSiXbacYmkuFsNrOpMyr86Di1ZAtoDIZ8bQ9Zabi5c5Lr9Xo4n88NQG2HXyM1hbNqtfpzU3ygdllDyzwK6I8NgTUFiuAkC6guy0Gyt9utG+xCoeB2V0NNIOwTkDnESctOwTUm2pRcLmfPfD+t36caCkg0/7Ol4vtfGKnwG8TXBjWBJPM9e8ckEQW+IdkBe72ercFfjBk8n8+PDBuNRoTF5W8MkOwDqQTfZInxo/8AAAAASUVORK5CYIIA");
|
||||
}
|
||||
.breakButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAeRJREFUOE+tlMmKAjEURVMO4EL9MZcKKn6iO0G/w2HhQkRdiNNCcVbUak7kplNlNU1DP6iFMXXq3vvyEnQ6ndD8Q51OJ0sJBNzv9yaVSjn08/k0QRCYdDrt1na7XeKnr9er2Ww2ZjKZvIHH49H0+30jSBiGFgSQtdfrFYGzfjgcHLxQKJjpdPqtEGC323UKATweD5PJZCyI36iXWty0220HrNfrVp2zzIZerxcBAgGgGFANnI8Dy+VyFoDdarVqZrNZVCFAIFQ2m03MSsoEwwVPuVw28/nc3O/3d4aEPRwOrUU2kBuFKhQmKZM67FJYdsDxeGzW67UFbrdbu6FYLDqVcWVxWCJwtVq5fNhQKpVMPp//yEw2a7Wa+yBOyDCi0AeSEWEDpQEo55GySqXiOk7jiGg0Gn03BcsAdb7URaBqgN9R5eufhI8MF4uFbcLlcokcC/nS8dD0oIr9Kme52WyGy+XSANR0xJsATN1MPE9+l33g+Xy2+5Ms+1Dl5sOdZQHJUeMUbwovak1KsYttNetHoF6kk+TlqwbMmGkM+a05/8jQV8jGRqNhHSl8ZpjibKr8BnHbcAMFssx9RjNU/qT4WckiBzyeoQMOBgN3/fzUxd/WmZLb7fZW2Gq1Ivv58y8FSPUFhmoAc4SumvkAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.selectButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAcRJREFUOE+tlMuuAUEQhqsZCWJ4KAsLL0pG4pKQWHgHzMJK2LlFIm5BMCd/SbXumRGccyoRme7O13/VX9Wq0+kE9A9xOByYogS43W4pkUho9O12I6UUJZNJvbbZbGKvPp1OtFqtaDKZPID7/Z6GwyEJJAgCBgGItfv9bsGxjjOsSCn+n06nT4UA9vt98jxPKyiXy9Rutz/6xtn1ev0EIt3BYEC1Wo3S6TRvFItF6vV6dL1eyXEc/Y09rJVKJd5HuhEgFAIohf3Uo263y3ABXi6XRw1R7NFoRJVKhdXg9mw2y3WCUaiTaZhciMwkkLIGjsdjWi6XDETKSDefz78VWq/XrZQt4GKxoGq1qoG5XM5qIXFUlEI1ah6bMhQCiFpKZDIZqwexjvYBAC2FX7PZ1Apns9nTZQG+UhiXO+prmhipIW5AH0oNXddlg9AWpikyPWj4RqMRraHnecF8PicBisu/NsUEHo9Hq4apVCrWadQPCmNdFmDY5UKhwCYgzLmV2cXabreL9qEAw32IKUCYYxc3hubocR+GgYB88zDIebgMxRqI98wcpbdjEjpgAX3f58fxL4F0z+fzQ2Gr1bJY2PwmAJL4ASn3ymSCH/2UAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.scrollUpButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAfhJREFUOE+tlL1OAkEUhe8sUAkklHQ2dj6Q0crEwsTCWFlZGJ/Aws7amNBR8Bz8mKBBwmJClp+YEGAJkIU1Z8gZdlnWaPQ27A53vnvO3TujSqWSL/8QrutqiiJwNBqJZVkGvVwuRSkliUTCrA2Hw52lZ7OZDAYDabVaa+BkMpFqtSqE+L6vQQBibbVaheBYR45WpJT+tW17oxDAcrlsFALgeZ4kk0m9Ae9QH1S7LRXqjGXYrVQqISAgAACEgox0Oq0foZCFULTdbocVAogERCqVCglAwb2DQ73mNl4kCEVLEJ1ORxaLxbqHaHa9XtcWYZVJUAGF+IIA3p6fysnVteQtT7LZbKgoLBtgs9mUfr8v4/E4doAIRMIuaATY6/XEz+9/O5FQ+Gp/6Jy7+wetNJPJ6H6ihyGFBGITg5u3qziDT730+PSsoehpo9HYfBRYJvD97TVW5c3lheyCoc8Ry47jyHQ6jYU5q6ScHR9FlHGDsVwoFPxutysA8nRsUzE2BNJm7FcOAnmWObScRwJRCD3L5XJmtFjcWCYQPQwG1HLQg+NEZSiKecXsIiJAzCGSeNgx4HgOnmVs5MXAPB6/SA8J5CZeBFDBQrxh6ITXG3Jw28CJomXcZz8JWoSDYMCyAdZqNd2DvwROyXw+XyssFoshFv78TQDE+AI1+8NkGpdDjwAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.scrollDownButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAfxJREFUOE+tlMtKY0EQhqtzAdEkuPUBxI0PJO4EF4ILn2AYfItZDLhzBrLLIrjxHXIRIoSQEyGcXBgIuSckOfJ1qPYcY4KD1uZ0OtVf/39XdZt8Ph/IN8RoNLIUo8B+vy+xWMyhl8ulGGMkHo+7uV6v9+HW0+lUut2u1Ov1NXA4HEqpVBKFBEFgQQCZW61WETjz5FhFxtiv53lvCgEWCgWnEMBisZBEImEX8Bv1YbXvpaLOWcZusViMAIEAGI/Hbm0qlXJjFOpGbNpoNKIKAZJAJJNJ+2Wjg+NTOx5VnyQMZA4oR0I0m02Zz+frM+SwK5WKtYhVklAG7PbqQn7+urPATCaztR+w7IC1Wk06nY4DDgYDB3v2XuTPw6MFbgs22gC2222bT4FUGTAC4K4wvmfPMKIQ4Ecwv/tvJ+z3/V85zuxJtVp9KwqWAVIt7PqrhPy4uRaFsWhXnBzub1r2fd9WjVZBKdDL8zPLAXgUW2xlUn1nOZvNBq1WSwDq7dCWUagCP1XlMFDvsjbtZDKxSgkUKpCNtf9UtquyArXKmsAiGp0z1Uin0+7ualPTu8QGkD4kSS87Dc44fJdZqA+D5un12zhDBeoifQiwphvpC6OK9Xkjh9cGN0Yt8559JtQiDsKBZQcsl8v2DL4S3JLZbLZWmMvlIiz+/J8ApPEKFYzOZJBKmFAAAAAASUVORK5CYIIA");
|
||||
}
|
||||
.throwButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAehJREFUOE+tlLtOAlEQhme5VAK9D2DnG1nZ2VpZG5/Aws7amNBR0PoAFnIxwYQQFhOyXEJCuEOANd/BOeyyG4PRaTZ7Lt/5/5k5xykWi778Q0ynU0NxFDgajSSRSFj0ZrMRx3EkmUzaseFwGHv0YrGQfr8vzWZzB5xMJlKpVEQhvu8bEEDGttttCM44a4wixzFf13X3CgGWSiWrEMB6vZZUKmU28I/6oNpDqaizlrFbLpdDQCAANA0oUjVs5F8PYrzVaoUVAmQBkU6nQwI4kMhkMqFxoKSEaLfbslqtdjkk2bVazVjEqi5iw3w+l5Ozc7NpWn+XXC4XWxgsW2Cj0ZBer2eBgIGiDNjt1aWBXFzfyGliHQuNALvdbuhkChWEfbifZv7u/sFAs9msXY8TchhSqEAmadI4mBIUSk4pHG7q9fq+KFgGSLXG4/GPsDgonRCx7HmezGazo2BAvf5AHp+ejX2UWsv5fN7vdDqCyqDNl9e32GoeDip0MBjschgEetvUUZDDRaiMAA+rTLK10YP3Vm+LNjUtRtgcqkL6MHi9aHA2B++yuavfD4OC9fpFcqhA3aQPAS2hB6lStazPG2t4begQm0Pes2NCLeIgGFi2wGq1anLwl6DCy+Vyp7BQKIRYTP4mAGl8AUQGwWSM9G4HAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.sprintButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAd1JREFUOE+tlEmKAkEQRSMdwIV6MbeKeEKVciXoORwWLkTUhThtxAFnq/lh/zSzyoaW7gCxDCtf/JjStNvtUP7BDoeDUgyB2+1WEomERd/vdzHGSDKZtL7NZvM29Ol0kvV6LePx+Anc7/fS6/WEkDAMFQQgfI/Hw4PDj3dUkTH6PZlMXgoB7HQ6ViEAt9tNUqmUHsBvqHfVRqVCnU0Z6Xa7XQ8ICAAsAxRRDQ7iNwPBP51OfYUA4gXY8Xi0AvL5vD4jKC2bzeojoCgJbDabyeVyedYQxR4MBpoiUq3VavZwoVAQAOr1uudjIDqRsgWORiNZrVYeMJPJ6LvoYKVSkWq1Kq4PgVxoDLhcLq0CNKnVaikAivEpFovSaDRi0Fwup6mjhp5CAlls1JFQKi2VShIEgReIJRkOh6+mIGUA0a10Oi3X61V2u11MZblc1lq+Sz2W8nw+V+kYFTdlqvsJxo7blIMgCBeLhQDI7Yg24KOmuEAO8bsRQRBatMPw25QJjHaZh9lFlIGGceFQY3bfAjGH7nphVNAkd5d1V78vBq4h1y9WQwJ5iBcBVouBeMNQKa83vIPbBpNhmDLus98YU0QGrqGGFtjv97WofzFsyfl8fipsNpseC39+YgDRvgDSDetkcdqdJgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
.perspectiveButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAgxJREFUOE+VlM9L40AUx9+cF8Gbe1D/ld5F6FXv1h8gHirtaltXXGvU1o2g7ura1IJat61haaz4W7AieE6y2P4ZwrLnkfemM0lNl7JDIJnJy+d93zdvhj1d1/jH/kGQgwMHvBhjtIRzBgw45yIEl/Gxdcc46+oOGILwfV//gBdAcawNIrgCLhMg8Oz6Hoz9PLCnmxqJaDiuCvqfB90oAnDuKfKDIrEEsXJZrSuTQFi+LK3puKr0sVgC/v55hQ89vQpkZDW/NcoqPXdMfipQw3GUg5FYEkKhkILU63XIZVeCTgODTaMoEjxeWeRR0/U8Go+nCHRxbsHQcBgQ9H7sZ9K0tJk/oR/DHi6q9Neatq1iJ+cXQdd3wbJKChYOj8BEZJRisOS91SUBKpSF2fc1k0AN21V1T6eWCCRHNDoVULSTXqT4rcOSAN1Wy9h+QB61Gm3mczrg0daXVFsjyqzbRxVR2qX5s6XIUd0aXV4NKNIX5gNdjbDvxyats/PyEceufbFdlTG2kiEQliTv2WS8o6Ld0i/A75l1UuDYB+iRLO3T2lfliQStz812BP2oWAJULR7Qfmw4vwOGJjK6UqTFox27PH9qiT3ZDSS//hfIOK0KsxGEwS92UFHXjQYAPkUF/uw0wayYQiIW3Dp62ue0AdR7MfMdN8aGxrVvhkqOMsVx5gX5lclziiDMO/DeAFwyISmrQZieAAAAAElFTkSuQmCC");
|
||||
}
|
||||
.screenshotButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAcdJREFUOE+llE1LAkEYx585R3Ssg/WVvEbn3g7RoVBRRJFMS0vBsFLXhHzJlyXcjNJKiBA67264+zUiOk88M+64WxAsLgs7M/vMb/7Pf2YeMhr06JJnBayHAgV8CSFsCPsECFBKeQgOY3PyxTil/wIEQfh/0bM8DWBxxAHhXA63FkDg3WAIUrEMZPTUYyIMTRdBbhoZqQ5A6VTRTCBM30rN1HSR+rovJERJ6YTdkt8WQaZUY34KkKFpzIMNXwi+vz4FaG5+AUrphNNhGy4r1flCb32FeWTqOmz6w27sgWIqDtlyg20MeX3osl0zVRW2g1GHGotaKDXEAlsba6yNSi+TMchWWtzsYU9mIEPVYSccYyBrIk7CtqI0BcjrXQUcR1A+HoXcdZODnrstPH6AHu1G4n8U/QfKxcJwVm3z1B7lm4kiDfYOkq5AmUgQzmsyO6fkvlWleGrHqg6+w5Qrj9IhP1w0bwHnE6VRoXgO0KPA0amrXTsO7EOhrXBQt37F7qOhfbiCWMHljsLv5KwgqdPlZiMI6WN1ZkUV+q6ZILdlLhETnpQeZ59dAPGf92zlRjpJ0EReEv6gTF7OpkF286w6xSBkWvB+AJ1TDClYPe7/AAAAAElFTkSuQmCC");
|
||||
}
|
||||
.coordinatesButton {
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAeZJREFUOE+VlF1LAkEUhs9cR3RZF9avqyiILgwtxRBJttJawT7NNaHS0pZwM/oOIoKud1fSvxHR9cQ544y7rmANgvNx5pn3vHtm2PtDk0+EpkA2DhzwxxijKRwzYMA5FyE4jd3uP8ZZ98/AEITr46HJXgDFMR9EcAVcHoDA64cXMI5KwN4fmySi7bgq6D8d3agAcN5TNAw0E4krfjGrqT6BMH2ZWsdxvan7rJiOxOHn+4s2j4yOAYKkVXrxjPxUoLbjBJ0EBqjEC8E+wrAhMGdUhIC3e4s86riDPZqNJnwgBEjYUSYNuVKVPgx7vW3QV+vY9kCP52JJBZIBhWIVwuF5OFxPQa5cE2a/NE0CtW23v0RgIZFSENwsG0J200mKz59cCNBTo4blB+SRp9AWk2kfBDfLlk8lVEHunNZFanfmeVeRoxbDa+sBiL4aC1Q1Sto/M2me3dROOVbtp+2SooiWCUCy8ehACMYfXFwB7mdWtcyxDtCj5Y3tAGRzZcmXcr+RhbolQI3KMd3HttOCeEYHXT8gK9ATLRoeeltKl5a4k/0gufMvEIw1LhvCbAThxKfdGnr6oACPojL/cDpg1k0hERPuPj3+MV0AtS5GnufG2NK4tmeow1CmeM56QV4l8p0iCOs9eL/YmiwplUjFQgAAAABJRU5ErkJgggAA");
|
||||
}
|
||||
`;
|
||||
document.documentElement.appendChild(customStyle);
|
||||
BIN
mobile/favicon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
61
mobile/index.html
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="Play minecraft 1.8 in your browser" />
|
||||
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
|
||||
<title>EaglercraftX 1.8</title>
|
||||
<meta property="og:locale" content="en-US" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="EaglercraftX 1.8" />
|
||||
<meta property="og:description" content="Play minecraft 1.8 in your browser" />
|
||||
<meta property="og:image" content="favicon.png" />
|
||||
<link type="image/png" rel="shortcut icon" href="favicon.png" />
|
||||
<script type="text/javascript" src="classes.js"></script>
|
||||
<script type="text/javascript" src="eaglerpocketmobile.user.js"></script>
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
window.addEventListener("load", () => {
|
||||
if(document.location.href.startsWith("file:")) {
|
||||
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||
}else {
|
||||
|
||||
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||
|
||||
const relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftXOpts = {
|
||||
demoMode: false,
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epk",
|
||||
localesURI: "lang/",
|
||||
worldsDB: "worlds",
|
||||
servers: [
|
||||
{ addr: "wss://zentic.cc", name: "Zentic" }
|
||||
],
|
||||
relays: [
|
||||
{ addr: "wss://relay.deev.is/", comment: "lax1dude relay #1", primary: relayId == 0 },
|
||||
{ addr: "wss://relay.lax1dude.net/", comment: "lax1dude relay #2", primary: relayId == 1 },
|
||||
{ addr: "wss://relay.shhnowisnottheti.me/", comment: "ayunami relay #1", primary: relayId == 2 },
|
||||
{ addr: "wss://eaglerrelay.glitch.me", comment: "hellscaped public relay #1", primary: relayId == 3 }
|
||||
]
|
||||
};
|
||||
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
var q = window.location.search;
|
||||
if(typeof q === "string" && q.startsWith("?")) {
|
||||
q = new URLSearchParams(q);
|
||||
var s = q.get("server");
|
||||
if(s) window.eaglercraftXOpts.joinServer = s;
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100vw;height:100vh;overflow:hidden;" id="game_frame">
|
||||
</body>
|
||||
</html>
|
||||