Compare commits

...

3 Commits

Author SHA1 Message Date
PrestonT500
258b7e7ffe Added EaglyMC Clients (JS+WASM) 2024-12-19 07:29:36 -08:00
PrestonT500
46197d331c stuff2 2024-12-19 07:23:49 -08:00
PrestonT500
141fcca089 stuff 2024-12-19 07:22:30 -08:00
101 changed files with 223747 additions and 1 deletions

View File

@ -0,0 +1,41 @@
(function(_jsGlobal){try {(function(){var namedFunction=function(name,body){if(typeof body==="function"){try {Object.defineProperty(body,"name",{configurable:true,enumerable:false,writable:false,value:name});}catch(ex){}}return body;};var enabledShims=[];var collectionsShimImpl=function(){var i;var createCollection=function(proto,objectOnly){var Collection=namedFunction("Collection",function(a){if(!this||this.constructor!==Collection)return new Collection(a);Object.defineProperty(this,
"_keys",{value:[]});Object.defineProperty(this,"_values",{value:[]});Object.defineProperty(this,"_itp",{value:[]});Object.defineProperty(this,"objectOnly",{value:objectOnly});if(a)init.call(this,a);});if(!objectOnly){Object.defineProperty(proto,"size",{get:sharedSize});}proto.constructor=Collection;for(var k in proto){Object.defineProperty(Collection.prototype,k,{value:proto[k]});}return Collection;};var init=function(a){if(this.add)a.forEach(this.add,this);else a.forEach(function(a){this.set(a[0],a[1]);},this);};var sharedDelete
=function(key){if(this.has(key)){this._keys.splice(i,1);this._values.splice(i,1);this._itp.forEach(function(p){if(i<p[0])p[0]--;});}return -1<i;};var sharedGet=namedFunction("get",function(key){return this.has(key)?this._values[i]:$rt_globals.undefined;});var has=namedFunction("has",function(list,key){if(this.objectOnly&&key!==Object(key))throw new $rt_globals.TypeError("Invalid value used as weak collection key");if(key!=key||key===0)for(i=list.length;i--&&!$rt_globals.is(list[i],key);){}else i=list.indexOf(key);return -1
<i;});var setHas=namedFunction("has",function(value){return has.call(this,this._values,value);});var mapHas=namedFunction("has",function(value){return has.call(this,this._keys,value);});var sharedSet=namedFunction("set",function(key,value){this.has(key)?(this._values[i]=value):(this._values[this._keys.push(key) -1]=value);return this;});var sharedAdd=namedFunction("add",function(value){if(!this.has(value))this._values.push(value);return this;});var sharedClear=namedFunction("clear",function(){(this._keys||0).length
=this._values.length=0;});var sharedKeys=namedFunction("keys",function(){return sharedIterator(this._itp,this._keys);});var sharedValues=namedFunction("values",function(){return sharedIterator(this._itp,this._values);});var mapEntries=namedFunction("entries",function(){return sharedIterator(this._itp,this._keys,this._values);});var setEntries=namedFunction("entries",function(){return sharedIterator(this._itp,this._values,this._values);});var sharedIterator=function(itp,array,array2){var p=[0],done=false;itp.push(p);return {
next:function(){var v,k=p[0];if(!done&&k<array.length){v=array2?[array[k],array2[k]]:array[k];p[0]++;}else {done=true;itp.splice(itp.indexOf(p),1);}return {done:done,value:v};}};};var sharedSize=namedFunction("size",function(){return this._values.length;});var sharedForEach=namedFunction("forEach",function(callback,context){var it=this.entries();for(;;){var r=it.next();if(r.done)break;callback.call(context,r.value[1],r.value[0],this);}});return {createCollection:createCollection,init:init,sharedDelete:sharedDelete,
sharedGet:sharedGet,has:has,setHas:setHas,mapHas:mapHas,sharedSet:sharedSet,sharedAdd:sharedAdd,sharedClear:sharedClear,sharedKeys:sharedKeys,sharedValues:sharedValues,mapEntries:mapEntries,setEntries:setEntries,sharedIterator:sharedIterator,sharedSize:sharedSize,sharedForEach:sharedForEach};}();var shim_Map=function(){if(typeof $rt_globals.Map==="undefined"||typeof (new $rt_globals.Map()).values!=="function"||!((new $rt_globals.Map()).values()).next){Object.defineProperty(_jsGlobal,"Map",{value:namedFunction("Map",
collectionsShimImpl.createCollection({'delete':collectionsShimImpl.sharedDelete,has:collectionsShimImpl.mapHas,get:collectionsShimImpl.sharedGet,set:collectionsShimImpl.sharedSet,keys:collectionsShimImpl.sharedKeys,values:collectionsShimImpl.sharedValues,entries:collectionsShimImpl.mapEntries,forEach:collectionsShimImpl.sharedForEach,clear:collectionsShimImpl.sharedClear}))});return true;}else {return false;}};var shim_WeakMap=function(){if(typeof $rt_globals.WeakMap==="undefined"){Object.defineProperty(_jsGlobal,
"WeakMap",{value:namedFunction("WeakMap",collectionsShimImpl.createCollection({'delete':collectionsShimImpl.sharedDelete,clear:collectionsShimImpl.sharedClear,get:collectionsShimImpl.sharedGet,has:collectionsShimImpl.mapHas,set:collectionsShimImpl.sharedSet}))});return true;}else {return false;}};var shim_Set=function(){if(typeof $rt_globals.Set==="undefined"||typeof (new $rt_globals.Set()).values!=="function"||!((new $rt_globals.Set()).values()).next){Object.defineProperty(_jsGlobal,"Set",{value:namedFunction("Set",
collectionsShimImpl.createCollection({has:collectionsShimImpl.setHas,add:collectionsShimImpl.sharedAdd,'delete':collectionsShimImpl.sharedDelete,clear:collectionsShimImpl.sharedClear,keys:collectionsShimImpl.sharedValues,values:collectionsShimImpl.sharedValues,entries:collectionsShimImpl.setEntries,forEach:collectionsShimImpl.sharedForEach}))});return true;}else {return false;}};var shim_WeakSet=function(){if(typeof $rt_globals.WeakSet==="undefined"){Object.defineProperty(_jsGlobal,"WeakSet",{value:namedFunction("WeakSet",
collectionsShimImpl.createCollection({'delete':collectionsShimImpl.sharedDelete,add:collectionsShimImpl.sharedAdd,clear:collectionsShimImpl.sharedClear,has:collectionsShimImpl.setHas}))});return true;}else {return false;}};var createPromiseShim=function(){var PROMISE_ID="[["+(($rt_globals.Math.random()).toString(36)).substring(2)+"]]";var PENDING=void 0;var FULFILLED=1;var REJECTED=2;var _qlen=0;var msgChannel=null;var useLegacyFlush=false;var isFlushTest=false;var queue=new $rt_globals.Array(1000);var _noop
=function(){};var _initMessageChannelFlush=function(flushFunc){if(typeof $rt_globals.MessageChannel==="undefined"){useLegacyFlush=true;$rt_globals.setTimeout(flushFunc,0);return;}isFlushTest=true;try {msgChannel=new $rt_globals.MessageChannel();var testVal=false;var _flushTest=function(){testVal=true;};msgChannel.port1.addEventListener("message",_flushTest);msgChannel.port1.start();msgChannel.port2.start();msgChannel.port2.postMessage("");if(testVal){msgChannel=null;useLegacyFlush=true;isFlushTest=false;$rt_globals.setTimeout(flushFunc,
0);return;}$rt_globals.setTimeout(function(){msgChannel.port1.removeEventListener("message",_flushTest);if(!testVal){msgChannel=null;useLegacyFlush=true;}else {msgChannel.port1.addEventListener("message",flushFunc);}isFlushTest=false;flushFunc();},10);}catch(ex){msgChannel=null;useLegacyFlush=true;isFlushTest=false;$rt_globals.setTimeout(flushFunc,0);return;}};var _scheduleFlush=function(){if(useLegacyFlush||isFlushTest){$rt_globals.setTimeout(_flush,0);}else {if(msgChannel===null){_initMessageChannelFlush(_flush);return;}msgChannel.port2.postMessage("");}};var _flush
=function(){for(var i=0;i<_qlen;i+=2){var callback=queue[i];var arg=queue[i+1];callback(arg);queue[i]=$rt_globals.undefined;queue[i+1]=$rt_globals.undefined;}_qlen=0;};var _asap=function(callback,arg){queue[_qlen]=callback;queue[_qlen+1]=arg;_qlen+=2;if(_qlen===2){_scheduleFlush();}};var _handleForeignThenable=function(promise,thenable,then$$1){_asap(function(promise){var sealed=false;var error=_tryThen(then$$1,thenable,function(value){if(sealed){return;}sealed=true;if(thenable!==value){__resolve(promise,value);}
else {_fulfill(promise,value);}},function(reason){if(sealed){return;}sealed=true;_reject(promise,reason);},"Settle: "+(promise._label||" unknown promise"));if(!sealed&&error){sealed=true;_reject(promise,error);}},promise);};var _tryThen=function(then$$1,value,fulfillmentHandler,rejectionHandler){try {then$$1.call(value,fulfillmentHandler,rejectionHandler);}catch(e){return e;}};var _handleOwnThenable=function(promise,thenable){if(thenable._state===FULFILLED){_fulfill(promise,thenable._result);}else if(thenable._state
===REJECTED){_reject(promise,thenable._result);}else {_subscribe(thenable,$rt_globals.undefined,function(value){return __resolve(promise,value);},function(reason){return _reject(promise,reason);});}};var _handleMaybeThenable=function(promise,maybeThenable,then$$1){if(maybeThenable.constructor===promise.constructor&&then$$1===_then&&maybeThenable.constructor.resolve===_resolve){_handleOwnThenable(promise,maybeThenable);}else {if(then$$1===$rt_globals.undefined){_fulfill(promise,maybeThenable);}else if(typeof then$$1
==="function"){_handleForeignThenable(promise,maybeThenable,then$$1);}else {_fulfill(promise,maybeThenable);}}};var __resolve=function(promise,value){if(promise===value){_reject(promise,new $rt_globals.TypeError("You cannot resolve a promise with itself"));}else if(typeof value==="object"||typeof value==="function"){var then$$1=void 0;try {then$$1=value.then;}catch(error){_reject(promise,error);return;}_handleMaybeThenable(promise,value,then$$1);}else {_fulfill(promise,value);}};var _reject=function(promise,
reason){if(promise._state!==PENDING){return;}promise._state=REJECTED;promise._result=reason;_asap(_publishRejection,promise);};var _subscribe=function(parent,child,onFulfillment,onRejection){var _subscribers=parent._subscribers;var length=_subscribers.length;parent._onerror=null;_subscribers[length]=child;_subscribers[length+FULFILLED]=onFulfillment;_subscribers[length+REJECTED]=onRejection;if(length===0&&parent._state){_asap(_publish,parent);}};var _publish=function(promise){var subscribers=promise._subscribers;var settled
=promise._state;if(subscribers.length===0){return;}var child=void 0,callback=void 0,detail=promise._result;for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];if(child){_invokeCallback(settled,child,callback,detail);}else {callback(detail);}}promise._subscribers.length=0;};var _publishRejection=function(promise){if(promise._onerror){promise._onerror(promise._result);}_publish(promise);};var _fulfill=function(promise,value){if(promise._state!==PENDING){return;}promise._result
=value;promise._state=FULFILLED;if(promise._subscribers.length!==0){_asap(_publish,promise);}};var _invokeCallback=function(settled,promise,callback,detail){var hasCallback=typeof callback==="function",value=void 0,error=void 0,succeeded=true;if(hasCallback){try {value=callback(detail);}catch(e){succeeded=false;error=e;}if(promise===value){_reject(promise,new $rt_globals.TypeError("A promises callback cannot return that same promise."));return;}}else {value=detail;}if(promise._state!==PENDING){}else if(hasCallback
&&succeeded){__resolve(promise,value);}else if(succeeded===false){_reject(promise,error);}else if(settled===FULFILLED){_fulfill(promise,value);}else if(settled===REJECTED){_reject(promise,value);}};var _initializePromise=function(promise,resolver){try {resolver(function(value){__resolve(promise,value);},function(reason){_reject(promise,reason);});}catch(e){_reject(promise,e);}};var id=0;var _nextId=function(){return id++;};var _makePromise=function(promise){promise[PROMISE_ID]=id++;promise._state=$rt_globals.undefined;promise._result
=$rt_globals.undefined;promise._subscribers=[];};var Promise;Promise=namedFunction("Promise",function(resolver){this[PROMISE_ID]=_nextId();this._result=this._state=$rt_globals.undefined;this._subscribers=[];if(_noop!==resolver){typeof resolver!=='function'&&$rt_globals._needsResolver();this instanceof Promise?_initializePromise(this,resolver):$rt_globals._needsNew();}});var _then=namedFunction("then",function(onFulfillment,onRejection){var parent=this;var child=new this.constructor(_noop);if(child[PROMISE_ID]
===$rt_globals.undefined){_makePromise(child);}var _state=parent._state;if(_state){var callback=arguments[_state -1];_asap(function(){return _invokeCallback(_state,child,callback,parent._result);});}else {_subscribe(parent,child,onFulfillment,onRejection);}return child;});Promise.prototype.then=_then;Promise.prototype.catch=namedFunction("catch",function(onRejection){return this.then(null,onRejection);});Promise.prototype.finally=namedFunction("finally",function(callback){var promise=this;var constructor=promise.constructor;if
(typeof callback==="function"){return promise.then(function(value){return (constructor.resolve(callback())).then(function(){return value;});},function(reason){return (constructor.resolve(callback())).then(function(){throw reason;});});}return promise.then(callback,callback);});Promise.all=namedFunction("all",function(entries){throw new $rt_globals.Error("Promise.all is not included in the ES6 compatibility shim!");});Promise.race=namedFunction("race",function(entries){var Constructor=this;if(!$rt_globals.Array.isArray(entries))
{return new Constructor(function(_,reject){return reject(new $rt_globals.TypeError("You must pass an array to race."));});}else {return new Constructor(function(resolve,reject){var length=entries.length;for(var i=0;i<length;i++){(Constructor.resolve(entries[i])).then(resolve,reject);}});}});var _resolve=namedFunction("resolve",function(object){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object;}var promise=new Constructor(_noop);__resolve(promise,object);return promise;});Promise.resolve
=_resolve;Promise.reject=namedFunction("reject",function(reason){var Constructor=this;var promise=new Constructor(_noop);_reject(promise,reason);return promise;});return Promise;};var shim_Promise=function(){if(typeof Promise==="undefined"){Object.defineProperty(_jsGlobal,"Promise",{value:createPromiseShim()});return true;}else {return false;}};var shim_String_fromCodePoint=function(){if(typeof $rt_globals.String.fromCodePoint==="undefined"){Object.defineProperty($rt_globals.String,"fromCodePoint",{value:namedFunction("fromCodePoint",
function(codePoints){var result=[];var next;for(var i=0,length=arguments.length;i<length;i++){next=$rt_globals.Number(arguments[i]);if(next!==(next|0)||next<0||next>0x10FFFF){throw new $rt_globals.RangeError("Invalid code point "+next);}if(next<0x10000){result.push($rt_globals.String.fromCharCode(next));}else {next -=0x10000;result.push($rt_globals.String.fromCharCode((next>>10)+0xD800));result.push($rt_globals.String.fromCharCode(next%0x400+0xDC00));}}return result.join("");})});return true;}else {return false;}};var shim_String_proto_codePointAt
=function(){if(typeof $rt_globals.String.prototype.codePointAt==="undefined"){Object.defineProperty($rt_globals.String.prototype,"codePointAt",{value:namedFunction("codePointAt",function(pos){pos=pos|0;var leng=this.length;if(pos>=0&&pos<leng){var first=this.charCodeAt(pos);var isEnd=pos+1===leng;if(first<0xD800||first>0xDBFF||isEnd){return first;}var second=this.charCodeAt(pos+1);if(second<0xDC00||second>0xDFFF){return first;}return (first -0xD800)*1024+second -0xDC00+0x10000;}})});return true;}else {return false;}};var shim_String_proto_startsWith
=function(){if(typeof $rt_globals.String.prototype.startsWith==="undefined"){Object.defineProperty($rt_globals.String.prototype,"startsWith",{value:namedFunction("startsWith",function(str){var position=0;if(arguments.length>1){position=arguments[1];}var start=$rt_globals.Math.max(position,0)|0;return this.slice(start,start+str.length)===str;})});return true;}else {return false;}};var shim_String_proto_endsWith=function(){if(typeof $rt_globals.String.prototype.endsWith==="undefined"){Object.defineProperty($rt_globals.String.prototype,
"endsWith",{value:namedFunction("endsWith",function(str){var len=this.length;var endPosition;if(arguments.length>1){endPosition=arguments[1];}var pos=typeof endPosition==="undefined"?len:endPosition|0;var end=$rt_globals.Math.min($rt_globals.Math.max(pos,0)|0,len);return this.slice(end -str.length,end)===str;})});return true;}else {return false;}};var shim_String_proto_includes=function(){if(typeof $rt_globals.String.prototype.includes==="undefined"){Object.defineProperty($rt_globals.String.prototype,"includes",
{value:namedFunction("includes",function(str){var position;if(arguments.length>1){position=arguments[1];}return this.indexOf(str,position)!== -1;})});return true;}else {return false;}};var stringRepeatHelper;stringRepeatHelper=function(s,times){if(times<1){return '';}if(times%2){return stringRepeatHelper(s,times -1)+s;}var half=stringRepeatHelper(s,times/2);return half+half;};var shim_String_proto_repeat=function(){if(typeof $rt_globals.String.prototype.repeat==="undefined"){Object.defineProperty($rt_globals.String.prototype,
"repeat",{value:namedFunction("repeat",function(numTimes){if(numTimes>=$rt_globals.Infinity||(numTimes|=0)<0){throw new $rt_globals.RangeError("repeat count must be less than infinity and not overflow maximum string size");}return stringRepeatHelper(this,numTimes);})});return true;}else {return false;}};var shim_Object_is=function(){if(typeof Object.is==="undefined"){Object.defineProperty(Object,"is",{value:namedFunction("is",function(a,b){return a===b||a!==a&&b!==b;})});return true;}else {return false;}};var shim_Object_setPrototypeOf
=function(){if(typeof Object.setPrototypeOf==="undefined"){var theShim=function(Object,magic){var set;var checkArgs=function(O,proto){if(typeof O!=="object"||O===null){throw new $rt_globals.TypeError("can not set prototype on a non-object");}if(typeof proto!=="object"&&proto!==null){throw new $rt_globals.TypeError("can only set prototype to an object or null");}};var setPrototypeOf=function(O,proto){checkArgs(O,proto);set.call(O,proto);return O;};try {set=(Object.getOwnPropertyDescriptor(Object.prototype,magic)).set;set.call({
},null);}catch(o_O){if(Object.prototype!=={}[magic]||{__proto__:null}.__proto__===void 0){$rt_globals.console.error("ES6Shims: Can not shim Object.setPrototypeOf on this browser! Ignoring for now");return false;}set=function(proto){this[magic]=proto;};}return setPrototypeOf;}(Object,"__proto__");if(theShim){Object.defineProperty(Object,"setPrototypeOf",{value:namedFunction("setPrototypeOf",theShim)});return true;}else {return false;}}else {return false;}};var shim_Function_proto_name=function(){if($rt_globals.Math.max.name
!=="max"){Object.defineProperty($rt_globals.Function.prototype,"name",{configurable:true,enumerable:false,get:function(){if(this===$rt_globals.Function.prototype){return "";}var str=$rt_globals.Function.prototype.toString.call(this);var match=str.match(/\s*function\s+([^(\s]*)\s*/);var name=match&&match[1];Object.defineProperty(this,"name",{configurable:true,enumerable:false,writable:false,value:name});return name;}});return true;}else {return false;}};var shim_Math_sign=function(){if(typeof $rt_globals.Math.sign
==="undefined"){Object.defineProperty($rt_globals.Math,"sign",{value:namedFunction("sign",function(val){var number=$rt_globals.Number(val);if(number===0){return number;}if($rt_globals.isNaN(number)){return number;}return number<0? -1:1;})});return true;}else {return false;}};var shim_Symbol=function(){if(typeof $rt_globals.Symbol==="undefined"){Object.defineProperty(_jsGlobal,"Symbol",{value:function(){var symRet=namedFunction("Symbol",function(){return "[[ShimbolR_"+(($rt_globals.Math.random()).toString(36)).substring(2)
+"]]";});symRet.for=namedFunction("for",function(symName){if(!(typeof symName==="string"))return $rt_globals.undefined;return "[[ShimbolN_"+symName+"]]";});symRet.keyFor=namedFunction("keyFor",function(sym){return typeof sym==="string"&&sym.startsWith("[[ShimbolN_")&&sym.endsWith("]]")?sym.substring(11,sym.length -2):$rt_globals.undefined;});return symRet;}()});return true;}else {return false;}};var hasErrors=false;var shim_install=function(str,cb){try {return cb();}catch(_exx_){hasErrors=true;$rt_globals.console.error("ES6Shims: Failed to detect and enable shim \""
+str+"\" for this browser! (Continuing anyway)");$rt_globals.console.error(_exx_);return false;}};if(shim_install("Map",shim_Map))enabledShims.push(0);if(shim_install("WeakMap",shim_WeakMap))enabledShims.push(1);if(shim_install("Set",shim_Set))enabledShims.push(2);if(shim_install("WeakSet",shim_WeakSet))enabledShims.push(3);if(shim_install("Promise",shim_Promise))enabledShims.push(4);if(shim_install("String_fromCodePoint",shim_String_fromCodePoint))enabledShims.push(5);if(shim_install("String_proto_codePointAt",
shim_String_proto_codePointAt))enabledShims.push(6);if(shim_install("String_proto_startsWith",shim_String_proto_startsWith))enabledShims.push(7);if(shim_install("String_proto_endsWith",shim_String_proto_endsWith))enabledShims.push(8);if(shim_install("String_proto_includes",shim_String_proto_includes))enabledShims.push(9);if(shim_install("String_proto_repeat",shim_String_proto_repeat))enabledShims.push(10);if(shim_install("Object_is",shim_Object_is))enabledShims.push(12);if(shim_install("Object_setPrototypeOf",
shim_Object_setPrototypeOf))enabledShims.push(13);if(shim_install("Function_proto_name",shim_Function_proto_name))enabledShims.push(14);if(shim_install("Math_sign",shim_Math_sign))enabledShims.push(15);if(shim_install("Symbol",shim_Symbol))enabledShims.push(16);var enCnt=enabledShims.length;_jsGlobal.__eaglercraftXES6ShimStatus={getShimInitStatus:function(){return (enCnt>0?1:0)|(hasErrors?2:0);},getEnabledShimCount:function(){return enCnt;},getEnabledShimID:function(idxIn){return enabledShims[idxIn];}};})();}
catch(_ex_){$rt_globals.console.error("ES6Shims: Failed to detect and enable shims for this browser! (Continuing anyway)");$rt_globals.console.error(_ex_);_jsGlobal.__eaglercraftXES6ShimStatus={getShimInitStatus:function(){return -1;},getEnabledShimCount:function(){return 0;},getEnabledShimID:function(idxIn){return $rt_globals.undefined;}};}})($rt_globals);

