fix wasm shared worlds
This commit is contained in:
+152
-50
@@ -1,39 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022 lax1dude. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
package net.lax1dude.eaglercraft.internal.lwjgl;
|
package net.lax1dude.eaglercraft.internal.lwjgl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import net.lax1dude.eaglercraft.Random;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import net.lax1dude.eaglercraft.EaglercraftVersion;
|
import net.lax1dude.eaglercraft.EaglercraftVersion;
|
||||||
import net.lax1dude.eaglercraft.Random;
|
|
||||||
import net.lax1dude.eaglercraft.internal.IClientConfigAdapter;
|
import net.lax1dude.eaglercraft.internal.IClientConfigAdapter;
|
||||||
import net.lax1dude.eaglercraft.internal.IClientConfigAdapterHooks;
|
import net.lax1dude.eaglercraft.internal.IClientConfigAdapterHooks;
|
||||||
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
||||||
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2022 lax1dude. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class DesktopClientConfigAdapter implements IClientConfigAdapter {
|
public class DesktopClientConfigAdapter implements IClientConfigAdapter {
|
||||||
|
|
||||||
public static final IClientConfigAdapter instance = new DesktopClientConfigAdapter();
|
public static final IClientConfigAdapter instance = new DesktopClientConfigAdapter();
|
||||||
|
|
||||||
|
public final List<DefaultServer> defaultServers = new ArrayList<>();
|
||||||
|
|
||||||
private final DesktopClientConfigAdapterHooks hooks = new DesktopClientConfigAdapterHooks();
|
private final DesktopClientConfigAdapterHooks hooks = new DesktopClientConfigAdapterHooks();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultLocale() {
|
||||||
|
return "en_US";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DefaultServer> getDefaultServerList() {
|
||||||
|
return defaultServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getServerToJoin() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getWorldsDB() {
|
public String getWorldsDB() {
|
||||||
return "worlds";
|
return "worlds";
|
||||||
@@ -44,16 +61,134 @@ public class DesktopClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return "resourcePacks";
|
return "resourcePacks";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getIntegratedServerOpts() {
|
||||||
|
return new JSONObject("{\"container\":null,\"worldsDB\":\"worlds\"}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private final List<RelayEntry> relays = new ArrayList<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RelayEntry> getRelays() {
|
||||||
|
if (relays.isEmpty()) {
|
||||||
|
int relayId = (new Random()).nextInt(3);
|
||||||
|
relays.add(new RelayEntry("wss://relay.deev.is/", "lax1dude relay #1", relayId == 0));
|
||||||
|
relays.add(new RelayEntry("wss://relay.lax1dude.net/", "lax1dude relay #2", relayId == 1));
|
||||||
|
relays.add(new RelayEntry("wss://relay.shhnowisnottheti.me/", "ayunami relay #1", relayId == 2));
|
||||||
|
}
|
||||||
|
return relays;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCheckGLErrors() {
|
public boolean isCheckGLErrors() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckShaderGLErrors() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDemo() {
|
||||||
|
return EaglercraftVersion.forceDemoMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateSvc() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateDL() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableDownloadOfflineButton() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDownloadOfflineButtonLink() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useSpecialCursors() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLogInvalidCerts() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckRelaysForUpdates() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableSignatureBadge() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowVoiceClient() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowFNAWSkins() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getLocalStorageNamespace() {
|
public String getLocalStorageNamespace() {
|
||||||
return EaglercraftVersion.localStorageNamespace;
|
return EaglercraftVersion.localStorageNamespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableMinceraft() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableServerCookies() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowServerRedirects() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpenDebugConsoleOnLaunch() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isForceWebViewSupport() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableWebViewCSP() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowBootMenu() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isForceProfanityFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEaglerNoDelay() {
|
public boolean isEaglerNoDelay() {
|
||||||
return false;
|
return false;
|
||||||
@@ -74,34 +209,6 @@ public class DesktopClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return hooks;
|
return hooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnableServerCookies() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final List<RelayEntry> relays = new ArrayList<>();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<RelayEntry> getRelays() {
|
|
||||||
if (relays.isEmpty()) {
|
|
||||||
int relayId = (new Random()).nextInt(3);
|
|
||||||
relays.add(new RelayEntry("wss://relay.deev.is/", "lax1dude relay #1", relayId == 0));
|
|
||||||
relays.add(new RelayEntry("wss://relay.lax1dude.net/", "lax1dude relay #2", relayId == 1));
|
|
||||||
relays.add(new RelayEntry("wss://relay.shhnowisnottheti.me/", "ayunami relay #1", relayId == 2));
|
|
||||||
}
|
|
||||||
return relays;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isForceWebViewSupport() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnableWebViewCSP() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class DesktopClientConfigAdapterHooks implements IClientConfigAdapterHooks {
|
private static class DesktopClientConfigAdapterHooks implements IClientConfigAdapterHooks {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -127,9 +234,4 @@ public class DesktopClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public JSONObject getIntegratedServerOpts() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,100 @@
|
|||||||
package net.lax1dude.eaglercraft.internal;
|
/*
|
||||||
|
|
||||||
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
|
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
package net.lax1dude.eaglercraft.internal;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public interface IClientConfigAdapter {
|
public interface IClientConfigAdapter {
|
||||||
|
|
||||||
|
public static class DefaultServer {
|
||||||
|
|
||||||
|
public final String name;
|
||||||
|
public final String addr;
|
||||||
|
public final boolean hideAddress;
|
||||||
|
|
||||||
|
public DefaultServer(String name, String addr, boolean hideAddress) {
|
||||||
|
this.name = name;
|
||||||
|
this.addr = addr;
|
||||||
|
this.hideAddress = hideAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String getDefaultLocale();
|
||||||
|
|
||||||
|
List<DefaultServer> getDefaultServerList();
|
||||||
|
|
||||||
|
String getServerToJoin();
|
||||||
|
|
||||||
String getWorldsDB();
|
String getWorldsDB();
|
||||||
|
|
||||||
String getResourcePacksDB();
|
String getResourcePacksDB();
|
||||||
|
|
||||||
|
JSONObject getIntegratedServerOpts();
|
||||||
|
|
||||||
|
List<RelayEntry> getRelays();
|
||||||
|
|
||||||
boolean isCheckGLErrors();
|
boolean isCheckGLErrors();
|
||||||
|
|
||||||
|
boolean isCheckShaderGLErrors();
|
||||||
|
|
||||||
|
boolean isDemo();
|
||||||
|
|
||||||
|
boolean allowUpdateSvc();
|
||||||
|
|
||||||
|
boolean allowUpdateDL();
|
||||||
|
|
||||||
|
boolean isEnableDownloadOfflineButton();
|
||||||
|
|
||||||
|
String getDownloadOfflineButtonLink();
|
||||||
|
|
||||||
|
boolean useSpecialCursors();
|
||||||
|
|
||||||
|
boolean isLogInvalidCerts();
|
||||||
|
|
||||||
|
boolean isCheckRelaysForUpdates();
|
||||||
|
|
||||||
|
boolean isEnableSignatureBadge();
|
||||||
|
|
||||||
|
boolean isAllowVoiceClient();
|
||||||
|
|
||||||
|
boolean isAllowFNAWSkins();
|
||||||
|
|
||||||
String getLocalStorageNamespace();
|
String getLocalStorageNamespace();
|
||||||
|
|
||||||
|
boolean isEnableMinceraft();
|
||||||
|
|
||||||
|
boolean isEnableServerCookies();
|
||||||
|
|
||||||
|
boolean isAllowServerRedirects();
|
||||||
|
|
||||||
|
boolean isOpenDebugConsoleOnLaunch();
|
||||||
|
|
||||||
|
boolean isForceWebViewSupport();
|
||||||
|
|
||||||
|
boolean isEnableWebViewCSP();
|
||||||
|
|
||||||
|
boolean isAllowBootMenu();
|
||||||
|
|
||||||
|
boolean isForceProfanityFilter();
|
||||||
|
|
||||||
boolean isEaglerNoDelay();
|
boolean isEaglerNoDelay();
|
||||||
|
|
||||||
boolean isRamdiskMode();
|
boolean isRamdiskMode();
|
||||||
@@ -39,13 +103,4 @@ public interface IClientConfigAdapter {
|
|||||||
|
|
||||||
IClientConfigAdapterHooks getHooks();
|
IClientConfigAdapterHooks getHooks();
|
||||||
|
|
||||||
boolean isEnableServerCookies();
|
|
||||||
|
|
||||||
List<RelayEntry> getRelays();
|
|
||||||
|
|
||||||
boolean isForceWebViewSupport();
|
|
||||||
|
|
||||||
boolean isEnableWebViewCSP();
|
|
||||||
|
|
||||||
JSONObject getIntegratedServerOpts();
|
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ public class GuiScreenLANInfo extends GuiScreen {
|
|||||||
|
|
||||||
public void initGui() {
|
public void initGui() {
|
||||||
buttonList.clear();
|
buttonList.clear();
|
||||||
buttonList.add(new GuiButton(0, this.width / 2 - 100, height / 6 + 168, I18n.format("gui.continue")));
|
buttonList.add(new GuiButton(0, this.width / 2 - 100, height / 6 + 168, I18n.format("Continue")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawScreen(int par1, int par2, float par3) {
|
public void drawScreen(int par1, int par2, float par3) {
|
||||||
|
|||||||
@@ -89,6 +89,21 @@ public class TeaVMClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultLocale() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DefaultServer> getDefaultServerList() {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getServerToJoin() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getWorldsDB() {
|
public String getWorldsDB() {
|
||||||
return worldsDB;
|
return worldsDB;
|
||||||
@@ -99,11 +114,76 @@ public class TeaVMClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return checkGLErrors;
|
return checkGLErrors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckShaderGLErrors() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDemo() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateSvc() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateDL() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableDownloadOfflineButton() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDownloadOfflineButtonLink() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useSpecialCursors() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLogInvalidCerts() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckRelaysForUpdates() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableSignatureBadge() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowVoiceClient() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowFNAWSkins() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getLocalStorageNamespace() {
|
public String getLocalStorageNamespace() {
|
||||||
return localStorageNamespace;
|
return localStorageNamespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableMinceraft() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isForceWebGL1TeaVM() {
|
public boolean isForceWebGL1TeaVM() {
|
||||||
return forceWebGL1;
|
return forceWebGL1;
|
||||||
}
|
}
|
||||||
@@ -173,6 +253,16 @@ public class TeaVMClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowServerRedirects() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpenDebugConsoleOnLaunch() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isForceWebViewSupport() {
|
public boolean isForceWebViewSupport() {
|
||||||
@@ -184,6 +274,16 @@ public class TeaVMClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowBootMenu() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isForceProfanityFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getIntegratedServerOpts() {
|
public JSONObject getIntegratedServerOpts() {
|
||||||
return integratedServerOpts;
|
return integratedServerOpts;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class PlatformWebRTC {
|
|||||||
|
|
||||||
private static final Logger logger = LogManager.getLogger("PlatformWebRTC");
|
private static final Logger logger = LogManager.getLogger("PlatformWebRTC");
|
||||||
|
|
||||||
private static boolean isSupported = false;
|
private static boolean isSupported = true;
|
||||||
|
|
||||||
public static void initialize() {
|
public static void initialize() {
|
||||||
isSupported = supported0();
|
isSupported = supported0();
|
||||||
|
|||||||
+316
-22
@@ -16,27 +16,59 @@
|
|||||||
|
|
||||||
package net.lax1dude.eaglercraft.internal.wasm_gc_teavm;
|
package net.lax1dude.eaglercraft.internal.wasm_gc_teavm;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.lax1dude.eaglercraft.EagRuntime;
|
||||||
|
import net.lax1dude.eaglercraft.EaglercraftVersion;
|
||||||
|
import net.lax1dude.eaglercraft.ThreadLocalRandom;
|
||||||
|
import net.lax1dude.eaglercraft.sp.relay.RelayManager;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.teavm.jso.JSObject;
|
||||||
|
import org.teavm.jso.core.JSArrayReader;
|
||||||
|
|
||||||
import net.lax1dude.eaglercraft.internal.IClientConfigAdapter;
|
import net.lax1dude.eaglercraft.internal.IClientConfigAdapter;
|
||||||
import net.lax1dude.eaglercraft.internal.IClientConfigAdapterHooks;
|
import net.lax1dude.eaglercraft.internal.IClientConfigAdapterHooks;
|
||||||
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsHooks;
|
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsHooks;
|
||||||
|
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsRelay;
|
||||||
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsRoot;
|
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsRoot;
|
||||||
import net.lax1dude.eaglercraft.EaglercraftVersion;
|
import net.lax1dude.eaglercraft.internal.wasm_gc_teavm.opts.JSEaglercraftXOptsServer;
|
||||||
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
import net.lax1dude.eaglercraft.sp.relay.RelayEntry;
|
||||||
import org.json.JSONObject;
|
|
||||||
import org.teavm.jso.JSObject;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
||||||
|
|
||||||
public static final IClientConfigAdapter instance = new WASMGCClientConfigAdapter();
|
public static final IClientConfigAdapter instance = new WASMGCClientConfigAdapter();
|
||||||
|
|
||||||
|
private String defaultLocale = "en_US";
|
||||||
|
private List<DefaultServer> defaultServers = new ArrayList<>();
|
||||||
|
private List<RelayEntry> relays = new ArrayList<>();
|
||||||
|
private String serverToJoin = null;
|
||||||
private String worldsDB = "worlds";
|
private String worldsDB = "worlds";
|
||||||
private String resourcePacksDB = "resourcePacks";
|
private String resourcePacksDB = "resourcePacks";
|
||||||
private boolean checkGLErrors = false;
|
private boolean checkGLErrors = false;
|
||||||
|
private boolean checkShaderGLErrors = false;
|
||||||
|
private boolean demoMode = EaglercraftVersion.forceDemoMode;
|
||||||
|
private boolean isEnableDownloadOfflineButton = true;
|
||||||
|
private String downloadOfflineButtonLink = null;
|
||||||
|
private boolean useSpecialCursors = false;
|
||||||
|
private boolean logInvalidCerts = false;
|
||||||
|
private boolean checkRelaysForUpdates = false;
|
||||||
|
private boolean enableSignatureBadge = false;
|
||||||
|
private boolean allowVoiceClient = true;
|
||||||
|
private boolean allowFNAWSkins = true;
|
||||||
private String localStorageNamespace = "_eaglercraftX";
|
private String localStorageNamespace = "_eaglercraftX";
|
||||||
private final WASMGCClientConfigAdapterHooks hooks = new WASMGCClientConfigAdapterHooks();
|
private final WASMGCClientConfigAdapterHooks hooks = new WASMGCClientConfigAdapterHooks();
|
||||||
|
private boolean enableMinceraft = true;
|
||||||
|
private boolean enableServerCookies = true;
|
||||||
|
private boolean allowServerRedirects = true;
|
||||||
|
private boolean crashOnUncaughtExceptions = false;
|
||||||
|
private boolean openDebugConsoleOnLaunch = false;
|
||||||
|
private boolean fixDebugConsoleUnloadListener = false;
|
||||||
|
private boolean forceWebViewSupport = false;
|
||||||
|
private boolean enableWebViewCSP = false;
|
||||||
private boolean autoFixLegacyStyleAttr = false;
|
private boolean autoFixLegacyStyleAttr = false;
|
||||||
|
private boolean forceProfanityFilter = false;
|
||||||
private boolean forceWebGL1 = false;
|
private boolean forceWebGL1 = false;
|
||||||
private boolean forceWebGL2 = false;
|
private boolean forceWebGL2 = false;
|
||||||
private boolean allowExperimentalWebGL1 = false;
|
private boolean allowExperimentalWebGL1 = false;
|
||||||
@@ -56,11 +88,31 @@ public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
public void loadNative(JSObject jsObject) {
|
public void loadNative(JSObject jsObject) {
|
||||||
JSEaglercraftXOptsRoot eaglercraftXOpts = (JSEaglercraftXOptsRoot)jsObject;
|
JSEaglercraftXOptsRoot eaglercraftXOpts = (JSEaglercraftXOptsRoot)jsObject;
|
||||||
|
|
||||||
|
defaultLocale = eaglercraftXOpts.getLang("en_US");
|
||||||
|
serverToJoin = eaglercraftXOpts.getJoinServer(null);
|
||||||
worldsDB = eaglercraftXOpts.getWorldsDB("worlds");
|
worldsDB = eaglercraftXOpts.getWorldsDB("worlds");
|
||||||
resourcePacksDB = eaglercraftXOpts.getResourcePacksDB("resourcePacks");
|
resourcePacksDB = eaglercraftXOpts.getResourcePacksDB("resourcePacks");
|
||||||
checkGLErrors = eaglercraftXOpts.getCheckGLErrors(false);
|
checkGLErrors = eaglercraftXOpts.getCheckGLErrors(false);
|
||||||
|
checkShaderGLErrors = eaglercraftXOpts.getCheckShaderGLErrors(false);
|
||||||
|
demoMode = EaglercraftVersion.forceDemoMode || eaglercraftXOpts.getDemoMode(false);
|
||||||
|
isEnableDownloadOfflineButton = eaglercraftXOpts.getEnableDownloadOfflineButton(true);
|
||||||
|
downloadOfflineButtonLink = eaglercraftXOpts.getDownloadOfflineButtonLink(null);
|
||||||
|
useSpecialCursors = eaglercraftXOpts.getHtml5CursorSupport(false);
|
||||||
|
logInvalidCerts = EaglercraftVersion.enableUpdateService && !demoMode && eaglercraftXOpts.getLogInvalidCerts(false);
|
||||||
|
enableSignatureBadge = eaglercraftXOpts.getEnableSignatureBadge(false);
|
||||||
|
allowVoiceClient = eaglercraftXOpts.getAllowVoiceClient(true);
|
||||||
|
allowFNAWSkins = !demoMode && eaglercraftXOpts.getAllowFNAWSkins(true);
|
||||||
localStorageNamespace = eaglercraftXOpts.getLocalStorageNamespace(EaglercraftVersion.localStorageNamespace);
|
localStorageNamespace = eaglercraftXOpts.getLocalStorageNamespace(EaglercraftVersion.localStorageNamespace);
|
||||||
|
enableMinceraft = eaglercraftXOpts.getEnableMinceraft(true);
|
||||||
|
enableServerCookies = !demoMode && eaglercraftXOpts.getEnableServerCookies(true);
|
||||||
|
allowServerRedirects = eaglercraftXOpts.getAllowServerRedirects(true);
|
||||||
|
crashOnUncaughtExceptions = eaglercraftXOpts.getCrashOnUncaughtExceptions(false);
|
||||||
|
openDebugConsoleOnLaunch = eaglercraftXOpts.getOpenDebugConsoleOnLaunch(false);
|
||||||
|
fixDebugConsoleUnloadListener = eaglercraftXOpts.getFixDebugConsoleUnloadListener(false);
|
||||||
|
forceWebViewSupport = eaglercraftXOpts.getForceWebViewSupport(false);
|
||||||
|
enableWebViewCSP = eaglercraftXOpts.getEnableWebViewCSP(true);
|
||||||
autoFixLegacyStyleAttr = eaglercraftXOpts.getAutoFixLegacyStyleAttr(true);
|
autoFixLegacyStyleAttr = eaglercraftXOpts.getAutoFixLegacyStyleAttr(true);
|
||||||
|
forceProfanityFilter = eaglercraftXOpts.getForceProfanityFilter(false);
|
||||||
forceWebGL1 = eaglercraftXOpts.getForceWebGL1(false);
|
forceWebGL1 = eaglercraftXOpts.getForceWebGL1(false);
|
||||||
forceWebGL2 = eaglercraftXOpts.getForceWebGL2(false);
|
forceWebGL2 = eaglercraftXOpts.getForceWebGL2(false);
|
||||||
allowExperimentalWebGL1 = eaglercraftXOpts.getAllowExperimentalWebGL1(true);
|
allowExperimentalWebGL1 = eaglercraftXOpts.getAllowExperimentalWebGL1(true);
|
||||||
@@ -80,6 +132,83 @@ public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
if(hooksObj != null) {
|
if(hooksObj != null) {
|
||||||
hooks.loadHooks(hooksObj);
|
hooks.loadHooks(hooksObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defaultServers.clear();
|
||||||
|
JSArrayReader<JSEaglercraftXOptsServer> serversArray = eaglercraftXOpts.getServers();
|
||||||
|
if(serversArray != null) {
|
||||||
|
for(int i = 0, l = serversArray.getLength(); i < l; ++i) {
|
||||||
|
JSEaglercraftXOptsServer serverEntry = serversArray.get(i);
|
||||||
|
boolean hideAddr = serverEntry.getHideAddr(false);
|
||||||
|
String serverAddr = serverEntry.getAddr();
|
||||||
|
if(serverAddr != null) {
|
||||||
|
String serverName = serverEntry.getName("Default Server #" + i);
|
||||||
|
defaultServers.add(new DefaultServer(serverName, serverAddr, hideAddr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
relays.clear();
|
||||||
|
JSArrayReader<JSEaglercraftXOptsRelay> relaysArray = eaglercraftXOpts.getRelays();
|
||||||
|
if(relaysArray != null) {
|
||||||
|
boolean gotAPrimary = false;
|
||||||
|
for(int i = 0, l = relaysArray.getLength(); i < l; ++i) {
|
||||||
|
JSEaglercraftXOptsRelay relay = relaysArray.get(i);
|
||||||
|
String addr = relay.getAddr();
|
||||||
|
if(addr != null) {
|
||||||
|
boolean p = relay.getPrimary();
|
||||||
|
if(p) {
|
||||||
|
if(gotAPrimary) {
|
||||||
|
p = false;
|
||||||
|
}else {
|
||||||
|
gotAPrimary = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
relays.add(new RelayEntry(relay.getAddr(), relay.getComment("Default Relay #" + i), p));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean officialUpdates = !demoMode && EaglercraftVersion.updateBundlePackageName.equals("net.lax1dude.eaglercraft.client");
|
||||||
|
if (relays.size() <= 0) {
|
||||||
|
int choice = ThreadLocalRandom.current().nextInt(3);
|
||||||
|
relays.add(new RelayEntry("wss://relay.deev.is/", "lax1dude relay #1", choice == 0));
|
||||||
|
relays.add(new RelayEntry("wss://relay.lax1dude.net/", "lax1dude relay #2", choice == 1));
|
||||||
|
relays.add(new RelayEntry("wss://relay.shhnowisnottheti.me/", "ayunami relay #1", choice == 2));
|
||||||
|
checkRelaysForUpdates = !demoMode && eaglercraftXOpts.getCheckRelaysForUpdates(officialUpdates);
|
||||||
|
}else {
|
||||||
|
if(officialUpdates) {
|
||||||
|
for(int i = 0, l = relays.size(); i < l; ++i) {
|
||||||
|
String addr = relays.get(i).address;
|
||||||
|
if(!addr.contains("deev.is") && !addr.contains("lax1dude.net") && !addr.contains("shhnowisnottheti.me")) {
|
||||||
|
officialUpdates = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkRelaysForUpdates = !demoMode && eaglercraftXOpts.getCheckRelaysForUpdates(officialUpdates);
|
||||||
|
}
|
||||||
|
|
||||||
|
RelayManager.relayManager.load(EagRuntime.getStorage("r"));
|
||||||
|
|
||||||
|
if (RelayManager.relayManager.count() <= 0) {
|
||||||
|
RelayManager.relayManager.loadDefaults();
|
||||||
|
RelayManager.relayManager.save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDefaultLocale() {
|
||||||
|
return defaultLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DefaultServer> getDefaultServerList() {
|
||||||
|
return defaultServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getServerToJoin() {
|
||||||
|
return serverToJoin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -92,16 +221,120 @@ public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return resourcePacksDB;
|
return resourcePacksDB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getIntegratedServerOpts() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RelayEntry> getRelays() {
|
||||||
|
return relays;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCheckGLErrors() {
|
public boolean isCheckGLErrors() {
|
||||||
return checkGLErrors;
|
return checkGLErrors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckShaderGLErrors() {
|
||||||
|
return checkShaderGLErrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDemo() {
|
||||||
|
return demoMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateSvc() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean allowUpdateDL() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableDownloadOfflineButton() {
|
||||||
|
return isEnableDownloadOfflineButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDownloadOfflineButtonLink() {
|
||||||
|
return downloadOfflineButtonLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useSpecialCursors() {
|
||||||
|
return useSpecialCursors;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLogInvalidCerts() {
|
||||||
|
return logInvalidCerts;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCheckRelaysForUpdates() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableSignatureBadge() {
|
||||||
|
return enableSignatureBadge;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowVoiceClient() {
|
||||||
|
return allowVoiceClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowFNAWSkins() {
|
||||||
|
return allowFNAWSkins;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getLocalStorageNamespace() {
|
public String getLocalStorageNamespace() {
|
||||||
return localStorageNamespace;
|
return localStorageNamespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableMinceraft() {
|
||||||
|
return enableMinceraft;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableServerCookies() {
|
||||||
|
return enableServerCookies;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowServerRedirects() {
|
||||||
|
return allowServerRedirects;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpenDebugConsoleOnLaunch() {
|
||||||
|
return openDebugConsoleOnLaunch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFixDebugConsoleUnloadListenerTeaVM() {
|
||||||
|
return fixDebugConsoleUnloadListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isForceWebViewSupport() {
|
||||||
|
return forceWebViewSupport;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnableWebViewCSP() {
|
||||||
|
return enableWebViewCSP;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isAutoFixLegacyStyleAttrTeaVM() {
|
public boolean isAutoFixLegacyStyleAttrTeaVM() {
|
||||||
return autoFixLegacyStyleAttr;
|
return autoFixLegacyStyleAttr;
|
||||||
}
|
}
|
||||||
@@ -146,6 +379,16 @@ public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return singleThreadMode;
|
return singleThreadMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAllowBootMenu() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isForceProfanityFilter() {
|
||||||
|
return forceProfanityFilter;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEaglerNoDelay() {
|
public boolean isEaglerNoDelay() {
|
||||||
return eaglerNoDelay;
|
return eaglerNoDelay;
|
||||||
@@ -174,28 +417,79 @@ public class WASMGCClientConfigAdapter implements IClientConfigAdapter {
|
|||||||
return hooks;
|
return hooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public JSONObject toJSONObject() {
|
||||||
public boolean isEnableServerCookies() {
|
JSONObject jsonObject = new JSONObject();
|
||||||
return false;
|
jsonObject.put("lang", defaultLocale);
|
||||||
|
jsonObject.put("joinServer", serverToJoin);
|
||||||
|
jsonObject.put("worldsDB", worldsDB);
|
||||||
|
jsonObject.put("resourcePacksDB", resourcePacksDB);
|
||||||
|
jsonObject.put("checkGLErrors", checkGLErrors);
|
||||||
|
jsonObject.put("checkShaderGLErrors", checkShaderGLErrors);
|
||||||
|
jsonObject.put("demoMode", demoMode);
|
||||||
|
jsonObject.put("enableDownloadOfflineButton", isEnableDownloadOfflineButton);
|
||||||
|
jsonObject.put("downloadOfflineButtonLink", downloadOfflineButtonLink);
|
||||||
|
jsonObject.put("html5CursorSupport", useSpecialCursors);
|
||||||
|
jsonObject.put("logInvalidCerts", logInvalidCerts);
|
||||||
|
jsonObject.put("checkRelaysForUpdates", checkRelaysForUpdates);
|
||||||
|
jsonObject.put("enableSignatureBadge", enableSignatureBadge);
|
||||||
|
jsonObject.put("allowVoiceClient", allowVoiceClient);
|
||||||
|
jsonObject.put("allowFNAWSkins", allowFNAWSkins);
|
||||||
|
jsonObject.put("localStorageNamespace", localStorageNamespace);
|
||||||
|
jsonObject.put("enableMinceraft", enableMinceraft);
|
||||||
|
jsonObject.put("enableServerCookies", enableServerCookies);
|
||||||
|
jsonObject.put("allowServerRedirects", allowServerRedirects);
|
||||||
|
jsonObject.put("crashOnUncaughtExceptions", crashOnUncaughtExceptions);
|
||||||
|
jsonObject.put("openDebugConsoleOnLaunch", openDebugConsoleOnLaunch);
|
||||||
|
jsonObject.put("fixDebugConsoleUnloadListener", fixDebugConsoleUnloadListener);
|
||||||
|
jsonObject.put("forceWebViewSupport", forceWebViewSupport);
|
||||||
|
jsonObject.put("enableWebViewCSP", enableWebViewCSP);
|
||||||
|
jsonObject.put("autoFixLegacyStyleAttr", autoFixLegacyStyleAttr);
|
||||||
|
jsonObject.put("forceProfanityFilter", forceProfanityFilter);
|
||||||
|
jsonObject.put("forceWebGL1", forceWebGL1);
|
||||||
|
jsonObject.put("forceWebGL2", forceWebGL2);
|
||||||
|
jsonObject.put("allowExperimentalWebGL1", allowExperimentalWebGL1);
|
||||||
|
jsonObject.put("useWebGLExt", useWebGLExt);
|
||||||
|
jsonObject.put("useJOrbisAudioDecoder", useJOrbisAudioDecoder);
|
||||||
|
jsonObject.put("useXHRFetch", useXHRFetch);
|
||||||
|
jsonObject.put("useVisualViewport", useVisualViewport);
|
||||||
|
jsonObject.put("deobfStackTraces", deobfStackTraces);
|
||||||
|
jsonObject.put("disableBlobURLs", disableBlobURLs);
|
||||||
|
jsonObject.put("eaglerNoDelay", eaglerNoDelay);
|
||||||
|
jsonObject.put("ramdiskMode", ramdiskMode);
|
||||||
|
jsonObject.put("singleThreadMode", singleThreadMode);
|
||||||
|
jsonObject.put("enforceVSync", enforceVSync);
|
||||||
|
jsonObject.put("keepAliveHack", keepAliveHack);
|
||||||
|
jsonObject.put("finishOnSwap", finishOnSwap);
|
||||||
|
JSONArray serversArr = new JSONArray();
|
||||||
|
for(int i = 0, l = defaultServers.size(); i < l; ++i) {
|
||||||
|
DefaultServer srv = defaultServers.get(i);
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
obj.put("addr", srv.addr);
|
||||||
|
obj.put("hideAddr", srv.hideAddress);
|
||||||
|
obj.put("name", srv.name);
|
||||||
|
serversArr.put(obj);
|
||||||
|
}
|
||||||
|
jsonObject.put("servers", serversArr);
|
||||||
|
JSONArray relaysArr = new JSONArray();
|
||||||
|
for(int i = 0, l = relays.size(); i < l; ++i) {
|
||||||
|
RelayEntry rl = relays.get(i);
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
obj.put("addr", rl.address);
|
||||||
|
obj.put("comment", rl.comment);
|
||||||
|
obj.put("primary", rl.primary);
|
||||||
|
relaysArr.put(obj);
|
||||||
|
}
|
||||||
|
jsonObject.put("relays", relaysArr);
|
||||||
|
return jsonObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RelayEntry> getRelays() {
|
public String toString() {
|
||||||
return List.of();
|
return toJSONObject().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public String toStringFormatted() {
|
||||||
public boolean isForceWebViewSupport() {
|
return toJSONObject().toString(4);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnableWebViewCSP() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public JSONObject getIntegratedServerOpts() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user