get back to work
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "HTML-Games-V2"]
|
||||
path = HTML-Games-V2
|
||||
url = https://github.com/tw31122007/HTML-Games-V2/
|
1
HTML-Games-V2
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit ea8f19ccbdb51f60f2279b10e615e648510b768e
|
58
gameloader.js
Normal file
@ -0,0 +1,58 @@
|
||||
fetch("/html5v2.txt")
|
||||
.then((response) => response.text())
|
||||
.then((text) => {
|
||||
const games = text
|
||||
.trim()
|
||||
.split("\n")
|
||||
.map((game) => game.trim());
|
||||
const section = document.getElementById("games-section");
|
||||
|
||||
games.forEach((gamePath) => {
|
||||
const gameName = gamePath
|
||||
.replace(/^\.\/|\.html?$/gi, "")
|
||||
.replace(/-/g, " ")
|
||||
.replace(/\b\w/g, (l) => l.toUpperCase());
|
||||
|
||||
const widget = document.createElement("div");
|
||||
widget.className = "widget animate";
|
||||
widget.innerHTML = `
|
||||
<h3>${gameName}</h3>
|
||||
<br />
|
||||
<button class="play-button" onclick="window.open('/HTML-Games-V2/${gamePath}', '_blank')">Play</button>
|
||||
`.trim();
|
||||
|
||||
section.appendChild(widget);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error loading games:", error);
|
||||
});
|
||||
fetch("/webbite-games.txt")
|
||||
.then((response) => response.text())
|
||||
.then((text) => {
|
||||
const games = text
|
||||
.trim()
|
||||
.split("\n")
|
||||
.map((game) => game.trim());
|
||||
const section = document.getElementById("games-section");
|
||||
|
||||
games.forEach((gamePath) => {
|
||||
const gameName = gamePath
|
||||
.replace(/^\.\/|\.html?$/gi, "")
|
||||
.replace(/-/g, " ")
|
||||
.replace(/\b\w/g, (l) => l.toUpperCase());
|
||||
|
||||
const widget = document.createElement("div");
|
||||
widget.className = "widget animate";
|
||||
widget.innerHTML = `
|
||||
<h3>${gameName}</h3>
|
||||
<br />
|
||||
<button class="play-button" onclick="window.open('/webbite-games/${gamePath}', '_blank')">Play</button>
|
||||
`.trim();
|
||||
|
||||
section.appendChild(widget);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error loading games:", error);
|
||||
});
|
@ -3,8 +3,9 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Infinite Campus Dark</title>
|
||||
<title>InfiniteCamp</title>
|
||||
<link rel="stylesheet" href="/styles.css" />
|
||||
<script src="/gameloader.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<header class="topbar">
|
||||
@ -18,14 +19,22 @@
|
||||
<div class="container">
|
||||
<aside class="sidebar">
|
||||
<ul>
|
||||
<li onclick="location.href='/'">Home</li>
|
||||
<li class="active" onclick="location.href='/games'">Games</li>
|
||||
<li onclick="location.href='/settings'">Settings</li>
|
||||
<li onclick="location.href='/'"><i class="fas fa-home"></i> Home</li>
|
||||
<li onclick="location.href='/null'">
|
||||
<i class="fas fa-globe"></i> Minecraft
|
||||
</li>
|
||||
<li class="active" onclick="location.href='/games'">
|
||||
<i class="fas fa-gamepad"></i> Games
|
||||
</li>
|
||||
<li onclick="location.href='/settings'">
|
||||
<i class="fas fa-cogs"></i> Settings
|
||||
</li>
|
||||
</ul>
|
||||
</aside>
|
||||
|
||||
<main class="main">
|
||||
<h1>Games</h1>
|
||||
<section class="side-widgets" id="games-section"></section>
|
||||
</main>
|
||||
</div>
|
||||
</body>
|
||||
|
416
html5v2.txt
Normal file
@ -0,0 +1,416 @@
|
||||
./vex6
|
||||
./sg
|
||||
./ns-shaft
|
||||
./spacegarden
|
||||
./just-one-boss
|
||||
./game-inside
|
||||
./align-4
|
||||
./Squid Gun Fest
|
||||
./iscribble-io
|
||||
./2048-multitask
|
||||
./pacman-fps
|
||||
./fake-virus
|
||||
./unfold-2
|
||||
./om-bounce
|
||||
./minecraft-classic
|
||||
./bad-ice-cream-2
|
||||
./jetpack
|
||||
./miniputt
|
||||
./hexempire
|
||||
./motox3m2
|
||||
./frying-nemo
|
||||
./cubefield
|
||||
./fancypantsadventures
|
||||
./papas-pizzeria
|
||||
./canyondefense
|
||||
./snake
|
||||
./csgo-clicker
|
||||
./basketball-stars
|
||||
./endlesswar3
|
||||
./sleepingbeauty
|
||||
./line-rider
|
||||
./ctr-tr
|
||||
./asciispace
|
||||
./dungeon-craft
|
||||
./subway-surfers
|
||||
./kart-fight-io
|
||||
./super-puffer-fish-3d
|
||||
./flashtetris
|
||||
./dadish
|
||||
./vex3
|
||||
./cookieclicker
|
||||
./tank-trouble-2
|
||||
./stickman-dismount
|
||||
./boxel-rebound
|
||||
./go-ball
|
||||
./osu
|
||||
./stealingthediamond
|
||||
./basketball-legends-2020
|
||||
./drive-mad
|
||||
./duck-life-treasurehunt
|
||||
./deal-or-no-deal
|
||||
./shadow-world-adventure
|
||||
./kitchen-gun-game
|
||||
./google-solitaire
|
||||
./death-soul
|
||||
./waterworks
|
||||
./tiny-fishing
|
||||
./motox3m-winter
|
||||
./stickman
|
||||
./doge2048
|
||||
./golf
|
||||
./bad-ice-cream
|
||||
./chromedino
|
||||
./madalin-stunt-cars-3
|
||||
./run-3
|
||||
./cannon-basketball-4
|
||||
./minecraftbeta
|
||||
./justfall
|
||||
./fireboywatergirlforesttemple
|
||||
./sm63
|
||||
./impossiblequiz
|
||||
./age-of-war
|
||||
./dadish3
|
||||
./clean-up-io
|
||||
./core-ball
|
||||
./synesthesia
|
||||
./stickman-boost
|
||||
./x-trial-racing
|
||||
./my-friend-pedro
|
||||
./tosstheturtle
|
||||
./missiles
|
||||
./motox3m-spooky
|
||||
./up-left-out
|
||||
./there-is-no-game
|
||||
./solitaire
|
||||
./townscaper
|
||||
./pe-noire
|
||||
./bloxors
|
||||
./ducklife4
|
||||
./geodash
|
||||
./city-blocks-2
|
||||
./backflip-dive-3d
|
||||
./rooftop-snipers
|
||||
./100ng
|
||||
./gunspin
|
||||
./cell-machine
|
||||
./bad-ice-cream-3
|
||||
./pandemic2
|
||||
./supermarioconstruct
|
||||
./grow-in-the-hole
|
||||
./connect3
|
||||
./ssf
|
||||
./tactical-weapon-pack-2
|
||||
./tanuki-sunset
|
||||
./webretro
|
||||
./mc1.5.2
|
||||
./super-mario-maker-online
|
||||
./wordle
|
||||
./evilglitch
|
||||
./factoryballs
|
||||
./skyblock
|
||||
./spelunky
|
||||
./the-final-earth-2
|
||||
./stickwar
|
||||
./cuttherope2
|
||||
./bloonstd2
|
||||
./geometry_jump_sketchy
|
||||
./ctr
|
||||
./doge-miner-2
|
||||
./papa-louie
|
||||
./one-screen-run-2
|
||||
./klocki
|
||||
./tail-of-the-dragon
|
||||
./aspiring-artist
|
||||
./flappy-defense
|
||||
./stickclimb
|
||||
./arcade-wizard
|
||||
./dadishtwo
|
||||
./draw-the-hill
|
||||
./breakout
|
||||
./grindcraft
|
||||
./sand-game
|
||||
./green
|
||||
./exo
|
||||
./theheist
|
||||
./firewater
|
||||
./slither
|
||||
./run3
|
||||
./worlds-hardest-game
|
||||
./9007199254740992
|
||||
./vex5
|
||||
./scrambled-eggs
|
||||
./cluster-rush
|
||||
./krunker
|
||||
./the-little-giant
|
||||
./2020-game
|
||||
./flappybird
|
||||
./hba
|
||||
./learntofly
|
||||
./ducklife2
|
||||
./FullScreenMario
|
||||
./learntofly2
|
||||
./froggys-battle
|
||||
./adrenalinechallenge
|
||||
./1v1space
|
||||
./flappy-2048
|
||||
./superhot
|
||||
./blackholesquare
|
||||
./crossyroad
|
||||
./hackertype
|
||||
./shift-flash-2
|
||||
./google-snake
|
||||
./house-of-hazards
|
||||
./binding-of-isaac
|
||||
./ninjavsevilcorp
|
||||
./precision-client
|
||||
./btd4
|
||||
./mario
|
||||
./getaway-shootout
|
||||
./chrome-dino
|
||||
./gun-mayhem-2
|
||||
./tunnelz
|
||||
./achievementunlocked
|
||||
./finns-fantastic-food-machine
|
||||
./btts
|
||||
./ducklife
|
||||
./edgenotfound
|
||||
./pacman
|
||||
./emulator-js
|
||||
./basketball-io
|
||||
./tunnel-rush
|
||||
./idle-shark
|
||||
./interactivebuddy
|
||||
./trimps
|
||||
./gun-mayhem-redux
|
||||
./breakingthebank
|
||||
./short-life-2
|
||||
./bounceback
|
||||
./motox3mwinter
|
||||
./portalflash
|
||||
./scrapmetal
|
||||
./captaincallisto
|
||||
./baldis-basics
|
||||
./papas-burgeria
|
||||
./tetris
|
||||
./getting-over-it
|
||||
./bigredbutton
|
||||
./helicopter
|
||||
./bloonstd
|
||||
./doge-mining-simulator
|
||||
./creativekillchamber
|
||||
./vex7
|
||||
./pixel-cave
|
||||
./papas-wingeria
|
||||
./rocking-sky-trip
|
||||
./mcbeta0.30
|
||||
./the-impossible-quiz
|
||||
./blacholesquare
|
||||
./papas-hot-doggeria
|
||||
./elastic-face
|
||||
./topple-adventure
|
||||
./10-minutes-till-dawn
|
||||
./q1k3
|
||||
./puzzle-ball
|
||||
./mini-stilts
|
||||
./flood-runner-2
|
||||
./fireice
|
||||
./breaklock
|
||||
./blackknight
|
||||
./stickman-epic-battle
|
||||
./dodge
|
||||
./avalanche
|
||||
./jelly-truck
|
||||
./the-impossible-quiz-2
|
||||
./soundboard
|
||||
./packabunchas
|
||||
./deathrun
|
||||
./defend-the-tank
|
||||
./geodash-2
|
||||
./gimme-the-airpod
|
||||
./wolf3d
|
||||
./flippy-fish
|
||||
./backcountry
|
||||
./smashkarts
|
||||
./elasticman
|
||||
./stick-archers-battle
|
||||
./friendlyfire
|
||||
./among-us
|
||||
./happy-wheels
|
||||
./alien-invaders-io
|
||||
./veloce
|
||||
./fridaynightfunkin
|
||||
./kittencannon
|
||||
./fruitninja
|
||||
./towermaster
|
||||
./retrobowl
|
||||
./roadblocks
|
||||
./asteroids
|
||||
./thisistheonlylevel
|
||||
./ducklife3
|
||||
./polybranch
|
||||
./matrixrampage
|
||||
./spacehuggers
|
||||
./slice-of-sasha
|
||||
./motox3m
|
||||
./worlds-hardest-game-2
|
||||
./radiusraid
|
||||
./OfflineParadise
|
||||
./protektor
|
||||
./zombs-royale
|
||||
./tough-growth
|
||||
./tam-indian-truck-simulator-3d
|
||||
./sort-the-court
|
||||
./path-finder
|
||||
./glass-city
|
||||
./chill-radio
|
||||
./time-shooter-3
|
||||
./edge-surf
|
||||
./push-the-square
|
||||
./gravity-soccer
|
||||
./cuttherope
|
||||
./slope-ball
|
||||
./chromaincident
|
||||
./death-run-3d
|
||||
./vex4
|
||||
./papas-freezeria
|
||||
./Stickman-Survival
|
||||
./crowd city 2
|
||||
./wipo
|
||||
./doctor-acorn2
|
||||
./yoshifabrication
|
||||
./particleclicker
|
||||
./color-switch-2-challenges
|
||||
./angry-birds
|
||||
./stack
|
||||
./space-company
|
||||
./mcbeta1.3
|
||||
./doublewires
|
||||
./meat-boy
|
||||
./jimothy-piggerton
|
||||
./minesweeper
|
||||
./2048
|
||||
./motox3m-pool
|
||||
./racer
|
||||
./dont-drop-the-white-ball-2
|
||||
./craftmine
|
||||
./gun-mayhem
|
||||
./anti-terrorist-rush
|
||||
./tv-static
|
||||
./blocky-snakes
|
||||
./superhero-io
|
||||
./zig-zag
|
||||
./tiny-islands
|
||||
./one-screen-run
|
||||
./pvz-2
|
||||
./stickman-golf
|
||||
./championarcher
|
||||
./sonic-the-hedgehog
|
||||
./awesome-tanks-2
|
||||
./dino
|
||||
./sandboxels
|
||||
./evil-glitch
|
||||
./particle-clicker
|
||||
./stack-bump-3d
|
||||
./douchebag-workout-2
|
||||
./helios
|
||||
./shift-flash
|
||||
./happy-hop
|
||||
./papaspizzaria
|
||||
./sm64
|
||||
./linquest
|
||||
./senya-and-oscar-2
|
||||
./tacticalassasin2
|
||||
./underrun
|
||||
./spacecompany
|
||||
./hextris
|
||||
./8ball-billards-classic
|
||||
./DogeMiner
|
||||
./cupcake2048
|
||||
./meme2048
|
||||
./pushback
|
||||
./ducklife1
|
||||
./station-141
|
||||
./zombocalypse
|
||||
./retrohaunt
|
||||
./battleforgondor
|
||||
./rolly-vortex
|
||||
./moto-x3m-2
|
||||
./astray
|
||||
./themazeofspacegoblins
|
||||
./1v1lol
|
||||
./rise-of-neon-square
|
||||
./snowbattle
|
||||
./idle-breakout
|
||||
./minecraft
|
||||
./temple-run-2
|
||||
./1
|
||||
./basket-bros-io
|
||||
./moto-x3m-pool-party
|
||||
./rolling-forests
|
||||
./dragon-vs-bricks
|
||||
./makeitmeme
|
||||
./slope
|
||||
./flappy-bird
|
||||
./greybox
|
||||
./chess
|
||||
./smokingbarrels
|
||||
./ctr-holiday
|
||||
./the-final-earth
|
||||
./swerve
|
||||
./short-ride
|
||||
./stormthehouse2
|
||||
./thebattle
|
||||
./icys-purple-head
|
||||
./duke-dashington-remastered
|
||||
./geometrydash
|
||||
./konnekt
|
||||
./you-are-bezos
|
||||
./paperio2
|
||||
./tube-jumpers
|
||||
./burning-man-2
|
||||
./papasburgeria
|
||||
./goodnight
|
||||
./retro-bowl
|
||||
./generic-fishing-game
|
||||
./n-gon
|
||||
./fbwg
|
||||
./pizzeria-simulator
|
||||
./pikwip
|
||||
./popcat-classic
|
||||
./factory-balls-forever
|
||||
./cookie-clicker
|
||||
./subway-surfers-bali
|
||||
./georgeandtheprinter
|
||||
./gopher
|
||||
./ovo
|
||||
./winter-falling-price
|
||||
./xx142-b2exe
|
||||
./dante
|
||||
./ninja
|
||||
./HexGL
|
||||
./bitlife
|
||||
./boxhead2play
|
||||
./evolution
|
||||
./shuttledeck
|
||||
./papas-sushiria
|
||||
./madalin-stunt-cars-2
|
||||
./shards
|
||||
./slope2
|
||||
./circlo
|
||||
./escapingtheprison
|
||||
./brave-explorers
|
||||
./alienhominid
|
||||
./twitch-tetris
|
||||
./doodle-jump
|
||||
./factoryballsforever
|
||||
./backrooms
|
||||
./papery-planes
|
||||
./soldier-legend
|
||||
./adarkroom
|
||||
./papas-pancakeria
|
||||
./push-your-luck
|
||||
./cars-simulator
|
||||
./slither snake
|
||||
./tiny-fragments
|
||||
./marvinspectrum
|
36
index.html
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Infinite Campus Dark</title>
|
||||
<title>InfiniteCamp</title>
|
||||
<link rel="stylesheet" href="styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
@ -18,9 +18,18 @@
|
||||
<div class="container">
|
||||
<aside class="sidebar">
|
||||
<ul>
|
||||
<li onclick="location.href='/'" class="active">Home</li>
|
||||
<li onclick="location.href='/games'">Games</li>
|
||||
<li onclick="location.href='/settings'">Settings</li>
|
||||
<li class="active" onclick="location.href='/'">
|
||||
<i class="fas fa-home"></i> Home
|
||||
</li>
|
||||
<li onclick="location.href='/null'">
|
||||
<i class="fas fa-globe"></i> Null's Network
|
||||
</li>
|
||||
<li onclick="location.href='/games'">
|
||||
<i class="fas fa-gamepad"></i> Games
|
||||
</li>
|
||||
<li onclick="location.href='/settings'">
|
||||
<i class="fas fa-cogs"></i> Settings
|
||||
</li>
|
||||
</ul>
|
||||
</aside>
|
||||
|
||||
@ -29,22 +38,16 @@
|
||||
|
||||
<section class="student-cards">
|
||||
<div class="student-card animate">
|
||||
<img src="https://via.placeholder.com/80" alt="Elizabeth" />
|
||||
<div class="info">
|
||||
<h2>Elizabeth Shreya Mathew</h2>
|
||||
<p><strong>1</strong> Assignment Due Today</p>
|
||||
<p><strong>15</strong> Recent Assignment Scores</p>
|
||||
<p><strong>11</strong> Recent Grade Updates</p>
|
||||
<h2>Welcome to Webbite3</h2>
|
||||
<p><strong>50+</strong> Games</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="student-card animate delay">
|
||||
<div class="info">
|
||||
<h2>Planned Updates</h2>
|
||||
<p><strong>3.1</strong> Schoobydoob</p>
|
||||
<p><strong>3.2</strong> TBD</p>
|
||||
<p><strong>3.3</strong> TBD</p>
|
||||
<p><strong>3.4</strong> TBD</p>
|
||||
<h2>Changelog</h2>
|
||||
<p><strong>3.0</strong> Released Webbite3</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -64,6 +67,11 @@
|
||||
<h3>Quick Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://discord.gg/RJdX6WzFtP">Discord</a></li>
|
||||
<li>
|
||||
<a href="https://github.com/PlanckNetwork/"
|
||||
>Github Organization</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
80
null/index.html
Normal file
@ -0,0 +1,80 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>VSreen</title>
|
||||
<link rel="stylesheet" href="styles.css?v=6" />
|
||||
<link rel="stylesheet" href="/styles.css" />
|
||||
|
||||
<script src="script.js?v=6"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>InfiniteCamp</title>
|
||||
<link rel="stylesheet" href="/styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header class="topbar">
|
||||
<div class="menu-icon">☰</div>
|
||||
<div class="logo">Infinite Campus</div>
|
||||
<div class="icons">
|
||||
<div class="profile">👤</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<aside class="sidebar">
|
||||
<ul>
|
||||
<li onclick="location.href='/'">
|
||||
<i class="fas fa-home"></i> Home
|
||||
</li>
|
||||
<li class="active" onclick="location.href='/null'">
|
||||
<i class="fas fa-globe"></i> Null's Network
|
||||
</li>
|
||||
<li onclick="location.href='/games'">
|
||||
<i class="fas fa-gamepad"></i> Games
|
||||
</li>
|
||||
<li onclick="location.href='/settings'">
|
||||
<i class="fas fa-cogs"></i> Settings
|
||||
</li>
|
||||
</ul>
|
||||
</aside>
|
||||
|
||||
<main class="main">
|
||||
<div class="background" id="background"></div>
|
||||
|
||||
<div class="launcher">
|
||||
<div class="content">
|
||||
<h1 id="home-page-text">Welcome to Minecraft</h1>
|
||||
<div class="dropdown">
|
||||
<label for="version-home">Select Version:</label>
|
||||
<select id="version-home">
|
||||
<option value="1.12WASM">EaglercraftX 1.12 WASM</option>
|
||||
<option value="1.8.8">EaglercraftX 1.8</option>
|
||||
<option value="wasm">EaglercraftX 1.8 WASM</option>
|
||||
|
||||
<option value="1.12JS">EaglercraftX 1.12 JS (SLOW)</option>
|
||||
<option value="1.5.2">Eaglercraft 1.5.2</option>
|
||||
<option value="b1.7.3">Beta 1.7.3</option>
|
||||
<option value="b1.3">Beta 1.3</option>
|
||||
<option value="0.3">0.3 Survival Test</option>
|
||||
<option value="infdev">Infdev</option>
|
||||
<option value="indev">Indev</option>
|
||||
<option value="classic">Classic</option>
|
||||
</select>
|
||||
</div>
|
||||
<button id="play-button" onclick="launchGame()">Play</button>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</body>
|
||||
</html>
|
BIN
null/resources/audiotrack/beginning.mp3
Normal file
BIN
null/resources/audiotrack/memories.mp3
Normal file
BIN
null/resources/audiotrack/minecraft.mp3
Normal file
BIN
null/resources/audiotrack/otherside.mp3
Normal file
BIN
null/resources/audiotrack/oxygen.mp3
Normal file
BIN
null/resources/audiotrack/technoblade.mp3
Normal file
BIN
null/resources/backgrounds/cherryblossom.gif
Normal file
After Width: | Height: | Size: 555 KiB |
BIN
null/resources/backgrounds/cherryblossomtwo.gif
Normal file
After Width: | Height: | Size: 265 KiB |
BIN
null/resources/backgrounds/city.gif
Normal file
After Width: | Height: | Size: 228 KiB |
BIN
null/resources/backgrounds/colosseum.gif
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
null/resources/backgrounds/cyberpunk.gif
Normal file
After Width: | Height: | Size: 3.9 MiB |
BIN
null/resources/backgrounds/end.gif
Normal file
After Width: | Height: | Size: 12 MiB |
BIN
null/resources/backgrounds/nether.gif
Normal file
After Width: | Height: | Size: 12 MiB |
BIN
null/resources/backgrounds/office.gif
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
null/resources/backgrounds/overworld.gif
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
null/resources/backgrounds/oxygen.gif
Normal file
After Width: | Height: | Size: 2.7 MiB |
BIN
null/resources/backgrounds/pigstep.gif
Normal file
After Width: | Height: | Size: 512 KiB |
BIN
null/resources/backgrounds/redmoon.gif
Normal file
After Width: | Height: | Size: 4.0 MiB |
BIN
null/resources/backgrounds/retro.gif
Normal file
After Width: | Height: | Size: 2.7 MiB |
BIN
null/resources/backgrounds/room.gif
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
null/resources/backgrounds/snowstorm.gif
Normal file
After Width: | Height: | Size: 336 KiB |
BIN
null/resources/backgrounds/starfall.gif
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
null/resources/backgrounds/subwoofer.gif
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
null/resources/backgrounds/sweden.gif
Normal file
After Width: | Height: | Size: 12 MiB |
BIN
null/resources/shapez/shapezD.png
Normal file
After Width: | Height: | Size: 130 KiB |
BIN
null/resources/shapez/shapezM.png
Normal file
After Width: | Height: | Size: 149 KiB |
76
null/script.js
Normal file
@ -0,0 +1,76 @@
|
||||
const themes = {
|
||||
starfall: "resources/backgrounds/starfall.gif",
|
||||
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const selectedTheme = getCookie("theme") || "starfall";
|
||||
const baseColor = getCookie("base-color") || "#6e6e6e";
|
||||
const darkerColor = getCookie("darker-color") || "#5c5c5c";
|
||||
const lighterColor = getCookie("lighter-color") || "#7f7f7f";
|
||||
const highlightColor = getCookie("highlight-color") || "#a3a3a3";
|
||||
const shadowColor = getCookie("shadow-color") || "#4b4b4b";
|
||||
const textColor = getCookie("text-color") || "#ffffff";
|
||||
const backgroundColor = getCookie("background-color") || "#1e1e1e";
|
||||
|
||||
document.querySelector(
|
||||
".background"
|
||||
).style.backgroundImage = `url(${themes[selectedTheme]})`;
|
||||
document.getElementById("theme-select").value = selectedTheme;
|
||||
|
||||
updateColor("--base-color", baseColor);
|
||||
updateColor("--darker-color", darkerColor);
|
||||
updateColor("--lighter-color", lighterColor);
|
||||
updateColor("--highlight-color", highlightColor);
|
||||
updateColor("--shadow-color", shadowColor);
|
||||
updateColor("--text-color", textColor);
|
||||
updateColor("--background-color", backgroundColor);
|
||||
|
||||
document.getElementById("base-color-picker").value = baseColor;
|
||||
document.getElementById("darker-color-picker").value = darkerColor;
|
||||
document.getElementById("lighter-color-picker").value = lighterColor;
|
||||
document.getElementById("highlight-color-picker").value = highlightColor;
|
||||
document.getElementById("shadow-color-picker").value = shadowColor;
|
||||
document.getElementById("text-color-picker").value = textColor;
|
||||
document.getElementById("background-color-picker").value = backgroundColor;
|
||||
});
|
||||
|
||||
function changeTheme() {
|
||||
const selectedTheme = document.getElementById("theme-select").value;
|
||||
document.querySelector(
|
||||
".background"
|
||||
).style.backgroundImage = `url(${themes[selectedTheme]})`;
|
||||
setCookie("theme", selectedTheme, 365);
|
||||
}
|
||||
|
||||
function launchGame() {
|
||||
const version = document.getElementById("version-home").value;
|
||||
window.location.href = `versions/${version}`;
|
||||
}
|
||||
|
||||
function setCookie(name, value, days) {
|
||||
const d = new Date();
|
||||
d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);
|
||||
const expires = "expires=" + d.toUTCString();
|
||||
document.cookie = name + "=" + value + ";" + expires + ";path=/";
|
||||
}
|
||||
|
||||
function getCookie(name) {
|
||||
const cname = name + "=";
|
||||
const decodedCookie = decodeURIComponent(document.cookie);
|
||||
const ca = decodedCookie.split(";");
|
||||
for (let i = 0; i < ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == " ") {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(cname) == 0) {
|
||||
return c.substring(cname.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function updateColor(variable, color) {
|
||||
document.documentElement.style.setProperty(variable, color);
|
||||
}
|
63
null/styles.css
Normal file
@ -0,0 +1,63 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #1e1e2f;
|
||||
color: #ffffff;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.background {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('path/to/your/background.gif') no-repeat center center fixed;
|
||||
background-size: cover;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.launcher {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
background-color: rgba(43, 43, 79, 0.8);
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
#home-page-text {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#version-home {
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
background-color: #1e1e2f;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#play-button {
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: #4b4b7f;
|
||||
color: #ffffff;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
|
||||
#play-button:hover {
|
||||
background-color: #6b6b9f;
|
||||
}
|
3516
null/versions/0.3/index.html
Normal file
BIN
null/versions/1.12JS/assets.epk
Normal file
48787
null/versions/1.12JS/classes.js
Normal file
1
null/versions/1.12JS/classes.js.map
Normal file
BIN
null/versions/1.12JS/favicon.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
41
null/versions/1.12JS/index.html
Normal file
@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="und" style="width:100%;height:100%;background-color:black;">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="description" content="Eaglercraft 1.12 test directory HTML page">
|
||||
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.12, 1.12.2">
|
||||
<title>Eaglercraft 1.12.2</title>
|
||||
<meta property="og:locale" content="en-US">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Eaglercraft 1.12.2">
|
||||
<meta property="og:description" content="test directory HTML page">
|
||||
<link type="image/png" rel="shortcut icon" href="favicon.png">
|
||||
<script type="text/javascript" src="classes.js"></script>
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
window.addEventListener("load", function() {
|
||||
if(window.location.href.indexOf("file:") === 0) {
|
||||
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||
}else {
|
||||
var relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftXOpts = {
|
||||
demoMode: false,
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epk",
|
||||
localesURI: "lang/",
|
||||
worldsDB: "worlds",
|
||||
servers: [
|
||||
{ addr: "wss://play.zelz.net", name: "ZelzNet" },
|
||||
{ addr: "wss://mc.arch.lol", name: "ArchMC" },
|
||||
{ addr: "wss://beta.arch.lol", name: "§r §r §r §r §4§lArchMC Beta" }
|
||||
]
|
||||
};
|
||||
main();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame">
|
||||
</body>
|
||||
</html>
|
BIN
null/versions/1.12WASM/assets.epw
Normal file
13
null/versions/1.12WASM/bootstrap.js
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
(function(){'use strict';function g(a){console.log("LoaderBootstrap: [INFO] "+a)}function n(a){console.log("LoaderBootstrap: [WARN] "+a)}function q(a){console.error("LoaderBootstrap: [ERROR] "+a)}var r=null;
|
||||
function u(){const a=[];for(var c=0;64>c;++c)a["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(c)]=c;a[45]=62;a[95]=63;return function(b,d){var e=b.length-d;if(0<e%4)throw Error("Invalid string. Length must be a multiple of 4");var f=b.indexOf("=",d);f=-1===f?e:f-d;e=[f,f===e?0:4-f%4];var l=e[0];e=e[1];f=new Uint8Array(3*(l+e)/4-e);var h=0;l=(0<e?l-4:l)+d;var k;for(k=d;k<l;k+=4)d=a[b.charCodeAt(k)]<<18|a[b.charCodeAt(k+1)]<<12|a[b.charCodeAt(k+2)]<<6|a[b.charCodeAt(k+
|
||||
3)],f[h++]=d>>16&255,f[h++]=d>>8&255,f[h++]=d&255;2===e?(d=a[b.charCodeAt(k)]<<2|a[b.charCodeAt(k+1)]>>4,f[h++]=d&255):1===e&&(d=a[b.charCodeAt(k)]<<10|a[b.charCodeAt(k+1)]<<4|a[b.charCodeAt(k+2)]>>2,f[h++]=d>>8&255,f[h++]=d&255);return f.buffer}}function v(){return new Promise(function(a){setTimeout(a,20)})}
|
||||
function w(a){return new Promise(function(c){const b=new Image;b.addEventListener("load",c);b.addEventListener("error",function(){n("Failed to preload image: "+a);c()});b.src=a;setTimeout(c,50)})}function x(a){return new Promise(function(c){fetch(a,{cache:"force-cache"}).then(function(b){return b.arrayBuffer()}).then(c).catch(function(b){q("Failed to fetch URL! "+b);c(null)})})}
|
||||
function y(a){return a.startsWith("data:application/octet-stream;base64,")?new Promise(function(c){x(a).then(function(b){if(b)c(b);else{n("Failed to decode base64 via fetch, doing it the slow way instead...");try{r||=u();var d=r(a,37);c(d)}catch(e){q("Failed to decode base64! "+e),c(null)}}})}):x(a)}
|
||||
function z(a,c){const b=document.createElement("h2");b.style.color="#AA0000";b.style.padding="25px";b.style.fontFamily="sans-serif";b.style.marginBlock="0px";b.appendChild(document.createTextNode(c));a.appendChild(b);c=document.createElement("h4");c.style.color="#AA0000";c.style.padding="25px";c.style.fontFamily="sans-serif";c.style.marginBlock="0px";c.appendChild(document.createTextNode("Try again later"));a.style.backgroundColor="white";a.appendChild(c)}
|
||||
window.main=async function(){if("undefined"===typeof window.eaglercraftXOpts)q("window.eaglercraftXOpts is not defined!"),alert("window.eaglercraftXOpts is not defined!");else{var a=window.eaglercraftXOpts.container;if("string"!==typeof a)q("window.eaglercraftXOpts.container is not a string!"),alert("window.eaglercraftXOpts.container is not a string!");else{var c=window.eaglercraftXOpts.assetsURI;if("string"!==typeof c)if("object"===typeof c&&"object"===typeof c[0]&&"string"===typeof c[0].url)c=c[0].url;
|
||||
else{q("window.eaglercraftXOpts.assetsURI is not a string!");alert("window.eaglercraftXOpts.assetsURI is not a string!");return}c.startsWith("data:")&&delete window.eaglercraftXOpts.assetsURI;var b=document.getElementById(a);if(b){for(;a=b.lastChild;)b.removeChild(a);a=document.createElement("div");a.style.width="100%";a.style.height="100%";a.style.setProperty("image-rendering","pixelated");a.style.background='center / contain no-repeat url("data:image/png;base64,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") white';
|
||||
b.appendChild(a);await v();c.startsWith("data:")?(g('Downloading EPW file "<data: '+c.length+' chars>"...'),c=await y(c)):(g('Downloading EPW file "'+c+'"...'),c=await x(c));var d=!1;c?384>c.byteLength&&(q("The EPW file is too short"),d=!0):d=!0;if(d)b.removeChild(a),z(b,"Failed to download EPW file!"),q("Failed to download EPW file!");else{var e=new DataView(c);if(608649541!==e.getUint32(0,!0)||1297301847!==e.getUint32(4,!0))q("The file is not an EPW file"),d=!0;var f=c.byteLength;e.getUint32(8,
|
||||
!0)!==f&&(q("The EPW file is the wrong length"),d=!0);if(d)b.removeChild(a),z(b,"EPW file is invalid!"),q("EPW file is invalid!");else{var l=new TextDecoder("utf-8"),h=e.getUint32(100,!0),k=e.getUint32(104,!0),m=e.getUint32(108,!0),p=e.getUint32(112,!0);if(0>h||h+k>f||0>m||m+p>f)q("The EPW file contains an invalid offset (component: splash)"),d=!0;if(d)b.removeChild(a),z(b,"EPW file is invalid!"),q("EPW file is invalid!");else{h=new Uint8Array(c,h,k);m=new Uint8Array(c,m,p);l=URL.createObjectURL(new Blob([h],
|
||||
{type:l.decode(m)}));await w(l);g("Loaded splash img: "+l);a.style.background='center / contain no-repeat url("'+l+'"), 0px 0px / 1000000% 1000000% no-repeat url("'+l+'") white';await v();p=e.getUint32(164,!0);h=e.getUint32(168,!0);m=e.getUint32(180,!0);e=e.getUint32(184,!0);if(0>p||p+h>f||0>m||m+e>f)q("The EPW file contains an invalid offset (component: loader)"),d=!0;if(d)b.removeChild(a),z(b,"EPW file is invalid!"),q("EPW file is invalid!");else{a=new Uint8Array(c,p,h);a=URL.createObjectURL(new Blob([a],
|
||||
{type:"text/javascript;charset=utf-8"}));g("Loaded loader.js: "+l);d=new Uint8Array(c,m,e);d=URL.createObjectURL(new Blob([d],{type:"application/wasm"}));g("Loaded loader.wasm: "+d);f={};for(const [t,A]of Object.entries(window.eaglercraftXOpts))"container"!==t&&"assetsURI"!==t&&(f[t]=A);window.__eaglercraftXLoaderContextPre={rootElement:b,eaglercraftXOpts:f,theEPWFileBuffer:c,loaderWASMURL:d,splashURL:l};g("Appending loader.js to document...");b=document.createElement("script");b.type="text/javascript";
|
||||
b.src=a;document.head.appendChild(b)}}}}}else b='window.eaglercraftXOpts.container "'+a+'" is not a known element id!',q(b),alert(b)}}};}).call(this);
|
BIN
null/versions/1.12WASM/favicon.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
81
null/versions/1.12WASM/index.html
Normal file
@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html>
|
||||
<html style="width: 100%; height: 100%; background-color: black">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"
|
||||
/>
|
||||
<meta name="description" content="Play minecraft 1.12 in your browser" />
|
||||
<meta name="keywords" content="eaglercraft, minecraft, 1.12, 1.12.2" />
|
||||
<title>EaglercraftX 1.12 WASM-GC</title>
|
||||
<meta property="og:locale" content="en-US" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Eaglercraft 1.12 WASM" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Play minecraft 1.12 in your browser"
|
||||
/>
|
||||
<meta property="og:image" content="favicon.png" />
|
||||
<link type="image/png" rel="shortcut icon" href="favicon.png" />
|
||||
<!-- JSPI Origin Trial for https://eaglersite.speedslicer.dev -->
|
||||
<!-- Google Chrome, expires 7/21/2025 -->
|
||||
<meta
|
||||
http-equiv="origin-trial"
|
||||
content="AsKG/CrBk6n+G+/wxzfJQk/ev9dw9yUnAXe1FQ92NMIgQI1iDXD32m+DLnciELFjM3/9zF64Tbhi1yw+3TMXPwYAAAB+eyJvcmlnaW4iOiJodHRwczovL2luZmludGVjYW1wdXMuaW5mbzo0NDMiLCJmZWF0dXJlIjoiV2ViQXNzZW1ibHlKU1Byb21pc2VJbnRlZ3JhdGlvbiIsImV4cGlyeSI6MTc1MzE0MjQwMCwiaXNTdWJkb21haW4iOnRydWV9"
|
||||
/>
|
||||
<meta
|
||||
http-equiv="origin-trial"
|
||||
content="An4IgurVo91AMlWiUvV7UekygrqVa874PonL4gm+04Y3hx7PViYPZEnzwFtzSB83175FDpJuYkM14cziIJ6PrwIAAAB7eyJvcmlnaW4iOiJodHRwczovL3NwZWVkc2xpY2VyLmRldjo0NDMiLCJmZWF0dXJlIjoiV2ViQXNzZW1ibHlKU1Byb21pc2VJbnRlZ3JhdGlvbiIsImV4cGlyeSI6MTc1MzE0MjQwMCwiaXNTdWJkb21haW4iOnRydWV9"
|
||||
/>
|
||||
<script type="text/javascript" src="bootstrap.js"></script>
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
window.addEventListener("load", function () {
|
||||
if (window.location.href.indexOf("file:") === 0) {
|
||||
alert(
|
||||
"HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP"
|
||||
);
|
||||
} else {
|
||||
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||
|
||||
var relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftXOpts = {
|
||||
demoMode: false,
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epw",
|
||||
worldsDB: "worlds",
|
||||
servers: [
|
||||
{ addr: "wss://eagler.speedslicer.dev", name: "Null's World" },
|
||||
],
|
||||
};
|
||||
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
var q = window.location.search;
|
||||
if (
|
||||
typeof q === "string" &&
|
||||
q[0] === "?" &&
|
||||
typeof window.URLSearchParams !== "undefined"
|
||||
) {
|
||||
q = new window.URLSearchParams(q);
|
||||
var s = q.get("server");
|
||||
if (s) window.eaglercraftXOpts.joinServer = s;
|
||||
}
|
||||
|
||||
main();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body
|
||||
style="
|
||||
margin: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background-color: black;
|
||||
"
|
||||
id="game_frame"
|
||||
></body>
|
||||
</html>
|
BIN
null/versions/1.5.2/assets.epk
Normal file
19751
null/versions/1.5.2/classes.js
Normal file
1
null/versions/1.5.2/classes.js.map
Normal file
16295
null/versions/1.5.2/classes_server.js
Normal file
1
null/versions/1.5.2/classes_server.js.map
Normal file
29
null/versions/1.5.2/eagswebrtc.js
Normal file
@ -0,0 +1,29 @@
|
||||
window.initializeVoiceClient=()=>{class k{constructor(a,b,c,f){this.client=a;this.peerId=b;this.peerConnection=c;this.stream=null;const e=this;this.peerConnection.addEventListener("icecandidate",g=>{g.candidate&&e.client.iceCandidateHandler(e.peerId,JSON.stringify({sdpMLineIndex:g.candidate.sdpMLineIndex,candidate:g.candidate.candidate}))});this.peerConnection.addEventListener("track",g=>{e.rawStream=g.streams[0];const h=new Audio;h.autoplay=!0;h.muted=!0;h.onended=function(){h.remove()};h.srcObject=
|
||||
e.rawStream;e.client.peerTrackHandler(e.peerId,e.rawStream)});this.peerConnection.addStream(this.client.localMediaStream.stream);f&&this.peerConnection.createOffer(g=>{e.peerConnection.setLocalDescription(g,()=>{e.client.descriptionHandler(e.peerId,JSON.stringify(g));1!=e.client.peerStateInitial&&(e.client.peerStateInitial=1)},h=>{console.error('Failed to set local description for "'+e.peerId+'"! '+h);2==e.client.peerStateInitial&&(e.client.peerStateInitial=0);e.client.signalDisconnect(e.peerId)})},
|
||||
g=>{console.error('Failed to set create offer for "'+e.peerId+'"! '+g);2==e.client.peerStateInitial&&(e.client.peerStateInitial=0);e.client.signalDisconnect(e.peerId)});this.peerConnection.addEventListener("connectionstatechange",g=>{"disconnected"===e.peerConnection.connectionState?e.client.signalDisconnect(e.peerId):"connected"===e.peerConnection.connectionState?1!=e.client.peerState&&(e.client.peerState=1):"failed"===e.peerConnection.connectionState&&(2==e.client.peerState&&(e.client.peerState=
|
||||
0),e.client.signalDisconnect(e.peerId))})}disconnect(){this.peerConnection.close()}mute(a){this.rawStream.getAudioTracks()[0].enabled=!a}setRemoteDescription(a){const b=this;try{const c=JSON.parse(a);this.peerConnection.setRemoteDescription(c,()=>{"offer"==c.type&&b.peerConnection.createAnswer(f=>{b.peerConnection.setLocalDescription(f,()=>{b.client.descriptionHandler(b.peerId,JSON.stringify(f));1!=b.client.peerStateDesc&&(b.client.peerStateDesc=1)},e=>{console.error('Failed to set local description for "'+
|
||||
b.peerId+'"! '+e);2==b.client.peerStateDesc&&(b.client.peerStateDesc=0);b.client.signalDisconnect(b.peerId)})},f=>{console.error('Failed to create answer for "'+b.peerId+'"! '+f);2==b.client.peerStateDesc&&(b.client.peerStateDesc=0);b.client.signalDisconnect(b.peerId)})},f=>{console.error('Failed to set remote description for "'+b.peerId+'"! '+f);2==b.client.peerStateDesc&&(b.client.peerStateDesc=0);b.client.signalDisconnect(b.peerId)})}catch(c){console.error('Failed to parse remote description for "'+
|
||||
b.peerId+'"! '+c),2==b.client.peerStateDesc&&(b.client.peerStateDesc=0),b.client.signalDisconnect(b.peerId)}}addICECandidate(a){try{this.peerConnection.addIceCandidate(new RTCIceCandidate(JSON.parse(a))),1!=this.client.peerStateIce&&(this.client.peerStateIce=1)}catch(b){console.error('Failed to parse ice candidate for "'+this.peerId+'"! '+b),2==this.client.peerStateIce&&(this.client.peerStateIce=0),this.client.signalDisconnect(this.peerId)}}}class d{constructor(){this.ICEServers=[];this.hasInit=!1;
|
||||
this.peerList=new Map;this.readyState=0;this.peerStateIce=this.peerStateDesc=this.peerStateInitial=this.peerStateConnect=this.peerState=2;this.microphoneVolumeAudioContext=this.peerDisconnectHandler=this.peerTrackHandler=this.descriptionHandler=this.iceCandidateHandler=null}voiceClientSupported(){return"undefined"!==typeof window.RTCPeerConnection&&"undefined"!==typeof navigator.mediaDevices&&"undefined"!==typeof navigator.mediaDevices.getUserMedia}setICEServers(a){for(var b=this.ICEServers.length=
|
||||
0;b<a.length;++b){var c=a[b].split(";");1==c.length?this.ICEServers.push({urls:c[0]}):3==c.length&&this.ICEServers.push({urls:c[0],username:c[1],credential:c[2]})}}setICECandidateHandler(a){this.iceCandidateHandler=a}setDescriptionHandler(a){this.descriptionHandler=a}setPeerTrackHandler(a){this.peerTrackHandler=a}setPeerDisconnectHandler(a){this.peerDisconnectHandler=a}activateVoice(a){this.hasInit&&(this.localRawMediaStream.getAudioTracks()[0].enabled=a)}initializeDevices(){if(this.hasInit)this.readyState=
|
||||
1;else{const a=this;navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(b=>{a.microphoneVolumeAudioContext=new AudioContext;a.localRawMediaStream=b;a.localRawMediaStream.getAudioTracks()[0].enabled=!1;a.localMediaStream=a.microphoneVolumeAudioContext.createMediaStreamDestination();a.localMediaStreamGain=a.microphoneVolumeAudioContext.createGain();a.microphoneVolumeAudioContext.createMediaStreamSource(b).connect(a.localMediaStreamGain);a.localMediaStreamGain.connect(a.localMediaStream);a.localMediaStreamGain.gain.value=
|
||||
1;a.readyState=1;this.hasInit=!0}).catch(b=>{a.readyState=-1})}}setMicVolume(a){this.hasInit&&(.5<a&&(a=.5+2*(a-.5)),1.5<a&&(a=1.5),0>a&&(a=0),this.localMediaStreamGain.gain.value=2*a)}resetPeerStates(){this.peerState=this.peerStateConnect=this.peerStateInitial=this.peerStateDesc=this.peerStateIce=2}getPeerState(){return this.peerState}getPeerStateConnect(){return this.peerStateConnect}getPeerStateInitial(){return this.peerStateInitial}getPeerStateDesc(){return this.peerStateDesc}getPeerStateIce(){return this.peerStateIce}getReadyState(){return this.readyState}signalConnect(a,
|
||||
b){this.hasInit||this.initializeDevices();try{const c=new RTCPeerConnection({iceServers:this.ICEServers,optional:[{DtlsSrtpKeyAgreement:!0}]}),f=new k(this,a,c,b);this.peerList.set(a,f);1!=this.peerStateConnect&&(this.peerStateConnect=1)}catch(c){2==this.peerStateConnect&&(this.peerStateConnect=0)}}signalDescription(a,b){a=this.peerList.get(a);"undefined"!==typeof a&&null!==a&&a.setRemoteDescription(b)}signalDisconnect(a,b){var c=this.peerList.get(a);if("undefined"!==typeof c&&null!==c){this.peerList.delete(c);
|
||||
try{c.disconnect()}catch(f){}this.peerDisconnectHandler(a,b)}}mutePeer(a,b){a=this.peerList.get(a);"undefined"!==typeof a&&null!==a&&a.mute(b)}signalICECandidate(a,b){a=this.peerList.get(a);"undefined"!==typeof a&&null!==a&&a.addICECandidate(b)}}window.constructVoiceClient=()=>new d};window.startVoiceClient=()=>{"function"!==typeof window.constructVoiceClient&&window.initializeVoiceClient();return window.constructVoiceClient()};
|
||||
window.initializeLANClient=()=>{class k{constructor(){this.ICEServers=[];this.dataChannel=this.peerConnection=null;this.readyState=1;this.remotePacketHandler=this.remoteDisconnectHandler=this.remoteDataChannelHandler=this.descriptionHandler=this.iceCandidateHandler=null}LANClientSupported(){return"undefined"!==typeof window.RTCPeerConnection}initializeClient(){try{null!=this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null),null!=this.peerConnection&&this.peerConnection.close(),this.peerConnection=
|
||||
new RTCPeerConnection({iceServers:this.ICEServers,optional:[{DtlsSrtpKeyAgreement:!0}]}),this.readyState=1}catch(d){this.readyState=-2}}setICEServers(d){for(var a=this.ICEServers.length=0;a<d.length;++a){var b=d[a].split(";");1==b.length?this.ICEServers.push({urls:b[0]}):3==b.length&&this.ICEServers.push({urls:b[0],username:b[1],credential:b[2]})}}setICECandidateHandler(d){this.iceCandidateHandler=d}setDescriptionHandler(d){this.descriptionHandler=d}setRemoteDataChannelHandler(d){this.remoteDataChannelHandler=
|
||||
d}setRemoteDisconnectHandler(d){this.remoteDisconnectHandler=d}setRemotePacketHandler(d){this.remotePacketHandler=d}getReadyState(){return this.readyState}sendPacketToServer(d){null!=this.dataChannel&&"open"==this.dataChannel.readyState?this.dataChannel.send(d):this.signalRemoteDisconnect(!1)}signalRemoteConnect(){const d=this,a=[];this.peerConnection.addEventListener("icecandidate",b=>{b.candidate&&(0==a.length&&setTimeout(()=>{null!=d.peerConnection&&"disconnected"!=d.peerConnection.connectionState&&
|
||||
(d.iceCandidateHandler(JSON.stringify(a)),a.length=0)},3E3),a.push({sdpMLineIndex:b.candidate.sdpMLineIndex,candidate:b.candidate.candidate}))});this.dataChannel=this.peerConnection.createDataChannel("lan");this.dataChannel.binaryType="arraybuffer";this.dataChannel.addEventListener("open",async b=>{for(;0<a.length;)await new Promise(c=>setTimeout(c,0));d.remoteDataChannelHandler(d.dataChannel)});this.dataChannel.addEventListener("message",b=>{d.remotePacketHandler(b.data)},!1);this.peerConnection.createOffer(b=>
|
||||
{d.peerConnection.setLocalDescription(b,()=>{d.descriptionHandler(JSON.stringify(b))},c=>{console.error("Failed to set local description! "+c);d.readyState=-1;d.signalRemoteDisconnect(!1)})},b=>{console.error("Failed to set create offer! "+b);d.readyState=-1;d.signalRemoteDisconnect(!1)});this.peerConnection.addEventListener("connectionstatechange",b=>{"disconnected"===d.peerConnection.connectionState?d.signalRemoteDisconnect(!1):"connected"===d.peerConnection.connectionState?d.readyState=2:"failed"===
|
||||
d.peerConnection.connectionState&&(d.readyState=-1,d.signalRemoteDisconnect(!1))})}signalRemoteDescription(d){try{this.peerConnection.setRemoteDescription(JSON.parse(d))}catch(a){console.error(a),this.readyState=-1,this.signalRemoteDisconnect(!1)}}signalRemoteICECandidate(d){try{const a=JSON.parse(d);for(let b of a)this.peerConnection.addIceCandidate(b)}catch(a){console.error(a),this.readyState=-1,this.signalRemoteDisconnect(!1)}}signalRemoteDisconnect(d){null!=this.dataChannel&&(this.dataChannel.close(),
|
||||
this.dataChannel=null);null!=this.peerConnection&&this.peerConnection.close();d||this.remoteDisconnectHandler();this.readyState=0}}window.constructLANClient=()=>new k};window.startLANClient=()=>{"function"!==typeof window.constructLANClient&&window.initializeLANClient();return window.constructLANClient()};
|
||||
window.initializeLANServer=()=>{class k{constructor(a,b,c){this.client=a;this.peerId=b;this.peerConnection=c;this.dataChannel=null;const f=this,e=[];this.peerConnection.addEventListener("icecandidate",g=>{g.candidate&&(0==e.length&&setTimeout(()=>{null!=f.peerConnection&&"disconnected"!=f.peerConnection.connectionState&&(f.client.iceCandidateHandler(f.peerId,JSON.stringify(e)),e.length=0)},3E3),e.push({sdpMLineIndex:g.candidate.sdpMLineIndex,candidate:g.candidate.candidate}))});this.peerConnection.addEventListener("datachannel",
|
||||
async g=>{for(;0<e.length;)await new Promise(h=>setTimeout(h,0));f.dataChannel=g.channel;f.client.remoteClientDataChannelHandler(f.peerId,f.dataChannel);f.dataChannel.addEventListener("message",h=>{f.client.remoteClientPacketHandler(f.peerId,h.data)},!1)},!1);this.peerConnection.addEventListener("connectionstatechange",g=>{"disconnected"===f.peerConnection.connectionState?f.client.signalRemoteDisconnect(f.peerId):"connected"===f.peerConnection.connectionState?1!=f.client.peerState&&(f.client.peerState=
|
||||
1):"failed"===f.peerConnection.connectionState&&(2==f.client.peerState&&(f.client.peerState=0),f.client.signalRemoteDisconnect(f.peerId))})}disconnect(){null!=this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null);this.peerConnection.close()}setRemoteDescription(a){const b=this;try{const c=JSON.parse(a);this.peerConnection.setRemoteDescription(c,()=>{"offer"==c.type&&b.peerConnection.createAnswer(f=>{b.peerConnection.setLocalDescription(f,()=>{b.client.descriptionHandler(b.peerId,JSON.stringify(f));
|
||||
1!=b.client.peerStateDesc&&(b.client.peerStateDesc=1)},e=>{console.error('Failed to set local description for "'+b.peerId+'"! '+e);2==b.client.peerStateDesc&&(b.client.peerStateDesc=0);b.client.signalRemoteDisconnect(b.peerId)})},f=>{console.error('Failed to create answer for "'+b.peerId+'"! '+f);2==b.client.peerStateDesc&&(b.client.peerStateDesc=0);b.client.signalRemoteDisconnect(b.peerId)})},f=>{console.error('Failed to set remote description for "'+b.peerId+'"! '+f);2==b.client.peerStateDesc&&
|
||||
(b.client.peerStateDesc=0);b.client.signalRemoteDisconnect(b.peerId)})}catch(c){console.error('Failed to parse remote description for "'+b.peerId+'"! '+c),2==b.client.peerStateDesc&&(b.client.peerStateDesc=0),b.client.signalRemoteDisconnect(b.peerId)}}addICECandidate(a){try{const b=JSON.parse(a);for(let c of b)this.peerConnection.addIceCandidate(new RTCIceCandidate(c));1!=this.client.peerStateIce&&(this.client.peerStateIce=1)}catch(b){console.error('Failed to parse ice candidate for "'+this.peerId+
|
||||
'"! '+b),2==this.client.peerStateIce&&(this.client.peerStateIce=0),this.client.signalRemoteDisconnect(this.peerId)}}}class d{constructor(){this.ICEServers=[];this.hasInit=!1;this.peerList=new Map;this.peerStateIce=this.peerStateDesc=this.peerStateInitial=this.peerStateConnect=this.peerState=2;this.remoteClientPacketHandler=this.remoteClientDisconnectHandler=this.remoteClientDataChannelHandler=this.descriptionHandler=this.iceCandidateHandler=null}LANServerSupported(){return"undefined"!==typeof window.RTCPeerConnection}initializeServer(){}setICEServers(a){for(var b=
|
||||
this.ICEServers.length=0;b<a.length;++b){var c=a[b].split(";");1==c.length?this.ICEServers.push({urls:c[0]}):3==c.length&&this.ICEServers.push({urls:c[0],username:c[1],credential:c[2]})}}setICECandidateHandler(a){this.iceCandidateHandler=a}setDescriptionHandler(a){this.descriptionHandler=a}setRemoteClientDataChannelHandler(a){this.remoteClientDataChannelHandler=a}setRemoteClientDisconnectHandler(a){this.remoteClientDisconnectHandler=a}setRemoteClientPacketHandler(a){this.remoteClientPacketHandler=
|
||||
a}sendPacketToRemoteClient(a,b){var c=this.peerList.get(a);"undefined"!==typeof c&&null!==c&&(null!=c.dataChannel&&"open"==c.dataChannel.readyState?c.dataChannel.send(b):this.signalRemoteDisconnect(a))}resetPeerStates(){this.peerState=this.peerStateConnect=this.peerStateInitial=this.peerStateDesc=this.peerStateIce=2}getPeerState(){return this.peerState}getPeerStateConnect(){return this.peerStateConnect}getPeerStateInitial(){return this.peerStateInitial}getPeerStateDesc(){return this.peerStateDesc}getPeerStateIce(){return this.peerStateIce}signalRemoteConnect(a){try{const b=
|
||||
new RTCPeerConnection({iceServers:this.ICEServers,optional:[{DtlsSrtpKeyAgreement:!0}]}),c=new k(this,a,b);this.peerList.set(a,c);1!=this.peerStateConnect&&(this.peerStateConnect=1)}catch(b){2==this.peerStateConnect&&(this.peerStateConnect=0)}}signalRemoteDescription(a,b){a=this.peerList.get(a);"undefined"!==typeof a&&null!==a&&a.setRemoteDescription(b)}signalRemoteICECandidate(a,b){a=this.peerList.get(a);"undefined"!==typeof a&&null!==a&&a.addICECandidate(b)}signalRemoteDisconnect(a){if(0==a.length){for(var b of this.peerList.values())if("undefined"!==
|
||||
typeof b&&null!==b){this.peerList.delete(a);try{b.disconnect()}catch(c){}this.remoteClientDisconnectHandler(a)}this.peerList.clear()}else if(b=this.peerList.get(a),"undefined"!==typeof b&&null!==b){this.peerList.delete(a);try{b.disconnect()}catch(c){}this.remoteClientDisconnectHandler(a)}}countPeers(){return this.peerList.size}}window.constructLANServer=()=>new d};window.startLANServer=()=>{"function"!==typeof window.constructLANServer&&window.initializeLANServer();return window.constructLANServer()};
|
52
null/versions/1.5.2/index.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>eagler</title>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="Eaglercraft is real Minecraft 1.5.2 that you can play in any regular web browser. That includes school chromebooks, it works on all chromebooks. It supports both singleplayer and multiplayer with no extensions." />
|
||||
<meta name="keywords" content="minecraft, eaglercraft, singleplayer, applet, replit, browser, html5, javascript, chromebook, lax1dude, games, eagler" />
|
||||
<meta name="author" content="lax1dude" />
|
||||
<meta property="og:title" content="Eaglercraft" />
|
||||
<meta property="og:locale" content="en-US" />
|
||||
<meta property="og:type" content="website" />
|
||||
<!-- Change this: <meta property="og:image" content="https://media.discordapp.net/attachments/378764518081429506/932053915061587978/thumbnail2.png" /> -->
|
||||
<meta property="og:description" content="Eaglercraft is real Minecraft 1.5.2 that you can play in any regular web browser. That includes school chromebooks, it works on all chromebooks. It supports both singleplayer and multiplayer with no extensions." />
|
||||
<!-- Change this: <meta property="og:url" content="https://g.eags.us/eaglercraft/" /> -->
|
||||
<script type="text/javascript" src="classes.js"></script>
|
||||
<script type="text/javascript" src="eagswebrtc.js"></script>
|
||||
<script type="text/javascript">
|
||||
if(document.location.href.startsWith("file:")) {
|
||||
alert("You cannot 'open' this file in your browser, the code doesn't work. Upload this folder to your HTTP(s) server and access it via the internet to launch the stable-download game. This is not a bug, please read the documentation");
|
||||
}else {
|
||||
window.addEventListener("load", function(){
|
||||
const relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftOpts = {
|
||||
container: "game_frame", assetsURI: "assets.epk", serverWorkerURI: "worker_bootstrap.js", worldsFolder: "MAIN",
|
||||
servers: [
|
||||
{ serverName: "placeholder", serverAddress: "address here", hideAddress: false }
|
||||
],
|
||||
relays: [
|
||||
{ addr: "wss://relay.deev.is/", name: "lax1dude relay #1", primary: relayId == 0 },
|
||||
{ addr: "wss://relay.lax1dude.net/", name: "lax1dude relay #2", primary: relayId == 1 },
|
||||
{ addr: "wss://relay.shhnowisnottheti.me/", name: "ayunami relay #1", primary: relayId == 2 }
|
||||
],
|
||||
mainMenu: { splashes: [
|
||||
"Darviglet!", "eaglerenophile!", "You Eagler!", "Yeeeeeee!", "yeee",
|
||||
"EEEEEEEEE!", "You Darvig!", "You Vigg!", ":>", "|>", "You Yumpster!"
|
||||
], eaglerLogo: false }};
|
||||
(function(){
|
||||
var q = window.location.search;
|
||||
if(typeof q === 'string' && q.startsWith("?")) {
|
||||
q = new URLSearchParams(q);
|
||||
var s = q.get("server");
|
||||
if(s) window.eaglercraftOpts.joinServer = s;
|
||||
}
|
||||
})();
|
||||
main();
|
||||
});}
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100vw;height:100vh;" id="game_frame">
|
||||
</body>
|
||||
</html>
|
5
null/versions/1.5.2/worker_bootstrap.js
Normal file
@ -0,0 +1,5 @@
|
||||
onmessage = function(o) {
|
||||
importScripts("classes_server.js");
|
||||
eaglercraftServerOpts = o.data;
|
||||
main();
|
||||
};
|
BIN
null/versions/1.8.8/assets.epk
Normal file
63795
null/versions/1.8.8/classes.js
Normal file
1
null/versions/1.8.8/classes.js.map
Normal file
BIN
null/versions/1.8.8/favicon.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
63
null/versions/1.8.8/index.html
Normal file
@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html style="width:100%;height:100%;background-color:black;">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-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">
|
||||
"use strict";
|
||||
window.addEventListener("load", function() {
|
||||
if(window.location.href.indexOf("file:") === 0) {
|
||||
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
|
||||
}else {
|
||||
|
||||
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||
|
||||
var relayId = Math.floor(Math.random() * 3);
|
||||
window.eaglercraftXOpts = {
|
||||
demoMode: false,
|
||||
container: "game_frame",
|
||||
assetsURI: "assets.epk",
|
||||
localesURI: "lang/",
|
||||
worldsDB: "worlds",
|
||||
servers: [
|
||||
{ addr: "wss://eagler.speedslicer.dev", name: "Null's World" },
|
||||
{ addr: "wss://mc.arch.lol", name: "ArchMC" },
|
||||
{ addr: "wss://zentic.cc", name: "Zentic" },
|
||||
{ addr: "wss://mc.asspixel.net", name: "A**pixel" },
|
||||
|
||||
],
|
||||
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 }
|
||||
]
|
||||
};
|
||||
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
var q = window.location.search;
|
||||
if((typeof q === "string") && q[0] === "?" && (typeof window.URLSearchParams !== "undefined")) {
|
||||
q = new window.URLSearchParams(q);
|
||||
var s = q.get("server");
|
||||
if(s) window.eaglercraftXOpts.joinServer = s;
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame">
|
||||
</body>
|
||||
</html>
|