View File

@ -0,0 +1,108 @@
<!DOCTYPE html>
<!--
This file is from ${date}, there is no official eagler download link anymore, check the websites and discords of your favorite eagler servers for new versions
Be aware that some server owners are lazy and do not update their client regularly
Compile it yourself here: https://gitlab.com/lax1dude/eaglercraftx-1.8/
-->
<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="EaglercraftX 1.8 Offline" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglyMC 1.20</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8 Offline" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<script type="text/javascript">
"use strict";
var relayId = Math.floor(Math.random() * 3);
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = {
container: "game_frame",
worldsDB: "worlds",
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 }
]
};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.assetsURI = ${assets_epk};
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() { document.body.removeChild(document.getElementById("launch_countdown_screen")); document.body.style.backgroundColor = "black"; main(); }, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
document.getElementById("bootMenu").addEventListener("click", function() {
launchSkipCountdown = true;
window.eaglercraftXOpts.showBootMenuOnLaunch = true;
});
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLUlEQVRYR72XW0iVWRTHl5VaamoXm1TCCLpQDzMPvU3RhcbAhyZ1oJmQHmqaijAmmCgqMqGJIhIhirKcZiDmTW2eRkLopUCiAguiHqIL3tPR46W85ny/dVp79neO2ttsOJzv27f13///WmuvL2EiaJHtrULLuJ2j//9nS+j9tmUiozxbbUbK2hREgEkSEhLk48ePMmPGDIeHd36M8bOx8fFxt4Z+GmPMZa+ZM2e68djDhQAYiLSaL3TR8PCwLpw9e7au4310dNQZnzNnjvbTBwh+s2bN0r7k5GQZGxvTPp6nYjkKoGihyJeJIRbYlB9GAaAGSvpCUvX396tBgHR3d+upExMT3alTUlKiewYSx7JsTPwHgJ4AhMnw4cMHGRwcVMOwkfjjSNwmvb29ygZGzdjbt29lZGRET71kyZKQcWmckMjf7SFfS/CdEAzpddmOzmPHjunmq1evlsLb+Q6AScVcGgb5HT16VObNm6cM7N+/X7KysmTkh57ouqZRidR2qXHfjxSA0QHl6AalAwMDMnfuXOczgVQSK5X8kaqbYbS1tVVyc3Pd/Bs3bsiePXucBDwk/pmpbMKOkwAAGGWjpKQkNcypoX/BggVuIg8+CJOK/q6uLunp6ZEVK1a4+ZFIRH2IfZCC/7S0NB0fGhpyjq0MWHjhVKDDsQDz6NEjWbt2rS7CCGPmiBO/p0hmZqaOAfrNmzfy5MkT2blzp7x69UqWLl2qRvktWrRI3r9/7/zEP5UDgAebBNDEM0hhAWejmUHbAMAomJ6erl2wMFkUACI1NVVgJSMjI8SqA2DJBKMwgCy2cV9fnwKKlYTQo3/x4sXKEJFAVOCQrGf+06dP9T8nJ0fa2tokOzvquCEfMAlASPixgNgHOWzglJYd1RcCRujHSek3JixhIRX9d+7cUWAdHR2yd+9e59TYYA6sKwOcAtTv3r2Turo69ebCwkLVFCPLli1TwMQ4m3FSWFq5cqX2o/nLly/l2bNnsm7dOt0cAFevXpVr165JTU2NbNiwwTEIYA7FHg4AToI+tbW1Ulxc7Ci6fPmyIj1w4ECYuoBqL4JDY7EvyIAE8+fP1yGYNWdXAOhFysVRoOzixYty7tw5ndzQ0KDRQJKxduLECdm0aZM0NjZKSUmJevxUrbq6WrZt26anNSfmsABAxlAiQlvA4MlMLi8vl7KysmlPd+rUKc14paWlk867fv26yolfESWw6UdCCAATcBA89ebNmy6TTYsgGOSUlvVi51ZWVmpuACTsLlwYXHxecwD87ARF9+7dk61bt37Oto6fPXtWjh8/rhKiL42saa351x6ViXEaciNJSAJLFro4kAJAfsxCHXF8//592bFjh3r37t27QwDr6+ulvb1dttd9E3dxcW8Y9eyNzNMCwAfu3r0rz58/V90OHjyoYQqApqYmOXnyZBw7pGO9nH5OigPgp+44BvzKhV0tbxPzZDkaGY5E9eLFC6V548aNcubMGQfk8OHDcvr0aens7JSsX1Libk6/3sQeh3KJyI4CNcPf/xN9DSgzh+QVumCAqxeakefChQty5MgRnf769WvJy8vTZ0Ak/zQWBRE0qwM4gIUfEujB/HpgstIJZ1y/fr0CALm1S5cuyaFDh/S1qqpKU601ADx8+FC+rvpKu/4qapBdu3YJdwqGrZZ0AKx6HSjuCJVd479Fa0GuUwDgnOhHe/z4seTn5+vz+fPnZd++fTrH7o6Wlha5deuWpvWCggJ3n5DG2VPpp7r264HB7zrjtOuuGFJnxAAScPfTyOdr1qzRZwxt2bJFLzAAUHhwLyAV9wxAkdPqxjgARh1M9BcFRaOnHXXfqlWrZPPmzXLlyhV3KwKAsFq+fLk8ePAglN0wZo4GGDMIGGPJbIZ8wDr9Gp5IQGNSLkZtY+ZWVFSo5xM1dl3bKRn3a0yks1rQKu04J/TvfOdRwQNOxSI/MVGMkFabm5tDxait8zMrVz0lHkCt3JuSAfsc8xET97YJ/4Si+QHOZCnWB23z2Qfarcqy+J9WAmOCxf73H88WiniwH05sGPv5NdW3pA90Uh/wnTKk16cPVitE7DvQjE/2kctcgE8l77QAfKSfe/aTmAL69KX9uXX/Aqn0T91DqBZ3AAAAAElFTkSuQmCC" />
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:white;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>This file is from <span style="color:#AA0000;">${date}</span></h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
<p style="margin-top:30px;"><button id="skipCountdown" autofocus>Skip Countdown</button>&emsp;<button id="bootMenu">Enter Boot Menu</button></p></div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,30 @@
"use strict";
${classes_js}
// %%%%%%%%% launch options %%%%%%%%%%%%
if(typeof window !== "undefined") {
window.eaglercraftXClientScriptElement = document.currentScript;
if(window.eaglercraftXOptsHints && window.eaglercraftXOptsHints.hintsVersion === 1) {
window.eaglercraftXOpts = window.eaglercraftXOptsHints;
}else {
var relayzId = Math.floor(Math.random() * 3);
window.eaglercraftXOpts = {
container: "game_frame",
worldsDB: "worlds",
relays: [
{ addr: "wss://relay.deev.is/", comment: "lax1dude relay #1", primary: relayzId === 0 },
{ addr: "wss://relay.lax1dude.net/", comment: "lax1dude relay #2", primary: relayzId === 1 },
{ addr: "wss://relay.shhnowisnottheti.me/", comment: "ayunami relay #1", primary: relayzId === 2 }
],
checkRelaysForUpdates: true
};
}
window.addEventListener("load", function() {
main();
});
}
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(typeof window !== "undefined") { window.eaglercraftXOpts.enableSignatureBadge = true; window.eaglercraftXOpts.assetsURI = ${assets_epk}; main(); }

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,27 @@
# examples:
# use-proxy: cors proxy here [$url$]
# use-gateway: ipfs gateway here [$cid$,$path$]
# url: url here
# ipfs: cid here
# list: url to another list
list: https://eaglercraft.com/dl/cors/u35_backup.list
url: https://eaglercraft.com/dl/cors/u35_backup.dat
ipfs: bafybeibolco2rlnyiiweipoarwf6kw235xdv7jbbpcwpmm5wksnh4agx5e
use-gateway: https://gateway.ipfs.io/ipfs/$cid$/$path$
use-gateway: https://4everland.io/ipfs/$cid$/$path$
use-gateway: https://dweb.link/ipfs/$cid$/$path$
use-gateway: https://cloudflare-ipfs.com/ipfs/$cid$/$path$
use-gateway: https://cf-ipfs.com/ipfs/$cid$/$path$
use-gateway: https://w3s.link/ipfs/$cid$/$path$
use-gateway: https://ipfs.eth.aragon.network/ipfs/$cid$/$path$
use-gateway: https://nftstorage.link/ipfs/$cid$/$path$
use-gateway: https://$cid$.ipfs.gateway.ipfs.io/$path$
use-gateway: https://$cid$.ipfs.dweb.link/$path$
use-gateway: https://$cid$.ipfs.cf-ipfs.com/$path$
use-gateway: https://$cid$.ipfs.nftstorage.link/$path$

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,54 @@
<!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="EaglercraftX 1.8 test directory HTML page" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglyMC 1.20</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglyMC 1.20" />
<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",
logInvalidCerts: true,
crashOnUncaughtExceptions: true,
servers: [
{ 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

@ -0,0 +1,458 @@
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

@ -0,0 +1,436 @@
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

@ -0,0 +1,104 @@
<!DOCTYPE html>
<!--
This file is from ${date}, there is no official eagler download link anymore, check the websites and discords of your favorite eagler servers for new versions
Be aware that some server owners are lazy and do not update their client regularly
This is the WASM-GC version of EaglercraftX and may not be compatible with outdated browsers
-->
<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="EaglercraftX 1.8 WASM-GC Offline" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglercraftX 1.8 WASM-GC</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8 WASM-GC Offline" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<script type="text/javascript">
"use strict";
var relayId = Math.floor(Math.random() * 3);
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = {
container: "game_frame",
worldsDB: "worlds",
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 }
]
};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.assetsURI = ${assets_epk};
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() { document.body.removeChild(document.getElementById("launch_countdown_screen")); document.body.style.backgroundColor = "black"; main(); }, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==" />
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:white;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>This file is from <span style="color:#AA0000;">${date}</span></h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
<p style="margin-top:30px;"><button id="skipCountdown" autofocus>Skip Countdown</button></p></div>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,202 @@
(function(){'use strict';const ba=["DEBUG","INFO","WARN","ERROR"];var da="main",ea=null;function fa(a,b,d){if(!(1>a)){var c="EagRuntimeJS: ["+(new Date).toLocaleTimeString()+"]["+da+"/"+(ba[a]||"UNKNOWN")+"] ";a:{if(0<d.length){for(var h=[],l=0;l<d.length;++l){var t=b.indexOf("{}");if(-1!=t)h.push(b.substring(0,t)),h.push(d[l]),b=b.substring(t+2);else break}if(0<h.length){h.push(b);d=h.join("");break a}}d=b}b=c+d;3<=a?console.error(b):console.log(b);ea&&ea(b,3<=a)}}function e(a,...b){fa(1,a,b)}
function ha(a,...b){fa(2,a,b)}function g(a,...b){fa(3,a,b)}function ia(a,b){if(b){if(b.message?fa(3,'{}: {} - "{}"',[a,b.name,b.message]):fa(3,"{}: {}",[a,b.name]),"string"===typeof b.stack)for(b=la(b.stack),a=0;a<b.length;++a)fa(3," at "+b[a],[])}else fa(3,"{}: <null>",[a])}function na(a){return function(){g("Unsupported function called: {}.{}",a);return 0}}function C(a,b){a[b]=na(b)}function oa(a){return new Promise(function(b){setTimeout(b,a)})}
class qa{constructor(){this.G=this.o=null;this.u=0}K(){return this.u}push(a){this.G&&(this.G._next=a);this.G=a;this.o||(this.o=a);++this.u}j(){if(this.o){const a=this.o;(this.o=a._next||null)?a._next=null:this.G=null;--this.u;return a}return null}};var ra={},G={},wa={},xa={},ya={},I={},za={},J={},Ca={},Da={},Ea={},M={},Fa={},Ja={},Ka={},La=null,Ma=null,Na=null,Oa=null,Pa=null,Qa=null,Sa=null,Ta=null,N=null,Ua=null,Va=null,P=null,R=null,Wa=null,Xa=!1,Ya=0,Za=null,$a=!1,ab=null,bb=null,cb=!1;const db=[];var eb=null,fb="_eaglercraftX",gb=!1,hb=!1,zb=!1,Ab=!0,Bb=!1,Cb=!1,Db=!0,Eb=!0,Fb=!1;
function Gb(){"string"===typeof N.localStorageNamespace&&(fb=N.localStorageNamespace);"boolean"===typeof N.openDebugConsoleOnLaunch&&(gb=N.openDebugConsoleOnLaunch);"boolean"===typeof N.fixDebugConsoleUnloadListener&&(hb=N.fixDebugConsoleUnloadListener);"boolean"===typeof N.forceWebViewSupport&&(zb=N.forceWebViewSupport);"boolean"===typeof N.enableWebViewCSP&&(Ab=N.enableWebViewCSP);"boolean"===typeof N.forceWebGL1&&(Bb=N.forceWebGL1);"boolean"===typeof N.forceWebGL2&&(Cb=N.forceWebGL2);"boolean"===
typeof N.allowExperimentalWebGL1&&(Db=N.allowExperimentalWebGL1);"boolean"===typeof N.useWebGLExt&&(Eb=N.useWebGLExt);"boolean"===typeof N.useDelayOnSwap&&(Fb=N.useDelayOnSwap)}
async function Hb(){function a(){try{h=new AudioContext}catch(t){ia("Could not initialize audio context",t)}}Gb();ea=Ib;window.__curEaglerX188UnloadListenerCB=function(){};"yes"!==window.__isEaglerX188UnloadListenerSet&&(window.onbeforeunload=function(){window.__curEaglerX188UnloadListenerCB&&window.__curEaglerX188UnloadListenerCB();return!1},window.__isEaglerX188UnloadListenerSet="yes");e("Initializing EagRuntime JS context...");await Jb();Kb();Lb();Mb();Nb();Ob();Pb();C(Ka,"sendPacket");C(Ka,"getAvailablePackets");
C(Ka,"getNextPacket");C(Ka,"setCrashCallback");Va.classList.add("_eaglercraftX_root_element");Va.style.overflow="hidden";for(var b=null,d;d=Va.lastChild;)b||=d,Va.removeChild(d);P=document.createElement("div");P.classList.add("_eaglercraftX_wrapper_element");P.style.position="relative";P.style.width="100%";P.style.height="100%";P.style.overflow="hidden";P.style.backgroundColor="black";Va.appendChild(P);b&&(b.style.position="absolute",b.style.top="0px",b.style.left="0px",b.style.right="0px",b.style.bottom=
"0px",b.style.zIndex="2",b.classList.add("_eaglercraftX_early_splash_element"),P.appendChild(b));await oa(10);d=window.devicePixelRatio;b=d*P.clientWidth|0;d=d*P.clientHeight|0;e("Initializing audio context");if("function"===typeof document.exitPointerLock){var c=navigator.userAgent;null!==c?(c=c.toLowerCase(),$a=-1!==c.indexOf("mobi")||-1!==c.indexOf("tablet")):$a=!1}else $a=!0;var h=null;!$a&&navigator.userActivation&&navigator.userActivation.hasBeenActive?a():(c=document.createElement("div"),c.classList.add("_eaglercraftX_press_any_key_image"),
c.style.position="absolute",c.style.top="0px",c.style.left="0px",c.style.right="0px",c.style.bottom="0px",c.style.width="100%",c.style.height="100%",c.style.zIndex="3",c.style.touchAction="pan-x pan-y",c.style.background='center / contain no-repeat url("'+Qa+'"), left / 1000000% 100% no-repeat url("'+Qa+'") white',c.style.setProperty("image-rendering","pixelated"),P.appendChild(c),await new Promise(function(t,D){function y(){if(!B){B=!0;$a?P.removeChild(v):(window.removeEventListener("keydown",y),
P.removeEventListener("mousedown",y),P.removeEventListener("touchstart",y));try{a()}catch(S){D(S);return}t()}}var B=!1;if($a){var v=document.createElement("div");v.classList.add("_eaglercraftX_mobile_press_any_key");v.setAttribute("style","position:absolute;background-color:white;font-family:sans-serif;top:10%;left:10%;right:10%;bottom:10%;border:5px double black;padding:calc(5px + 7vh) 15px;text-align:center;font-size:20px;user-select:none;z-index:10;");v.innerHTML='<h3 style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Mobile Browser Detected</h3><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Warning: EaglercraftX WASM-GC requires a lot of memory and may not be stable on most mobile devices!</p><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 2px;"><button style="font: 24px sans-serif;font-weight:bold;" class="_eaglercraftX_mobile_launch_client">Launch EaglercraftX</button></p><p style="margin-block-start:0px;margin-block-end:0px;margin:25px 5px;">(Tablets and phones with large screens work best)</p>';
v.querySelector("._eaglercraftX_mobile_launch_client").addEventListener("click",y);P.appendChild(v)}else window.addEventListener("keydown",y),P.addEventListener("mousedown",y),P.addEventListener("touchstart",y)}),P.removeChild(c));h?Qb(h):Rb();e("Creating main canvas");R=document.createElement("canvas");R.classList.add("_eaglercraftX_canvas_element");R.style.width="100%";R.style.height="100%";R.style.zIndex="1";R.style.touchAction="pan-x pan-y";R.style.setProperty("-webkit-touch-callout","none");
R.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");R.style.setProperty("image-rendering","pixelated");R.width=b;R.height=d;P.appendChild(R);await Sb();e("Creating WebGL context");P.addEventListener("webglcontextcreationerror",function(t){g("[WebGL Error]: {}",t.statusMessage)});b={antialias:!1,depth:!1,powerPreference:"high-performance",desynchronized:!0,preserveDrawingBuffer:!1,premultipliedAlpha:!1,alpha:!1};c=!1;if(Cb){e("Note: Forcing WebGL 2.0 context");d=300;var l=R.getContext("webgl2",
b);if(!l)return Tb("WebGL 2.0 is not supported on this device!"),!1}else if(Bb){if(e("Note: Forcing WebGL 1.0 context"),d=200,l=R.getContext("webgl",b),!l)if(Db){if(c=!0,l=R.getContext("experimental-webgl",b),!l)return Tb("WebGL is not supported on this device!"),!1}else return Tb("WebGL is not supported on this device!"),!1}else if(d=300,l=R.getContext("webgl2",b),!l&&(d=200,l=R.getContext("webgl",b),!l))if(Db){if(c=!0,l=R.getContext("experimental-webgl",b),!l)return Tb("WebGL is not supported on this device!"),
!1}else return Tb("WebGL is not supported on this device!"),!1;c&&alert('WARNING: Detected "experimental" WebGL 1.0 support, certain graphics API features may be missing, and therefore EaglercraftX may malfunction and crash!');Ya=d;Wa=l;Xa=c;Ub(l,d);e("OpenGL Version: {}",J.glGetString(7938));e("OpenGL Renderer: {}",J.glGetString(7937));b=J.dumpActiveExtensions();if(0===b.length)e("Unlocked the following OpenGL ES extensions: (NONE)");else for(b.sort(),e("Unlocked the following OpenGL ES extensions:"),
d=0;d<b.length;++d)e(" - {}",b[d]);J.glClearColor(0,0,0,1);J.glClear(16384);await oa(20);e("EagRuntime JS context initialization complete");return!0}
async function Vb(){Gb();ea=function(a,b){postMessage({ch:"~!LOGGER",txt:a,err:b})};e("Initializing EagRuntime worker JS context...");await Jb();C(G,"setClipboard");C(G,"getClipboard");C(G,"displayFileChooser");C(G,"fileChooserHasResult");C(G,"getFileChooserResult");C(G,"clearFileChooserResult");C(G,"downloadFileWithNameU8");C(G,"downloadFileWithNameA");C(G,"downloadScreenshot");C(G,"showDebugConsole");C(G,"addLogMessage");C(G,"isShowingDebugConsole");C(G,"getFaviconURL");Rb();C(I,"keyboardLayoutSupported");
C(I,"iterateKeyboardLayout");C(I,"updateCanvasSize");C(I,"updatePlatformAndSleep");C(I,"isVSyncSupported");C(I,"mouseSetGrabbed");C(I,"isMouseGrabSupported");C(I,"isMouseGrabbed");C(I,"isPointerLocked");C(I,"supportsFullscreen");C(I,"toggleFullscreen");C(I,"isFullscreen");C(I,"touchSetOpenKeyboardZone");C(I,"touchCloseDeviceKeyboard");C(I,"touchIsDeviceKeyboardOpenMAYBE");C(I,"gamepadSupported");C(I,"isVisualViewport");C(J,"getCapBits");C(J,"glEnable");C(J,"glDisable");C(J,"glClearColor");C(J,"glClearDepth");
C(J,"glClear");C(J,"glDepthFunc");C(J,"glDepthMask");C(J,"glCullFace");C(J,"glViewport");C(J,"glBlendFunc");C(J,"glBlendFuncSeparate");C(J,"glBlendEquation");C(J,"glBlendColor");C(J,"glColorMask");C(J,"glDrawBuffers");C(J,"glReadBuffer");C(J,"glReadPixels");C(J,"glPolygonOffset");C(J,"glLineWidth");C(J,"glGenBuffers");C(J,"glGenTextures");C(J,"glCreateProgram");C(J,"glCreateShader");C(J,"glCreateFramebuffer");C(J,"glCreateRenderbuffer");C(J,"glGenQueries");C(J,"glDeleteBuffers");C(J,"glDeleteTextures");
C(J,"glDeleteProgram");C(J,"glDeleteShader");C(J,"glDeleteFramebuffer");C(J,"glDeleteRenderbuffer");C(J,"glDeleteQueries");C(J,"glBindBuffer");C(J,"glBufferData");C(J,"glBufferSubData");C(J,"glEnableVertexAttribArray");C(J,"glDisableVertexAttribArray");C(J,"glVertexAttribPointer");C(J,"glActiveTexture");C(J,"glBindTexture");C(J,"glTexParameterf");C(J,"glTexParameteri");C(J,"glTexImage3D");C(J,"glTexImage2D");C(J,"glTexSubImage2D");C(J,"glCopyTexSubImage2D");C(J,"glTexStorage2D");C(J,"glPixelStorei");
C(J,"glGenerateMipmap");C(J,"glShaderSource");C(J,"glCompileShader");C(J,"glGetShaderi");C(J,"glGetShaderInfoLog");C(J,"glUseProgram");C(J,"glAttachShader");C(J,"glDetachShader");C(J,"glLinkProgram");C(J,"glGetProgrami");C(J,"glGetProgramInfoLog");C(J,"glDrawArrays");C(J,"glDrawElements");C(J,"glBindAttribLocation");C(J,"glGetAttribLocation");C(J,"glGetUniformLocation");C(J,"glGetUniformBlockIndex");C(J,"glBindBufferRange");C(J,"glUniformBlockBinding");C(J,"glUniform1f");C(J,"glUniform2f");C(J,"glUniform3f");
C(J,"glUniform4f");C(J,"glUniform1i");C(J,"glUniform2i");C(J,"glUniform3i");C(J,"glUniform4i");C(J,"glUniformMatrix2fv");C(J,"glUniformMatrix3fv");C(J,"glUniformMatrix4fv");C(J,"glUniformMatrix3x2fv");C(J,"glUniformMatrix4x2fv");C(J,"glUniformMatrix4x3fv");C(J,"glBindFramebuffer");C(J,"glCheckFramebufferStatus");C(J,"glBlitFramebuffer");C(J,"glRenderbufferStorage");C(J,"glFramebufferTexture2D");C(J,"glFramebufferTextureLayer");C(J,"glBindRenderbuffer");C(J,"glFramebufferRenderbuffer");C(J,"glGetInteger");
C(J,"glGetError");C(J,"getAllExtensions");C(J,"dumpActiveExtensions");C(J,"glGetString");C(J,"glGenVertexArrays");C(J,"glDeleteVertexArrays");C(J,"glBindVertexArray");C(J,"glVertexAttribDivisor");C(J,"glDrawArraysInstanced");C(J,"glDrawElementsInstanced");C(J,"isContextLost");C(Da,"getMic");C(Da,"setDataAvailableHandler");C(Ea,"isSupported");C(Ea,"createRTCPeerConnection");C(M,"supported");C(M,"clientLANReadyState");C(M,"clientLANCloseConnection");C(M,"clientLANSendPacket");C(M,"clientLANReadPacket");
C(M,"clientLANAvailable");C(M,"clientLANSetICEServersAndConnect");C(M,"clearLANClientState");C(M,"clientLANAwaitICECandidate");C(M,"clientLANAwaitDescription");C(M,"clientLANAwaitChannel");C(M,"clientLANClosed");C(M,"clientLANSetICECandidate");C(M,"clientLANSetDescription");C(M,"clientLANClosed");C(M,"serverLANInitializeServer");C(M,"serverLANCloseServer");C(M,"serverLANCreatePeer");C(Fa,"checkSupported");C(Fa,"checkCSPSupported");C(Fa,"sendStringMessage");C(Fa,"sendBinaryMessage");C(Fa,"beginShowing");
C(Fa,"resize");C(Fa,"endShowing");C(Ja,"startIntegratedServer");C(Ja,"sendPacket");C(Ja,"getAvailablePackets");C(Ja,"getNextPacket");C(Ja,"killWorker");C(Ja,"showCrashReportOverlay");C(Ja,"hideCrashReportOverlay");Wb();e("EagRuntime worker JS context initialization complete")}
function Xb(a){Za=a.buffer;e("WebAssembly direct memory resized to {} MiB",.01*(Za.byteLength/1024/10.24|0));new Uint8Array(Za);new Int8Array(Za);new Uint16Array(Za);new Int16Array(Za);new Uint32Array(Za);new Int32Array(Za);new Float32Array(Za)}const Yb=new qa;function T(a,b,d){Yb.push({eventType:a<<5|b,eventObj:d,_next:null})}let Zb=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/;
function la(a){if(!a)return null;const b=[];for(let d of a.split("\n")){if(Oa&&(a=Zb.exec(d),null!==a&&2<=a.length&&(a=parseInt(a[1],16),!isNaN(a))))try{const c=Oa([a]);if(0<c.length){for(let h of c)b.push(""+h.className+"."+h.method+"("+h.file+":"+h.line+")");continue}}catch(c){}d=d.trim();d.startsWith("at ")&&(d=d.substring(3));b.push(d)}return b}
function $b(a){const b=a?la(a.stack):null;a="Native Browser Exception\n----------------------------------\n Line: "+(a&&"string"===typeof a.fileName?a.fileName:"unknown")+":"+(a&&"number"===typeof a.lineNumber?a.lineNumber:"unknown")+":"+(a&&"number"===typeof a.columnNumber?a.columnNumber:"unknown")+"\n Type: "+(a&&"string"===typeof a.name?a.name:"unknown")+"\n Desc: "+(a&&"string"===typeof a.message?a.message:"null")+"\n----------------------------------\n\nDeobfuscated stack trace:\n at "+
(b?b.join("\n at "):"null")+"\n\nThis exception was not handled by the WASM binary\n";if("undefined"!==typeof window)ac(a,!0);else if(bc){g("\n{}",a);try{bc(a,!0)}catch(d){console.log(d)}}else g("\n{}",a)}
function ac(a,b){g("Game crashed!");var d="Game Crashed! I have fallen and I can't get up!\n\n"+a+"\n\n",c='eaglercraft.version = "'+db[0]+'"\neaglercraft.minecraft = "'+db[2]+'"\neaglercraft.brand = "'+db[1]+'"\n\n'+cc()+"\nwindow.eaglercraftXOpts = "+JSON.stringify(N)+"\n\ncurrentTime = "+(new Date).toLocaleString()+"\n\n"+dc("userAgent")+dc("vendor")+dc("language")+dc("hardwareConcurrency")+dc("deviceMemory")+dc("platform")+dc("product")+ec()+"\n"+fc("localStorage")+fc("sessionStorage")+fc("indexedDB")+
"\nrootElement.clientWidth = "+(P?P.clientWidth:"undefined")+"\nrootElement.clientHeight = "+(P?P.clientHeight:"undefined")+"\n"+fc("innerWidth")+fc("innerHeight")+fc("outerWidth")+fc("outerHeight")+fc("devicePixelRatio")+gc("availWidth")+gc("availHeight")+gc("colorDepth")+gc("pixelDepth")+"\n"+hc()+"\n",h=d+c;const l=[];try{"object"===typeof N&&"object"===typeof N.hooks&&"function"===typeof N.hooks.crashReportShow&&N.hooks.crashReportShow(h,function(t){l.push(t)})}catch(t){ia("Uncaught exception invoking crash report hook",
t)}if(cb){g("");g("An additional crash report was supressed:");h=a.split(/[\r\n]+/);for(a=0;a<h.length;++a)g(" {}",h[a]);if(0<l.length)for(a=0;a<l.length;++a)if(h=l[a]){g("");g(" ----------[ CRASH HOOK ]----------");h=h.split(/[\r\n]+/);for(a=0;a<h.length;++a)g(" {}",h[a]);g(" ----------------------------------")}}else{cb=!0;if(0<l.length){h=d+"Got the following messages from the crash report hook registered in eaglercraftXOpts:\n\n";for(a=0;a<l.length;++a)h+="----------[ CRASH HOOK ]----------\n"+
l[a]+"\n----------------------------------\n\n";h+=c}(c=P||Va)?(b&&g("\n{}",h),b=document.createElement("img"),a=document.createElement("div"),b.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);"),b.src=Sa,a.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;white-space:pre-wrap;font: 14px monospace;padding:10px;"),
a.classList.add("_eaglercraftX_crash_element"),c.appendChild(b),c.appendChild(a),a.appendChild(document.createTextNode(h)),eb&&eb(),window.__curEaglerX188UnloadListenerCB=null):(alert("Root element not found, crash report was printed to console"),g("\n{}",h))}}
function Tb(a){if(!cb){cb=!0;var b=P||Va;g("Compatibility error: {}",a);if(b){var d=document.createElement("img"),c=document.createElement("div");d.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");d.src=Sa;c.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;font:18px sans-serif;padding:40px;");c.classList.add("_eaglercraftX_incompatible_element");
b.appendChild(d);b.appendChild(c);c.innerHTML='<h2><svg style="vertical-align:middle;margin:0px 16px 8px 8px;" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none"><path stroke="#000000" stroke-width="3" stroke-linecap="square" d="M1.5 8.5v34h45v-28m-3-3h-10v-3m-3-3h-10m15 6h-18v-3m-3-3h-10"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M12 21h0m0 4h0m4 0h0m0-4h0m-2 2h0m20-2h0m0 4h0m4 0h0m0-4h0m-2 2h0"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M20 30h0 m2 2h0 m2 2h0 m2 2h0 m2 -2h0 m2 -2h0 m2 -2h0"/></svg>+ This device is incompatible with Eaglercraft&ensp;:(</h2><div style="margin-left:40px;"><p style="font-size:1.2em;"><b style="font-size:1.1em;">Issue:</b> <span style="color:#BB0000;" id="_eaglercraftX_crashReason"></span><br /></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashUserAgent"></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashWebGL"></p><p style="margin-left:10px;font:0.9em monospace;">Current Date: '+
(new Date).toLocaleString()+'</p><p><br /><span style="font-size:1.1em;border-bottom:1px dashed #AAAAAA;padding-bottom:5px;">Things you can try:</span></p><ol><li><span style="font-weight:bold;">Just try using Eaglercraft on a different device</span>, it isn\'t a bug it\'s common sense</li><li style="margin-top:7px;">If this screen just appeared randomly, try restarting your browser or device</li><li style="margin-top:7px;">If you are not using Chrome/Edge, try installing the latest Google Chrome</li><li style="margin-top:7px;">If your browser is out of date, please update it to the latest version</li></ol></div>';
c.querySelector("#_eaglercraftX_crashReason").appendChild(document.createTextNode(a));try{var h=window.navigator.userAgent}catch(t){h="<error>"}c.querySelector("#_eaglercraftX_crashUserAgent").appendChild(document.createTextNode(h));eb&&eb();window.__curEaglerX188UnloadListenerCB=null;a="No GL_RENDERER string could be queried";try{const t=document.createElement("canvas");t.width=64;t.height=64;const D=t.getContext("webgl");if(D){if(D.getExtension("WEBGL_debug_renderer_info"))var l=D.getParameter(37446);
else(l=D.getParameter(WebGLRenderingContext.RENDERER))&&(l+=" [masked]");l&&(a=l)}}catch(t){}c.querySelector("#_eaglercraftX_crashWebGL").appendChild(document.createTextNode(a))}else alert("Compatibility error: "+a)}}var ic=null;
function cc(){if(ic)return ic;try{var a=Wa,b=Xa;if(!a){b=!1;var d=document.createElement("canvas");d.width=64;d.height=64;a=d.getContext("webgl2");a||(a=d.getContext("webgl"),a||(b=!0,a=d.getContext("experimental-webgl")))}return a?(d="",0<Ya&&(d+="webgl.version = "+a.getParameter(7938)+"\n"),d=a.getExtension("WEBGL_debug_renderer_info")?d+("webgl.renderer = "+a.getParameter(37446)+"\nwebgl.vendor = "+a.getParameter(37445)+"\n"):d+("webgl.renderer = "+a.getParameter(7937)+" [masked]\nwebgl.vendor = "+
a.getParameter(7936)+" [masked]\n"),0<Ya?(d+="\nwebgl.version.id = "+Ya+"\nwebgl.experimental = "+b,200===Ya?d+="\nwebgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+!!a.getExtension("OES_texture_float")+
"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear"):300<=Ya&&(d+="\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")),d+="\nwebgl.ext.EXT_texture_filter_anisotropic = "+
!!a.getExtension("EXT_texture_filter_anisotropic")+"\n"):d+="webgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+
!!a.getExtension("OES_texture_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")+"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear")+"\nwebgl.ext.EXT_texture_filter_anisotropic = "+!!a.getExtension("EXT_texture_filter_anisotropic")+"\n",ic=d):ic="Failed to query GPU info!\n"}catch(c){return ic="ERROR: could not query webgl info - "+
c+"\n"}}function dc(a){try{var b=window.navigator[a]}catch(d){b="<error>"}return"window.navigator."+a+" = "+b+"\n"}function ec(){try{var a=[];if("object"===typeof navigator.plugins){var b=navigator.plugins.length;if(0<b)for(var d=0;d<b;++d){var c=navigator.plugins[d];a.push({name:c.name,filename:c.filename,desc:c.description})}}var h=JSON.stringify(a)}catch(l){h="<error>"}return"window.navigator.plugins = "+h+"\n"}
function gc(a){try{var b=window.screen[a]}catch(d){b="<error>"}return"window.screen."+a+" = "+b+"\n"}function hc(){try{var a=window.location.href}catch(b){a="<error>"}return"window.location.href = "+a+"\n"}function fc(a){try{var b=window[a]}catch(d){b="<error>"}return"window."+a+" = "+b+"\n"};function jc(a,b,d){const c=document.createElement("a");c.style.position="absolute";c.style.left="0px";c.style.top="0px";c.style.zIndex="-100";c.style.color="transparent";c.innerText="Download File";c.href=b;c.target="_blank";c.download=a;P.appendChild(c);setTimeout(function(){c.click();setTimeout(function(){P.removeChild(c)},50);d&&setTimeout(d,6E4)},50)}var kc=0,lc=null,mc=null,nc=null,oc=null;
function Ib(a,b){if(nc)oc&&oc(a,b);else for(a={msg:a,err:b,next:null},mc&&(mc.next=a),lc||=a,mc=a,++kc;256<kc;)--kc,lc&&=lc.next}
function Kb(){function a(){t=!1;D=null;null!==B?(P.removeChild(B),y=B=null):null!==y&&(P.removeChild(y),y=null)}function b(m){try{window.localStorage&&window.localStorage.setItem(K,m?"true":"false")}catch(u){}}function d(){try{if(window.localStorage){const m=window.localStorage.getItem(K);return m&&"true"===m.toLowerCase()}return!1}catch(m){return!1}}function c(){if(nc)nc.focus();else{var m=Math.round(1E3*window.devicePixelRatio);const u=Math.round(400*window.devicePixelRatio);if(nc=window.open("",
"_blank","top="+Math.round((window.screen.height-u)/2)+",left="+Math.round((window.screen.width-m)/2)+",width="+m+",height="+u+",menubar=0,status=0,titlebar=0,toolbar=0")){nc.focus();v=nc.document;v.write('<!DOCTYPE html><html><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Debug Console</title><link type="image/png" rel="shortcut icon" href="'+Ta+'" /></head><body style="overflow-x:hidden;overflow-y:scroll;padding:0px;"><p id="loggerMessageContainer" style="overflow-wrap:break-word;white-space:pre-wrap;font:14px monospace;padding:10px;"></p></body></html>');
v.close();S=v.body;U=v.getElementById("loggerMessageContainer");for(m=lc;m;)h(m.msg+"\n",m.err?"#DD0000":"#000000"),m=m.next;mc=lc=null;kc=0;l();m=()=>{null!=nc&&(nc=null,b(!1))};nc.addEventListener("beforeunload",m);nc.addEventListener("unload",m)}else g("Logger popup was blocked!"),window.alert("ERROR: Popup blocked!\n\nPlease make sure you have popups enabled for this site!")}}function h(m,u){var w=v.createElement("span");w.innerText=m;w.style.color=u;U.appendChild(w);for(m=U.children;2048<m.length;)m[0].remove()}
function l(){setTimeout(()=>{nc.scrollTo(0,S.scrollHeight||S.clientHeight)},1)}G.setClipboard=function(m){try{if(window.navigator.clipboard)return window.navigator.clipboard.writeText(m),!0}catch(u){g("Failed to set clipboard data!")}return!1};G.getClipboard=new WebAssembly.Suspending(async function(){var m=null;try{window.navigator.clipboard&&(m=await navigator.clipboard.readText())}catch(u){g("Failed to read clipboard data!")}return m});var t=!1,D=null,y=null,B=null;G.displayFileChooser=function(m,
u){a();if($a){const f=B=document.createElement("div");f.classList.add("_eaglercraftX_mobile_file_chooser_popup");f.style.position="absolute";f.style.backgroundColor="white";f.style.fontFamily="sans-serif";f.style.top="10%";f.style.left="10%";f.style.right="10%";f.style.border="5px double black";f.style.padding="15px";f.style.textAlign="left";f.style.fontSize="20px";f.style.userSelect="none";f.style.zIndex="150";var w=document.createElement("h3");w.appendChild(document.createTextNode("File Chooser"));
f.appendChild(w);w=document.createElement("p");const x=y=document.createElement("input");x.type="file";x.accept=null===m?"."+u:m;x.multiple=!1;w.appendChild(x);f.appendChild(w);m=document.createElement("p");u=document.createElement("button");u.classList.add("_eaglercraftX_mobile_file_chooser_btn_cancel");u.style.fontSize="1.0em";u.addEventListener("click",function(){B===f&&(P.removeChild(f),y=B=null)});u.appendChild(document.createTextNode("Cancel"));m.appendChild(u);m.appendChild(document.createTextNode(" "));
u=document.createElement("button");u.classList.add("_eaglercraftX_mobile_file_chooser_btn_done");u.style.fontSize="1.0em";u.style.fontWeight="bold";u.addEventListener("click",function(){if(B===f){if(0<x.files.length){const p=x.files[0];p.arrayBuffer().then(function(z){t=!0;D={fileName:p.name,fileData:z}}).catch(function(){t=!0;D=null})}else t=!0,D=null;P.removeChild(f);y=B=null}});u.appendChild(document.createTextNode("Done"));m.appendChild(u);f.appendChild(m);P.appendChild(f)}else{const f=y=document.createElement("input");
f.type="file";f.style.position="absolute";f.style.left="0px";f.style.top="0px";f.style.zIndex="-100";f.accept=null===m?"."+u:m;f.multiple=!1;f.addEventListener("change",function(){if(y===f){if(0<f.files.length){const x=f.files[0];x.arrayBuffer().then(function(p){t=!0;D={fileName:x.name,fileData:p}}).catch(function(){t=!0;D=null})}else t=!0,D=null;P.removeChild(f);y=null}});P.appendChild(f);window.setTimeout(function(){f.click()},50)}};G.fileChooserHasResult=function(){return t};G.getFileChooserResult=
function(){t=!1;const m=D;D=null;return m};G.clearFileChooserResult=a;G.downloadFileWithNameU8=function(m,u){const w=URL.createObjectURL(new Blob([u],{type:"application/octet-stream"}));jc(m,w,function(){URL.revokeObjectURL(w)})};G.downloadFileWithNameA=function(m,u){const w=URL.createObjectURL(new Blob([u],{type:"application/octet-stream"}));jc(m,w,function(){URL.revokeObjectURL(w)})};G.downloadScreenshot=function(m,u){jc(m,u.toDataURL("image/png"),null)};var v=null,S=null,U=null;const K=fb+"showDebugConsole",
r=hb?"beforeunload":"unload";try{window.addEventListener(r,()=>{if(nc){var m=nc;U=S=v=nc=null;m.close()}})}catch(m){}(gb||d())&&c();oc=function(m,u){var w=nc.innerHeight+nc.pageYOffset>=S.offsetHeight;h(m+"\n",u?"#DD0000":"#000000");w&&l()};G.showDebugConsole=function(){b(!0);c()};G.addLogMessage=Ib;G.isShowingDebugConsole=function(){return!!nc};G.getFaviconURL=function(){return Ta}};wa.getEPKFileData=function(a){const b=Pa[a];Pa[a]=null;return b};wa.getEPKFileCount=function(){return Pa.length};
if("undefined"!==typeof window){wa.loadImageFile0=new WebAssembly.Suspending(function(a,b){return new Promise(function(d){const c=URL.createObjectURL(new Blob([a],{type:b}));if(c){const h=document.createElement("img");h.addEventListener("load",function(){URL.revokeObjectURL(c);d({width:h.width,height:h.height,img:h})});h.addEventListener("error",function(){URL.revokeObjectURL(c);d(null)});h.src=c}else d(null)})});var pc=null,qc=null;wa.loadImageFile1=function(a,b){const d=a.width,c=a.height;if(a=
a.img)pc||=document.createElement("canvas"),pc.width<d&&(pc.width=d),pc.height<c&&(pc.height=c),qc||(qc=pc.getContext("2d",{willReadFrequently:!0}),qc.imageSmoothingEnabled=!1),qc.clearRect(0,0,d,c),qc.drawImage(a,0,0,d,c),b.set(qc.getImageData(0,0,d,c).data,0)}}else C(wa,"loadImageFile0"),C(wa,"loadImageFile1");function Qb(a){xa.getContext=function(){return a};xa.registerIsEndedHandler=function(b,d){d.selfEndHandler||(d.selfEndHandler=function(){d.isEnded=!0});b.addEventListener("ended",d.selfEndHandler)};xa.releaseIsEndedHandler=function(b,d){d.selfEndHandler&&b.removeEventListener("ended",d.selfEndHandler)};xa.decodeAudioBrowser=new WebAssembly.Suspending(function(b,d){return new Promise(function(c){const h=new Uint8Array(b.length);h.set(b,0);a.decodeAudioData(h.buffer,c,function(){g("Failed to load audio: {}",
d);c(null)})})})}function Rb(){xa.getContext=function(){return null};C(xa,"registerIsEndedHandler");C(xa,"releaseIsEndedHandler");C(xa,"decodeAudioBrowser")};function rc(a){return"string"===typeof a?a:"undefined"===typeof a?null:"string"===typeof a[0]?a[0]:null}function sc(a){return"undefined"===typeof a?null:"undefined"===typeof a.data?null:a.data}
ya.openDB=new WebAssembly.Suspending(function(a){return new Promise(function(b){if("undefined"===typeof indexedDB)b({failedInit:!0,failedLocked:!1,failedError:"IndexedDB not supported",database:null});else{try{var d=indexedDB.open(a,1)}catch(h){b({failedInit:!0,failedLocked:!1,failedError:"Exception opening database",database:null});return}var c=b;d.addEventListener("success",function(){c&&c({failedInit:!1,failedLocked:!1,failedError:null,database:d.result});c=null});d.addEventListener("blocked",
function(){c&&c({failedInit:!1,failedLocked:!0,failedError:"Database is locked",database:null});c=null});d.addEventListener("error",function(){c&&c({failedInit:!0,failedLocked:!1,failedError:"Opening database failed",database:null});c=null});d.addEventListener("upgradeneeded",function(){d.result.createObjectStore("filesystem",{keyPath:["path"]})})}})});
function tc(a,b){return new Promise(function(d){const c=a.transaction("filesystem","readwrite").objectStore("filesystem").delete([b]);c.addEventListener("success",function(){d(!0)});c.addEventListener("error",function(){d(!1)})})}ya.eaglerDelete=new WebAssembly.Suspending(tc);
function uc(a,b){return new Promise(function(d){const c=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);c.addEventListener("success",function(){d(sc(c.result))});c.addEventListener("error",function(){d(null)})})}ya.eaglerRead=new WebAssembly.Suspending(uc);
function vc(a,b,d){return new Promise(function(c){const h=a.transaction("filesystem","readwrite").objectStore("filesystem").put({path:b,data:d});h.addEventListener("success",function(){c(!0)});h.addEventListener("error",function(){c(!1)})})}ya.eaglerWrite=new WebAssembly.Suspending(vc);
ya.eaglerExists=new WebAssembly.Suspending(function(a,b){return new Promise(function(d){const c=a.transaction("filesystem","readonly").objectStore("filesystem").count([b]);c.addEventListener("success",function(){d(0<c.result)});c.addEventListener("error",function(){d(!1)})})});ya.eaglerMove=new WebAssembly.Suspending(async function(a,b,d){const c=await uc(a,b);return c&&await vc(a,d,c)?await tc(a,b):!1});
ya.eaglerCopy=new WebAssembly.Suspending(async function(a,b,d){return(b=await uc(a,b))&&await vc(a,d,b)});ya.eaglerSize=new WebAssembly.Suspending(function(a,b){return new Promise(function(d){const c=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);c.addEventListener("success",function(){const h=sc(c.result);d(h?h.byteLength:-1)});c.addEventListener("error",function(){d(-1)})})});
function wc(a){if(0===a.length)return-1;for(var b=0,d=0,c=a.length;d<c;++d)47===a.charCodeAt(d)&&++b;return b}
ya.eaglerIterate=new WebAssembly.Suspending(function(a,b,d){return new Promise(function(c){const h=[],l=a.transaction("filesystem","readonly").objectStore("filesystem").openCursor(),t=0===b.length,D=d?-1:wc(b);l.addEventListener("success",function(){const y=l.result;if(null===y||null===y.key)c({length:h.length,getRow:function(v){return h[v]}});else{var B=rc(y.key);null!=B&&(!t&&!B.startsWith(b)||!d&&wc(B)!==D||h.push(B));y.continue()}});l.addEventListener("error",function(){c(null)})})});async function Sb(){function a(){var k=window.devicePixelRatio;.01>k&&(k=1);U=S=0;for(var A=R;A&&!isNaN(A.offsetLeft)&&!isNaN(A.offsetTop);)S+=A.offsetLeft-A.scrollLeft,U+=A.offsetTop-A.scrollTop,A=A.offsetParent;A=P.clientWidth*k|0;var V=P.clientHeight*k|0,W=0,ca=0,sa=A,ja=V;if(O){ja=window.visualViewport;var Y=ja.scale;W=ja.pageLeft*k*Y;ca=ja.pageTop*k*Y;sa=ja.width*k*Y;ja=ja.height*k*Y;1>sa&&(sa=1);1>ja&&(ja=1);0>W?(sa+=W,W=0):W>=A&&(W=A-1);0>ca?(ja+=ca,ca=0):ca>=V&&(ca=V-1);W+sa>A&&(sa=A-W);ca+
ja>V&&(ja=V-ca)}Y={eventTypeMask:0};H!==k&&(H=k,Y.eventTypeMask|=4,Y.windowDPI=k);if(z!==A||E!==V)z=A,E=V,Y.eventTypeMask|=1,Y.windowWidth=A,Y.windowHeight=V;if(ma!==W||Z!==ca||X!==sa||Ga!==ja)ma=W,Z=ca,X=sa,Ga=ja,Y.eventTypeMask|=2,Y.visualViewportX=W,Y.visualViewportY=ca,Y.visualViewportW=sa,Y.visualViewportH=ja;0!==Y.eventTypeMask&&T(0,9,Y)}function b(k){const A=k.length,V=Array(A);for(var W=0;W<A;++W){const ca=k.item(W);V[W]={pointX:ca.pageX-S,pointY:ca.pageY-U,radius:.5*(ca.radiusX+ca.radiusY),
force:ca.force,pointUID:ca.identifier}}return V}function d(k,A){return{eventType:k,keyCode:A.code||null,keyName:A.key||null,legacyCode:"number"===typeof A.which?A.which:"number"===typeof A.keyCode?A.keyCode:0,location:A.location,mods:(A.ctrlKey?1:0)|(A.shiftKey?2:0)|(A.metaKey?4:0)}}function c(){return new Promise(function(k){if(-1!==q)throw Error("Main thread is already waiting for VSync!");const A=[!1];window.requestAnimationFrame(function(){A[0]||(A[0]=!0,-1!==q&&(window.clearTimeout(q),q=-1),
k())});q=window.setTimeout(function(){A[0]||(A[0]=!0,q=-1,k())},20)})}function h(k){return new Promise(function(A){setTimeout(A,k)})}function l(k){if(Aa){Ba=!!k;var A=performance.now()|0;if(k){try{R.requestPointerLock()}catch(V){}-1!==ta&&window.clearTimeout(ta);ta=-1;3E3>A-Ha&&(ta=window.setTimeout(function(){try{R.requestPointerLock()}catch(V){}},3100-(A-Ha)))}else{-1!==ta&&window.clearTimeout(ta);ta=-1;try{document.exitPointerLock()}catch(V){}}}}function t(){if(Ia)if(ua.matches){if(ka)try{navigator.keyboard.unlock()}catch(k){}try{document.exitFullscreen()}catch(k){}}else{if(ka)try{navigator.keyboard.lock()}catch(k){}try{R.requestFullscreen()}catch(k){}}}
function D(){B()?y():r?(r.blur(),r.value="",setTimeout(function(){r&&(K?K.removeChild(r):r.remove(),r=null);K&&(P.removeChild(K),K=null)},10)):(K&&(P.removeChild(K),K=null),K=document.createElement("form"),K.setAttribute("autocomplete","off"),K.classList.add("_eaglercraftX_text_input_wrapper"),K.style.position="absolute",K.style.top="0px",K.style.left="0px",K.style.right="0px",K.style.bottom="0px",K.style.zIndex="-100",K.style.margin="0px",K.style.padding="0px",K.style.border="none",K.addEventListener("submit",
function(k){k.preventDefault();k.stopPropagation();k=k.timeStamp;k&&(0!==f&&10>k-f||0!==x&&10>k-x||0!==p&&10>k-p)||(w||(e("Note: Generating return keystroke from submit event on form, this browser probably doesn't generate keydown/beforeinput/input when enter/return is pressed on the on-screen keyboard"),w=!0),T(0,3,{eventType:0,absoluteCode:28,absoluteChar:10}))}),r=document.createElement("input"),r.type="password",r.value=" ",r.classList.add("_eaglercraftX_text_input_element"),r.setAttribute("autocomplete",
"off"),r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style.right="0px",r.style.bottom="0px",r.style.zIndex="-100",r.style.margin="0px",r.style.padding="0px",r.style.border="none",r.style.setProperty("-webkit-touch-callout","default"),r.addEventListener("beforeinput",function(k){if(r===k.target){m||(e("Note: Caught beforeinput event from on-screen keyboard, browser probably does not generate global keydown/keyup events on text fields, or does not respond to cancelling keydown"),
m=!0);var A=k.timeStamp;if(A){if(0!==f&&10>A-f)return;x=A}k.preventDefault();k.stopPropagation();switch(k.inputType){case "insertParagraph":case "insertLineBreak":T(0,3,{eventType:0,absoluteCode:28,absoluteChar:10});break;case "deleteWordBackward":case "deleteSoftLineBackward":case "deleteHardLineBackward":case "deleteEntireSoftLine":case "deleteContentBackward":case "deleteContent":T(0,3,{eventType:0,absoluteCode:14,absoluteChar:0});break;case "deleteWordForward":case "deleteSoftLineForward":case "deleteHardLineForward":case "deleteContentForward":T(0,
3,{eventType:0,absoluteCode:211,absoluteChar:0});break;case "insertText":case "insertCompositionText":case "insertReplacementText":(k=k.data)&&0<k.length&&T(0,3,{eventType:1,codepoints:k});break;case "insertFromPaste":case "insertFromPasteAsQuotation":case "insertFromDrop":case "insertFromYank":case "insertLink":(k=k.data)&&0<k.length&&T(0,4,k);break;case "historyUndo":case "historyRedo":case "deleteByDrag":case "deleteByCut":break;default:e('Ignoring InputEvent.inputType "{}" from on-screen keyboard',
k.inputType)}}}),r.addEventListener("input",function(k){if(r===k.target){u||(e("Note: Caught legacy input events from on-screen keyboard, browser could be outdated and doesn't support beforeinput event, or does not respond to cancelling beforeinput"),u=!0);if(k=k.timeStamp){if(0!==f&&10>k-f||0!==x&&10>k-x)return;p=k}k=r.value;var A=k.length;0===A?T(0,3,{eventType:0,absoluteCode:14,absoluteChar:0}):1===A?T(0,3,{eventType:1,codepoints:k}):(k=k.trim(),A=k.length,0===A?T(0,3,{eventType:0,absoluteCode:57,
absoluteChar:32}):T(0,3,{eventType:1,codepoints:k.charAt(A-1)}));r.value=" ";r.setSelectionRange(1,1)}}),r.addEventListener("focus",function(k){r===k.target&&(r.value=" ",r.setSelectionRange(1,1))}),r.addEventListener("select",function(k){r===k.target&&(k.preventDefault(),k.stopPropagation(),r.value=" ",r.setSelectionRange(1,1))}),K.appendChild(r),P.appendChild(K),r.value=" ",r.focus(),r.select(),r.setSelectionRange(1,1))}function y(){if(r){r.blur();r.value="";const k=r,A=K;window.setTimeout(function(){null!==
A?(A.removeChild(k),A.remove()):k.remove()},10);K=r=null}else K&&(P?P.removeChild(K):K.remove(),K=null)}function B(){return!!r&&document.activeElement===r}var v=null,S=0,U=0,K=null,r=null,m=!1,u=!1,w=!1,f=0,x=0,p=0,z=-1,E=-1,H=-1,O=!1,ma=-1,Z=-1,X=-1,Ga=-1,Aa=!1,Ba=!1,Ha=0,ta=-1,Ia=!1,ua=null,ka=!1,n=!1,q=-1,F=!1,L=null,Q=null,aa=null,pa=null,Ra=null,ib=null,jb=null,kb=null,lb=null,mb=null,nb=null,ob=null,pb=null,qb=null,rb=null,sb=null,tb=null,ub=null,vb=null,wb=null,xb=null,yb=null;v=document.createElement("div");
v.classList.add("_eaglercraftX_keyboard_open_zone");v.style.display="none";v.style.position="absolute";v.style.backgroundColor="transparent";v.style.top="0px";v.style.left="0px";v.style.width="0px";v.style.height="0px";v.style.zIndex="100";v.style.touchAction="pan-x pan-y";v.style.setProperty("-webkit-touch-callout","none");v.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");P.appendChild(v);a();P.addEventListener("contextmenu",L=function(k){k.preventDefault();k.stopPropagation()});
R.addEventListener("mousedown",Q=function(k){k.preventDefault();k.stopPropagation();Aa&&Ba&&document.pointerLockElement!==R?l(1):T(0,0,{eventType:0,posX:k.offsetX,posY:k.offsetY,button:k.button})});R.addEventListener("mouseup",aa=function(k){k.preventDefault();k.stopPropagation();T(0,0,{eventType:1,posX:k.offsetX,posY:k.offsetY,button:k.button})});R.addEventListener("mousemove",pa=function(k){k.preventDefault();k.stopPropagation();T(0,0,{eventType:2,posX:k.offsetX,posY:k.offsetY,movementX:k.movementX,
movementY:k.movementY})});R.addEventListener("mouseenter",Ra=function(){T(0,7,null)});R.addEventListener("mouseleave",ib=function(){T(0,8,null)});R.addEventListener("touchstart",jb=function(k){k.preventDefault();k.stopPropagation();T(0,2,{eventType:0,changedTouches:b(k.changedTouches),targetTouches:b(k.targetTouches)});y()});R.addEventListener("touchend",kb=function(k){k.preventDefault();k.stopPropagation();T(0,2,{eventType:2,changedTouches:b(k.changedTouches),targetTouches:b(k.targetTouches)})});
R.addEventListener("touchmove",lb=function(k){k.preventDefault();k.stopPropagation();T(0,2,{eventType:1,changedTouches:b(k.changedTouches),targetTouches:b(k.targetTouches)})});R.addEventListener("touchcancel",mb=function(k){T(0,2,{eventType:2,changedTouches:b(k.changedTouches),targetTouches:b(k.targetTouches)})});R.addEventListener("wheel",ub=function(k){k.preventDefault();k.stopPropagation();T(0,0,{eventType:3,posX:k.offsetX,posY:k.offsetY,wheel:k.deltaY})});window.addEventListener("blur",wb=function(){T(0,
6,null)});window.addEventListener("focus",vb=function(){T(0,5,null)});window.addEventListener("keydown",pb=function(k){k.preventDefault();k.stopPropagation();"F11"!==k.key||k.repeat?(T(0,1,d(k.repeat?2:0,k)),k.timeStamp&&"Unidentified"!==k.key&&(f=k.timeStamp)):t()});window.addEventListener("keyup",qb=function(k){k.preventDefault();k.stopPropagation();T(0,1,d(1,k))});v.addEventListener("touchstart",rb=function(k){k.preventDefault();k.stopPropagation()});v.addEventListener("touchend",sb=function(k){k.preventDefault();
k.stopPropagation();D()});v.addEventListener("touchmove",tb=function(k){k.preventDefault();k.stopPropagation()});(Aa="function"===typeof document.exitPointerLock)?document.addEventListener("pointerlockchange",xb=function(){window.setTimeout(function(){const k=document.pointerLockElement===R;k||Ba&&(Ha=performance.now()|0);Ba=k},60)}):g("Pointer lock is not supported on this browser");(Ia="function"===typeof document.exitFullscreen)?(ua=window.matchMedia("(display-mode: fullscreen)"),(ka=!(!navigator.keyboard||
!navigator.keyboard.lock))&&ua.addEventListener("change",yb=function(){ua.matches||navigator.keyboard.unlock()})):g("Fullscreen is not supported on this browser");if("undefined"!==typeof window.visualViewport)if("body"===Va.tagName.toLowerCase())O=!0;else{const k=document.body;10>=Math.abs(k.clientWidth-P.clientWidth)&&10>=Math.abs(k.clientHeight-P.clientHeight)&&(O=!0)}else O=!1;O&&e("Note: Detected game is embedded in body, some screens may be resized to window.visualViewport instead for a better mobile experience");
try{await c(),n=!0}catch(k){n=!1}n||g("VSync is not supported on this browser");(F="function"===typeof navigator.getGamepads)?(window.addEventListener("gamepadconnected",nb=function(){T(0,10,{eventType:0})}),window.addEventListener("gamepaddisconnected",ob=function(k){T(0,10,{eventType:1,gamepad:k.gamepad})})):g("Gamepad detected as unsupported!");I.keyboardLayoutSupported=function(){return!(!navigator.keyboard||!navigator.keyboard.getLayoutMap)};I.iterateKeyboardLayout=new WebAssembly.Suspending(async function(){const k=
[];try{const A=await navigator.keyboard.getLayoutMap();A&&A.forEach&&A.forEach(function(V,W){k.push({key:V,value:W})})}catch(A){}return k});I.updateCanvasSize=function(k,A){R.width!==k&&(R.width=k);R.height!==A&&(R.height=A)};var va=0;I.updatePlatformAndSleep=new WebAssembly.Suspending(function(k,A){a();if("string"!==typeof document.visibilityState||"visible"===document.visibilityState){if(n&&A)return va=0,c();if(0>=k)return va=0,Fb?xc(0):yc();a:{if(0<k&&1E3>k)if(0===va)va=performance.now();else{A=
performance.now();const V=1E3/k;k=A-va;2E3<k||0>k?(k=V,va=A):va+=V;if(0<=k&&k<V){A=h(V-k);break a}}else va=0;A=Fb?xc(0):yc()}return A}va=0;return h(50)});I.isVSyncSupported=function(){return n};I.mouseSetGrabbed=l;I.isMouseGrabSupported=function(){return Aa};I.isMouseGrabbed=function(){return Ba};I.isPointerLocked=function(){return Aa&&document.pointerLockElement===R};I.supportsFullscreen=function(){return Ia};I.toggleFullscreen=t;I.isFullscreen=function(){return Ia&&ua.matches};I.touchSetOpenKeyboardZone=
function(k,A,V,W){0!==V&&0!==W?(v.style.display="block",v.style.top=""+(E-A-W)/H+"px",v.style.left=""+k/H+"px",v.style.width=""+V/H+"px",v.style.height=""+W/H+"px"):(v.style.display="none",v.style.top="0px",v.style.left="0px",v.style.width="0px",v.style.height="0px")};I.touchCloseDeviceKeyboard=y;I.touchIsDeviceKeyboardOpenMAYBE=B;I.gamepadSupported=function(){return F};I.isVisualViewport=function(){return O};eb=function(){try{L&&(P.removeEventListener("contextmenu",L),L=null),Q&&(R.removeEventListener("mousedown",
Q),Q=null),aa&&(R.removeEventListener("mouseup",aa),aa=null),pa&&(R.removeEventListener("mousemove",pa),pa=null),Ra&&(R.removeEventListener("mouseenter",Ra),Ra=null),ib&&(R.removeEventListener("mouseleave",ib),ib=null),jb&&(R.removeEventListener("touchstart",jb),jb=null),kb&&(R.removeEventListener("touchend",kb),kb=null),lb&&(R.removeEventListener("touchmove",lb),lb=null),mb&&(R.removeEventListener("touchcancel",mb),mb=null),nb&&(window.removeEventListener("gamepadconnected",nb),nb=null),ob&&(window.removeEventListener("gamepaddisconnected",
ob),ob=null),pb&&(window.removeEventListener("keydown",pb),pb=null),qb&&(window.removeEventListener("keyup",qb),qb=null),rb&&(v.removeEventListener("touchstart",rb),rb=null),sb&&(v.removeEventListener("touchend",sb),sb=null),tb&&(v.removeEventListener("touchmove",tb),tb=null),ub&&(R.removeEventListener("wheel",ub),ub=null),vb&&(window.removeEventListener("focus",vb),vb=null),wb&&(window.removeEventListener("blur",wb),wb=null),xb&&(document.removeEventListener("pointerlockchange",xb),xb=null),yb&&
(ua.removeEventListener("change",yb),yb=null)}catch(k){g("Failed to remove event listeners! {}",k)}eb=null}};(function(){function a(){this._socket.close()}function b(f){this._socket.send(f)}function d(f){this._socket.send(f)}function c(){return this._frameCountStr+this._frameCountBin}function h(){const f=this._queue;return f?(f._next===f&&f._prev===f?this._queue=null:(this._queue=f._next,f._prev._next=f._next,f._next._prev=f._prev),f._next=null,f._prev=null,0===f.type?--this._frameCountStr:--this._frameCountBin,f):null}function l(){var f=this._frameCountStr+this._frameCountBin;if(0===f)return null;f=Array(f);
var x=0,p=this._queue;const z=p;do{f[x++]=p;var E=p._next;p._next=null;p._prev=null;p=E}while(p!==z);this._queue=null;this._frameCountBin=this._frameCountStr=0;return f}function t(){this._queue=null;this._frameCountBin=this._frameCountStr=0}function D(f,x){var p=f._queue;if(!p)return null;const z=p;do{var E=p._next;if(p.type===x)return x=p._prev,E===p&&x===p?f._queue=null:(p===z&&(f._queue=E),x._next=E,E._prev=x),p._next=null,p._prev=null,p;p=E}while(p!==z);return null}function y(f,x,p){var z=0,E=
f._queue,H=E;do{var O=E._next;E.type===x&&(p[z++]=E);E=O}while(E!==H);p.length=z;for(H=0;H<z;++H)E=p[H],O=E._next,x=E._prev,O===E&&x===E?f._queue=null:(E===f._queue&&(f._queue=O),x._next=O,O._prev=x)}function B(){return this._frameCountStr}function v(){if(0===this._frameCountStr)return null;const f=D(this,0);f?--this._frameCountStr:this._frameCountStr=0;return f}function S(){var f=this._frameCountStr;if(0===f)return null;f=Array(f);y(this,0,f);this._frameCountStr=0;return f}function U(){const f=this._frameCountStr;
if(0===f)return null;y(this,0,Array(f));this._frameCountStr=0}function K(){return this._frameCountBin}function r(){if(0===this._frameCountBin)return null;const f=D(this,1);f?--this._frameCountBin:this._frameCountBin=0;return f}function m(){var f=this._frameCountBin;if(0===f)return null;f=Array(f);y(this,1,f);this._frameCountBin=0;return f}function u(){const f=this._frameCountBin;if(0===f)return null;y(this,1,Array(f));this._frameCountBin=0}function w(f){const x="string"===typeof f;f={type:x?0:1,data:f,
timestamp:performance.now(),_next:null,_prev:null};const p=this._queue;if(p){const z=p._prev;z._next=f;f._prev=z;f._next=p;p._prev=f}else this._queue=f,f._next=f,f._prev=f;x?++this._frameCountStr:++this._frameCountBin}za.createWebSocketHandle=function(f){let x;try{x=new WebSocket(f)}catch(z){return g("Failed to create WebSocket: {}",f),ia("Exception Caught",z),null}x.binaryType="arraybuffer";const p={state:1,_socket:x,_queue:null,_frameCountStr:0,_frameCountBin:0,_addRecievedFrame:w,closeSocket:a,
sendStringFrame:b,sendBinaryFrame:d,availableFrames:c,getNextFrame:h,getAllFrames:l,clearFrames:t,availableStringFrames:B,getNextStringFrame:v,getAllStringFrames:S,clearStringFrames:U,availableBinaryFrames:K,getNextBinaryFrame:r,getAllBinaryFrames:m,clearBinaryFrames:u};x.addEventListener("open",function(){p.state=2});x.addEventListener("message",function(z){p._addRecievedFrame(z.data)});x.addEventListener("close",function(){3!==p.state&&(p.state=0)});x.addEventListener("error",function(){1===p.state&&
(p.state=3)});return p}})();function Ub(a,b){var d=Eb;const c=d&&200===b?a.getExtension("OES_vertex_array_object"):null,h=d&&200===b?a.getExtension("ANGLE_instanced_arrays"):null,l=d&&200===b&&null!==h,t=d&&(310===b||300===b)&&null!==a.getExtension("EXT_color_buffer_float"),D=d&&!t&&(310===b||300===b||200===b)&&null!==a.getExtension("EXT_color_buffer_half_float"),y=d&&200===b&&null!==a.getExtension("EXT_shader_texture_lod"),B=d&&200===b&&null!==a.getExtension("OES_fbo_render_mipmap"),v=d&&200===b&&null!==c,S=d&&200===b&&null!==
a.getExtension("OES_texture_float"),U=d&&300<=b&&null!==a.getExtension("OES_texture_float_linear"),K=d&&200===b&&null!==a.getExtension("OES_texture_half_float"),r=d&&200===b&&null!==a.getExtension("OES_texture_half_float_linear");d=d&&null!==a.getExtension("EXT_texture_filter_anisotropic");const m=null!==a.getExtension("WEBGL_debug_renderer_info"),u=300<=b?0:200===b&&v?1:-1,w=300<=b?0:200===b&&l?1:-1,f=[b,u,w,0,0];if(300<=b||B)f[3]|=4;if(300<=b||y)f[3]|=8;300<=b&&(f[3]|=16);(320<=b||(300<=b||S)&&
(t||D))&&(f[3]|=32);(320<=b||(300<=b||K)&&t)&&(f[3]|=64);d&&(f[3]|=128);(300<=b||r)&&(f[4]|=1);300<=b&&U&&(f[4]|=2);J.getCapBits=function(p){return f[p]};J.glEnable=a.enable.bind(a);J.glDisable=a.disable.bind(a);J.glClearColor=a.clearColor.bind(a);J.glClearDepth=a.clearDepth.bind(a);J.glClear=a.clear.bind(a);J.glDepthFunc=a.depthFunc.bind(a);J.glDepthMask=a.depthMask.bind(a);J.glCullFace=a.cullFace.bind(a);J.glViewport=a.viewport.bind(a);J.glBlendFunc=a.blendFunc.bind(a);J.glBlendFuncSeparate=a.blendFuncSeparate.bind(a);
J.glBlendEquation=a.blendEquation.bind(a);J.glBlendColor=a.blendColor.bind(a);J.glColorMask=a.colorMask.bind(a);J.glDrawBuffers=300<=b?a.drawBuffers.bind(a):na("glDrawBuffers");J.glReadBuffer=300<=b?a.readBuffer.bind(a):na("glReadBuffer");J.glReadPixels=a.readPixels.bind(a);J.glPolygonOffset=a.polygonOffset.bind(a);J.glLineWidth=a.lineWidth.bind(a);J.glGenBuffers=a.createBuffer.bind(a);J.glGenTextures=a.createTexture.bind(a);J.glCreateProgram=a.createProgram.bind(a);J.glCreateShader=a.createShader.bind(a);
J.glCreateFramebuffer=a.createFramebuffer.bind(a);J.glCreateRenderbuffer=a.createRenderbuffer.bind(a);J.glGenQueries=300<=b?a.createQuery.bind(a):na("glGenQueries");J.glDeleteBuffers=a.deleteBuffer.bind(a);J.glDeleteTextures=a.deleteTexture.bind(a);J.glDeleteProgram=a.deleteProgram.bind(a);J.glDeleteShader=a.deleteShader.bind(a);J.glDeleteFramebuffer=a.deleteFramebuffer.bind(a);J.glDeleteRenderbuffer=a.deleteRenderbuffer.bind(a);J.glDeleteQueries=300<=b?a.deleteQuery.bind(a):na("glDeleteQueries");
J.glBindBuffer=a.bindBuffer.bind(a);J.glBufferData=a.bufferData.bind(a);J.glBufferSubData=a.bufferSubData.bind(a);J.glEnableVertexAttribArray=a.enableVertexAttribArray.bind(a);J.glDisableVertexAttribArray=a.disableVertexAttribArray.bind(a);J.glVertexAttribPointer=a.vertexAttribPointer.bind(a);J.glActiveTexture=a.activeTexture.bind(a);J.glBindTexture=a.bindTexture.bind(a);J.glTexParameterf=a.texParameterf.bind(a);J.glTexParameteri=a.texParameteri.bind(a);J.glTexImage3D=300<=b?a.texImage3D.bind(a):
na("glTexImage3D");J.glTexImage2D=a.texImage2D.bind(a);J.glTexSubImage2D=a.texSubImage2D.bind(a);J.glCopyTexSubImage2D=a.copyTexSubImage2D.bind(a);J.glTexStorage2D=300<=b?a.texStorage2D.bind(a):na("glTexStorage2D");J.glPixelStorei=a.pixelStorei.bind(a);J.glGenerateMipmap=a.generateMipmap.bind(a);J.glShaderSource=a.shaderSource.bind(a);J.glCompileShader=a.compileShader.bind(a);J.glGetShaderi=a.getShaderParameter.bind(a);J.glGetShaderInfoLog=a.getShaderInfoLog.bind(a);J.glUseProgram=a.useProgram.bind(a);
J.glAttachShader=a.attachShader.bind(a);J.glDetachShader=a.detachShader.bind(a);J.glLinkProgram=a.linkProgram.bind(a);J.glGetProgrami=a.getProgramParameter.bind(a);J.glGetProgramInfoLog=a.getProgramInfoLog.bind(a);J.glDrawArrays=a.drawArrays.bind(a);J.glDrawElements=a.drawElements.bind(a);J.glBindAttribLocation=a.bindAttribLocation.bind(a);J.glGetAttribLocation=a.getAttribLocation.bind(a);J.glGetUniformLocation=a.getUniformLocation.bind(a);J.glGetUniformBlockIndex=300<=b?a.getUniformBlockIndex.bind(a):
na("glGetUniformBlockIndex");J.glBindBufferRange=300<=b?a.bindBufferRange.bind(a):na("glBindBufferRange");J.glUniformBlockBinding=300<=b?a.uniformBlockBinding.bind(a):na("glUniformBlockBinding");J.glUniform1f=a.uniform1f.bind(a);J.glUniform2f=a.uniform2f.bind(a);J.glUniform3f=a.uniform3f.bind(a);J.glUniform4f=a.uniform4f.bind(a);J.glUniform1i=a.uniform1i.bind(a);J.glUniform2i=a.uniform2i.bind(a);J.glUniform3i=a.uniform3i.bind(a);J.glUniform4i=a.uniform4i.bind(a);J.glUniformMatrix2fv=a.uniformMatrix2fv.bind(a);
J.glUniformMatrix3fv=a.uniformMatrix3fv.bind(a);J.glUniformMatrix4fv=a.uniformMatrix4fv.bind(a);J.glUniformMatrix3x2fv=300<=b?a.uniformMatrix3x2fv.bind(a):na("glUniformMatrix3x2fv");J.glUniformMatrix4x2fv=300<=b?a.uniformMatrix4x2fv.bind(a):na("glUniformMatrix4x2fv");J.glUniformMatrix4x3fv=300<=b?a.uniformMatrix4x3fv.bind(a):na("glUniformMatrix4x3fv");J.glBindFramebuffer=a.bindFramebuffer.bind(a);J.glCheckFramebufferStatus=a.checkFramebufferStatus.bind(a);J.glBlitFramebuffer=300<=b?a.blitFramebuffer.bind(a):
na("glBlitFramebuffer");J.glRenderbufferStorage=a.renderbufferStorage.bind(a);J.glFramebufferTexture2D=a.framebufferTexture2D.bind(a);J.glFramebufferTextureLayer=300<=b?a.framebufferTextureLayer.bind(a):na("glFramebufferTextureLayer");J.glBindRenderbuffer=a.bindRenderbuffer.bind(a);J.glFramebufferRenderbuffer=a.framebufferRenderbuffer.bind(a);J.glGetError=a.getError.bind(a);J.getAllExtensions=a.getSupportedExtensions.bind(a);J.isContextLost=a.isContextLost.bind(a);const x=[];l&&x.push("ANGLE_instanced_arrays");
t&&x.push("EXT_color_buffer_float");D&&x.push("EXT_color_buffer_half_float");y&&x.push("EXT_shader_texture_lod");B&&x.push("OES_fbo_render_mipmap");v&&x.push("OES_vertex_array_object");S&&x.push("OES_texture_float");U&&x.push("OES_texture_float_linear");K&&x.push("OES_texture_half_float");r&&x.push("OES_texture_half_float_linear");d&&x.push("EXT_texture_filter_anisotropic");m&&x.push("WEBGL_debug_renderer_info");J.dumpActiveExtensions=function(){return x};J.glGetInteger=function(p){p=a.getParameter(p);
return"number"===typeof p?p:0};J.glGetString=function(p){if(m)switch(p){case 7936:p=a.getParameter(37445);null==p&&(p=a.getParameter(7936));break;case 7937:p=a.getParameter(37446);null==p&&(p=a.getParameter(7937));break;default:p=a.getParameter(p)}else p=a.getParameter(p);return"string"===typeof p?p:null};switch(u){case 0:J.glGenVertexArrays=a.createVertexArray.bind(a);J.glDeleteVertexArrays=a.deleteVertexArray.bind(a);J.glBindVertexArray=a.bindVertexArray.bind(a);break;case 1:J.glGenVertexArrays=
c.createVertexArrayOES.bind(c);J.glDeleteVertexArrays=c.deleteVertexArrayOES.bind(c);J.glBindVertexArray=c.bindVertexArrayOES.bind(c);break;default:C(J,"glGenVertexArrays"),C(J,"glDeleteVertexArrays"),C(J,"glBindVertexArray")}switch(w){case 0:J.glVertexAttribDivisor=a.vertexAttribDivisor.bind(a);J.glDrawArraysInstanced=a.drawArraysInstanced.bind(a);J.glDrawElementsInstanced=a.drawElementsInstanced.bind(a);break;case 1:J.glVertexAttribDivisor=h.vertexAttribDivisorANGLE.bind(h);J.glDrawArraysInstanced=
h.drawArraysInstancedANGLE.bind(h);J.glDrawElementsInstanced=h.drawElementsInstancedANGLE.bind(h);break;default:C(J,"glVertexAttribDivisor"),C(J,"glDrawArraysInstanced"),C(J,"glDrawElementsInstanced")}};var zc=!1;const Ac=new MessageChannel;var Bc=null;Ac.port2.addEventListener("message",function(){Bc()});async function Jb(){Ac.port1.start();Ac.port2.start();Bc=function(){Bc=null};Ac.port1.postMessage(0);Bc?await new Promise(function(a){setTimeout(function(){Bc?g("Immediate continue hack is not supported"):zc=!0;a()},25)}):g("Immediate continue hack is not supported")}Ca.getRootElement=function(){return Va};Ca.getParentElement=function(){return P};Ca.getCanvasElement=function(){return R};
Ca.getEaglercraftXOpts=function(){return N};Ca.getEventCount=Yb.K.bind(Yb);Ca.getNextEvent=Yb.j.bind(Yb);
Ca.queueAsyncDownload=function(a,b,d){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(c){return c.arrayBuffer()}).then(function(c){T(1,0,{requestId:d,arrayBuffer:c})}).catch(function(c){g("Failed to complete async download: {}",a);ia("Exception Caught",c);T(1,0,{requestId:d,arrayBuffer:null})})}catch(c){g("Failed to fetch: {}",a),ia("Exception Caught",c),T(1,0,{requestId:d,arrayBuffer:null})}};
Ca.download=new WebAssembly.Suspending(function(a,b){return new Promise(function(d){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(c){return c.arrayBuffer()}).then(function(c){d(c)}).catch(function(c){g("Failed to complete download: {}",a);ia("Exception Caught",c);d(null)})}catch(c){g("Failed to fetch: {}",a),ia("Exception Caught",c),d(null)}})});Ca.writeCrashReport=function(a){ac(a,!1)};Ca.steadyTimeMillis=performance.now.bind(performance);
function xc(a){return new Promise(function(b){setTimeout(b,a)})}Ca.sleep=new WebAssembly.Suspending(xc);function Cc(a){zc?(Bc=a,Ac.port1.postMessage(0)):setTimeout(a,0)}function yc(){return new Promise(Cc)}Ca.immediateContinue=new WebAssembly.Suspending(yc);Ca.setCrashReportString=function(a,b){db[a]=b};var Dc="undefined"!==typeof window,Ec=null;function Fc(){return new Promise(function(a){if("navigator"in window&&"mediaDevices"in window.navigator&&"getUserMedia"in window.navigator.mediaDevices)try{window.navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(function(b){a(b)}).catch(function(b){g("getUserMedia Error! (async)");ia("Exception Caught",b);a(null)})}catch(b){g("getUserMedia Error!"),a(null)}else g("No getUserMedia!"),a(null)})}
async function Gc(){return Dc?null===Ec&&(Ec=await Fc(),null===Ec)?(Dc=!1,null):Ec:null}
function Lb(){function a(b){const d=new Date;return b.replace("${date}",d.getFullYear()+"-"+("0"+(d.getMonth()+1)).slice(-2)+"-"+("0"+d.getDate()).slice(-2)+" "+("0"+d.getHours()).slice(-2)+"-"+("0"+d.getMinutes()).slice(-2)+"-"+("0"+d.getSeconds()).slice(-2))}Da.getMic=new WebAssembly.Suspending(Gc);Da.setDataAvailableHandler=function(b,d,c){const h=performance.now();b.addEventListener("dataavailable",function(l){if(d)Hc(l.data,performance.now()-h|0,function(t){const D=URL.createObjectURL(t);jc(a(c),
D,function(){URL.revokeObjectURL(D)})},{U:function(t){e(t)}});else{const t=URL.createObjectURL(l.data);jc(a(c),t,function(){URL.revokeObjectURL(t)})}})}};function Mb(){function a(h){try{const l=JSON.parse(h);this._peerConnection.setRemoteDescription(l).then(()=>{l.hasOwnProperty("type")&&"offer"===l.type&&this._peerConnection.createAnswer().then(t=>{this._peerConnection.setLocalDescription(t).then(()=>{T(2,1,{objId:this.objId,data:JSON.stringify(t)})}).catch(D=>{g('Failed to set local description for "{}"! {}',this.objId,D.message);T(2,3,{objId:this.objId})})}).catch(t=>{g('Failed to create answer for "{}"! {}',this.objId,t.message);T(2,3,{objId:this.objId})})}).catch(t=>
{g('Failed to set remote description for "{}"! {}',this.objId,t.message);T(2,3,{objId:this.objId})})}catch(l){g(l.message),T(2,3,{objId:this.objId})}}function b(h){try{this._peerConnection.addIceCandidate(new RTCIceCandidate(JSON.parse(h))).catch(l=>{g('Failed to parse ice candidate for "{}"! {}',this.objId,l.message);T(2,3,{objId:this.objId})})}catch(l){g(l.message),T(2,3,{objId:this.objId})}}function d(){this._peerConnection.close()}Ea.isSupported=function(){return"undefined"!==typeof navigator.mediaDevices&&
"undefined"!==typeof navigator.mediaDevices.getUserMedia&&"srcObject"in HTMLAudioElement.prototype};let c=0;Ea.createRTCPeerConnection=function(h,l,t){try{const y=c++;var D;const B=new RTCPeerConnection({iceServers:JSON.parse(h),optional:[{DtlsSrtpKeyAgreement:!0}]});B.addEventListener("icecandidate",v=>{v.candidate&&T(2,0,{objId:y,data:JSON.stringify({sdpMLineIndex:""+v.candidate.sdpMLineIndex,candidate:v.candidate.candidate})})});B.addEventListener("track",v=>{v=v.streams[0];D._aud=document.createElement("audio");
D._aud.autoplay=!0;D._aud.muted=!0;D._aud.srcObject=v;T(2,2,{objId:y,stream:v})});t.getTracks().forEach(function(v){B.addTrack(v,t)});l&&B.createOffer().then(v=>{B.setLocalDescription(v).then(()=>{T(2,1,{objId:y,data:JSON.stringify(v)})}).catch(S=>{g('Failed to set local description for "{}"! {}',y,S.message);T(2,3,{objId:y})})}).catch(v=>{g('Failed to set create offer for "{}"! {}',y,v.message);T(2,3,{objId:y})});B.addEventListener("connectionstatechange",()=>{const v=B.connectionState;"disconnected"!==
v&&"failed"!==v||T(2,3,{objId:y})});return D={objId:y,_peerConnection:B,setRemoteDescription:a,addRemoteICECandidate:b,closeHandle:d}}catch(y){return g(y.message),null}}};function Nb(){const a=new qa;let b;b={iceServers:[],g:null,h:null,readyState:1,v:null,description:null,D:!1,C:!0,disconnect:function(c){if(b.h){try{b.h.close()}catch(h){}b.h=null}if(b.g){try{b.g.close()}catch(h){}b.g=null}c||(b.C=!0);b.readyState=0}};M.supported=function(){return"undefined"!==typeof RTCPeerConnection};M.clientLANReadyState=function(){return b.readyState};M.clientLANCloseConnection=function(){b.disconnect(!1)};M.clientLANSendPacket=function(c){if(null!==b.h&&"open"===b.h.readyState)try{b.h.send(c)}catch(h){b.disconnect(!1)}else b.disconnect(!1)};
M.clientLANReadPacket=function(){const c=a.j();return c?new Uint8Array(c.data):null};M.clientLANAvailable=function(){return a.u};M.clientLANSetICEServersAndConnect=function(c){b.iceServers.length=0;for(let h of c)c=h.split(";"),1===c.length?b.iceServers.push({urls:c[0]}):3===c.length&&b.iceServers.push({urls:c[0],username:c[1],credential:c[2]});2!==b.readyState&&1!==b.readyState||b.disconnect(!0);try{if(b.h){try{b.h.close()}catch(h){}b.h=null}if(b.g)try{b.g.close()}catch(h){}b.g=new RTCPeerConnection({iceServers:b.iceServers,
optional:[{DtlsSrtpKeyAgreement:!0}]});b.readyState=1}catch(h){ia("Could not create LAN client RTCPeerConnection!",h);b.readyState=-2;return}try{const h=[];b.g.addEventListener("icecandidate",t=>{if(t.candidate){if(0===h.length){const D=[0,0],y=()=>{if(null!==b.g&&"disconnected"!==b.g.connectionState){const B=++D[1];D[0]!==h.length&&3>B?(D[0]=h.length,setTimeout(y,2E3)):(b.v=JSON.stringify(h),h.length=0)}};setTimeout(y,2E3)}h.push({sdpMLineIndex:t.candidate.sdpMLineIndex,candidate:t.candidate.candidate})}});
b.h=b.g.createDataChannel("lan");b.h.binaryType="arraybuffer";let l;l=()=>{0<h.length?setTimeout(l,10):(b.C=!1,b.D=!0)};b.h.addEventListener("open",l);b.h.addEventListener("message",t=>{a.push({data:t.data,_next:null})});b.g.createOffer().then(t=>{b.g.setLocalDescription(t).then(()=>{b.description=JSON.stringify(t)}).catch(D=>{g("Failed to set local description! {}",D.message);b.readyState=-1;b.disconnect(!1)})}).catch(t=>{g("Failed to set create offer! {}",t.message);b.readyState=-1;b.disconnect(!1)});
b.g.addEventListener("connectionstatechange",()=>{var t=b.g.connectionState;"disconnected"===t?b.disconnect(!1):"connected"===t?b.readyState=2:"failed"===t&&(b.readyState=-1,b.disconnect(!1))})}catch(h){if(b.h){try{b.h.close()}catch(l){}b.h=null}if(b.g){try{b.g.close()}catch(l){}b.g=null}ia("Could not create LAN client RTCDataChannel!",h);b.readyState=-2}};M.clearLANClientState=function(){b.v=b.description=null;b.D=!1;b.C=!0};M.clientLANAwaitICECandidate=function(){if(null===b.v)return null;const c=
b.v;b.v=null;return c};M.clientLANAwaitDescription=function(){if(null===b.description)return null;const c=b.description;b.description=null;return c};M.clientLANAwaitChannel=function(){return b.D?(b.D=!1,!0):!1};M.clientLANClosed=function(){return b.C};M.clientLANSetICECandidate=function(c){try{const h=JSON.parse(c);for(c=0;c<h.length;++c)b.g.addIceCandidate(new RTCIceCandidate(h[c]))}catch(h){ia("Uncaught exception setting remote ICE candidates",h),b.readyState=-1,b.disconnect(!1)}};M.clientLANSetDescription=
function(c){try{b.g.setRemoteDescription(JSON.parse(c))}catch(h){ia("Uncaught exception setting remote description",h),b.readyState=-1,b.disconnect(!1)}};let d;d={iceServers:[],A:new Map,F:new Map,disconnect:function(c){const h=d.A.get(c);if(h){d.A.delete(c);h.l&&d.F.delete(h.l);try{h.disconnect()}catch(l){}h.s(4,null)}}};M.serverLANInitializeServer=function(c){d.iceServers.length=0;for(let h of c)c=h.split(";"),1===c.length?d.iceServers.push({urls:c[0]}):3===c.length&&d.iceServers.push({urls:c[0],
username:c[1],credential:c[2]})};M.serverLANCloseServer=function(){for(let c of Object.values(d.A))if(c){try{c.disconnect()}catch(h){}c.s(4,null)}d.A.clear()};M.serverLANCreatePeer=function(c){try{const h=new qa;let l;l={i:c,g:new RTCPeerConnection({iceServers:d.iceServers,optional:[{DtlsSrtpKeyAgreement:!0}]}),h:null,l:null,s:function(y,B){h.push({type:y,data:B,_next:null})},disconnect:function(){l.h&&l.h.close();l.g.close()}};d.A.set(l.i,l);const t=[];l.g.addEventListener("icecandidate",y=>{if(y.candidate){if(0===
t.length){const B=[0,0],v=()=>{if(null!==l.g&&"disconnected"!==l.g.connectionState){const S=++B[1];B[0]!==t.length&&3>S?(B[0]=t.length,setTimeout(v,2E3)):(l.s(0,JSON.stringify(t)),t.length=0)}};setTimeout(v,2E3)}t.push({sdpMLineIndex:y.candidate.sdpMLineIndex,candidate:y.candidate.candidate})}});let D;D=y=>{0<t.length?setTimeout(D,10,y):y.channel&&(y=y.channel,null!==l.h?y.close():(l.h=y,l.s(2,null),l.h.addEventListener("message",B=>{B=B.data;l.l?bb(l.l,B):l.s(3,new Uint8Array(B))})))};l.g.addEventListener("datachannel",
D);l.g.addEventListener("connectionstatechange",()=>{const y=l.g.connectionState;"disconnected"!==y&&"failed"!==y||d.disconnect(l.i)});return{peerId:l.i,countAvailableEvents:function(){return h.u},nextEvent:function(){return h.j()},writePacket:function(y){let B=!1;if(null!==l.h&&"open"===l.h.readyState)try{l.h.send(y)}catch(v){B=!0}else B=!0;B&&d.disconnect(l.i)},handleRemoteICECandidates:function(y){try{const B=JSON.parse(y);for(let v of B)l.g.addIceCandidate(new RTCIceCandidate(v))}catch(B){g('Failed to parse ice candidate for "{}"! {}',
l.i,B.message),d.disconnect(l.i)}},handleRemoteDescription:function(y){try{const B=JSON.parse(y);l.g.setRemoteDescription(B).then(()=>{B.hasOwnProperty("type")&&"offer"===B.type&&l.g.createAnswer().then(v=>{l.g.setLocalDescription(v).then(()=>{l.s(1,JSON.stringify(v))}).catch(S=>{g('Failed to set local description for "{}"! {}',l.i,S.message);d.disconnect(l.i)})}).catch(v=>{g('Failed to create answer for "{}"! {}',l.i,v.message);d.disconnect(l.i)})}).catch(v=>{g('Failed to set remote description for "{}"! {}',
l.i,v.message);d.disconnect(l.i)})}catch(B){g('Failed to parse remote description for "{}"! {}',l.i,B.message),d.disconnect(l.i)}},mapIPC:function(y){l.l?y||(d.F.delete(l.l),l.l=null):y&&(l.l=y,d.F.set(y,l))},disconnect:function(){d.disconnect(l.i)}}}catch(h){return ia("Failed to create WebRTC LAN peer!",h),null}};ab=function(c,h){if(c=d.F.get(c)){let l=!1;if(c.h&&"open"===c.h.readyState)try{c.h.send(h)}catch(t){l=!0}else l=!0;l&&d.disconnect(c.i);return!0}return!1}};function Ob(){function a(p,z){p.allow=z;return p.allow===z}function b(p,z){const E=p.sandbox;for(var H=0;H<z.length;++H)E.add(z[H]);for(H=0;H<z.length;++H)if(!E.contains(z[H]))return!1;for(H=0;H<E.length;++H)if(!z.find(O=>O===E[H]))return!1;return!0}function d(p){if(S)f=document.createElement("iframe"),f.allow="",f.referrerPolicy="strict-origin",f.sandbox.add("allow-downloads"),p.scriptEnabled&&(f.sandbox.add("allow-scripts"),f.sandbox.add("allow-pointer-lock"));else{f=document.createElement("iframe");
f.referrerPolicy="strict-origin";var z=["allow-downloads"];p.scriptEnabled&&(z.push("allow-scripts"),z.push("allow-pointer-lock"));if(!a(f,"")||!b(f,z)){g("Caught safety exception while opening webview!");null!==f&&(f.remove(),f=null);g("Things you can try:");g("1. Set window.eaglercraftXOpts.forceWebViewSupport to true");g("2. Set window.eaglercraftXOpts.enableWebViewCSP to false");g("(these settings may compromise security)");c();w.innerHTML='<div style="padding-top:13vh;"><h1 style="text-align:center;"><img width="48" height="48" style="vertical-align:middle;" src="'+
Ta+'">&emsp;IFrame Safety Error</h1><h4 style="text-align:center;">The content cannot be displayed safely!</h4><h4 style="text-align:center;">Check console for more details</h4></div>';return}}f.j=!0;f.o="lazy";z=!1;if(1===p.contentMode){if(U&&v)if("string"===typeof f.csp){var E="default-src 'none';",H=p.strictCSPEnable?"":r?" https:":" http: https:";E=p.scriptEnabled?E+(" script-src 'unsafe-eval' 'unsafe-inline' data: blob:"+H+"; style-src 'unsafe-eval' 'unsafe-inline' data: blob:")+(H+"; img-src data: blob:")+
(H+"; font-src data: blob:")+(H+"; child-src data: blob:")+(H+"; frame-src data: blob:; media-src data: mediastream: blob:")+(H+"; connect-src data: blob:")+(H+"; worker-src data: blob:")+(H+";"):E+(" style-src data: 'unsafe-inline'"+H+"; img-src data:")+(H+"; font-src data:")+(H+"; media-src data:")+(H+";");f.csp=E}else ha("This browser does not support CSP attribute on iframes! (try Chrome)"),z=!0;else z=!0;z&&p.strictCSPEnable&&ha("Strict CSP was requested for this webview, but that feature is not available!")}else z=
!0;f.style.border="none";f.style.backgroundColor="white";f.style.width="100%";f.style.height="100%";f.classList.add("_eaglercraftX_webview_iframe_element");u.appendChild(f);1===p.contentMode?(E=y.decode(p.blob),p.blob=null,f.srcdoc=E):f.src=p.uri;const O=m,ma=f;let Z=!1;f.addEventListener("mouseover",function(){O!==m||ma!==f||Z||(Z=!0,f.contentWindow.focus())});f.addEventListener("mouseout",function(){O===m&&ma===f&&Z&&(Z=!1,window.focus())});p.scriptEnabled&&p.serverMessageAPIEnabled&&(x=function(X){if(O===
m&&ma===f&&X.source===ma.contentWindow){X=X.data;if("object"===typeof X&&1===X.ver&&"string"===typeof X.channel&&0<X.channel.length){if("boolean"===typeof X.open){T(3,0,{eventType:X.open?0:1,channelName:X.channel});return}if("string"===typeof X.data){T(3,1,{eventType:0,channelName:X.channel,eventData:X.data});return}if(X.data instanceof ArrayBuffer){T(3,1,{eventType:1,channelName:X.channel,eventData:X.data});return}}ha("WebView sent an invalid message!")}else ha("Recieved message from on dead IFrame handler: (#{}) {}",
O,ma.src)});e('WebView is loading: "{}"',1===p.contentMode?"about:srcdoc":f.src);e("JavaScript: {}, Strict CSP: {}, Message API: {}",p.scriptEnabled,p.strictCSPEnable&&!z,p.serverMessageAPIEnabled)}function c(){null!==w&&(++m,w.remove(),w=null);w=document.createElement("div");w.style.backgroundColor="white";w.style.width="100%";w.style.height="100%";w.classList.add("_eaglercraftX_webview_permission_screen");u.appendChild(w)}function h(p){c();w.innerHTML='<div style="padding-top:13vh;"><div style="margin:auto;max-width:450px;border:6px double black;text-align:center;padding:20px;"><h2><img width="32" height="32" style="vertical-align:middle;" src="'+
Ta+'">&emsp;Allow JavaScript</h2><p style="font-family:monospace;text-decoration:underline;word-wrap:break-word;" class="_eaglercraftX_permission_target_url"></p><h4 style="line-height:1.4em;">Strict CSP: '+(1!==p.contentMode?'<span style="color:red;">Impossible</span>':v&&U?p.strictCSPEnable?'<span style="color:green;">Enabled</span>':'<span style="color:red;">Disabled</span>':'<span style="color:red;">Unsupported</span>')+"&ensp;|&ensp;Message API: "+(p.serverMessageAPIEnabled?'<span style="color:red;">Enabled</span>':
'<span style="color:green;">Disabled</span>')+'</h4><p><input class="_eaglercraftX_remember_javascript" type="checkbox" checked> Remember my choice</p><p><button style="font-size:1.5em;" class="_eaglercraftX_allow_javascript">Allow</button>&emsp;<button style="font-size:1.5em;" class="_eaglercraftX_block_javascript">Block</button></p></div></div>';const z=m;if(1!==p.contentMode){const E=p.url;w.querySelector("._eaglercraftX_permission_target_url").innerText=255<E.length()?E.substring(0,253)+"...":
E}w.querySelector("._eaglercraftX_allow_javascript").addEventListener("click",function(){if(m===z&&null!==w){const E=w.querySelector("._eaglercraftX_remember_javascript");null!==E&&E.checked&&T(3,2,null);w.remove();w=null;++m;d(p)}});w.querySelector("._eaglercraftX_block_javascript").addEventListener("click",function(){if(m===z&&null!==w){const E=w.querySelector("._eaglercraftX_remember_javascript");null!==E&&E.checked&&T(3,3,null);l(p)}})}function l(p){c();w.innerHTML='<div style="padding-top:13vh;"><h1 style="text-align:center;"><img width="48" height="48" style="vertical-align:middle;" src="'+
Ta+'">&emsp;Content Blocked</h1><h4 style="text-align:center;">You chose to block JavaScript execution for this embed</h4><p style="text-align:center;"><button style="font-size:1.0em;" class="_eaglercraftX_re_evaluate_javascript">Re-evaluate</button></p></div>';const z=m;w.querySelector("._eaglercraftX_re_evaluate_javascript").addEventListener("click",function(){m===z&&null!==w&&(T(3,4,null),h(p))})}function t(p,z,E,H){if(u){const O=window.devicePixelRatio;u.style.top=""+z/O+"px";u.style.left=""+
p/O+"px";u.style.width=""+(E/O-10)+"px";u.style.height=""+(H/O-10)+"px"}}function D(){++m;f&&(f.remove(),f=null);x=null;w&&(w.remove(),w=null);u&&(u.remove(),u=null);window.focus()}const y=new TextDecoder("utf-8");var B=!1,v=!1,S=zb,U=Ab;if(S)v=B=!0;else{v=B=!1;try{var K=document.createElement("iframe");B=null!=K&&"string"===typeof K.allow&&"object"===typeof K.sandbox;v=U&&B&&"string"===typeof K.csp}catch(p){g("Error checking iframe support"),g(p)}}B?!v&&U&&ha("This browser does not support CSP attribute on iframes! (try Chrome)"):
g("This browser does not meet the safety requirements for webview support, this feature will be disabled");const r=location.protocol&&"https:"===location.protocol.toLowerCase();var m=0,u=null,w=null,f=null,x=null;window.addEventListener("message",function(p){x&&p.source!==window&&x(p)});Fa.checkSupported=function(){return B};Fa.checkCSPSupported=function(){return v};Fa.sendStringMessage=function(p,z){try{var E;null!=f&&null!=(E=f.contentWindow)?E.postMessage({ver:1,channel:p,type:"string",data:z},
"*"):g("Server tried to send the WebView a message, but the message channel is not open!")}catch(H){ia("Failed to send string message to WebView!",H)}};Fa.sendBinaryMessage=function(p,z){try{var E;if(null!=f&&null!=(E=f.contentWindow)){const H=new Uint8Array(z.length);H.set(z,0);E.postMessage({ver:1,channel:p,type:"binary",data:H.buffer},"*")}else g("Server tried to send the WebView a message, but the message channel is not open!")}catch(H){ia("Failed to send string message to WebView!",H)}};Fa.beginShowing=
function(p,z,E,H,O,ma){if(B)try{switch(null!==u&&D(),u=document.createElement("div"),u.classList.add("_eaglercraftX_webview_container_element"),u.style.border="5px solid #333333",u.style.zIndex="11",u.style.position="absolute",u.style.backgroundColor="#DDDDDD",u.style.fontFamily="sans-serif",t(E,H,O,ma),P.appendChild(u),p){case 0:d(z);break;case 1:if(1===z.contentMode){const Z=new Uint8Array(z.blob.length);Z.set(z.blob,0);z.blob=Z}h(z);break;case 2:if(1===z.contentMode){const Z=new Uint8Array(z.blob.length);
Z.set(z.blob,0);z.blob=Z}l(z)}}catch(Z){ia("Failed to begin showing WebView!",Z)}};Fa.resize=t;Fa.endShowing=D};function Pb(){var a=null;const b=new qa;var d=null;Ja.startIntegratedServer=new WebAssembly.Suspending(async function(){d||=URL.createObjectURL(new Blob(['"use strict"; (function(ctx, globals) {globals.__eaglerXOnMessage = function(o) {globals.__eaglerXOnMessage = function(oo) { console.error("Dropped IPC packet that was sent too early!"); };const eagRuntimeJSURL = URL.createObjectURL(new Blob([ o.eagruntimeJS ], { type: "text/javascript;charset=utf-8" }));ctx.getEaglercraftXOpts = function() { return o.eaglercraftXOpts; };ctx.getEagRuntimeJSURL = function() { return eagRuntimeJSURL; };ctx.getClassesWASMURL = function() { return o.classesWASM; };ctx.getClassesDeobfWASMURL = function() { return o.classesDeobfWASM; };ctx.getClassesTEADBGURL = function() { return o.classesTEADBG; };ctx.getEPKFiles = function() { return null; };ctx.getRootElement = function() { return null; };ctx.getMainArgs = function() { return ["_worker_process_"]; };ctx.getImageURL = function(idx) { return null; };ctx.runMain = function(mainFunc) { mainFunc(); };importScripts(eagRuntimeJSURL);};addEventListener("message", function(evt) { globals.__eaglerXOnMessage(evt.data); });})(self.__eaglercraftXLoaderContext = {}, self);'],
{type:"text/javascript;charset=utf8"}));try{a=new Worker(d)}catch(t){return ia("Failed to create worker",t),!1}a.addEventListener("error",function(t){ia("Worker Error",t.error)});a.addEventListener("message",function(t){const D=t.data.ch;D?"~!LOGGER"===D?Ib(t.data.txt,t.data.err):(t=t.data.dat)?ab(D,t)||b.push({ch:D,data:new Uint8Array(t),_next:null}):g("Recieved IPC packet with null buffer"):g("Recieved IPC packet with null channel")});const h=new Int8Array(Na.length);h.set(Na,0);try{var l=await fetch(Ua,
{cache:"force-cache"}).then(t=>t.arrayBuffer())}catch(t){ia("Failed to fetch eagruntime.js contents",t);try{a.terminate()}catch(D){}return!1}a.postMessage({eaglercraftXOpts:N,eagruntimeJS:l,classesWASM:La,classesDeobfWASM:Ma,classesTEADBG:h.buffer});return!0});Ja.sendPacket=function(h,l){if(a){const t=new Uint8Array(l.length);t.set(l,0);a.postMessage({ch:h,dat:t.buffer})}};bb=function(h,l){a&&a.postMessage({ch:h,dat:l})};Ja.getAvailablePackets=b.K.bind(b);Ja.getNextPacket=b.j.bind(b);Ja.killWorker=
function(){a&&(a.terminate(),a=null)};var c=null;Ja.showCrashReportOverlay=function(h,l,t,D,y){c||(c=document.createElement("div"),c.setAttribute("style","z-index:99;position:absolute;background-color:black;color:white;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;white-space:pre-wrap;font:18px sans-serif;padding:20px;display:none;"),c.classList.add("_eaglercraftX_integratedserver_crash_element"),P.appendChild(c));c.innerText="";c.innerText="CURRENT DATE: "+(new Date).toLocaleString()+
"\n\n"+h;h=window.devicePixelRatio;c.style.top=""+t/h+"px";c.style.left=""+l/h+"px";c.style.width=""+(D/h-20)+"px";c.style.height=""+(y/h-20)+"px";c.style.display="block"};Ja.hideCrashReportOverlay=function(){c&&(c.style.display="none")}};var bc=null;function Wb(){const a=new qa;self.__eaglerXOnMessage=function(b){const d=b.ch;b=b.dat;d?b?a.push({ch:d,data:new Uint8Array(b),_next:null}):g("Recieved IPC packet with null buffer"):g("Recieved IPC packet with null channel")};Ka.sendPacket=function(b,d){const c=new Uint8Array(d.length);c.set(d,0);postMessage({ch:b,dat:c.buffer})};Ka.getAvailablePackets=a.K.bind(a);Ka.getNextPacket=a.j.bind(a);Ka.setCrashCallback=function(){return{call:function(b){bc=b}}}};ra.getByteBufferView=function(a,b){return new Int8Array(Za,a,b)};ra.getUnsignedByteBufferView=function(a,b){return new Uint8Array(Za,a,b)};ra.getUnsignedClampedByteBufferView=function(a,b){return new Uint8ClampedArray(Za,a,b)};ra.getShortBufferView=function(a,b){return new Int16Array(Za,a,b)};ra.getUnsignedShortBufferView=function(a,b){return new Uint16Array(Za,a,b)};ra.getIntBufferView=function(a,b){return new Int32Array(Za,a,b)};ra.getFloatBufferView=function(a,b){return new Float32Array(Za,a,b)};const Ic={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",
type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",
type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},
1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",
type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",
type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},
57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",
type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},
9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",
type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",
type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",
type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",
type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},
50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",
type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},
13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",
type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",
type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};
function Jc(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function Kc(a,b){this.name=a||"Unknown";this.type=b||"Unknown"}Kc.prototype.j=function(){};Kc.prototype.m=function(){};function Lc(a,b){Kc.call(this,a,b||"Uint")}Jc(Lc,Kc);Lc.prototype.j=function(){this.data="";for(var a=0;a<this.source.length;a++){var b=this.source[a].toString(16);this.data+=1===b.length%2?"0"+b:b}};
Lc.prototype.m=function(){var a=this.data.length/2;this.source=new Uint8Array(a);for(var b=0;b<a;b++)this.source[b]=parseInt(this.data.substr(2*b,2),16)};Lc.prototype.L=function(){return parseInt(this.data,16)};Lc.prototype.H=function(a){a=a.toString(16);this.data=1===a.length%2?"0"+a:a;this.m()};function Mc(a,b){Kc.call(this,a,b||"Float")}Jc(Mc,Kc);Mc.prototype.j=function(){var a=this.source.reverse();this.data=(new (this.source&&4===this.source.length?Float32Array:Float64Array)(a.buffer))[0]};
Mc.prototype.m=function(){var a=new (this.source&&4===this.source.length?Float32Array:Float64Array)([this.data]);this.source=(new Uint8Array(a.buffer)).reverse()};Mc.prototype.L=function(){return this.data};Mc.prototype.H=function(a){this.data=a;this.m()};function Nc(a,b){Kc.call(this,a,b||"Container")}Jc(Nc,Kc);function Oc(a){var b=a.source[a.offset++],d=8-b.toString(2).length;b-=1<<7-d;for(var c=0;c<d;c++)b*=256,b+=a.source[a.offset++];return b}
Nc.prototype.j=function(){this.data=[];for(this.offset=0;this.offset<this.source.length;this.offset=b){var a=Oc(this);var b=Oc(this);b=Math.min(this.offset+b,this.source.length);var d=this.source.slice(this.offset,b),c=Ic[a]||{name:"Unknown",type:"Unknown"},h=Kc;switch(c.type){case "Container":h=Nc;break;case "Uint":h=Lc;break;case "Float":h=Mc}h=c=new h(c.name,c.type);h.source=d;h.j();this.data.push({id:a,$:a.toString(16),data:c})}};
function Pc(a,b,d){for(var c=1,h=128;b>=h&&8>c;c++,h*=128);if(!d)for(b=h+b,d=c-1;0<=d;d--)h=b%256,a.source[a.offset+d]=h,b=(b-h)/256;a.offset+=c}function Qc(a,b){for(var d=a.offset=0;d<a.data.length;d++){var c=a.data[d],h=c.data.source,l=h.length;Pc(a,c.id,b);Pc(a,l,b);b||a.source.set(h,a.offset);a.offset+=l}return a.offset}Nc.prototype.m=function(){var a=Qc(this,"draft");this.source=new Uint8Array(a);Qc(this,null)};
function Rc(a,b){for(var d=0;d<a.data.length;d++){var c=a.data[d];if(c.id===b)return c.data}return null}function Sc(a){Nc.call(this,"File","File");this.source=a;this.j()}Jc(Sc,Nc);
function Tc(a,b,d){d=d&&d.U;void 0===d?d=function(D){console.log(D)}:d||=function(){};var c=Rc(a,139690087);if(!c)return d("[fix-webm-duration] Segment section is missing"),!1;var h=Rc(c,88713574);if(!h)return d("[fix-webm-duration] Info section is missing"),!1;var l=Rc(h,710577);if(!l)return d("[fix-webm-duration] TimecodeScale section is missing"),!1;var t=Rc(h,1161);if(t)if(0>=t.L())d("[fix-webm-duration] Duration section is present, but the value is empty"),t.H(b);else return d("[fix-webm-duration] Duration section is present"),
!1;else d("[fix-webm-duration] Duration section is missing"),t=new Mc("Duration","Float"),t.H(b),h.data.push({id:1161,data:t});l.H(1E6);h.m();c.m();a.m();return!0}function Hc(a,b,d,c){try{var h=new FileReader;h.onloadend=function(){try{var l=new Sc(new Uint8Array(h.result));Tc(l,b,c)&&(a=new Blob([l.source.buffer],{type:a.type||"video/webm"}))}catch(t){}d(a)};h.readAsArrayBuffer(a)}catch(l){d(a)}};var Uc;
(function(){function a(r){let m=v.get(r);"undefined"===typeof m&&(m=new Function("return "+r+";"),v.set(r,m));return m()}function b(r){let m={exports:null,B:null,I:null};d(r);c(r);h(r,m);l(r,m);r.teavmMath=Math;return{O(u){m.exports=u},Y(u){m.B=u},X(u){m.I=u}}}function d(r){r.teavmDate={currentTimeMillis:()=>(new Date).getTime(),dateToString:m=>(new Date(m)).toString(),getYear:m=>(new Date(m)).getFullYear(),setYear:(m,u)=>{m=new Date(m);m.setFullYear(u);return m.getTime()},getMonth:m=>(new Date(m)).getMonth(),setMonth:(m,
u)=>{m=new Date(m);m.setMonth(u);return m.getTime()},getDate:m=>(new Date(m)).getDate(),setDate:(m,u)=>{m=new Date(m);m.setDate(u);return m.getTime()},create:(m,u,w,f,x,p)=>(new Date(m,u,w,f,x,p)).getTime(),createFromUTC:(m,u,w,f,x,p)=>Date.UTC(m,u,w,f,x,p)}}function c(r){let m=[],u=[];r.teavmConsole={putcharStderr:function(w){10===w?(w=String.fromCharCode(...m),console.error(w),ea&&ea(w,!0),m.length=0):m.push(w)},putcharStdout:function(w){10===w?(w=String.fromCharCode(...u),console.log(w),ea&&ea(w,
!1),u.length=0):u.push(w)}}}function h(r,m){let u=new FinalizationRegistry(f=>{let x=m.exports["teavm.reportGarbageCollectedValue"];"undefined"!==typeof x&&m.I(function(){x(f.V,f.W)})}),w=new FinalizationRegistry(f=>{let x=m.exports["teavm.reportGarbageCollectedString"];"function"===typeof x&&m.I(function(){x(f)})});r.teavm={createWeakRef:(f,x,p)=>{null!==p&&u.register(f,{W:x,V:p});return new WeakRef(f)},deref:f=>f.deref(),createStringWeakRef:(f,x)=>{w.register(f,x);return new WeakRef(f)},stringDeref:f=>
f.deref(),takeStackTrace:()=>{var f=Error().stack;let x=[];for(let p of f.split("\n"))f=S.exec(p),null!==f&&2<=f.length&&x.push(parseInt(f[1],16));return{getStack:function(){let p;if(m.B)try{p=m.B(x)}catch(z){console.warn("Could not deobfuscate stack",z)}p||=x.map(z=>({className:"java.lang.Throwable$FakeClass",method:"fakeMethod",file:"Throwable.java",line:z}));return p}}},decorateException:f=>{new K(m,f)}}}function l(r,m){function u(n){return n}function w(n){var q=n.charAt(0);var F=""+(f(q)?q:"_");
for(q=1;q<n.length;++q){let Q=n.charAt(q);var L=Q;L=f(L)||"0"<=L&&"9">=L;F+=L?Q:"_"}return F}function f(n){return"A"<=n&&"Z">=n||"a"<=n&&"z">=n||"_"===n||"$"===n}function x(n,q,F){null===n?(new Function("value",q+" = value;"))(F):n[q]=F}function p(n){m.exports["teavm.js.throwException"](U in n?n[U]:m.exports["teavm.js.wrapException"](n))}function z(n){a:{if(n instanceof WebAssembly.Exception){var q=m.exports["teavm.javaException"];var F=m.exports["teavm.getJsException"];if(n.is(q)){n=n.getArg(q,0);
q=m.exports["teavm.js.extractException"](n);if(null!==q){F=q;break a}F=F(n);"undefined"===typeof F&&(F=new K(m,n));break a}}F=n}throw F;}function E(n){var q=[];for(let F=0;F<n.length;++F)q.push("p"+F);q=0===q.length?"":q.join(", ");q=(new Function("rethrowJavaAsJs","fn",`return function(${q}) {\n`+" try {\n"+` return fn(${q});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,n);q.__impl=n;q.__rethrow=z;return q}function H(n,q){return(new Function("constructor",`return function ${n}(marker, javaObject) {\n`+
" return constructor.call(this, marker, javaObject);\n}\n"))(q)}function O(n){try{return n()}catch(q){p(q)}}let ma=Symbol("javaObject"),Z=Symbol("functions"),X=Symbol("functionOrigin"),Ga=Symbol("wrapperCallMarker"),Aa=new WeakMap,Ba=new WeakMap,Ha=new Map,ta=new FinalizationRegistry(n=>Ha.delete(n)),Ia=new WeakMap,ua=2463534242;r.teavmJso={emptyString:()=>"",stringFromCharCode:n=>String.fromCharCode(n),concatStrings:(n,q)=>n+q,stringLength:n=>n.length,charAt:(n,q)=>n.charCodeAt(q),emptyArray:()=>
[],appendToArray:(n,q)=>n.push(q),unwrapBoolean:n=>n?1:0,wrapBoolean:n=>!!n,getProperty:function(n,q){try{return null!==n?n[q]:a(q)}catch(F){p(F)}},setProperty:x,setPropertyPure:x,global:n=>{try{return a(n)}catch(q){p(q)}},createClass:(n,q,F)=>{n=w(n||"JavaObject");let L;L=null===q?function(aa){this[ma]=aa;this[Z]=null}:function(aa){q.call(this,aa)};let Q=H(n,function(aa,pa){if(aa===Ga)L.call(this,pa);else{if(null===F)throw Error("This class can't be instantiated directly");try{return F.apply(null,
arguments)}catch(Ra){z(Ra)}}});Q.prototype=Object.create(q||Object.prototype);Q.prototype.constructor=Q;n=H(n,function(aa){return Q.call(this,Ga,aa)});n[Ga]=Q;n.prototype=Q.prototype;return n},exportClass:n=>n[Ga],defineMethod:(n,q,F)=>{let L=[];for(let Q=1;Q<F.length;++Q)L.push("p"+Q);n.prototype[q]=(new Function("rethrowJavaAsJs","fn",`return function(${0===L.length?"":L.join(", ")}) {\n`+" try {\n"+` return fn(${["this",L].join(", ")});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,
F)},defineStaticMethod:(n,q,F)=>{n[q]=E(F)},defineFunction:E,defineProperty:(n,q,F,L)=>{let Q={get(){try{return F(this)}catch(aa){z(aa)}}};null!==L&&(Q.set=function(aa){try{L(this,aa)}catch(pa){z(pa)}});Object.defineProperty(n.prototype,q,Q)},defineStaticProperty:(n,q,F,L)=>{let Q={get(){try{return F()}catch(aa){z(aa)}}};null!==L&&(Q.set=function(aa){try{L(aa)}catch(pa){z(pa)}});Object.defineProperty(n,q,Q)},javaObjectToJS:(n,q)=>{if(null===n)return null;var F=Aa.get(n);if("undefined"!=typeof F&&
(F=F.deref(),"undefined"!==typeof F))return F;q=new q(n);Aa.set(n,new WeakRef(q));return q},unwrapJavaObject:n=>n[ma],asFunction:(n,q)=>{let F=n[Z];null===F&&(F=Object.create(null),n[Z]=F);let L=F[q];"function"!==typeof L&&(L=function(){return n[q].apply(n,arguments)},L[X]=n,F[q]=L);return L},functionAsObject:(n,q)=>{let F=n[X];if("undefined"!==typeof F){let L=F[Z];if(void 0!==L&&L[q]===n)return F}return{[q]:function(...L){try{return n(...L)}catch(Q){z(Q)}}}},wrapObject:n=>{if(null===n)return null;
if("object"===typeof n||"function"===typeof n){var q=n[ma];if("object"===typeof q)return q;q=Ba.get(n);if(void 0!==q&&(q=q.deref(),void 0!==q))return q;q=m.exports["teavm.jso.createWrapper"](n);Ba.set(n,new WeakRef(q));return q}q=Ha.get(n);if(void 0!==q&&(q=q.deref(),void 0!==q))return q;q=m.exports["teavm.jso.createWrapper"](n);Ha.set(n,new WeakRef(q));ta.register(q,n);return q},isPrimitive:(n,q)=>typeof n===q,instanceOf:(n,q)=>n instanceof q,instanceOfOrNull:(n,q)=>null===n||n instanceof q,sameRef:(n,
q)=>n===q,hashCode:n=>{if("object"===typeof n||"function"===typeof n||"symbol"===typeof n){var q=Ia.get(n);if("number"===typeof q)return q;q=ua;q^=q<<13;q^=q>>>17;ua=q^=q<<5;Ia.set(n,q);return q}return"number"===typeof n?n|0:"bigint"===typeof n?BigInt.asIntN(32,n):"boolean"===typeof n?n?1:0:0},apply:(n,q,F)=>{try{return null===n?a(q)(...F):n[q](...F)}catch(L){p(L)}},concatArray:(n,q)=>n.concat(q),getJavaException:n=>n[U]};for(var ka of"wrapByte wrapShort wrapChar wrapInt wrapFloat wrapDouble unwrapByte unwrapShort unwrapChar unwrapInt unwrapFloat unwrapDouble".split(" "))r.teavmJso[ka]=
u;ka=[];for(let n=0;32>n;++n){let q=0===ka.length?"":ka.join(", "),F=[...ka,"body"].join(", ");r.teavmJso["createFunction"+n]=(new Function("wrapCallFromJavaToJs",...ka,"body",`return new Function('wrapCallFromJavaToJs', ${F}).bind(this, wrapCallFromJavaToJs);`)).bind(null,O);r.teavmJso["bindFunction"+n]=(L,...Q)=>L.bind(null,...Q);r.teavmJso["callFunction"+n]=(new Function("rethrowJsAsJava","fn",...ka,"try {\n"+` return fn(${q});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,p);r.teavmJso["callMethod"+
n]=(new Function("rethrowJsAsJava","getGlobalName","instance","method",...ka,"try {\n return instance !== null\n"+` ? instance[method](${q})\n`+` : getGlobalName(method)(${q});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,p,a);r.teavmJso["construct"+n]=(new Function("rethrowJsAsJava","constructor",...ka,"try {\n"+` return new constructor(${q});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,p);r.teavmJso["arrayOf"+n]=new Function(...ka,"return ["+q+"]");
ka.push("p"+(n+1))}}async function t(r){try{const m={},u=b(m),w=r.path instanceof WebAssembly.Module?r.path:await WebAssembly.compileStreaming(fetch(r.path)),f=new WebAssembly.Instance(w,m);u.O(f.exports);return{module:w,instance:f}}catch(m){return console.warn("Could not load deobfuscator",m),null}}function D(r,m,u){let w=null,f=!1;return x=>{if(!f){f=!0;if(null!==m)try{w=u.exports.createFromExternalFile.value(m)}catch(p){console.warn("Could not load create deobfuscator",p)}if(null==w&&null!==r)try{w=
u.exports.createForModule.value(r)}catch(p){console.warn("Could not create deobfuscator from module data",p)}}return null!==w?w.deobfuscate(x):[]}}async function y(r,m){if(!m.enabled||"auto"!==r&&"external"!==r)return null;if(m.J instanceof ArrayBuffer)return new Int8Array(m.J);r=await fetch(m.J);return r.ok?new Int8Array(await r.arrayBuffer()):null}function B(r){const m=new qa;r.teavm.pollAsyncCallbacks=function(){for(var u;u=m.j();)u.fn()};return function(u){m.push({fn:u,_next:null})}}let v=new Map,
S=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/,U=Symbol("javaException");class K extends Error{constructor(r,m){super();this.j=r;this[U]=m;r.exports["teavm.setJsException"](m,this)}get message(){var r=this.j.exports["teavm.exceptionMessage"];return"function"===typeof r&&(r=r(this[U]),null!=r)?r:"(could not fetch message)"}}Uc={load:async function(r,m){m||={};var u=m.B||{};let [w,f,x]=await Promise.all([u.enabled?t(u):Promise.resolve(null),r instanceof WebAssembly.Module?Promise.resolve(r):WebAssembly.compileStreaming(fetch(r)),
y(u.T,u)]);u={};r=b(u);"undefined"!==typeof m.M&&m.M(u);r.X(B(u));m=await WebAssembly.instantiate(f,u);u={};r.O(m.exports);if(w){let p=D(null,x,w.instance);null!==p&&(r.Y(p),u.deobfuscator=p)}r={exports:u,instance:m,N:{P:f,S:w?w.module:null}};for(let p in m.exports){let z=m.exports[p];z instanceof WebAssembly.Global?Object.defineProperty(u,p,{get:()=>z.value}):"function"===typeof z&&(u[p]=z)}u.memory=m.exports["teavm.memory"];u.R=x;return r},Z:b,aa:function(r){return new Proxy(r,{get(m,u){return new WebAssembly.Global({value:"externref",
mutable:!1},m[u])}})}}})();async function Vc(){try{N=self.__eaglercraftXLoaderContext.getEaglercraftXOpts();Ua=self.__eaglercraftXLoaderContext.getEagRuntimeJSURL();const a=self.__eaglercraftXLoaderContext.getClassesWASMURL(),b=self.__eaglercraftXLoaderContext.getClassesDeobfWASMURL(),d=self.__eaglercraftXLoaderContext.getClassesTEADBGURL();Pa=self.__eaglercraftXLoaderContext.getEPKFiles();Va=self.__eaglercraftXLoaderContext.getRootElement();self.__eaglercraftXLoaderContext.getImageURL(0);Qa=self.__eaglercraftXLoaderContext.getImageURL(1);
Sa=self.__eaglercraftXLoaderContext.getImageURL(2);Ta=self.__eaglercraftXLoaderContext.getImageURL(3);const c=self.__eaglercraftXLoaderContext.getMainArgs();if("_worker_process_"!==c[0]){if(!await Hb())return}else da="worker",await Vb();e("Loading EaglercraftX WASM GC binary...");const h=await Uc.load(a,{B:{enabled:!0,path:b,T:"external",J:d},M:function(l){l.WASMGCBufferAllocator=ra;l.platformApplication=G;l.platformAssets=wa;l.platformAudio=xa;l.platformFilesystem=ya;l.platformInput=I;l.platformNetworking=
za;l.platformOpenGL=J;l.platformRuntime=Ca;l.platformScreenRecord=Da;l.platformVoiceClient=Ea;l.platformWebRTC=M;l.platformWebView=Fa;l.clientPlatformSingleplayer=Ja;l.serverPlatformSingleplayer=Ka;l.teavm.notifyHeapResized=function(){Xb(h.exports.memory)}}});La=h.N.P;Ma=h.N.S;Na=h.exports.R;Xb(h.exports.memory);Oa=h.exports.deobfuscator;e("Calling entry point with args: {}",JSON.stringify(c));try{await WebAssembly.promising(h.exports.main.__impl)(c)}catch(l){h.exports.main.__rethrow(l)}finally{ha("Main function has returned!")}}catch(a){$b(a)}}
"object"===typeof self.__eaglercraftXLoaderContext?self.__eaglercraftXLoaderContext.runMain(Vc):console.error("???");}).call(this);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
client-version-integer=44
client-package-name=net.lax1dude.eaglercraft.v1_8.client
client-origin-name=EaglercraftX
client-origin-version=u44
client-origin-vendor=lax1dude
client-fork-name=EaglercraftX
client-fork-version=u44
client-fork-vendor=lax1dude

View File

@ -0,0 +1,22 @@
loader-js-file=loader.js
loader-wasm-file=loader.wasm
eagruntime-js-file=eagruntime.js
classes-wasm-file=classes.wasm
classes-deobf-teadbg-file=classes.wasm.teadbg
classes-deobf-wasm-file=classes.wasm-deobfuscator.wasm
assets-epk-0-file=assets.epk
assets-epk-0-path=/
assets-epk-1-file=../../javascript/lang
assets-epk-1-path=/assets/minecraft/lang/
splash-logo-image-file=splash.png
splash-logo-image-mime=image/png
press-any-key-image-file=pressAnyKey.png
press-any-key-image-mime=image/png
crash-logo-image-file=crashLogo.png
crash-logo-image-mime=image/png
favicon-image-file=favicon.png
favicon-image-mime=image/png
jspi-unavailable-file=enableJSPIScreen.html
offline-download-template=OfflineDownloadTemplate.txt
offline-download-script=../javascript_dist/bootstrap.js
offline-download-name=EaglercraftX_1.8_WASM-GC_Offline_Download.html

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,120 @@
<!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="EaglyMC 1.20 WASM-GC" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglyMC 1.20 WASM-GC</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8 WASM-GC" />
<meta property="og:description" content="test directory HTML page" />
<link type="image/png" rel="shortcut icon" href="favicon.png" />
<script type="text/javascript">
"use strict";
window.addEventListener("load", async 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 if(typeof WebAssembly.Suspending === "undefined") {
alert("JSPI is not enabled, please enable it in chrome://flags");
}else {
const splash = document.createElement("div");
splash.style.width = "100%";
splash.style.height = "100%";
splash.style.imageRendering = "pixelated";
splash.style.background = "center / contain no-repeat url(splash.png), 0px 0px / 1000000% 1000000% no-repeat url(splash.png) white";
document.body.appendChild(splash);
console.log("Downloading assets.epk...");
var assetsEPK;
try {
assetsEPK = new Uint8Array(await fetch("assets.epk").then(resp => resp.arrayBuffer()));
}catch(ex) {
alert("Could not download assets.epk!");
console.error("Could not download assets.epk!");
console.error(ex);
return;
}
console.log("Downloaded " + assetsEPK.length + " byte file");
const relayId = Math.floor(Math.random() * 3);
const eaglercraftXOpts = {
demoMode: false,
localesURI: "lang/",
worldsDB: "worlds",
servers: [
{ 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 }
]
};
window.__eaglercraftXLoaderContext = {
getEaglercraftXOpts: function() {
return eaglercraftXOpts;
},
getEagRuntimeJSURL: function() {
return "eagruntime.js";
},
getClassesWASMURL: function() {
return "classes.wasm";
},
getClassesDeobfWASMURL: function() {
return "classes.wasm-deobfuscator.wasm";
},
getClassesTEADBGURL: function() {
return "classes.wasm.teadbg";
},
getEPKFiles: function() {
return [{
name: "assets.epk",
path: "",
data: assetsEPK
}];
},
getRootElement: function() {
return document.body;
},
getMainArgs: function() {
return [];
},
getImageURL: function(idx) {
switch(idx) {
case 0:
return "splash.png";
case 1:
return "pressAnyKey.png";
case 2:
return "crashLogo.png";
case 3:
return "favicon.png";
default:
return null;
}
},
runMain: function(fn) {
setTimeout(fn, 10);
}
};
var q = window.location.search;
if((typeof q === "string") && q[0] === "?" && (typeof URLSearchParams !== "undefined")) {
q = new URLSearchParams(q);
var s = q.get("server");
if(s) eaglercraftXOpts.joinServer = s;
}
const scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "eagruntime.js";
document.head.appendChild(scriptElement);
}
});
</script>
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame"></body>
</html>

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Some files were not shown because too many files have changed in this diff Show More