Compare commits

...

2 Commits

Author SHA1 Message Date
PrestonT500
78518c6654 Removed Controller Support (Not working)
Signed-off-by: PrestonT500 <preston.truong1@outlook.com>
2025-01-07 12:11:07 -08:00
PrestonT500
f30fdaad7a Removed Controller Support (Doesn't work) 2025-01-07 08:49:12 -08:00
81 changed files with 0 additions and 210063 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,61 +0,0 @@
<!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 src="/js/ga4.js"></script>
<script src="/js/eag-ctrler.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: [
/* example: { addr: "ws://localhost:8081/", name: "Local test server" } */
],
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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,458 +0,0 @@
addServer.add=Oti
addServer.enterIp=Wāhi noho o te tūmau
addServer.enterName=Ingoa o te tūmau
addServer.hideAddress=huna wāhitau
addServer.resourcePack=Pōkai Rauemi Tūmau
addServer.resourcePack.disabled=Monokia
addServer.resourcePack.enabled=Mkakaurangi
addServer.resourcePack.prompt=Tohuāki
addServer.title=Whakatika i te tūmau
book.editTitle=Tomo Book Taitara:
book.finalizeButton=Tohu me Katia
book.finalizeWarning=Kia mōhio mai! A, no te haina koe i te pukapuka, ka kore e taea te reira.
book.signButton=Tohu
chat.cannotSend=Kāore e taea te tukatuka kōrerorero karere
chat.copy=Tārua ki Papatopenga
chat.link.confirm=Kei te hiahia koe ki te whakatuwhera i te hononga ki a koutou?
chat.link.confirmTrusted=E hiahia ana koe ki te whakatūwhera mai tēnei hono ranei te tārua te reira ki o koutou papatopenga?
chat.link.open=Whakatūwhera i roto i te Browser
chat.link.warning=Kaua e whakat hononga i tangata ke!
chat.stream.emote=(%s) * %s %s
chat.stream.text=(%s) <%s> %s
chat.type.achievement=%s kua tika roaa te paetae %s
connect.authorizing=Takiuru in...
connect.connecting=E hono ana ki te tūmau...
connect.failed=I rahua te hono ki te tūmau
controls.title=Mana
createWorld.customize.custom.presets=Tatūkē
createWorld.customize.flat.addLayer=tāpiri kahu-
createWorld.customize.flat.editLayer=apa whakatika
createWorld.customize.flat.height=teitei
createWorld.customize.flat.layer.bottom=raro %s
createWorld.customize.flat.layer.top=runga -%s
createWorld.customize.flat.removeLayer=tango kahu-
createWorld.customize.flat.tile=Apa nāunau
createWorld.customize.flat.title=Whakaraupapa Superflat
createWorld.customize.presets=Tatūkē
createWorld.customize.presets.list=Tērā rānei, konei te etahi hanga tatou i mua!
createWorld.customize.presets.select=whakamahi tatūkē
createWorld.customize.presets.share=E hiahia ana ki te faaite i to koutou tatūkē ki te tangata? Whakamahia te pouaka i raro nei!
createWorld.customize.presets.title=tīpako i te tatūkē
demo.day.1=Tenei demo ka muri e rima nga ra game, koutou pai te mahi!
demo.day.2=ra e rua
demo.day.3=ra e toru
demo.day.4=ra e wha
demo.day.5=Ko koutou ra whakamutunga tenei!
demo.day.6=kua mutu e rima nga ra. Press "F5" ki te tango he pikitia o to koutou hanga
demo.day.warning=Ko to koutou wa tata ake!
demo.demoExpired=Demo oti!
demo.help.buy=hoko Minecraft inaianei!
demo.help.fullWrapped=Tenei demo ka muri e rima nga ra (e pā ana ki 1 haora me te 40 miniti o te wā tūturu). Tirohia te whakatutukitanga mō ngā tīwhiri! Kia ngahau!
demo.help.inventory=Whakamahia %1$s ki te whakatuwhera i tō peke
demo.help.jump=Peke mā te pēhi i %1$s
demo.help.later=Tonu tākaro!
demo.help.movement=Whakamahia %1$s, %2$s, %3$s, %4$s me te kiore ki te neke a tawhio noa
demo.help.movementMouse=Titiro huri noa te whakamahi i te kiore
demo.help.movementShort=Neke mā te pēhi i %1$s, %2$s, %3$s, %4$s
demo.help.title=Aratau Demo Minecraft
demo.remainingTime=te wā e toe ana: %s
demo.reminder=Kua mutu te demo. te hoko i te kēmu ki te haere tonu tīmata ranei te ao hou!
disconnect.closed=katia hononga
disconnect.disconnected=Kua momotu i te Tūmau
disconnect.endOfStream=Mutunga o te Awa
disconnect.kicked=I whana i te kēmu
disconnect.loginFailed=I rahua te takiuru
disconnect.loginFailedInfo=I rahua te takiuru: %s
disconnect.loginFailedInfo.invalidSession=Wātū muhu (Me tīmata anō i tō kēmu)
disconnect.loginFailedInfo.serversUnavailable=Ko te motuhēhēnga he wā ki raro mo te tiaki.
disconnect.lost=hononga ngaro
disconnect.overflow=papare te waipuke
disconnect.quitting=whakamutu
disconnect.spam=Whana hoki whakamuhani
disconnect.timeout=pau i roto i
entity.Boat.name=Waka
entity.EntityHorse.name=Hoiho
entity.horse.name=Hoiho
gameMode.adventure=Aratau Adventure
gameMode.changed=Kua whakahoutia te gameplay
gameMode.creative=Aratau Creative
gameMode.hardcore=aratau tino!
gameMode.survival=Aratau Survival
generator.amplified=ô-
generator.amplified.info=pānui: anake hoki ngahau, me nui rorohiko
generator.default=taunoa
generator.flat=Superflat
generator.largeBiomes=ngā wāhi nui
gui.all=Katoa
gui.back=Hoki
gui.cancel=Whakakore
gui.done=Oti
gui.down=iho
gui.no=Kāo
gui.toMenu=hoki ki te mata taitara
gui.up=Ake
gui.yes=Āe
item.apple.name=Āporo
item.arrow.name=Pere
item.bed.name=Moenga
item.beefCooked.name=Kotinga mīti
item.boat.name=Waka
item.bone.name=Wheua
item.bow.name=Kopere
item.bread.name=Parāoa
item.bucket.name=Pēre
item.cake.name=Keke
item.carrots.name=Kāreti
item.charcoal.name=Waro
item.clock.name=Karaka
item.coal.name=Waro
item.compass.name=Kāpehu
item.cookie.name=Pihikete
item.diamond.name=Taimana
item.egg.name=Hēki
item.emerald.name=Kahurangi
item.feather.name=Piki
item.fishingRod.name=Matira
item.flint.name=Matā
item.hatchetWood.name=Tuaina ki rakau
item.ingotGold.name=Gold Ingot
item.ingotIron.name=Iron Ingot
item.leather.name=Rera
item.map.name=Mapi
item.painting.name=Waituhi
item.pickaxeWood.name=Keriwhenua ki rakau
item.saddle.name=Tera
item.seeds.name=Purapura
item.shovelWood.name=koko rakau
item.sign.name=Pouārahi
item.snowball.name=Poi huka
item.stick.name=Rākau
item.sulphur.name=Paura
item.swordIron.name=Iron Hoari
item.swordWood.name=te hoari rakau
item.wheat.name=Wīti
key.categories.inventory=Rārangi taonga
key.categories.multiplayer=Multiplayer
key.inventory=Rārangi taonga
key.jump=Peke
lanServer.otherPlayers=i ngā tautuhinga mō ētahi atu kaitākaro
lanServer.scanning=matawai mō ngā kēmu i runga i tō whatunga rohe
lanServer.start=tīmata LAN ao
lanServer.title=LAN te ao
language.code=mi_NZ
language.name=Te Reo Māori
language.region=Aotearoa
mcoServer.title=hou te ao ipurangi Minecraft
menu.convertingLevel=Faafariuraa o te ao
menu.disconnect=Wetea
menu.game=tahua kēmu
menu.generatingLevel=Auaha te ao
menu.generatingTerrain=Auaha te whenua
menu.loadingLevel=Rāwekeweke te ao
menu.multiplayer=huihui
menu.options=nga kōwhiringa...
menu.playdemo=Te tākaro Demo World
menu.quit=Putanga
menu.resetdemo=Tautuhi anō Demo World
menu.respawning=whakawhānau takarure
menu.returnToGame=Hoki ki te kēmu
menu.returnToMenu=Putanga me haere ki te rārangi tono
menu.shareToLan=tuwhera tō LAN
menu.simulating=Construction o te ao i roto i nga paraire
menu.singleplayer=anake
menu.switchingLevel=Whakawhitiwhiti nga ao
multiplayer.connect=Hono
multiplayer.downloadingStats=Te tikiake i ngā tatauranga & whakatutukitanga ...
multiplayer.downloadingTerrain=Tikiake ana i nga whenua
multiplayer.info1=Minecraft Multiplayer kore tēnei wā kei te oti, engari i reira
multiplayer.info2=whakamātautau bug wawe puta.
multiplayer.ipinfo=Tomo i te IP o te tūmau, ki te hono atu ki reira:
multiplayer.player.joined=%s uru atu te kēmu
multiplayer.player.joined.renamed=%s (e mōhiotia i mua kia rite ki %s) i uru ki te kēmu
multiplayer.player.left=%s mahue te kēmu
multiplayer.stopSleeping=waiho Bed
multiplayer.texturePrompt.line1=E taunaki ana tēnei tūmau i te whakamahi o te mōkihi rauemi ritenga.
multiplayer.texturePrompt.line2=E hiahia ana koe ki te tiki ake me te tāuta i te reira aunoa?
multiplayer.title=te tākaro multiplayer
options.advancedButton=Settings Ataata Arā...
options.advancedOpengl=OpenGL Arā
options.advancedVideoTitle=Settings Ataata Arā
options.anaglyph=3D Anaglyph
options.ao=Whakamumuratanga Whakaene
options.ao.max=Mōrahi
options.ao.min=Mōkito
options.ao.off=OFF
options.chat.color=Tae
options.chat.height.unfocused=Not Focused Height
options.chat.links=Hononga Tukutuku
options.chat.links.prompt=Tohuāki i runga i Hononga
options.chat.opacity=Opacity
options.chat.scale=Tauine
options.chat.title=Settings kōrerorero...
options.chat.visibility=kōrerorero
options.chat.visibility.full=whakaaturia
options.chat.visibility.hidden=Huna
options.chat.visibility.system=tono anake
options.chat.width=Whānuitanga
options.controls=Mana...
options.difficulty=Uaua
options.difficulty.easy=Ngāwari
options.difficulty.hard=Māro
options.difficulty.hardcore=Hardcore
options.difficulty.normal=Pūnoa
options.difficulty.peaceful=Rangimārie
options.farWarning1=Tūtohutia te tāutanga Java 64 bit te
options.farWarning2='Far' hoatu tawhiti (koe 32 bit)
options.fboEnable=Whakahohe i FBOs
options.fov=FOV
options.fov.max=Quake PROV
options.fov.min=Pūnoa
options.framerateLimit=Mokatere tāpare Max
options.framerateLimit.max=Unlimited
options.gamma=Gile
options.gamma.max=Kanapa
options.gamma.min=Moody
options.graphics=Whakairoiro
options.graphics.fancy=Fancy
options.graphics.fast=Nohopuku
options.guiScale=GUI Tauine
options.guiScale.auto=Car
options.guiScale.large=Nui
options.guiScale.normal=Pūnoa
options.guiScale.small=Iti
options.hidden=Huna
options.invertMouse=Huripoki Kiore
options.language=Reo...
options.languageWarning=E kore ai translations reo e tōtika 100%%
options.multiplayer.title=Settings Multiplayer...
options.music=Puoro
options.off=OFF
options.on=ON
options.particles=matūriki
options.particles.all=Katoa
options.particles.decreased=Heke
options.particles.minimal=Iti
options.performanceButton=Settings Mahinga Ataata...
options.performanceVideoTitle=Settings Mahinga Ataata
options.postButton=Settings Post-Processing...
options.postProcessEnable=Whakahohetia te Post-Processing
options.postVideoTitle=Settings Post-Processing
options.qualityButton=Settings Kounga Ataata...
options.qualityVideoTitle=Settings Kounga Ataata
options.renderClouds=Kapua
options.renderDistance=Hoatu tawhiti
options.renderDistance.far=Tawhiti
options.renderDistance.normal=Pūnoa
options.renderDistance.short=Poto
options.renderDistance.tiny=Iti
options.saturation=waiwai
options.sensitivity=Rauangi
options.sensitivity.max=HYPERSPEED!!!
options.sensitivity.min=*Oha*
options.snooper=Tukua popore
options.sound=tangi
options.sounds=Music & Oro...
options.sounds.title=Kōwhiringa Music & Sound
options.stream=Pāohotanga Settings...
options.stream.changes=Me tīmata anō pea koutou awa koe mo ki enei rerekētanga tango i te wahi.
options.stream.compression.high=Tiketike
options.stream.compression.low=Iti
options.stream.compression.medium=Waenga
options.stream.mic_toggle.talk=Kōrero
options.title=kōwhiringa
options.video=Settings Video...
options.videoTitle=Settings Video
options.viewBobbing=Tirohia te whāwhā
options.visible=whakaaturia
record.nowPlaying=tākaro Na: %s
selectServer.add=Tāpiri Tūmau
selectServer.defaultName=Tūmau Minecraft
selectServer.delete=Porowhiu
selectServer.deleteButton=Porowhiu
selectServer.deleteQuestion=Whakaū i te tango o tenei tūmau?
selectServer.deleteWarning=Ngaro ka ake ake! (Te wa i!)
selectServer.direct=Whakarerekē
selectServer.edit=Whakarerekē
selectServer.empty=tahanga
selectServer.hiddenAddress=(Huna)
selectServer.refresh=Update
selectServer.select=amui atu tūmau
selectServer.title=te tīpako i te tūmau
selectWorld.allowCommands=Tuku i te whakahau:
selectWorld.allowCommands.info=Kainga, herehere, i ētahi atu momo ao... /gamemode, /xp
selectWorld.bonusItems=utu uma:
selectWorld.cheats=Tinihanga
selectWorld.conversion=Me tahuri!
selectWorld.create=Waihanga he world new
selectWorld.createDemo=Te tākaro New Demo World
selectWorld.customizeType=Whakatauritea
selectWorld.delete=Porowhiu
selectWorld.deleteButton=Porowhiu
selectWorld.deleteQuestion=E hiahia ana koe ki te muku i tēnei ao ki a koutou?
selectWorld.deleteWarning=ka ngaro ake ake! (He roa te wā!)
selectWorld.empty=tahanga
selectWorld.enterName=ingoa ao
selectWorld.enterSeed=uri mo te kaihanga ao
selectWorld.gameMode=Aratau Game
selectWorld.gameMode.adventure=Haere māia
selectWorld.gameMode.adventure.line1=Rite aratau ora, engari e kore e taea e poraka
selectWorld.gameMode.adventure.line2=tāpiri, te tango ranei,
selectWorld.gameMode.creative=auaha
selectWorld.gameMode.creative.line1=rauemi mure ore, e rere ana, me te kore utu
selectWorld.gameMode.creative.line2=Top -%s
selectWorld.gameMode.hardcore=tino
selectWorld.gameMode.hardcore.line1=Rite aratau ora, kua kiia i faingataa
selectWorld.gameMode.hardcore.line2=uaua, a kotahi te ora anake
selectWorld.gameMode.survival=Noho ora
selectWorld.gameMode.survival.line1=Rapu mō te rauemi, ke fokotuutuu, taonga
selectWorld.gameMode.survival.line2=taumata, te hauora, me te matekai
selectWorld.hardcoreMode=tino:
selectWorld.hardcoreMode.info=mukua ao te ki runga ki te mate
selectWorld.mapFeatures=Whakaputa hanganga:
selectWorld.mapFeatures.info=Kainga, herehere, i ētahi atu momo ao
selectWorld.mapType=Momo o te ao:
selectWorld.mapType.normal=Noa
selectWorld.moreWorldOptions=Ētahi atu Kōwhiringa Ao ...
selectWorld.newWorld=ao hou
selectWorld.newWorld.copyOf=kape o te %s
selectWorld.recreate=Waihangatia tētahi atu wā
selectWorld.rename=Huria te ingoa
selectWorld.renameButton=whakaingoa
selectWorld.renameTitle=whakaingoa World
selectWorld.resultFolder=ka ora i roto i:
selectWorld.seedInfo=waiho kia pātea tonu hoki te uri tupurangi
selectWorld.select=Te tākaro i te ao kua tīpakohia
selectWorld.title=Tīpakohia te ao
selectWorld.world=Ao
soundCategory.ambient=Ambient / Taiao
soundCategory.block=poraka
soundCategory.hostile=Vaerua kaikiri
soundCategory.master=rōrahi te Kaiwhakaako
soundCategory.music=Puoro
soundCategory.neutral=Vaerua hoa
soundCategory.player=kaitākaro
soundCategory.record=Poraka rekoata / Tuhipoka
soundCategory.weather=Weather
tile.activatorRail.name=Activator Rail
tile.anvil.name=Paepae maitai
tile.bedrock.name=maka tefito
tile.blockCoal.name=Poraka o Coal
tile.blockDiamond.name=Poraka o Diamond
tile.bookshelf.name=PukaPuka
tile.brick.name=Pereki
tile.button.name=Pātene
tile.cake.name=Keke
tile.carrots.name=Kāreti
tile.chest.name=pouaka
tile.chestTrap.name=aaka mau
tile.cloth.name=Wūru
tile.cocoa.name=Koukou
tile.crops.name=Kai
tile.deadbush.name=mate Bush
tile.detectorRail.name=pūkimi Rail
tile.dirt.default.name=Oneone
tile.dirt.podzol.name=Onemata
tile.doorIron.name=Iron Door
tile.doorWood.name=Door Rakau
tile.doublePlant.fern.name=Ponga
tile.doublePlant.rose.name=Rōha
tile.doublePlant.sunflower.name=Putiputi rā
tile.farmland.name=Papanga pāmu
tile.fence.name=Taiepa
tile.fire.name=Ahi
tile.flower1.dandelion.name=Tawao
tile.flower2.allium.name=Allium
tile.flower2.houstonia.name=Azure Bluet
tile.flower2.tulipRed.name=Whero Tulip
tile.furnace.name=Oumu
tile.glass.name=Karaehe
tile.goldenRail.name=Rail Powered
tile.grass.name=tarutaru Poraka
tile.gravel.name=Tuakirikiri
tile.hayBlock.name=hay wuru
tile.ice.name=Haupapa
tile.ladder.name=Arawhata
tile.lava.name=Tahepuia
tile.leaves.acacia.name=hitimi Rau
tile.leaves.big_oak.name=Dark Oak Rau
tile.leaves.birch.name=birch Rau
tile.leaves.jungle.name=uru raau no Rau
tile.leaves.name=Ngā rau
tile.leaves.oak.name=Rau oki
tile.leaves.spruce.name=Rau te puruhi
tile.lever.name=Ara
tile.log.acacia.name=hitimi Wood
tile.log.big_oak.name=Dark Oak Wood
tile.log.birch.name=Birch Wood
tile.log.jungle.name=uru raau no Wood
tile.log.name=Rākau
tile.log.oak.name=Rākau oke
tile.log.spruce.name=te puruhi mo Wood
tile.mobSpawner.name=Monster Spawner
tile.obsidian.name=Matā
tile.oreCoal.name=Coal Ore
tile.oreDiamond.name=Diamond Ore
tile.oreGold.name=Gold Ore
tile.oreIron.name=Iron Ore
tile.potatoes.name=Rīwai
tile.pumpkin.name=Paukena
tile.rail.name=Ara tereina
tile.redstoneDust.name=Redstone puehu
tile.sand.default.name=Kirikiri
tile.sand.red.name=Kirikiri whero
tile.sandStone.chiseled.name=whaoa hōanga
tile.sandStone.default.name=Hōanga
tile.sandStone.name=Hōanga
tile.sandStone.smooth.name=hōanga Whakaene
tile.sapling.acacia.name=hitimi Māhuri
tile.sapling.birch.name=Birch Māhuri
tile.sapling.jungle.name=uru raau no Māhuri
tile.sapling.oak.name=Oak Māhuri
tile.sapling.spruce.name=te puruhi mo Māhuri
tile.sign.name=Tohu
tile.snow.name=Huka
tile.stainedGlass.black.name=Black ōpure koata
tile.stainedGlass.blue.name=Blue ōpure koata
tile.stainedGlass.brown.name=Brown ōpure koata
tile.stainedGlass.cyan.name=Urikiko ōpure koata
tile.stainedGlass.gray.name=Gray ōpure koata
tile.stainedGlass.green.name=Green ōpure koata
tile.stainedGlass.name=ōpure koata
tile.stainedGlass.pink.name=Pink ōpure koata
tile.stainedGlass.purple.name=Papura ōpure koata
tile.stainedGlass.red.name=Whero ōpure koata
tile.stainedGlass.silver.name=Light Gray ōpure koata
tile.stairsSandStone.name=hōanga Arawhata
tile.stairsStone.name=Stone Arawhata
tile.stairsWood.name=Oak Wood Arawhata
tile.stairsWoodAcacia.name=Hitimi Wood Arawhata
tile.stairsWoodBirch.name=Birch Wood Arawhata
tile.stairsWoodDarkOak.name=Dark Oak Wood Arawhata
tile.stairsWoodJungle.name=Uru raau no Wood Arawhata
tile.stairsWoodSpruce.name=Te puruhi mo Wood Arawhata
tile.stoneMoss.name=Moss Stone
tile.stonebrick.name=Cobblestone
tile.tallgrass.fern.name=Ponga
tile.tallgrass.grass.name=Karaihe
tile.tallgrass.name=Karaihe
tile.tallgrass.shrub.name=Riki
tile.thinGlass.name=Pihanga
tile.tnt.name=TNT
tile.torch.name=Rama
tile.water.name=Wai
tile.weightedPlate_heavy.name=Plate Pressure tautaha (Taumaha)
tile.weightedPlate_light.name=Plate Pressure tautaha (Light)
tile.wood.acacia.name=Hitimi Wood papa
tile.wood.big_oak.name=Dark Oak Wood papa
tile.wood.birch.name=Birch Wood papa
tile.wood.jungle.name=Uru raau no Wood papa
tile.wood.name=papa rākau
tile.wood.oak.name=Oak papa rakau
tile.wood.spruce.name=Te puruhi mo Wood papa
tile.woodSlab.acacia.name=Hitimi Wood papa
tile.woodSlab.big_oak.name=Dark Oak Wood papa
tile.woodSlab.birch.name=Birch Wood Papa
tile.woodSlab.jungle.name=Uru raau no Wood papa
tile.woodSlab.oak.name=Oak Wood Papa
tile.woodSlab.spruce.name=Te puruhi mo Wood papa
tile.workbench.name=Papamahi

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,436 +0,0 @@
achievement.bakeCake=Gielis
achievement.bakeCake.desc=Nisut, sohkar, mielki ja monit!
achievement.blazeRod=Dollii
achievement.bookcase=Girjerájusbargi
achievement.buildBetterPickaxe=Buoredat
achievement.diamonds=DIAMÁNTTAT!
achievement.killWither=Álgu.
achievement.spawnWither=Álgu?
achievement.theEnd=Loahppa?
achievement.theEnd2=Loahppa.
addServer.add=Gárvvis
attribute.name.generic.movementSpeed=Johtilvuohta
book.finalizeButton=Sivdnidat ja dahppat
book.generation.0=Originála
book.signButton=Sivdnidat
chat.stream.emote=(%s) * %s %s
chat.stream.text=(%s) <%s> %s
commands.ban.failed=Ii máhte gieldit čuojaheadji %s
commands.ban.success=Čuojaheaddji %s lea gieldán
commands.ban.usage=/ban <nama> [sivva...]
commands.clone.usage=/clone <x1> <y1> <z1> <x2> <y2> <z2> <x> <y> <z> [mode]
commands.compare.usage=/testforblocks <x1> <y1> <z1> <x2> <y2> <z2><x><y><z>[mode]
commands.defaultgamemode.usage=/defaultgamemode <modus>
commands.deop.failed=Ii máhte de-op %s
commands.deop.usage=/deop <čuojaheadji>
commands.difficulty.usage=/difficulty <ođđa áŧestus>
commands.entitydata.noPlayers=%s lea čuojaheaddji ja ii máhte rievdaduvvot
commands.gamemode.usage=/gamemode <modus> [čuojaheaddji]
commands.generic.usage=Geavahus: %s
commands.kick.usage=/kick <čuojaheadji> [sivva...]
commands.message.display.incoming=%s savkala dutnje: %s
commands.message.display.outgoing=Don savkalat čuojaheaddjai %s: %s
commands.op.failed=Ii máhte op %s
commands.op.usage=/op <čuojaheadji>
commands.particle.usage=/particle <name> <x> <y> <z> <xd> <yd> <zd> <speed> [count] [mode]
commands.say.usage=/say <dieđáhus>
commands.scoreboard.teams.add.alreadyExists=Joavku namain %s juo gávdno
commands.scoreboard.teams.add.success=Joavku '%s' lea lasihan
commands.scoreboard.teams.leave.noTeam=Don it leat joavkkus
commands.scoreboard.teams.list.entry=- %1$s: čájáhusanamma '%2$s', čuojaheaddjit %3$s
commands.scoreboard.teams.list.player.empty=Eai leat čuojaheaddjit joavkkus %s
commands.scoreboard.teams.list.usage=/scoreboard teams list [namma]
commands.scoreboard.teams.option.usage=/scoreboard teams option <team> <friendlyfire|color|seeFriendlyInvisibles|nametagVisibility|deathMessageVisibility> <value>
commands.scoreboard.teams.remove.success=Joavku %s lea sihkkon
commands.seed.success=Seed: %s
commands.setworldspawn.usage=/setworldspawn [<x> <y> <z>]
commands.stats.block.usage=/stats block <x> <y> <z> <mode> ...
commands.testfor.success=%s lea gávdnan
commands.time.query=Diibmu lea %s
commands.title.usage.clear=/title <čuojaheaddji> clear|reset
commands.unban.failed=Ii máhte eahpegieldit čuojaheadji %s
commands.unban.success=Čuojaheaddji %s lea eahpegieldán
commands.unban.usage=/pardon <nama>
commands.unbanip.usage=/pardon-ip <adreassa>
commands.whitelist.add.usage=/whitelist add <čuojaheadji>
commands.whitelist.remove.usage=/whitelist sihko <čuojaheadji>
commands.worldborder.center.usage=/worldborder center <x> <z>
container.enchant.clue=%s . . . ?
container.furnace=Steaikauvdna
container.isLocked=%s lea lohkkadan!
createWorld.customize.custom.confirmTitle=Varuhus!
createWorld.customize.custom.next=Viidáseappot
createWorld.customize.custom.preset.goodLuck=Ollu lihkku
createWorld.customize.custom.preset.isleLand=Sulloeatnan
createWorld.customize.custom.preset.waterWorld=Čázi máilbmi
createWorld.customize.custom.prev=Ruoktu
createWorld.customize.custom.riverSize=Joga sturrodat
createWorld.customize.custom.useCaves=Čiehppasat
createWorld.customize.custom.useLavaLakes=Lava jávrrit
createWorld.customize.custom.useRavines=Ruččut
createWorld.customize.custom.useTemples=Tempelat
createWorld.customize.custom.useVillages=Gávpogat
createWorld.customize.custom.useWaterLakes=Čázi jávrrit
createWorld.customize.flat.height=Allodat
createWorld.customize.flat.layer.bottom=Bodni - %s
createWorld.customize.flat.layer.top=Giera + %s
death.attack.generic=%1$s jámii
deathScreen.score=Čuoggát
deathScreen.title=Don leat jábmi!
demo.day.2=Nubbi beaivi
demo.day.3=Goalmmát beaivi
demo.day.4=Njealját beaivi
demo.day.5=Dát lea du maŋimus beaivi!
demo.help.buy=Oasttát dál!
demo.help.later=Joatkkát ja čuojahat!
disconnect.quitting=Guođđit
disconnect.timeout=Mihkkege vástádus
enchantment.level.1=I
enchantment.level.10=X
enchantment.level.2=II
enchantment.level.3=III
enchantment.level.4=IV
enchantment.level.5=V
enchantment.level.6=VI
enchantment.level.7=VII
enchantment.level.8=VIII
enchantment.level.9=IX
entity.Boat.name=Fanas
entity.Cat.name=Bussá
entity.Chicken.name=Vuonccis
entity.Cow.name=Gussa
entity.Creeper.name=Creeper
entity.EntityHorse.name=Heasta
entity.Item.name=Diŋga
entity.Pig.name=Spiidni
entity.Rabbit.name=Kaniidna
entity.Sheep.name=Sávza
entity.SnowMan.name=Čagigolem
entity.Spider.name=Heavdni
entity.Villager.librarian=Girjerájusbargi
entity.VillagerGolem.name=Ruovddigolem
entity.Wolf.name=Gumpe
entity.Zombie.name=Zombi
entity.generic.name=dovdameahttun
entity.horse.name=Heasta
entity.zombiehorse.name=Zombi heasta
gameMode.adventure=Máinasmodus
gameMode.hardcore=Hardcore-modus!
gui.all=Buot
gui.back=Ruoktu
gui.cancel=Šluhtte
gui.done=Gárvvis
gui.down=vulos
gui.no=Ii
gui.none=Ii mihkkege
gui.stats=Statistihkat
gui.toMenu=Ruoktu váldufálus
gui.up=Bajás
gui.yes=Gal
inventory.binSlot=Billistát diŋgga
item.apple.name=Eappel
item.banner.black.name=Čáhppat leavga
item.banner.blue.name=Alit leavga
item.banner.brown.name=Ruškat leavga
item.banner.gray.name=Ránis leavga
item.banner.green.name=Ruoná leavga
item.banner.mojang.black=Čáhppat ášši
item.banner.mojang.blue=Alit ášši
item.banner.mojang.brown=Ruškat ášši
item.banner.mojang.gray=Ránis ášši
item.banner.mojang.green=Ruoná ášši
item.banner.mojang.orange=Oránša ášši
item.banner.mojang.pink=Guvgesruoksa ášši
item.banner.mojang.purple=Sáhppat ášši
item.banner.mojang.red=Ruoksat ášši
item.banner.mojang.white=Vielgat ášši
item.banner.mojang.yellow=Fiskat ášši
item.banner.orange.name=Oránša leavga
item.banner.pink.name=Guvgesruoksat leavga
item.banner.purple.name=Sáhppat leavga
item.banner.red.name=Ruoksat leavga
item.banner.small_stripes.black=Čáhppat ráidá
item.banner.small_stripes.blue=Alit ráidá
item.banner.small_stripes.brown=Ruškat
ráidá
item.banner.small_stripes.gray=Ránis ráidá
item.banner.small_stripes.green=Ruoná ráidá
item.banner.small_stripes.orange=Oránša ráidá
item.banner.small_stripes.pink=Guvgeruoksat ráidá
item.banner.small_stripes.purple=Sáhppat ráidá
item.banner.small_stripes.red=Ruoksat ráidá
item.banner.small_stripes.white=Vielgat ráidá
item.banner.small_stripes.yellow=Fiskat ráidá
item.banner.straight_cross.black=Čáhppat ruossa
item.banner.straight_cross.blue=Alit ruossa
item.banner.straight_cross.brown=Ruškat ruossa
item.banner.straight_cross.gray=Ránis ruossa
item.banner.straight_cross.green=Ruoná ruossa
item.banner.straight_cross.orange=Oránša ruossa
item.banner.straight_cross.pink=Guvgesruoksat ruossa
item.banner.straight_cross.purple=Sáhppat ruossa
item.banner.straight_cross.red=Ruoksat ruossa
item.banner.straight_cross.white=Vielgat ruossa
item.banner.straight_cross.yellow=Fiskat ruossa
item.banner.white.name=Vielgat leavga
item.banner.yellow.name=Fiskat leavga
item.bed.name=Seaŋga
item.boat.name=Fanas
item.book.name=Girji
item.bow.name=Dávgi
item.bowl.name=Bolljá
item.bread.name=Láibi
item.bucket.name=Skállu
item.bucketLava.name=Lavaskállu
item.bucketWater.name=Čáziskállu
item.cake.name=Gáhkku
item.clay.name=láira
item.cookie.name=Keaksa
item.diamond.name=Diamántta
item.egg.name=Monni
item.feather.name=Dávgi
item.fireworksCharge.black=Čáhppat
item.fireworksCharge.blue=Alit
item.fireworksCharge.gray=Ránis
item.fireworksCharge.green=Ruoná
item.fireworksCharge.orange=Oránša
item.fireworksCharge.red=Ruoksat
item.fireworksCharge.white=Vielgat
item.hatchetDiamond.name=Diamántta-ákšu
item.hatchetGold.name=Golliákšu
item.hatchetIron.name=Ruovddiákšu
item.hatchetStone.name=Geađggiákšu
item.hatchetWood.name=Muorra-ákšu
item.leaves.name=Lasttat
item.map.name=Gárta
item.melon.name=Melovdna
item.milk.name=Mielki
item.paper.name=Bábir
item.pickaxeDiamond.name=Diamánttaguohkki
item.pickaxeGold.name=Golliguohkki
item.pickaxeIron.name=Ruovddiguohkki
item.pickaxeStone.name=Geađggiguohkki
item.pickaxeWood.name=Muorraguohkki
item.potion.name=Juhkamuš
item.record.11.desc=C418 - 11
item.record.13.desc=C418 - 13
item.record.blocks.desc=C418 - blocks
item.record.cat.desc=C418 - cat
item.record.chirp.desc=C418 - chirp
item.record.far.desc=C418 - far
item.record.mall.desc=C418 - mall
item.record.mellohi.desc=C418 - mellohi
item.record.stal.desc=C418 - stal
item.record.strad.desc=C418 - strad
item.record.wait.desc=C418 - wait
item.record.ward.desc=C418 - ward
item.redstone.name=Ruoksatgeađgi
item.saddle.name=Sále
item.sign.name=Galba
item.skull.char.name=Oaivi
item.skull.creeper.name=Creeper oaivi
item.skull.player.name=Čuojaheadji %s oaivi
item.skull.zombie.name=Zombi oaivi
item.stick.name=Sággi
item.sugar.name=Sohkar
item.sulphur.name=Rukta
item.swordDiamond.name=Diamánttamiehkki
item.swordGold.name=Gollimiehkki
item.swordIron.name=Ruovddimiehkki
item.swordStone.name=Geađggimiehkki
item.swordWood.name=Muorramiehkki
itemGroup.combat=Dáistaleapmi
itemGroup.food=Borramuš
itemGroup.redstone= Ruoksatgeađgi
itemGroup.tools=Reaiddut
key.categories.movement=Johtu
key.jump=Njuiket
key.mouseButton=Boallu %1$s
key.playerlist=Čuojaheadjelistu
key.sprint=Viegat
lanServer.title=LAN máilbmi
language.code=sme
language.name=Davvisámegiella
language.region=Sápmi
menu.disconnect=Guođe
menu.options=Heivehusat...
menu.quit=Guođe spealus
menu.returnToGame=Ruoktu spealluin
menu.switchingLevel=Molssut máilmmiid
multiplayer.connect=Čanat
multiplayer.downloadingTerrain=Viežžá eanadaga
multiplayer.player.joined=%s lea laktásan spealu
multiplayer.player.left=%s guđii spealus
multiplayer.stopSleeping=Guođđit seaŋggas
options.ao.off=II ALDE
options.blockAlternatives=Molssoeavttolaččat blohkat
options.chat.color=Ivnnit
options.chat.visibility.hidden=Čiegus
options.chat.width=Viidodat
options.difficulty=Áŧestus
options.difficulty.easy=Geahpas
options.difficulty.hard=Lossat
options.difficulty.hardcore=Hardcore
options.difficulty.normal=Normála
options.difficulty.peaceful= Ráfálaš
options.fov.max=Quake Pro
options.fov.min=Normála
options.graphics=Grafihkka
options.graphics.fancy=Fiinnis
options.graphics.fast=Johtil
options.guiScale.auto=Automáhtalaš
options.guiScale.large=Stuoris
options.guiScale.normal=Normála
options.guiScale.small=Uhcci
options.hidden=Čiegus
options.language=Giella...
options.modelPart.cape=Gákti
options.modelPart.hat=Háhtta
options.modelPart.jacket=Jáhkka
options.music=Musihkka
options.off=II ALDE
options.on=ALDE
options.particles=Partihkalat
options.particles.all=Buot
options.renderClouds=Balvvat
options.renderDistance.far=Viiddis
options.renderDistance.normal=Normála
options.renderDistance.short=Oanehaš
options.renderDistance.tiny=Smávis
options.sensitivity.max=HYPERJOHTIL!!!
options.sound=Jienat
options.sounds=Musihkka ja jienat...
options.stream.bytesPerPixel=Dássu
options.stream.chat.enabled.always=Álo
options.stream.chat.enabled.never=Ii goassige
options.stream.chat.userFilter=Geavaheadjifilttar
options.stream.mic_toggle.mute=Váidudat
options.stream.mic_toggle.talk=Humat
options.title=Heivehusat
potion.damageBoost=Vuoibmi
potion.digSpeed=Hoahppu
potion.hunger=Nealgi
potion.moveSpeed=Johtilvuohta
potion.poison=Mirko
potion.potency.1=II
potion.potency.2=III
potion.potency.3=IV
potion.prefix.mundane=Dábálaš
potion.prefix.uninteresting=Ahkit
selectServer.delete=Sihko
selectServer.deleteButton=Sihko
selectServer.edit=Rievdádeapmi
selectServer.empty=guoros
selectServer.hiddenAddress=(Čiegus)
selectWorld.create=Luova ođđasa máilmmi
selectWorld.delete=Sihko
selectWorld.deleteButton=Sihko
selectWorld.empty=guoros
selectWorld.enterName=Máilmmi namma
selectWorld.gameMode=Spealumodus
selectWorld.gameMode.adventure=Máinnas
selectWorld.gameMode.creative=Kreatiiva
selectWorld.gameMode.hardcore=Hardcore
selectWorld.hardcoreMode=Hardcore:
selectWorld.mapType=Máilmmi tiipa:
selectWorld.mapType.normal=Normála
selectWorld.moreWorldOptions=Eanet máilmmiheivehusat...
selectWorld.newWorld=Ođđa máilbmi
selectWorld.newWorld.copyOf="%s" máŋggus
selectWorld.rename=Attát ođđasa nama
selectWorld.renameButton=Attát ođđasa nama
selectWorld.renameTitle=Attát máilbmái ođđasa nama
selectWorld.title=Vállje máilmmi
selectWorld.world=Máilbmi
soundCategory.block=Blohkat
soundCategory.music=Musihkka
soundCategory.player=Čuojaheaddjit
soundCategory.weather=Dálki
stat.itemsButton=Diŋggat
stream.unavailable.initialization_failure.extra=(Sivva: %s)
stream.unavailable.no_fbo.version=Dál don atnát: %s
stream.unavailable.not_supported.mac.okay=Buoredat
stream.unavailable.report_to_mojang=Dieđihát Mojangai
stream.user.mode.banned=Gieldán
stream.user.mode.banned.other=Gieldán %s gulahallangaskaoamis
stream.user.mode.banned.self=Gieldán du gulahallangaskaoamis
stream.user.mode.broadcaster=Doaimmaheaddji
stream.user.mode.broadcaster.other=Doaimmaheaddji
stream.user.mode.broadcaster.self=Doaimmaheaddji (Don!)
stream.userinfo.ban=Gielddát
stream.userinfo.unban=Eahpegielddát
tile.anvil.intact.name=Stáđđi
tile.anvil.name=Stáđđi
tile.barrier.name=Eastta
tile.bed.name=Seaŋga
tile.blockCoal.name=Hilablohkka
tile.blockDiamond.name=Diamánttablohkka
tile.blockGold.name=Golliblohkka
tile.blockIron.name=Ruovddiblohkka
tile.blockRedstone.name=Ruoksatgeađggiblohkka
tile.brick.name=Tiillat
tile.cake.name=Gáhkku
tile.carrots.name=Rušppit
tile.clay.name=láira
tile.cloth.black.name=Čáhppat ullu
tile.cloth.blue.name=Alit ullu
tile.cloth.brown.name=Ruškat ullu
tile.cloth.gray.name=Ránis ullu
tile.cloth.green.name=Ruoná ullu
tile.cloth.name=Ullu
tile.cloth.orange.name=Oránša ullu
tile.cloth.pink.name=Guvgesruoksat ullu
tile.cloth.purple.name=Sáhppat ullu
tile.cloth.red.name=Ruoksat ullu
tile.cloth.white.name=Ullu
tile.cloth.yellow.name=Fiskat ullu
tile.cocoa.name=Kakáo
tile.dirt.coarse.name=Roavis eana
tile.dirt.default.name=Eana
tile.dirt.name=Eana
tile.doublePlant.name=Šaddu
tile.fire.name=Dolla
tile.flower1.name=Lieđđi
tile.flower2.name=Lieđđi
tile.glass.name=Glássa
tile.gravel.name=Čievra
tile.ice.name=Jiekŋa
tile.lava.name=Lava
tile.leaves.name=Lasttat
tile.litpumpkin.name=Gurbetlikta
tile.log.name=Muorra
tile.melon.name=Melovdna
tile.mushroom.name=Guoppar
tile.potatoes.name=Buđeitad
tile.pumpkin.name=Gurbbet
tile.redSandStone.chiseled.name=Luokčan Ruoksat Sáttogeađgi
tile.redSandStone.default.name=Ruoksat Sáttogeađgi
tile.redSandStone.name=Ruoksat Sáttogeađgi
tile.sand.default.name=Sáttu
tile.sand.name=Sáttu
tile.sand.red.name=Ruoksat sáttu
tile.sandStone.chiseled.name=Luokčan sáttogeađgi
tile.sandStone.default.name=Sáttogeađgi
tile.sandStone.name=Sáttogeađgi
tile.sign.name=Galba
tile.sponge.dry.name=Guopparas
tile.sponge.wet.name=Njuoskkas guopparas
tile.stone.stone.name=Geađgi
tile.tallgrass.grass.name=Rássi
tile.tallgrass.name=Rássi
tile.tallgrass.shrub.name=Miestta
tile.tnt.name=TNT
tile.torch.name=Spáiddar
tile.water.name=Čáhci
tile.woolCarpet.black.name=Čáhppat lávdebeaitta
tile.woolCarpet.blue.name=Alit lávdebeaitta
tile.woolCarpet.brown.name=Ruškat lávdebeaitta
tile.woolCarpet.gray.name=Ránis lávdebeaitta
tile.woolCarpet.green.name=Ruoná lávdebeaitta
tile.woolCarpet.name=Lávdebeaitta
tile.woolCarpet.orange.name=Oránša lávdebeaitta
tile.woolCarpet.pink.name=Guvgesruoksat lávdebeaitta
tile.woolCarpet.purple.name=Sáhppat lávdebeaitta
tile.woolCarpet.red.name=Ruoksat lávdebeaitta
tile.woolCarpet.white.name=Lávdebeaitta
tile.woolCarpet.yellow.name=Fiskat lávdebeaitta

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -69,9 +69,6 @@
<a class="version-link filter-button" href="./eagler-files/wasm/1.8/Main/index.html">
<button>Main 1.8 Client [WASM]</button>
</a>
<a class="version-link filter-button" href="./eagler-files/controller/1.8/Main/index.html">
<button>Main 1.8 Client [Controller]</button>
</a>
<a class="version-link filter-button" href="./eagler-files/1.8/resent4.0/index.html">
<button>Resent Client 4.0</button>
</a>

