made a JSON version of minecraftOpts

This commit is contained in:
LAX1DUDE 2022-07-31 02:03:22 -07:00
parent 876e8b1a35
commit 722166ee9f
12 changed files with 23141 additions and 23029 deletions

View File

@ -1,2 +0,0 @@
importScripts("classes_server.js");
main();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -10,16 +10,19 @@ if(document.location.href.startsWith("file:")) {
alert("You're not supposed to 'open' this file in your browser. Please upload this folder to your HTTP(s) server and access it via the internet. This is not a bug, please read the documentation"); alert("You're not supposed to 'open' this file in your browser. Please upload this folder to your HTTP(s) server and access it via the internet. This is not a bug, please read the documentation");
}else { }else {
window.addEventListener("load", function(){ window.addEventListener("load", function(){
window.minecraftOpts = [ window.eaglercraftOpts = {
"game_frame","assets.epk", container: "game_frame", assetsURI: "assets.epk", serverWorkerURI: "worker_bootstrap.js", worldsFolder: "TEST",
"CgAACQAHc2VydmVycwoAAAABCAAEbmFtZQAMbG9jYWwgc2VydmVyCAACaXAAD2xvY2FsaG9zdDoyNTU2NQEAC2hpZGVBZGRyZXNzAAAKAAhtYWluTWVudQkACHNwbGFzaGVzCAAAAAoACkRhcnZpZ2xldCEADkRhcnZpZ2xvcGhpbGUhAAtZb3UgRWFnbGVyIQALWWVlZWVlZWVlZSEAC1lvdSBZZWVsZXIhAA1FRUVFRUVFRUVFRUUhAAtZb3UgRGFydmlnIQAJWW91IFZpZ2chAAI6PgACfD4AAA==" servers: [ { serverName: "Local Test Server", serverAddress: "localhost:25565", hideAddress: false } ],
]; mainMenu: { splashes: [
"Darviglet!", "eaglerenophile!", "You Eagler!", "Yeeeeeee!", "yeee",
"EEEEEEEEE!", "You Darvig!", "You Vigg!", ":>", "|>", "You Yumpster!"
]}};
(function(){ (function(){
var q = window.location.search; var q = window.location.search;
if(typeof q === 'string' && q.startsWith("?")) { if(typeof q === 'string' && q.startsWith("?")) {
q = new URLSearchParams(q); q = new URLSearchParams(q);
var s = q.get("server"); var s = q.get("server");
if(s) window.minecraftOpts.push(s); if(s) window.eaglercraftOpts.joinServer = s;
} }
})(); })();
main(); main();

View File

@ -0,0 +1,5 @@
onmessage = function(o) {
importScripts("classes_server.js");
eaglercraftServerOpts = o.data;
main();
};

View File

@ -1,40 +1,19 @@
package net.lax1dude.eaglercraft.sp; package net.lax1dude.eaglercraft.sp;
import org.teavm.jso.JSBody;
import net.lax1dude.eaglercraft.sp.VirtualFilesystem.VFSHandle; import net.lax1dude.eaglercraft.sp.VirtualFilesystem.VFSHandle;
public class SYS { public class SYS {
//public static final boolean PERSIST;
public static final VirtualFilesystem VFS; public static final VirtualFilesystem VFS;
/* @JSBody(params = { }, script = "return eaglercraftServerOpts.worldDatabaseName;")
@JSFunctor private static native String getWorldDatabaseName();
private interface PromiseHandler extends JSObject {
void complete(JSObject result);
}
@Async
private static native BooleanResult requestPersist();
private static void requestPersist(AsyncCallback<BooleanResult> callback) {
requestPersist0(res -> callback.complete(BooleanResult._new(res != null)));
}
@JSBody(params = { "callback" }, script = "if(navigator.storage && navigator.storage.persist){"
+ "navigator.storage.persist().then(function(persistent) {callback(persistent ? {p:true} : null);});"
+ "}else{callback(null);}")
private static native void requestPersist0(PromiseHandler callback);
*/
static { static {
//PERSIST = requestPersist().bool; VFSHandle vh = VirtualFilesystem.openVFS("_net_lax1dude_eaglercraft_sp_VirtualFilesystem_1_5_2_" + getWorldDatabaseName());
//if(!PERSIST) {
// Window.alert("PERSISTENT STORAGE NOT AVAILABLE, YOUR BROWSER MAY DELETE YOUR WORLDS!");
//}
VFSHandle vh = VirtualFilesystem.openVFS("_net_lax1dude_eaglercraft_sp_VirtualFilesystem_1_5_2");
if(vh.vfs == null) { if(vh.vfs == null) {
System.err.println("Could not init filesystem!"); System.err.println("Could not init filesystem!");

View File

@ -22,5 +22,7 @@ public class ConfigConstants {
public static String mainMenuItemLink = null; public static String mainMenuItemLink = null;
public static List<String> splashTexts = null; public static List<String> splashTexts = null;
public static boolean eaglercraftTitleLogo = false;
} }

View File

@ -2,11 +2,15 @@ package net.minecraft.src;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.json.JSONArray;
import org.json.JSONObject;
import net.lax1dude.eaglercraft.*; import net.lax1dude.eaglercraft.*;
import net.lax1dude.eaglercraft.ServerQuery.QueryResponse; import net.lax1dude.eaglercraft.ServerQuery.QueryResponse;
import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.RateLimit; import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.RateLimit;
@ -64,6 +68,52 @@ public class ServerList {
e.printStackTrace(); e.printStackTrace();
} }
} }
public static void loadDefaultServers(JSONObject json) {
ConfigConstants.profanity = json.optBoolean("profanity", ConfigConstants.profanity);
hideDownDefaultServers = json.optBoolean("hideDownServers", hideDownDefaultServers);
ConfigConstants.ayonullTitle = json.optString("serverListTitle", ConfigConstants.ayonullTitle);
ConfigConstants.ayonullLink = json.optString("serverListLink", ConfigConstants.ayonullLink);
JSONObject mainMenu = json.optJSONObject("mainMenu", null);
if(mainMenu != null) {
ConfigConstants.mainMenuItemLink = mainMenu.optString("itemLink", ConfigConstants.mainMenuItemLink);
if(ConfigConstants.mainMenuItemLink != null) {
ConfigConstants.mainMenuItemLine0 = mainMenu.optString("itemLine0", ConfigConstants.mainMenuItemLine0);
ConfigConstants.mainMenuItemLine1 = mainMenu.optString("itemLine1", ConfigConstants.mainMenuItemLine1);
ConfigConstants.mainMenuItemLine2 = mainMenu.optString("itemLine2", ConfigConstants.mainMenuItemLine2);
}
ConfigConstants.eaglercraftTitleLogo = mainMenu.optBoolean("eaglerLogo", ConfigConstants.eaglercraftTitleLogo);
JSONArray splashes = mainMenu.optJSONArray("splashes");
if(splashes != null) {
ConfigConstants.splashTexts = new ArrayList();
for(int i = 0, l = splashes.length(); i < l; ++i) {
ConfigConstants.splashTexts.add(splashes.getString(i));
}
}
}
JSONArray servers = json.optJSONArray("servers");
if(servers != null) {
forcedServers.clear();
for(int i = 0, l = servers.length(); i < l; ++i) {
JSONObject serverJSON = servers.getJSONObject(i);
ServerData newServer = new ServerData(serverJSON.getString("serverName"),
serverJSON.getString("serverAddress"), true);
newServer.setHideAddress(serverJSON.optBoolean("hideAddress", false));
forcedServers.add(newServer);
}
}
}
/** /**
* Loads a list of servers from servers.dat, by running * Loads a list of servers from servers.dat, by running

File diff suppressed because one or more lines are too long

View File

@ -196,6 +196,7 @@ public class EaglerAdapterImpl2 {
private static EventListener keypress = null; private static EventListener keypress = null;
private static EventListener wheel = null; private static EventListener wheel = null;
private static String[] identifier = new String[0]; private static String[] identifier = new String[0];
private static String integratedServerScript = "worker_bootstrap.js";
public static final String[] getIdentifier() { public static final String[] getIdentifier() {
return identifier; return identifier;
@ -219,12 +220,13 @@ public class EaglerAdapterImpl2 {
@JSBody(params = { "e" }, script = "return e.which;") @JSBody(params = { "e" }, script = "return e.which;")
private static native int getWhich(KeyboardEvent e); private static native int getWhich(KeyboardEvent e);
public static final void initializeContext(HTMLElement rootElement, String assetPackageURI) { public static final void initializeContext(HTMLElement rootElement, String assetPackageURI, String serverWorkerURI) {
parent = rootElement; parent = rootElement;
String s = parent.getAttribute("style"); String s = parent.getAttribute("style");
parent.setAttribute("style", (s == null ? "" : s)+"overflow-x:hidden;overflow-y:hidden;"); parent.setAttribute("style", (s == null ? "" : s)+"overflow-x:hidden;overflow-y:hidden;");
win = Window.current(); win = Window.current();
doc = win.getDocument(); doc = win.getDocument();
integratedServerScript = serverWorkerURI;
canvas = (HTMLCanvasElement)doc.createElement("canvas"); canvas = (HTMLCanvasElement)doc.createElement("canvas");
canvas.setWidth(parent.getClientWidth()); canvas.setWidth(parent.getClientWidth());
canvas.setHeight(parent.getClientHeight()); canvas.setHeight(parent.getClientHeight());
@ -2764,25 +2766,35 @@ public class EaglerAdapterImpl2 {
@JSBody(params = { "w", "wb" }, script = "w.onmessage = function(o) { wb(o.data.ch, o.data.dat); };") @JSBody(params = { "w", "wb" }, script = "w.onmessage = function(o) { wb(o.data.ch, o.data.dat); };")
private static native void registerPacketHandler(Worker w, WorkerBinaryPacketHandler wb); private static native void registerPacketHandler(Worker w, WorkerBinaryPacketHandler wb);
@JSBody(params = { "w", "ch", "dat" }, script = "w.postMessage({ ch: ch, dat : dat });") @JSBody(params = { "w", "ch", "dat" }, script = "w.postMessage({ ch: ch, dat : dat });")
private static native void sendWorkerPacket(Worker w, String channel, ArrayBuffer arr); private static native void sendWorkerPacket(Worker w, String channel, ArrayBuffer arr);
@JSBody(params = { "w", "dbName" }, script = "w.postMessage({ worldDatabaseName : dbName });")
private static native void sendWorkerStartPacket(Worker w, String dbName);
private static String worldDatabaseName = "MAIN";
public static final void beginLoadingIntegratedServer() { public static final void beginLoadingIntegratedServer() {
if(server != null) { if(server != null) {
server.terminate(); server.terminate();
} }
workerMessageQueue.put("IPC", new LinkedList<PKT>()); workerMessageQueue.put("IPC", new LinkedList<PKT>());
server = Worker.create("bootstrap.js"); server = Worker.create(integratedServerScript);
server.onError(new EventListener<ErrorEvent>() { server.onError(new EventListener<ErrorEvent>() {
@Override @Override
public void handleEvent(ErrorEvent evt) { public void handleEvent(ErrorEvent evt) {
System.err.println("Worker Error: " + evt.getError()); System.err.println("Worker Error: " + evt.getError());
} }
}); });
sendWorkerStartPacket(server, worldDatabaseName);
registerPacketHandler(server, new WorkerBinaryPacketHandlerImpl()); registerPacketHandler(server, new WorkerBinaryPacketHandlerImpl());
} }
public static final void setWorldDatabaseName(String name) {
worldDatabaseName = name;
}
public static final boolean isIntegratedServerAlive() { public static final boolean isIntegratedServerAlive() {
return serverAlive && server != null; return serverAlive && server != null;
} }