View File

@ -1,558 +0,0 @@
// This is generally a bad practice, but we need to run scripts in the main context before the DOM loads. Because we are only matching eaglercraft.com, unsafeWindow should be safe to use.
// If someone knows a better way of doing this, please create an issue
try {
unsafeWindow.console.warn("DANGER: This userscript is using unsafeWindow. Unsafe websites could potentially use this to gain access to data and other content that the browser normally wouldn't allow!")
Object.defineProperty(window, "clientWindow", {
value: unsafeWindow
}); // If this is a userscript, use unsafeWindow
} catch {
Object.defineProperty(window, "clientWindow", {
value: window
}); // If this is plain javascript, use window
}
clientWindow.console.log("Eagler Console v1.0.0")
// TODO: remove the mobile check is implement the dynamic enabling and disabling of individual features
function isMobile() {
try {
document.createEvent("TouchEvent");
return true;
} catch (e) {
return false;
}
}
if(!isMobile()) {
alert("WARNING: This script was created for controller use, and it will break functionality for keyboard use!");
}
// TODO: consolidate all of these into a single object?
clientWindow.crouchLock = false; // Used for crouch mobile control
clientWindow.sprintLock = false; // Used for sprint mobile control
clientWindow.keyboardFix = false; // keyboardFix ? "Standard Keyboard" : "Compatibility Mode"
clientWindow.inputFix = false; // If true, Duplicate Mode
clientWindow.blockNextInput = false; // Used for Duplicate Mode
clientWindow.hiddenInputFocused = false; // Used for keyboard display on mobile
clientWindow.canvasTouchMode = 0; // Used for canvas touch handling
/*
0 Idle
1 Touch initiated
2 Primary touch
3 Secondary touch
4 Scroll
5 Finished
*/
clientWindow.canvasTouchStartX = null;
clientWindow.canvasTouchStartY = null;
clientWindow.canvasTouchPreviousX = null;
clientWindow.canvasTouchPreviousY = null;
clientWindow.canvasPrimaryID = null;
clientWindow.buttonTouchStartX = null;
// charCodeAt is designed for unicode characters, and doesn't match the behavior of the keyCodes used by KeyboardEvents, thus necessitating this 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, "\u0060": 192, "[": 219, "\u005C": 220, "]": 221, "\u0022": 222};
return keyCodeList[this];
}
// Overrides the addEventListener behavior to all code injection on keydown event listeners. This function has thrown TypeErrors on some Android devices because fn is not recognized as a function
// This is used by Compatibility Mode to block invalid keyEvents
const _addEventListener = EventTarget.prototype.addEventListener;
Object.defineProperty(EventTarget.prototype, "addEventListener", {
value: function (type, fn, ...rest) {
if(type == 'keydown') { // Check if a keydown event is being added
_addEventListener.call(this, type, function(...args) {
if(args[0].isTrusted && clientWindow.keyboardFix) { // When we are in compatibility mode, we ignore all trusted keyboard events
return;
}
return fn.apply(this, args); // Appends the rest of the function specified by addEventListener
}, ...rest);
} else { // If it's not a keydown event, behave like normal (hopefully)
_addEventListener.call(this, type, fn, ...rest);
}
}
});
// Overrides preventDefault, because on some (Android) devices you couldn't type into hiddenInput
const _preventDefault = Event.prototype.preventDefault;
Event.prototype.preventDefault = function(shouldBypass) {
if(document.activeElement.id != "hiddenInput" || shouldBypass) { // activeElement is what element is currently focused
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
});
clientWindow.dispatchEvent(evt);
}
function mouseEvent(number, state, element, event = {"clientX": 0, "clientY" : 0, "screenX": 0, "screenY": 0}) {
element.dispatchEvent(new PointerEvent(state, {
"button": number,
"buttons": number,
"clientX": event.clientX,
"clientY" : event.clientY,
"screenX": event.screenX,
"screenY": event.screenY
}));
}
function wheelEvent(element, delta) {
element.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 clientWindow.fakelock, and unhides the touch controls
clientWindow.fakelock = null;
Object.defineProperty(Element.prototype, "requestPointerLock", {
value: function() {
clientWindow.fakelock = this
document.dispatchEvent(new Event('pointerlockchange'));
setButtonVisibility(true);
return true
}
});
// Makes pointerLockElement return clientWindow.fakelock
Object.defineProperty(Document.prototype, "pointerLockElement", {
get: function() {
return clientWindow.fakelock;
}
});
// When exitPointerLock is called, this dispatches an event, clears the
Object.defineProperty(Document.prototype, "exitPointerLock", {
value: function() {
clientWindow.fakelock = null
document.dispatchEvent(new Event('pointerlockchange'));
setButtonVisibility(false);
return true
}
});
// FULLSCREEN
clientWindow.fakefull = null;
// Stops the client from crashing when fullscreen is requested
Object.defineProperty(Element.prototype, "requestFullscreen", {
value: function() {
clientWindow.fakefull = this
document.dispatchEvent(new Event('fullscreenchange'));
return true
}
});
Object.defineProperty(document, "fullscreenElement", {
get: function() {
return clientWindow.fakefull;
}
});
Object.defineProperty(Document.prototype, "exitFullscreen", {
value: function() {
clientWindow.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) { // We set the ingore flag to true when we create the hiddenInput
document.querySelectorAll('#fileUpload').forEach(e => e.parentNode.removeChild(e)); // Get rid of any left over fileUpload inputs
element.id = "fileUpload";
element.addEventListener('change', function(e) {
element.hidden = true;
element.style.display = "none";
}, {passive: false, once: true});
clientWindow.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 and creates buttons
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);
touchButton.addEventListener("contextmenu", function(e){e.preventDefault()});
return touchButton;
}
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("touchstart", function(e) {
if(clientWindow.canvasTouchMode < 2) { // If a touch is initiated but not assigned
if(clientWindow.canvasPrimaryID == null) {
clientWindow.canvasTouchMode = 1;
const primaryTouch = e.changedTouches[0];
clientWindow.canvasPrimaryID = primaryTouch.identifier
canvasTouchStartX = primaryTouch.clientX;
canvasTouchStartY = primaryTouch.clientY;
canvasTouchPreviousX = canvasTouchStartX
canvasTouchPreviousY = canvasTouchStartY
clientWindow.touchTimer = setTimeout(function(e) {
// If our touch is still set to initiaited, set it to secondary touch
if(clientWindow.canvasTouchMode == 1) {
clientWindow.canvasTouchMode = 3;
mouseEvent(2, "mousedown", canvas, primaryTouch)
if(clientWindow.fakelock) { // We only dispatch mouseup inGame because we want to be able to click + drag items in GUI's
mouseEvent(2, "mouseup", canvas, primaryTouch)
}
}
}, 300);
} else if(clientWindow.canvasTouchMode == 1 && !clientWindow.fakelock) { // If we already have a primary touch, it means we're using two fingers
clientWindow.canvasTouchMode = 4;
clearTimeout(clientWindow.crouchTimer); // TODO: Find out why this isn't redudnant
}
}
}, false);
canvas.addEventListener("touchmove", function(e) {
e.preventDefault() // Prevents window zoom when using two fingers
var primaryTouch;
for (let touchIndex = 0; touchIndex < e.targetTouches.length; touchIndex++) { // Iterate through our touches to find a touch event matching the primary touch ID
if(e.targetTouches[touchIndex].identifier == clientWindow.canvasPrimaryID) {
primaryTouch = e.targetTouches[touchIndex];
break;
}
}
if(primaryTouch) {
primaryTouch.distanceX = primaryTouch.clientX - canvasTouchStartX;
primaryTouch.distanceY = primaryTouch.clientY - canvasTouchStartY;
primaryTouch.squaredNorm = (primaryTouch.distanceX * primaryTouch.distanceX) + (primaryTouch.distanceY * primaryTouch.distanceY);
primaryTouch.movementX = primaryTouch.clientX - canvasTouchPreviousX;
primaryTouch.movementY = primaryTouch.clientY - canvasTouchPreviousY;
if(clientWindow.canvasTouchMode == 1) { // If the primary touch is still only initiated
if (primaryTouch.squaredNorm > 25) { // If our touch becomes a touch + drag
clearTimeout(clientWindow.crouchTimer);
clientWindow.canvasTouchMode = 2;
if(!clientWindow.fakelock) { // When we're inGame, we don't want to be placing blocks when we are moving the camera around
mouseEvent(1, "mousedown", canvas, primaryTouch);
}
}
} else { // If our touch is primary, secondary, scroll or finished
if(clientWindow.canvasTouchMode == 4) { // If our touch is scrolling
wheelEvent(canvas, primaryTouch.movementY)
} else {
canvas.dispatchEvent(new MouseEvent("mousemove", {
"clientX": primaryTouch.clientX,
"clientY": primaryTouch.clientY,
"screenX": primaryTouch.screenX,
"screenY": primaryTouch.screenY, // The top four are used for item position when in GUI's, the bottom two are for moving the camera inGame
"movementX": primaryTouch.movementX,
"movementY": primaryTouch.movementY
}));
}
}
canvasTouchPreviousX = primaryTouch.clientX
canvasTouchPreviousY = primaryTouch.clientY
}
}, false);
function canvasTouchEnd(e) {
for(let touchIndex = 0; touchIndex < e.changedTouches.length; touchIndex++) { // Iterate through changed touches to find primary touch
if(e.changedTouches[touchIndex].identifier == clientWindow.canvasPrimaryID) {
let primaryTouch = e.changedTouches[touchIndex]
// When any of the controlling fingers go away, we want to wait until we aren't receiving any other touch events
if(clientWindow.canvasTouchMode == 2) {
mouseEvent(1, "mouseup", canvas, primaryTouch)
} else if (clientWindow.canvasTouchMode == 3) {
e.preventDefault(); // This prevents some mobile devices from dispatching a mousedown + mouseup event after a touch is ended
mouseEvent(2, "mouseup", canvas, primaryTouch)
}
clientWindow.canvasTouchMode = 5;
}
}
if(e.targetTouches.length == 0) { // We want to wait until all fingers are off the canvas before we reset for the next cycle
clientWindow.canvasTouchMode = 0;
clientWindow.canvasPrimaryID = null;
}
}
canvas.addEventListener("touchend", canvasTouchEnd, false);
canvas.addEventListener("touchcancel", canvasTouchEnd, false); // TODO: Find out why this is different than touchend
setButtonVisibility(clientWindow.fakelock != null); //Updates our mobile controls when the canvas finally loads
// All of the touch buttons
let controllerIndex = null;
let jleftPressed = false;
let jrightPressed = false;
let jupPressed = false;
let jdownPressed = false;
let leftPressed = false;
let rightPressed = false;
let upPressed = false;
let downPressed = false;
let bluePressed = false;
let yellowPressed = false;
let redPressed = false;
let greenPressed = false;
let pausePressed = false;
let selectPressed = false;
let lbPressed = false;
let rbPressed = false;
let ltPressed = false;
let rtPressed = false;
let ljsPressed = false;
let rjsPressed = false;
let perspective=false;
let debug=false;
let drop=false;
let chat=false;
let jump=false;
let inventory1=false;
let inventory2=false;
let lefthotbar=false;
let righthotbar=false;
let pause=false;
let players=false;
let rHorizontalValue = 0;
let rVerticalValue = 0;
window.addEventListener("gamepadconnected", (event) => {
controllerIndex = event.gamepad.index;
console.log("Controller Connected!");
});
window.addEventListener("gamepaddisconnected", (event) => {
console.log("Controller Disconnected!");
controllerIndex = null;
});
function controllerInput() {
if (controllerIndex !== null) {
const gamepad = navigator.getGamepads()[controllerIndex];
const buttons = gamepad.buttons;
const stickDeadZone = 0.4;
// Left joystick axes (used for player movement)
const leftRightValue = gamepad.axes[0];
const upDownValue = gamepad.axes[1];
// Right joystick axes (used for camera rotation)
rHorizontalValue = gamepad.axes[2]; // Horizontal movement of right joystick
rVerticalValue = gamepad.axes[3]; // Vertical movement of right joystick
// Handle left joystick
if (leftRightValue >= stickDeadZone) {
jrightPressed = true;
} else if (leftRightValue <= stickDeadZone) {
jrightPressed = false;
}
if (leftRightValue <= -stickDeadZone) {
jleftPressed = true;
} else if (leftRightValue >= -stickDeadZone) {
jleftPressed = false;
}
if (upDownValue >= stickDeadZone) {
jdownPressed = true;
} else if (upDownValue <= stickDeadZone) {
jdownPressed = false;
}
if (upDownValue <= -stickDeadZone) {
jupPressed = true;
} else if (upDownValue >= -stickDeadZone) {
jupPressed = false;
}
// Handle button presses
greenPressed = buttons[0].pressed;
redPressed = buttons[1].pressed;
bluePressed = buttons[2].pressed;
yellowPressed = buttons[3].pressed;
lbPressed = buttons[4].pressed;
rbPressed = buttons[5].pressed;
ltPressed = buttons[6].pressed;
rtPressed = buttons[7].pressed;
selectPressed = buttons[8].pressed;
pausePressed = buttons[9].pressed;
ljsPressed = buttons[10].pressed;
rjsPressed = buttons[11].pressed;
upPressed = buttons[12].pressed;
downPressed = buttons[13].pressed;
leftPressed = buttons[14].pressed;
rightPressed = buttons[15].pressed;
}
}
function rotateCamera() {
const sensitivity = 25;
if (rHorizontalValue !== 0 || rVerticalValue !== 0) {
let movementX = rHorizontalValue * sensitivity;
let movementY = rVerticalValue * sensitivity;
let canvas = document.querySelector('canvas');
canvas.dispatchEvent(new MouseEvent("mousemove", {
"movementX": movementX,
"movementY": movementY
}));
}
}
function movePlayer() {
if (jupPressed) {console.log("W");keyEvent("w", "keydown");}
else if (!jupPressed) {keyEvent("w", "keyup");}
if (jleftPressed) {console.log("A");keyEvent("a", "keydown");}
else if (!jleftPressed) {keyEvent("a", "keyup");}
if (jdownPressed) {console.log("S");keyEvent("s", "keydown");}
else if (!jdownPressed) {keyEvent("s", "keyup");}
if (jrightPressed) {console.log("D");keyEvent("d", "keydown");}
else if (!jrightPressed) {keyEvent("d", "keyup");}
if (greenPressed && jump) {console.log("Spacebar");keyEvent(" ", "keydown");jump=false;}
else if (!greenPressed) {keyEvent(" ", "keyup");jump=true;}
if (redPressed) {console.log("Crouch1");keyEvent("shift", "keydown");}
else if (!redPressed) {keyEvent("shift", "keyup");}
if (bluePressed && inventory1) {console.log("Inventory1");keyEvent("e", "keydown");inventory1=false;}
else if (!bluePressed) {keyEvent("e", "keyup");inventory1=true;}
if (yellowPressed && inventory2) {console.log("Inventory2");keyEvent("e", "keydown");inventory2=false;}
else if (!yellowPressed) {keyEvent("e", "keyup");inventory2=true;}
if (lbPressed && lefthotbar) {console.log("Left1");wheelEvent(canvas, 10);lefthotbar=false;}
else if (!lbPressed) {lefthotbar=true;}
if (rbPressed && righthotbar) {console.log("Right1");wheelEvent(canvas, -10);righthotbar=false;}
else if (!rbPressed) {righthotbar=true;}
if (ltPressed) {console.log("Place");mouseEvent(2, "mousedown", canvas)}
else if (!ltPressed) {mouseEvent(2, "mouseup", canvas)}
if (rtPressed) {console.log("Break");mouseEvent(0, "mousedown", canvas)}
else if (!rtPressed) {mouseEvent(0, "mouseup", canvas)}
if (pausePressed && pause) {console.log("Pause");keyEvent("`", "keydown");pause=false;}
else if (!pausePressed) {keyEvent("`", "keyup");pause=true;}
if (selectPressed && players) {console.log("Tab");keyEvent("tab", "keydown");players=false;}
else if (!selectPressed) {keyEvent("Tab", "keyup");players=true;}
if (ljsPressed) {console.log("Sprint");keyEvent("r", "keydown");}
else if (!ljsPressed) {keyEvent("r", "keyup");}
if (rjsPressed) {console.log("Crouch2");keyEvent("shift", "keydown");}
else if (!rjsPressed) {keyEvent("shift", "keyup");}
if (upPressed && perspective) {console.log("Perspective");keyEvent("f5", "keydown");perspective=false;}
else if (!upPressed && !perspective) {keyEvent("f5", "keyup");perspective=true;}
if (leftPressed && debug) {console.log("Debug");keyEvent("f3", "keydown");debug=false;}
else if (!leftPressed) {keyEvent("f3", "keyup");debug=true;}
if (downPressed && drop) {console.log("Drop");keyEvent("q", "keydown");drop=false;}
else if (!downPressed) {keyEvent("q", "keyup");drop=true;}
if (rightPressed && chat) {console.log("Chat");keyEvent("t", "keydown");chat=false;}
else if (!rightPressed) {keyEvent("t", "keyup");chat=true;}
}
function gameLoop() {
rotateCamera();
controllerInput();
movePlayer();
requestAnimationFrame(gameLoop);
}
gameLoop();
}
// 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 = `
html, body, canvas {
height: 100svh !important;
height: -webkit-fill-available !important;
touch-action: pan-x pan-y;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
.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);
}
`;
document.documentElement.appendChild(customStyle);