From 4799c12c8ad9b40a8f213278c4a7046c38b3e9cb Mon Sep 17 00:00:00 2001 From: RealEthanPlayzDev Date: Wed, 25 Sep 2024 13:16:09 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20PojavLau?= =?UTF-8?q?ncherTeam/pojavlauncherteam.github.io@00922ed2de18a36c945d95d5a?= =?UTF-8?q?f4da5b7d95643cc=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 32BIT.html | 10 ++--- 404.html | 6 +-- ABOUTPOJAV.html | 6 +-- APPSTORE.html | 6 +-- BUILD-FROM-SOURCE.html | 6 +-- CANTFINDLOG.html | 34 +++++++++++++++++ CANTFINDMINECRAFT.html | 34 +++++++++++++++++ CANTLOGIN.html | 36 ++++++++++++++++++ CONT-TRANSLATIONS.html | 6 +-- CONT-WEBSITE.html | 10 ++--- CRASHES.html | 33 ++++++++++++++++ CUSTOM-CONTROLS.html | 6 +-- CUSTOM-MC.html | 6 +-- DEVICES.html | 8 ++-- DISCORD.html | 6 +-- ENV-VARS.html | 10 ++--- FFMPEG.html | 6 +-- FIRST-STEPS.html | 6 +-- INSTALL-MC.html | 6 +-- INSTALL.html | 6 +-- IOS-SUPPORT.html | 6 +-- JARCRASHED.html | 33 ++++++++++++++++ JAVA-ARGS.html | 6 +-- JAVARUNTIMES.html | 33 ++++++++++++++++ JAVAVERSION.html | 35 +++++++++++++++++ JIT.html | 6 +-- LEGAL.html | 6 +-- LOCAL-MODE.html | 6 +-- MCVERS.html | 6 +-- MODCONFLICT.html | 35 +++++++++++++++++ MODCRASHING.html | 33 ++++++++++++++++ MODDED-MC.html | 6 +-- MODNOTSHOWINGUP.html | 33 ++++++++++++++++ MODPACKS.html | 10 ++--- MODS-UNSUPPORTED.html | 10 ++--- NOTCHFIX.html | 6 +-- OPTIMIZATION.html | 10 ++--- PARSINGERROR.html | 6 +-- PROBLEMATIC-MODS-COMMON-FIXES.html | 33 ++++++++++++++++ REFUSALOFINSTALL.html | 10 ++--- RENDERERS.html | 10 ++--- ROADMAP.html | 33 ---------------- RPWORLDNOTSHOWINGUP.html | 40 ++++++++++++++++++++ SHADERS.html | 6 +-- SIGN-IN.html | 6 +-- UNJAIL.html | 6 +-- ZINK.html | 6 +-- ZINKNOTWORKING.html | 37 ++++++++++++++++++ archived_pages/DEVICES_LINUX_INCL.html | 6 +-- archived_pages/JDK8.html | 6 +-- archived_pages/OGL32.html | 6 +-- archived_pages/PARTNERSHIPS.html | 6 +-- archived_pages/RIP-A7.html | 6 +-- archived_pages/index.html | 6 +-- assets/js/{14.ca627ee3.js => 14.381caada.js} | 2 +- assets/js/{15.3678c9eb.js => 15.96f55d3d.js} | 0 assets/js/{21.86b00bdf.js => 21.9c9c8b55.js} | 2 +- assets/js/{27.35018721.js => 27.ba5e9ff1.js} | 2 +- assets/js/{28.1b260f9c.js => 28.70b620d4.js} | 2 +- assets/js/{29.40fe6dd1.js => 29.b6522c58.js} | 2 +- assets/js/31.d772bf38.js | 1 + assets/js/32.2c059362.js | 1 + assets/js/33.6168e019.js | 1 + assets/js/{31.3aa74262.js => 34.4f986602.js} | 2 +- assets/js/35.333033d2.js | 1 - assets/js/{32.a729987c.js => 35.cd91cc7a.js} | 2 +- assets/js/36.a128fb7a.js | 1 + assets/js/{33.d941eda2.js => 37.b9612398.js} | 2 +- assets/js/{34.e1ed4fb0.js => 38.620bfaf4.js} | 2 +- assets/js/39.886e2e22.js | 1 + assets/js/{36.9c67dd25.js => 40.12a0e9be.js} | 2 +- assets/js/{37.ba1527db.js => 41.a6ac8d41.js} | 2 +- assets/js/{38.4e77cb6f.js => 42.5f6742fc.js} | 2 +- assets/js/{39.c3a3447e.js => 43.8db0cfa9.js} | 2 +- assets/js/{40.cd55fcca.js => 44.d1fb2c9a.js} | 2 +- assets/js/{41.c7e98223.js => 45.b9a7280b.js} | 2 +- assets/js/46.67a18a8f.js | 1 + assets/js/{42.b2cfe607.js => 47.52ecada5.js} | 2 +- assets/js/48.12c66971.js | 1 + assets/js/49.3d991421.js | 1 + assets/js/{43.71116029.js => 50.200732ae.js} | 2 +- assets/js/{44.9745a1bc.js => 51.b1bf3cc8.js} | 2 +- assets/js/{45.d8afbb26.js => 52.936dd052.js} | 2 +- assets/js/{46.54ef8f01.js => 53.6eae458a.js} | 2 +- assets/js/54.29a607d9.js | 1 + assets/js/55.62f66576.js | 1 + assets/js/55.b96b046a.js | 1 - assets/js/{47.b533cd0e.js => 56.8ce4b27e.js} | 2 +- assets/js/56.d281dacb.js | 1 - assets/js/57.a8c712b7.js | 1 + assets/js/{48.f6d8140d.js => 58.399a034d.js} | 2 +- assets/js/{49.4f8a7be0.js => 59.e4861342.js} | 2 +- assets/js/{50.0d1699aa.js => 60.b38a88b8.js} | 2 +- assets/js/{51.29a847c9.js => 61.dc2d3341.js} | 2 +- assets/js/{52.755ab5d0.js => 62.c9e7f981.js} | 2 +- assets/js/63.c1f90e62.js | 1 + assets/js/{53.46db47cc.js => 64.6417d1fb.js} | 2 +- assets/js/{54.811c323c.js => 65.0416cceb.js} | 2 +- assets/js/66.a50ce7aa.js | 1 + assets/js/67.fd6f3c9d.js | 1 + assets/js/{57.3f480009.js => 68.bebc0b0c.js} | 2 +- assets/js/{58.72d357a1.js => 69.4bfd5310.js} | 2 +- assets/js/{59.1fba1f04.js => 70.0791721f.js} | 2 +- assets/js/{60.6b5ca379.js => 71.a267d562.js} | 2 +- assets/js/72.e60e86d1.js | 1 + assets/js/{61.1950357f.js => 73.9ec38d2c.js} | 2 +- assets/js/{62.85343d43.js => 74.bb6e46d5.js} | 2 +- assets/js/{63.cbfcdf27.js => 75.1d2d7d35.js} | 2 +- assets/js/{64.6ea9615a.js => 76.59de7e2d.js} | 2 +- assets/js/{65.f59e4ae8.js => 77.aa70530c.js} | 2 +- assets/js/{66.8e649d95.js => 78.71160914.js} | 2 +- assets/js/{67.cb12d099.js => 79.42f1dd1d.js} | 2 +- assets/js/{68.321dd9f0.js => 80.604a0915.js} | 2 +- assets/js/{69.7d212bb9.js => 81.5a998a7c.js} | 2 +- assets/js/app.14bb2fbd.js | 16 -------- assets/js/app.7e07c911.js | 16 ++++++++ changelogs/ANDROID.html | 6 +-- changelogs/IOS.html | 6 +-- images/index.html | 6 +-- index.html | 6 +-- 120 files changed, 670 insertions(+), 242 deletions(-) create mode 100644 CANTFINDLOG.html create mode 100644 CANTFINDMINECRAFT.html create mode 100644 CANTLOGIN.html create mode 100644 CRASHES.html create mode 100644 JARCRASHED.html create mode 100644 JAVARUNTIMES.html create mode 100644 JAVAVERSION.html create mode 100644 MODCONFLICT.html create mode 100644 MODCRASHING.html create mode 100644 MODNOTSHOWINGUP.html create mode 100644 PROBLEMATIC-MODS-COMMON-FIXES.html delete mode 100644 ROADMAP.html create mode 100644 RPWORLDNOTSHOWINGUP.html create mode 100644 ZINKNOTWORKING.html rename assets/js/{14.ca627ee3.js => 14.381caada.js} (99%) rename assets/js/{15.3678c9eb.js => 15.96f55d3d.js} (100%) rename assets/js/{21.86b00bdf.js => 21.9c9c8b55.js} (86%) rename assets/js/{27.35018721.js => 27.ba5e9ff1.js} (98%) rename assets/js/{28.1b260f9c.js => 28.70b620d4.js} (56%) rename assets/js/{29.40fe6dd1.js => 29.b6522c58.js} (96%) create mode 100644 assets/js/31.d772bf38.js create mode 100644 assets/js/32.2c059362.js create mode 100644 assets/js/33.6168e019.js rename assets/js/{31.3aa74262.js => 34.4f986602.js} (97%) delete mode 100644 assets/js/35.333033d2.js rename assets/js/{32.a729987c.js => 35.cd91cc7a.js} (98%) create mode 100644 assets/js/36.a128fb7a.js rename assets/js/{33.d941eda2.js => 37.b9612398.js} (53%) rename assets/js/{34.e1ed4fb0.js => 38.620bfaf4.js} (97%) create mode 100644 assets/js/39.886e2e22.js rename assets/js/{36.9c67dd25.js => 40.12a0e9be.js} (93%) rename assets/js/{37.ba1527db.js => 41.a6ac8d41.js} (86%) rename assets/js/{38.4e77cb6f.js => 42.5f6742fc.js} (97%) rename assets/js/{39.c3a3447e.js => 43.8db0cfa9.js} (77%) rename assets/js/{40.cd55fcca.js => 44.d1fb2c9a.js} (86%) rename assets/js/{41.c7e98223.js => 45.b9a7280b.js} (98%) create mode 100644 assets/js/46.67a18a8f.js rename assets/js/{42.b2cfe607.js => 47.52ecada5.js} (86%) create mode 100644 assets/js/48.12c66971.js create mode 100644 assets/js/49.3d991421.js rename assets/js/{43.71116029.js => 50.200732ae.js} (54%) rename assets/js/{44.9745a1bc.js => 51.b1bf3cc8.js} (96%) rename assets/js/{45.d8afbb26.js => 52.936dd052.js} (94%) rename assets/js/{46.54ef8f01.js => 53.6eae458a.js} (96%) create mode 100644 assets/js/54.29a607d9.js create mode 100644 assets/js/55.62f66576.js delete mode 100644 assets/js/55.b96b046a.js rename assets/js/{47.b533cd0e.js => 56.8ce4b27e.js} (97%) delete mode 100644 assets/js/56.d281dacb.js create mode 100644 assets/js/57.a8c712b7.js rename assets/js/{48.f6d8140d.js => 58.399a034d.js} (98%) rename assets/js/{49.4f8a7be0.js => 59.e4861342.js} (99%) rename assets/js/{50.0d1699aa.js => 60.b38a88b8.js} (77%) rename assets/js/{51.29a847c9.js => 61.dc2d3341.js} (97%) rename assets/js/{52.755ab5d0.js => 62.c9e7f981.js} (95%) create mode 100644 assets/js/63.c1f90e62.js rename assets/js/{53.46db47cc.js => 64.6417d1fb.js} (77%) rename assets/js/{54.811c323c.js => 65.0416cceb.js} (98%) create mode 100644 assets/js/66.a50ce7aa.js create mode 100644 assets/js/67.fd6f3c9d.js rename assets/js/{57.3f480009.js => 68.bebc0b0c.js} (95%) rename assets/js/{58.72d357a1.js => 69.4bfd5310.js} (92%) rename assets/js/{59.1fba1f04.js => 70.0791721f.js} (92%) rename assets/js/{60.6b5ca379.js => 71.a267d562.js} (77%) create mode 100644 assets/js/72.e60e86d1.js rename assets/js/{61.1950357f.js => 73.9ec38d2c.js} (98%) rename assets/js/{62.85343d43.js => 74.bb6e46d5.js} (86%) rename assets/js/{63.cbfcdf27.js => 75.1d2d7d35.js} (99%) rename assets/js/{64.6ea9615a.js => 76.59de7e2d.js} (87%) rename assets/js/{65.f59e4ae8.js => 77.aa70530c.js} (95%) rename assets/js/{66.8e649d95.js => 78.71160914.js} (97%) rename assets/js/{67.cb12d099.js => 79.42f1dd1d.js} (84%) rename assets/js/{68.321dd9f0.js => 80.604a0915.js} (99%) rename assets/js/{69.7d212bb9.js => 81.5a998a7c.js} (96%) delete mode 100644 assets/js/app.14bb2fbd.js create mode 100644 assets/js/app.7e07c911.js diff --git a/32BIT.html b/32BIT.html index 170a34fb..d1466e26 100644 --- a/32BIT.html +++ b/32BIT.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# PojavLauncher's 32-bit support

Most of you, Android users, who are reading this now, won't be bothered by this documentation, but for the poor souls who have a 32-bit device, let's press L F to pay respects to them.

ARM transitioned into the modern arm64/aarch64 architecture, which significantly improved utilization and stability compared to its widely used predecessor, arm/aarch32, while also maintaining compatibility using code blocks for parity between both architectures.

We won't get into much detail regarding it, but if you'd like to learn more about it have a read of this documentary about the ARM platform. (opens new window)

You may encounter issues while using PojavLauncher on 32-bit devices. Here's a list of things that are known to be problematic:

# RAM Allocation

Real 32-bit devices (32-bit hardware and firmware), can't allocate more than 768MB of RAM to PojavLauncher. This CAN'T be changed even if the device has extra RAM to spare.

  • Examples of real 32-bit SoCs: Qualcomm Snapdragon 801, 800, 600, 400, S4, S3, S2, S1, etc.

64-bit devices limited to 32-bit firmware can't allocate more than ~1000MB of RAM. As said earlier, this CAN'T be changed.

  • Examples of 64-bit SoCs limited to 32-bit firmware: MediaTek Helio G37, G35, G25, P35, P25, P23, P22, etc.

# Performance

Due to 32-bit's processing speed limit, Minecraft's performance is always compromised. Even with optimization mods installed, you may receive big stutters even on the lowest settings. Decreasing RAM Allocation may help performance in some scenarios.

# Compatibility

As of snapshot 24w14a (opens new window), Minecraft has officially dropped support for the 32-Bit architecture, ultimately meaning if you own a 32-Bit device you will NOT be able to run Minecraft 1.20.5+ on said device.

- + diff --git a/404.html b/404.html index 82ae1777..b0036b0e 100644 --- a/404.html +++ b/404.html @@ -11,13 +11,13 @@ - + -

404

That's a Four-Oh-Four.
+ - + diff --git a/ABOUTPOJAV.html b/ABOUTPOJAV.html index 1c46b22f..0b34db37 100644 --- a/ABOUTPOJAV.html +++ b/ABOUTPOJAV.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# PojavLauncher

# From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.

PojavLauncher is based off of zhouwei's Boardwalk project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support.

Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store!

# Credits

PojavLauncher didn't just appear out of thin air, but was made possible by the following people!

@PojavLauncherTeam (opens new window), which includes

...and many more contributors to the Android (opens new window) and iOS (opens new window) repositories.

PojavLauncher also uses the following third-party components:

# Special thanks to these guys

- + (opens new window)

# PojavLauncher

# From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.

PojavLauncher is based off of zhouwei's Boardwalk project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support.

Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store!

# Credits

PojavLauncher didn't just appear out of thin air, but was made possible by the following people!

@PojavLauncherTeam (opens new window), which includes

...and many more contributors to the Android (opens new window) and iOS (opens new window) repositories.

PojavLauncher also uses the following third-party components:

# Special thanks to these guys

+ diff --git a/APPSTORE.html b/APPSTORE.html index 228694c9..0dd383c8 100644 --- a/APPSTORE.html +++ b/APPSTORE.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Will PojavLauncher ever come to App Store for iOS?

# From the App Store review guidelines:

2.5.2: Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.

Apple Developer Documentation Referenced: Section 2.5.2 (opens new window)

Additionally, $99 per year is required for pushing updates.

If PojavLauncher is ever pushed to the App Store, you will know!

- + diff --git a/BUILD-FROM-SOURCE.html b/BUILD-FROM-SOURCE.html index a4902955..c4bbe9c4 100644 --- a/BUILD-FROM-SOURCE.html +++ b/BUILD-FROM-SOURCE.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Building from source

  • Even though it is well-explained, building from source requires skill, internet and time.

  • You can try building on Android with Termux (opens new window), but no support will be included for it.

  • It is recommended to clone the PojavLauncher repository before starting Setting Up JRE

  • git clone https://github.com/PojavLauncherTeam/PojavLauncher

# Setting up JRE

# Android

  • Clone the git repository of PojavLauncherTeam/android-openjdk-build-multiarch
git clone https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch
+     (opens new window)    

# Building from source

  • Even though it is well-explained, building from source requires skill, internet and time.

  • You can try building on Android with Termux (opens new window), but no support will be included for it.

  • It is recommended to clone the PojavLauncher repository before starting Setting Up JRE

  • git clone https://github.com/PojavLauncherTeam/PojavLauncher

# Setting up JRE

# Android

  • Clone the git repository of PojavLauncherTeam/android-openjdk-build-multiarch
git clone https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch
 
  • Change the directory to the cloned repository
cd android-openjdk-build-multiarch
 
  • Download Android NDK r10e from here (opens new window) and place it in this directory with a file explorer. (Can't automatically download because of EULA)

WARNING

Do not attempt to build using a newer or older NDK, it will lead to compilation errors.

# iOS

# Platform and architecture specific environment variables

Platform Architecture Target Target_JDK
Android armv8/aarch64 aarch64-linux-android aarch64
Android armv7/aarch32 arm-linux-androideabi arm
Android x86/i686 i686-linux-android x86
Android x86_64/amd64 x86_64-linux-android x86_64
iOS/iPadOS armv8/aarch64 aarch64-macos-ios aarch64

# Building JRE (Java Runtime Environment)

  • Android
  • iOS @@ -47,6 +47,6 @@ ⟶

- + diff --git a/CANTFINDLOG.html b/CANTFINDLOG.html new file mode 100644 index 00000000..f1a9efbb --- /dev/null +++ b/CANTFINDLOG.html @@ -0,0 +1,34 @@ + + + + + + Can't find the log file (non-root) | PojavLauncher + + + + + + + + + + + +

# Can't find the log file (non-root)

There are mutiple ways to do this. Usually, pressing the Share log file button is enough.

# Android 10 and newer

/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/latestlog.txt

  1. Install Files by Marc apps & software (opens new window) from Play Store.
  2. Press the 3 lines in the top left corner → PojavLauncher → latestlog.txt

If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone. +You can also use ZArchiver (opens new window) (or MiXplorer (opens new window)) with Shizuku (opens new window) to access it.

# Android 9 and older

/storage/emulated/0/games/PojavLauncher/latestlog.txt

All file managers can access this directory. ZArchiver (opens new window) and MiXplorer (opens new window) are recommended.

+ + + diff --git a/CANTFINDMINECRAFT.html b/CANTFINDMINECRAFT.html new file mode 100644 index 00000000..f2e65169 --- /dev/null +++ b/CANTFINDMINECRAFT.html @@ -0,0 +1,34 @@ + + + + + + Can't find .minecraft (non-root) | PojavLauncher + + + + + + + + + + + +

# Can't find .minecraft (non-root)

As with the log file, there are mutiple ways to do this.

# Android 10 and newer

/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/.minecraft

  1. Install Files by Marc apps & software (opens new window) from Play Store.
  2. Press the 3 dots in the top right corner → Show hidden files
  3. Press the 3 lines in the top left corner → PojavLauncher → .minecraft

If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone. +You can also use ZArchiver (opens new window) (or MiXplorer (opens new window)) with Shizuku (opens new window) to access it.

# Android 9 and older

/storage/emulated/0/games/PojavLauncher/.minecraft

All file managers can access this directory. ZArchiver (opens new window) and MiXplorer (opens new window) are recommended.

+ + + diff --git a/CANTLOGIN.html b/CANTLOGIN.html new file mode 100644 index 00000000..b9ad7e94 --- /dev/null +++ b/CANTLOGIN.html @@ -0,0 +1,36 @@ + + + + + + Can't log in | PojavLauncher + + + + + + + + + + + +

# Can't log in

To fix your issues with login, try logging into minecraft.net first, sometimes just logging into the site fixes the issue. If that does not fix it, check these things:

a) you must own Minecraft: Java Edition +b) you must have a username set (check this if you are using Xbox Game Pass) +c) your account should not be a child member of a family, playing Minecraft like this only works on the official Minecraft Launcher for PC. +d) if the error is different and links you somewhere, try following any steps on the site it links you to

+ + + diff --git a/CONT-TRANSLATIONS.html b/CONT-TRANSLATIONS.html index 3da53af6..37df2346 100644 --- a/CONT-TRANSLATIONS.html +++ b/CONT-TRANSLATIONS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Contributing to the translation of PojavLauncher

  • For the convenience of translators, we use Crowdin (opens new window).

  • Anyone can join the project on Crowdin and start translating right now.

Join the project (opens new window)

# Getting started for newcomers on Crowdin

  • After you sign up on Crowdin and join the project, you can start translating the strings.

  • First, on the project page, you should select the language you want to translate PojavLauncher into.

  • Then, you will see the files to be translated. After the name of each file, you can see the translation progress of that file. The blue bar represents the progress of translated strings, and the green bar represents the progress of approved strings.

  • Now you can click on the "Translate all" button and you will be moved to the translation editor. But first, Crowdin will suggest you to read useful tips for using the translation editor.

# What to translate and what not to translate?

WARNING

Things not to translate: PojavLauncher, codes like <1>, </0>, \n, %s, %.2f, %1$s, %@, arrows like ◀,

  • Except for the list above, you can translate anything else.

# Proofreading

  • Proofreading of the strings is made by the language proofreader. Proofreaders are appointed by @Syjalo. Please don't ask him to approve the strings or appoint somebody as a proofreader. He will choose a suitable candidate in his opinion. Approved or most voted translation suggestions will be added to the launcher.
- + diff --git a/CONT-WEBSITE.html b/CONT-WEBSITE.html index 7b83b00a..74097e3c 100644 --- a/CONT-WEBSITE.html +++ b/CONT-WEBSITE.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# Contributing to this website

We're always happy to accept help from our beloved community, and this website is no different. However, we want to cover some ground rules before you get started.

# What is Vuepress?

Vuepress is a static website generator, although it looks really good. It takes three things: a config file, markdown (.md) documents, and resources for images and such, and then compiles them into HTML for browser-friendly access.

# How do I contribute?

Simple:

  • Fork this repository (opens new window).

  • Click on "Edit this page" on any page, then edit the markdown file with your properly tuned syntax (using Discord? You already know Markdown), then save and commit. It's that easy.

  • If you want to see your changes on your fork, you'll have to either

1- Rename the repo to <yourusername>.github.io

  • Set the Pages settings to build from the root of gh-pages

2- (if you have node installed), run npm install && npm run build && npm run start.

# What to do and what not to do?

You're allowed to pretty much change anything, as long as it follows all of these rules:

  • Do not make any promises unless you were given permission from the developers.
  • Do not spread misinformation and inaccurate content.
  • Although you can change everything else, do not touch .vuepress/config.js. If you need to change something in it, let Crystall1nedev or CriticalRange know.
  • Never, never ever ever merge gh-pages and main into each other. gh-pages is the result, main is the rough draft.
  • Do not delete any dot files (.nvmrc, .gitattributes, etc)

With all of these in mind, you're free to help us out with our website!

- + diff --git a/CRASHES.html b/CRASHES.html new file mode 100644 index 00000000..aac51da0 --- /dev/null +++ b/CRASHES.html @@ -0,0 +1,33 @@ + + + + + + Random crashes during gameplay | PojavLauncher + + + + + + + + + + + +

# Random crashes during gameplay

Make sure you aren't getting the warning due to too much allocated RAM. Even if you are close to the limit but not breaking it, RAM allocation might still be the cause of the crash. Try allocating 100-250MB less than the maximum, depending on your device. Keep in mind that when using big modpacks, you might also be crashing because you don't have enough allocated memory (that's if you see java.lang.OutOfMemoryError in your log file).

Highest RAM allocation doesn't mean highest performance. Your might usually gain tens of FPS by figuring out which RAM allocation setting runs Pojav the best on your device.

+ + + diff --git a/CUSTOM-CONTROLS.html b/CUSTOM-CONTROLS.html index 54804bbd..c6b31c85 100644 --- a/CUSTOM-CONTROLS.html +++ b/CUSTOM-CONTROLS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Customizing the on-screen controls

# Android

There is "Custom controls" button in the main menu, by clicking that you will be able to change you custom controls.

You can access the options by clicking the cogwheel at the top of the screen.

After clicking the cogwheel, you get a drawer with the following options:

1- Adds a button of your liking.

2- Adds a button drawer, if you press it, your buttons that you assigned will show up.

3- Adds a joystick.

4- Loads custom controls.

5- Saves current custom controls.

6- Option to select default custom controls.

7- Exports current controls.

# iOS

To start editing your controlmap in iOS, head to top-left and press the sidebar. (shown in image)

Press the custom controls button.

After that, long press anywhere for more options.

Now you will get a pop-up with the following options:

1- Exits the controlmap editor.

2- Saves the current layout/edited controlmap.

3- Loads an existing .json (controlmap) from the controlmap folder.

4- Adds a safe area where buttons are restricted from getting outside of the safe area, whilst not registering touches nor gestures outside the safe area.

5- Adds a button to your liking.

6- Adds a button drawer, has a function of adding a sub-button binded to its drawer. When pressed, buttons binded to it will show up, configurable to make it hold button instead of toggling.

7- Adds a joystick.

- + diff --git a/CUSTOM-MC.html b/CUSTOM-MC.html index b1b0bb5e..d1a66d13 100644 --- a/CUSTOM-MC.html +++ b/CUSTOM-MC.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Installing custom versions of Minecraft

If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!

# Installation:

  1. If you are on Android, install MiXplorer (opens new window) and MiX Archive (opens new window)
  2. Make a copy of the Minecraft version you want to modify
  3. Rename the custom version folder, .jar and .json to your desired custom version name (for example, foo, foo.jar, foo.json)
  4. Open the custom version's .json with MiX's Text Editor
  5. Remove "downloads:{"client"...} as shown in the screenshot

custom2

  1. Change "id": "1.2.4" to "id": "(your custom version name)"
  2. Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft"
  3. Save the .json
  4. Modify your .jar as desired, make sure to delete the META-INF folder afterwards.
  5. Start up your custom version!

# Notes:

  • If your game is stuck at the Mojang screen afterwards, try deleting options.txt
  • This guide is NOT for Babric or Cursed Fabric!
- + diff --git a/DEVICES.html b/DEVICES.html index c4078847..8cdbabdf 100644 --- a/DEVICES.html +++ b/DEVICES.html @@ -11,7 +11,7 @@ - + @@ -19,8 +19,8 @@ GitHub (opens new window)

# Device requirements

# Android

# Minimum requirements:

  • Qualcomm Snapdragon 400 (or equivalent)
  • Android 5.0
  • 1GB RAM
  • Qualcomm Snapdragon 820 (or equivalent) with Vulkan API support
  • Android 8.0 and newer
  • 4GB RAM or higher (the more the merrier)

# ChromeOS

  • Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.

# iOS

# Minimum requirements:

  • Apple A8 SoC -
    • The Apple A7 SoC is losing support in PojavLauncher 2.3.
  • iOS 14
  • 1GB RAM
  • Apple A14/A12X Bionic SoC
  • iOS 14
  • 4GB RAM or higher
- + diff --git a/DISCORD.html b/DISCORD.html index 89a10366..93d369c7 100644 --- a/DISCORD.html +++ b/DISCORD.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Official PojavLauncher Discord server

The only official invite for the PojavLauncher server, beware of invites created by other users. + (opens new window)

# Official PojavLauncher Discord server

The only official invite for the PojavLauncher server, beware of invites created by other users. invite link (opens new window)

NOTE: A Minecraft account is REQUIRED in order for you to be able to seek PojavLauncher-based support in the server.

- + diff --git a/ENV-VARS.html b/ENV-VARS.html index 2a89e5cc..0fa5453a 100644 --- a/ENV-VARS.html +++ b/ENV-VARS.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# Using environment variables

- + diff --git a/FFMPEG.html b/FFMPEG.html index e8f003b6..e1f6dd4a 100644 --- a/FFMPEG.html +++ b/FFMPEG.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Exporting videos with Replay Mod

  1. Download the ffmpeg binary here (opens new window). Choose one based on your device’s architecture. + (opens new window)

    # Exporting videos with Replay Mod

    1. Download the ffmpeg binary here (opens new window). Choose one based on your device’s architecture.
      • (For GitHub builds) Due to the limit of Replay’s command window, you'll need to rename the executable to a short name, like -> :fr:. Let’s call it <exec_name>.
    2. Install an APK Editor from Google Play or anywhere else (Make sure to use safe sources such as APKPure).
    3. Follow the instructions of the app to add the executable to /lib/<device_architecture> folder of the APK. Then build the APK and install it.
      • (Required for a clean install) Install required mods (Forge, Replay Mod).
    4. Now launch Minecraft. We're not done yet, so force close it after launching.
    5. Find latestlog.txt.
      • Open it and find this line: Added custom env: POJAV_NATIVEDIR=<directory>.
      • Copy the <directory> part.
    6. Launch the game again, go to Replay Viewer and load the replay you want to export.
    7. Follow Replay’s instructions to add keyframes, then (press T show mouse cursor and) click at Render Camera Path.
    8. Scroll to the bottom, paste the text you copied in step 5 into the first command line window, then write /<exec_name> (step 1) at the end of the text line.
    9. Tap Render and enjoy your video.
- + diff --git a/FIRST-STEPS.html b/FIRST-STEPS.html index 22bb9eea..9409b438 100644 --- a/FIRST-STEPS.html +++ b/FIRST-STEPS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)
- + (opens new window)
+ diff --git a/INSTALL-MC.html b/INSTALL-MC.html index 61d5e911..94ca298e 100644 --- a/INSTALL-MC.html +++ b/INSTALL-MC.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Downloading a copy of Minecraft

- + diff --git a/INSTALL.html b/INSTALL.html index d0f3dc6b..5733c222 100644 --- a/INSTALL.html +++ b/INSTALL.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Installing the launcher

# Android

Instructions for installing PojavLauncher on Android devices.

Google Play

You can grab PojavLauncher from the Google Play Store here. (opens new window)

GitHub Actions

If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.

Using nightly.link:

  1. Download the Latest Artifact (opens new window) using this link.
  2. Install as any usual .apk

Using Github (requires an account):

  1. Start off by heading to the PojavLauncher (opens new window) repository and switching to the "Actions" tab.

  1. Next, select "Android CI" in the workflow selection menu.

  1. Choose a build with a green or blue checkmark next to the branch you want to download. + (opens new window)

    # Installing the launcher

    # Android

    Instructions for installing PojavLauncher on Android devices.

    Google Play

    You can grab PojavLauncher from the Google Play Store here. (opens new window)

    GitHub Actions

    If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.

    Using nightly.link:

    1. Download the Latest Artifact (opens new window) using this link.
    2. Install as any usual .apk

    Using Github (requires an account):

    1. Start off by heading to the PojavLauncher (opens new window) repository and switching to the "Actions" tab.

    1. Next, select "Android CI" in the workflow selection menu.

    1. Choose a build with a green or blue checkmark next to the branch you want to download.
      • v3_openjdk will be the one for most people.

    1. Under "Artifacts", choose the build type you wish to download.
      • app-debug will be the one for most people.

    1. Install as any usual .apk
    Source

    Instructions coming in a future revision to this website.

    # iOS

    Instructions for installing PojavLauncher on Apple devices.

    Sideloading (TrollStore)

    We recommend TrollStore for all users if possible. This method allows for automatic JIT enabling, more memory allocation, and non-revoking installs.

    Note: Enable URL Schemes in TrollStore settings.

    # TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+)

    # For arm64, TrollStore is compatible with the following iOS versions:

    - 14.0 to 16.6.1
     - 17.0 
    @@ -36,6 +36,6 @@
           
           ⟶
         

- + diff --git a/IOS-SUPPORT.html b/IOS-SUPPORT.html index 8f09b900..19421af3 100644 --- a/IOS-SUPPORT.html +++ b/IOS-SUPPORT.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# System support in future versions of PojavLauncher iOS

This announcement will be covering the next 3 releases of PojavLauncher iOS.

We've made some great strides with the iOS port of PojavLauncher: fixing 1.17 and newer, bringing OpenJDK 8 to iOS, and now unveiling an jailed variant. However, all of the advancements we're making also stirred up old conversations, and we've come to a final conclusion:

A future release of PojavLauncher will require iOS 14.0 and later.

# But why?

Supporting iOS 12.0 and newer was a feat of engineering. However, it created multiple issues with feature support and user experience. We need to verify that our code works on iOS 12 before going ahead and compiling--if it does not, this complicates our development as we are faced with two options: dropping the feature on older versions, or importing external libraries. This causes slower development times, or lack of the feature entirely for our users.

We also observed the userbase currently playing on PojavLauncher. Most of the users asking for support in our Discord server (which is many times more active than the Issues tab on the GitHub repository) are already running iOS 14.0 or newer, and a few cases of users on iOS 13. We barely see users running iOS 12 anymore, and now that PojavLauncher works jailed, users can update to a newer release of iOS while still retaining Java Edition.

This decision also comes after we understood that we don't really have the ability to test on these older versions anymore. Our devices are already running iOS 14.0+, and so are most of our testers.

# So what happens now?

Things are going to get somewhat complex, but this document will sort these things out.

PojavLauncher 2.1 - Recap

PojavLauncher 2.1 was largely unchanged from its original plans. Just to recap, its key features:

  • New split user interface to allow switching menus with ease
  • Rewritten preferences menu
  • Transitioned code to Objective-C from Java
  • First release with compatibility unjailbroken
  • Final release with jailbreak-specific packages

This release will also begin to warn users with 1GB of memory about the incoming end-of-life.

PojavLauncher 2.2 - 1GB EOL

PojavLauncher 2.2 was already planned to drop the Apple A7-equipped devices from support, due to performance and stability issues. This has been extended all devices with less than 1 gigabyte of total memory:

  • iPhone 5s
  • iPhone 6
  • iPhone 6 Plus
  • iPad mini (2nd generation)
  • iPad mini (3rd generation)
  • iPad Air (1st generation)
  • iPod touch (6th generation)

The a7_allow boolean in the preferences file has been replaced with force_unsupported_launch to reflect the change. As stated before, support for these devices will end 3 weeks after 2.2 releases, or immediately, for you, if this boolean is toggled.

This release will also begin to warn users on iOS 12 or 13 about the incoming end-of-life. If you are using a device that is capable of running iOS 14 or later, the warning will additionally tell you to upgrade to a newer version of iOS.

PojavLauncher 2.3 - iOS 14.0+ begins

PojavLauncher 2.3 will begin the end-of-life process for iOS 12/13 users. Taking a similar approach to 2.2, the force_unsupported_launch boolean can be toggled to override the behaviour of the launcher not opening. Support for these versions will end 3 weeks after 2.3 releases, or immediately, for you, if this boolean is toggled.

As part of this deprecation, beta builds of PojavLauncher 2.4 will move to iOS 14.0 and newer APIs. Moving to these APIs may break the boolean's ability to continue launching the application.

PojavLauncher 2.4 - iOS 14.0+ completed

PojavLauncher 2.4 will complete the transition to iOS 14.0 APIs and be incompatible with iOS 12/13 without modification to the source code.

- + diff --git a/JARCRASHED.html b/JARCRASHED.html new file mode 100644 index 00000000..15396c9d --- /dev/null +++ b/JARCRASHED.html @@ -0,0 +1,33 @@ + + + + + + Crash when executing a jar | PojavLauncher + + + + + + + + + + + +

# Crash when executing a jar

This is not how it works, mods have to be installed into the .minecraft/mods directory. Mod loaders (e. g. Forge and Fabric) and some mods like OptiFine and Iris have an integrated installer, this is not the case for the absolute majority of mods, meaning they don't have any GUI that would run when opening them with the Execute .jar button in the launcher. If you don't know how to get into the .minecraft directory, please read the article on how to access it.

+ + + diff --git a/JAVA-ARGS.html b/JAVA-ARGS.html index 7e9370a4..19930ac9 100644 --- a/JAVA-ARGS.html +++ b/JAVA-ARGS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Adding custom Java arguments

- + diff --git a/JAVARUNTIMES.html b/JAVARUNTIMES.html new file mode 100644 index 00000000..bbc29319 --- /dev/null +++ b/JAVARUNTIMES.html @@ -0,0 +1,33 @@ + + + + + + Installing Java runtimes manually | PojavLauncher + + + + + + + + + + + +

# Installing Java runtimes manually

If you for whatever reason decided to install app-debug-noruntime or you want to update for whatever reason, here's how you do it.

  1. Go to the android-openjdk-build-multiarch repo on GitHub, pick the branch you want (e. g. buildjre8 or buildjre17-21.)
  2. Log into GitHub, else you won't be able to download the runtime.
  3. Click on the name of the action, then download the pojav version of the runtime (e. g. jre17-pojav). Do not download jdk, your game might crash with it.
  4. Extract the zip with your file manager. ZArchiver (opens new window) and MiXplorer (opens new window) are recommended.
  5. Open Pojav and go to Settings → Java Tweaks → Runtime Manager → Add new, then select the .tar.xz file you just extracted from the zip.
+ + + diff --git a/JAVAVERSION.html b/JAVAVERSION.html new file mode 100644 index 00000000..7fa13fb9 --- /dev/null +++ b/JAVAVERSION.html @@ -0,0 +1,35 @@ + + + + + + Which Java version to use? | PojavLauncher + + + + + + + + + + + +

# Which Java version to use?

Generally, this is what you want to know: +- Minecraft 1.17 and newer: Java 21 +- Minecraft 1.16.5 and older: Java 8

Note: some modded Minecraft versions require a different Java runtime than normal (e. g. Cursed Fabric or Babric for Minecraft b1.7.3). Others might work even when using a different runtime (e. g. Fabric for Minecraft 1.16.5 allows using Java 17). However, some mods, notably OptiFabric, might stop working altogether.

+ + + diff --git a/JIT.html b/JIT.html index be5dd755..7afd909c 100644 --- a/JIT.html +++ b/JIT.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# iOS and "JIT"

# What is JIT and why do I care?

JIT stands for just-in-time compilation, and (although not specific to Java), it serves as a method of executing Java code quicker then its alternatives, by compiling essential instructions at runtime, rather than its slower alternatives that compile all code at runtime repeatedly or writing in a less portable, hardware-level format. It is the fastest™ method to running Minecraft: Java Edition on mobile devices, essentially required for a more pleasant gaming experience.

On Apple's mobile platforms (iOS, iPadOS, tvOS, in our case), a security feature known as code-signing is deeply rooted in the operating system. It serves to verify that applications haven't been tampered with after they were installed by a user, done so that malicious payload cannot be installed after-the-fact by a malicious user(e.g. hackers). However, due to the process in which code-signing works, this prevents JIT from functioning properly as it mainly requires reading code, modifying it, and then executing it in some fashion (whether that be by copying the code to a new location in memory, executing directly, or mirroring it).

# What does this mean for PojavLauncher?

# Jailbroken devices

Users with Jailbroken devices don't need to worry about JIT requirements, as PojavLauncher is specially built to detect jailbreaks and automatically enable new features.

# Unjailbroken devices

Users with Unjailbroken devices can see two different outcomes, based on what they used to sideload PojavLauncher.

# TrollStore

If you used TrollStore to sideload PojavLauncher, good news: PojavLauncher takes advantage of the extended entitlements with TrollStore and automatically enables JIT when launched.

# Normal sideload

If you sideload normally, you will need to enable JIT in some way. The most common method is to attach a debug server to the application while it's running - AltStore, SideStore, SideJITServer, and Jitterbug all of these use this method to enable JIT.

The only downside to this method is that you are required to be connected to a WiFi network in order to enable JIT. (*)

(*) - Enabling JIT on iOS 17.x & iOS 18 betas (at the moment) can only be enabled through AltJIT (macOS only) or SideJITServer, which requires a computer (Windows, MacOS and Linux only). This is because these methods utilize pymobiledevice3 to enable JIT due to changes in iOS.

Methods to enable JIT:

(*) - AltJIT for iOS 17.x & iOS 18 betas only works on macOS. Requires pymobiledevice3.

(^) - Does not work for iOS 17.x & iOS 18 betas, as enabling JIT will be done with pymobiledevice3.

(!) - Does not work for iOS 16.x or below, use the other methods listed above to enable JIT. This method is meant for iOS 17.x & iOS 18 betas.

Methods not listed here are not confirmed or recommended by us for use with PojavLauncher.

- + diff --git a/LEGAL.html b/LEGAL.html index 182b149d..4d52b393 100644 --- a/LEGAL.html +++ b/LEGAL.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Is PojavLauncher legal and safe to use?

Although in the past it may have not been the case, PojavLauncher is now legal in Microsoft's perspective. This is due to our objective to prevent piracy with our launcher, and reject offering support by any means for those who do not own the game.

PojavLauncher also abides by the Minecraft EULA, providing a free and open-source launcher that does not redistribute game files on any other server asides Mojang's.

Authentication and downloads are performed directly with Mojang's servers--PojavLauncher never collects any of your personal information such as credentials or data, as your information is only stored on-device where only you can access it.

PojavLauncher does not cause harm to your device, and does not distribute harmful programs and executables.

  • This cannot be verified if you acquire PojavLauncher from a source that is not official(e.g. pgyer.com, ipaomtk.com, etc.).
  • For jailbroken iOS users: jailbreaking can be considered a security risk (which is the reason why Apple is against it) so be cautious when jailbroken.
  • Other Minecraft: Java Edition on Android/iOS apps highly likely steals assets and/or code from PojavLauncher. They are not owned nor managed by PojavLauncherTeam.
- + diff --git a/LOCAL-MODE.html b/LOCAL-MODE.html index 5fba4673..b8380d69 100644 --- a/LOCAL-MODE.html +++ b/LOCAL-MODE.html @@ -11,7 +11,7 @@ - + @@ -19,12 +19,12 @@ GitHub (opens new window)

# Offline mode is going places.

Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased)

PojavLauncher does NOT, and will NEVER support piracy acts. You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft. + (opens new window)

# Offline mode is going places.

Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased)

PojavLauncher does NOT, and will NEVER support piracy acts. You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft. To purchase Minecraft click this (opens new window).

- + diff --git a/MCVERS.html b/MCVERS.html index 390aae8c..6833f784 100644 --- a/MCVERS.html +++ b/MCVERS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Supported Minecraft versions

With each new Minecraft release comes the question: Will it play nice with PojavLauncher?

Thanks to the hard work from PojavLauncherTeam, both the Android and the iOS port now cover most Minecraft versions...

...with some small exceptions that will be listed below.

# Android

Current issues, as of the Foxglove update:

# iOS

Current issues, as of the v2.2 Deepslate update:

  • v2.2 Deepslate will not open versions of minecraft past 1.20 (*)
  • v2.2 Deepslate does not have Java 21. (*)

(*) - To fix these issues, please use the most recent github actions developer build (opens new window).

- + diff --git a/MODCONFLICT.html b/MODCONFLICT.html new file mode 100644 index 00000000..c149a042 --- /dev/null +++ b/MODCONFLICT.html @@ -0,0 +1,35 @@ + + + + + + I have a mod conflict | PojavLauncher + + + + + + + + + + + +

# I have a mod conflict

Try removing the mods by half:

  1. Remove half of the mods (including mods that depend on other mods from the first half)
  2. If you don't crash, put in half of the mods you just removed, then continue adding up. If you do crash, remove half of the mods you have now.
  3. Figure out which mod is causing the issue.

# We don't know what doesn't work means

"Doesn't work" does not actually mean anything, explain more thoroughly. For example:

Wrong: My game crashes please help!11!1 +Correct: After I installed OptiFine, my game crashes, here's the latestlog.txt. Please tell me which mod it's conflicting with.

Wrong: My resource pack doesn't show up!11!1 +Correct: I installed a resource pack from (link) and I have no idea how to properly install it, it doesn't show up in-game. Do I leave it as a zip, extract it or what do I do? Here's a video of how it looks.

If you don't really know what you are doing, the best you can do is just send the log file (latestlog.txt), you don't have to say anything about it.

+ + + diff --git a/MODCRASHING.html b/MODCRASHING.html new file mode 100644 index 00000000..bb078c49 --- /dev/null +++ b/MODCRASHING.html @@ -0,0 +1,33 @@ + + + + + + Installing any mod results in a crash | PojavLauncher + + + + + + + + + + + +

# Installing any mod results in a crash

Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead.

+ + + diff --git a/MODDED-MC.html b/MODDED-MC.html index 3ae2286f..6a184e79 100644 --- a/MODDED-MC.html +++ b/MODDED-MC.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Installing custom versions of Minecraft

If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!

# Installation:

  1. If you are on Android, install MiXplorer (opens new window) and MiX Archive (opens new window)
  2. Make a copy of the Minecraft version you want to modify
  3. Rename the custom version folder, .jar and .json to your desired custom version name (for example, foo, foo.jar, foo.json)
  4. Open the custom version's .json with MiX's Text Editor
  5. Remove "downloads:{"client"...} as shown in the screenshot

custom2

  1. Change "id": "1.2.4" to "id": "(your custom version name)"
  2. Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft"
  3. Save the .json
  4. Modify your .jar as desired, make sure to delete the META-INF folder afterwards.
  5. Start up your custom version!

# Notes:

  • If your game is stuck at the Mojang screen afterwards, try deleting options.txt
  • This guide is NOT for Babric or Cursed Fabric!
- + (opens new window)

# Installing custom versions of Minecraft

If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!

# Installation:

  1. If you are on Android, install MiXplorer (opens new window) and MiX Archive (opens new window)
  2. Make a copy of the Minecraft version you want to modify
  3. Rename the custom version folder, .jar and .json to your desired custom version name (for example, foo, foo.jar, foo.json)
  4. Open the custom version's .json with MiX's Text Editor
  5. Remove "downloads:{"client"...} as shown in the screenshot

custom2

  1. Change "id": "1.2.4" to "id": "(your custom version name)"
  2. Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft"
  3. Save the .json
  4. Modify your .jar as desired, make sure to delete the META-INF folder afterwards.
  5. Start up your custom version!

# Notes:

  • If your game is stuck at the Mojang screen afterwards, try deleting options.txt
  • This guide is NOT for Babric or Cursed Fabric!
+ diff --git a/MODNOTSHOWINGUP.html b/MODNOTSHOWINGUP.html new file mode 100644 index 00000000..c020911b --- /dev/null +++ b/MODNOTSHOWINGUP.html @@ -0,0 +1,33 @@ + + + + + + My mods don't show up in-game | PojavLauncher + + + + + + + + + + + +

# My mods don't show up in-game

  1. Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead.
  2. If a custom path is set in Profile options (pencil button), make sure your mods are in your custom path.
+ + + diff --git a/MODPACKS.html b/MODPACKS.html index ae30a4ec..ab091039 100644 --- a/MODPACKS.html +++ b/MODPACKS.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# Modpacks

Modpacks, usually archived in a .zip form containing mod metadatas, are mods usually "duct taped" together to bring modded Minecraft in a more convenient way rather than handpicking mods one by one.

Popular examples of these can be found on both the Modrinth (opens new window) and the CurseForge (opens new window) website.

# Official Modpacks from PojavLauncherTeam

These modpacks are specially made for PojavLauncher, but it doesn't mean you can't try them on PC too!

# Installing Modpacks

# Android

  1. Click on the profile section at top of the play button.
  1. Press on the "create new profile" button.
  1. Click on "create modpack profile".
  1. Pick your desired modpack, enjoy!

# iOS

  1. Go to profiles from the sidebar.
  1. Press the "+" button
  1. Once a prompt appears, press the "Modpack" option.
  1. Pick your desired modpack, enjoy!
- + diff --git a/MODS-UNSUPPORTED.html b/MODS-UNSUPPORTED.html index 0025ee5e..014fa71a 100644 --- a/MODS-UNSUPPORTED.html +++ b/MODS-UNSUPPORTED.html @@ -11,7 +11,7 @@ - + @@ -19,16 +19,16 @@ GitHub (opens new window)

# Unsupported Mods and Clients (+ Workarounds/Fixes)

Not everything that works on PC works on PojavLauncher. Below is a non-exhaustive list of mods that may not work, along with fixes or workarounds.

# Performance Mods + Shaders

- + diff --git a/NOTCHFIX.html b/NOTCHFIX.html index 43700026..d9c46751 100644 --- a/NOTCHFIX.html +++ b/NOTCHFIX.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)
- + diff --git a/OPTIMIZATION.html b/OPTIMIZATION.html index d8eac1b2..052823af 100644 --- a/OPTIMIZATION.html +++ b/OPTIMIZATION.html @@ -11,7 +11,7 @@ - + @@ -19,17 +19,17 @@ GitHub (opens new window)

# Optimizing the game

There are lots of ways to optimize your Java Edition experience if it's being slow for you; or your device is just bad in general. From mods like OptiFine and Sodium to more complex stuff like JVM arguments, we'll cover all of them here.

# OptiFine

OptiFine, previously known as Optimine and OptiFog; is a Minecraft modification created by sp614x, Insecs, Payton147 and lacuravivid in which the development began on December 22, 2010; was a modification originally created about pushing the fog away but also other features; like FPS Boost, Occlussion Culling, Hidden Geometry removal, Texture Mipmaping and Chunk Loading optimizations in the first development/beta versions of Minecraft

# Getting (and installing) OptiFine

- + diff --git a/PARSINGERROR.html b/PARSINGERROR.html index 76e4b4a4..714e0215 100644 --- a/PARSINGERROR.html +++ b/PARSINGERROR.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# "There was a problem while parsing the package" error while installing

Google Chrome may corrupt the installation of PojavLauncher. Instead of Chrome, use Firefox (opens new window) or Brave (opens new window).

Alternatively, you can use Split APKs Installer (SAI) (opens new window) if you would like to check the error message. (Most default installers do not show the installation error message)

- + diff --git a/PROBLEMATIC-MODS-COMMON-FIXES.html b/PROBLEMATIC-MODS-COMMON-FIXES.html new file mode 100644 index 00000000..074384f8 --- /dev/null +++ b/PROBLEMATIC-MODS-COMMON-FIXES.html @@ -0,0 +1,33 @@ + + + + + + RLCraft | PojavLauncher + + + + + + + + + + + +

# RLCraft

# In order to run RLCraft you have to remove these mods:

  • Custom Main Menu

  • Fancy Block Particles

  • Dynamic Surroundings

  • Sound Filters

credits to kasrarouhi (opens new window)

# Better Than Wolves (BTW)

# Android

  1. Download Acode Editor, ZArchiver and RAR from the Google Play Store if you haven’t already.

  2. Download the BTW Installer (opens new window).

  3. Go into PojavLauncher, execute the .jar and install it.

  4. Launch the game (should crash that’s normal).

  5. Check the .jar in "***.minecraft/versions/cursed-fabric-btw-version-name***". If it doesn’t have 5MB, it is corrupted. You must replace it with the vanilla 1.5.2 .jar and name it "cursed-fabric-btw-version-name.jar".

  6. The long guide explains it better (with screenshots).

    Create a new 1.5.2-custom version by copying the vanilla version and renaming the files inside that directory, then remove client downloads, change the id to 1.5.2-custom, change mainClass from net.minecraft.launchwrapper.Launch to net.minecraft.client.Minecraft, then remove the asm-all dependency downloads.

  7. The long guide explains it better (with screenshots).

    To fix your username, add "minecraftArguments": "--assetsDir ${assets_root} --username $ {auth_player_name} --session ${auth_session}", to your cursed-fabric-loader-btw-version-name.json.

  8. Download the BTW Mod (opens new window) .jar and put the .jar in the mods folder.

  9. Now we have to patch a Cursed Fabric .jar that's located in "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***".

    Download this file: AppletMain (opens new window) not running into your downloads folder, then grab the patched AppletMain file from here and copy it into this location: "***/net/fabricmc/loader/entrypoint/applet/AppletMain.class***" (inside of the unpatched .jar file using RAR).

  10. Grab the patched .jar file and replace the old one inside of "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***". Please be sure that it has the same name as the original .jar file.

  11. Done, launch the game.

credits to GaucovyAero (opens new window) and ItAnthon (opens new window)

# Valkyrien Skies 2

# Android

As of 2024/09/09, there is no way to run VS2 on Android in Singleplayer, so your only option is to join a VS2 server. You can host a server capable of running VS2 on Android inside Termux, but it's not very easy to setup.

There's a script created by sa1672ndo (opens new window) that automates this entire process to make the installation easier.

The script can be found here (opens new window).

credits to sa1672ndo (opens new window)

+ + + diff --git a/REFUSALOFINSTALL.html b/REFUSALOFINSTALL.html index 3599738f..400c8dac 100644 --- a/REFUSALOFINSTALL.html +++ b/REFUSALOFINSTALL.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# "App not installed"

The error message looks like this:

Image

Not sure why this happens, but it only happened to one dev build for VenomousSteam81.


# Install with PC/Laptop

To fix, simply grab your PC/Laptop (unless you have Android 11 and above, continue to the next session), install ADB (opens new window) for your OS. Then, search up how to use adb for your OS. After figuring that out, go ahead and connect your phone to your PC.

Now, download the PojavLauncher build you downloaded on your phone (or copy the one off of your phone), do adb pm install path/to/pojavlauncher/apk.apk (if that doesn't work and gives an error, use adb shell pm install path/to/pojavlauncher/apk.apk), and it should install. If not, please make an issue on the wiki github (opens new window), making sure to mention VenomousSteam81.


# Install without PC/Laptop (Android 11 and newer only)

First, go to settings and enable developer options (not telling you how to do so), turn on wireless ADB, accept all the ADB stuff, then either download and build it yourself (opens new window) with termux, buy the app from the play store (opens new window), or go find some apk on the internet.

Next, download PojavLauncher from GitHub Actions (opens new window). Open LADB, accept the ADB connection, then type (or copy paste) pm install path/to/pojavlauncher/apk.apk. If that also doesn't work, please make an issue on the wiki github (opens new window), making sure to mention VenomousSteam81.

Thank you for your time!

- + diff --git a/RENDERERS.html b/RENDERERS.html index 4f9d0729..cbabf54b 100644 --- a/RENDERERS.html +++ b/RENDERERS.html @@ -11,7 +11,7 @@ - + @@ -19,15 +19,15 @@ GitHub (opens new window)

# Renderers

Minecraft runs on OpenGL, and mobile devices generally only support OpenGL ES (GLES). And since Minecraft won't run on GLES, we have to use renderers as compatibility layers between OpenGL ES and OpenGL.

# Holy GL4ES

  • Designed for performance, Holy GL4ES is the default renderer in PojavLauncher and should be used in almost all scenrarios.
  • Supports OpenGL 2.1 and has shader converting capabilities, thus makes up for about 1/8 of the OpenGL 3.x standard.
  • Works on all versions of vanilla Minecraft.

# A screenshot of Holy GL4ES running Minecraft 1.19.4

holygl4es

# ANGLE

  • A bit slower than Holy GL4ES, runs on Vulkan. Should be used only in specific cases, where one can't load a server resource pack or a mod does not run because of missing OpenGL extensions.
  • Supports OpenGL 3.2 only.
  • Only works on Minecraft 1.17+

# A screenshot of ANGLE running Minecraft 1.19.4

angle

# virglrenderer

  • Very slow, will soon be removed. It's only use cases are mods that don't run because of missing OpenGL extensions and running shaders.
  • Supports OpenGL 4.3.
  • Works on Minecraft 1.7+, can be extremely buggy.

# A screenshot of virglrenderer running Minecraft 1.12.2

virglrenderer

- + diff --git a/ROADMAP.html b/ROADMAP.html deleted file mode 100644 index 8f1afc85..00000000 --- a/ROADMAP.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - The road ahead for PojavLauncher | PojavLauncher - - - - - - - - - - - - - - - diff --git a/RPWORLDNOTSHOWINGUP.html b/RPWORLDNOTSHOWINGUP.html new file mode 100644 index 00000000..47b13da7 --- /dev/null +++ b/RPWORLDNOTSHOWINGUP.html @@ -0,0 +1,40 @@ + + + + + + Resource pack or world doesn't show up | PojavLauncher + + + + + + + + + + + +

# Resource pack or world doesn't show up

Read carefully and check the structure of the archives (zips) or folders (directories), make sure there are no additional ones.

# Resource pack

Wrong: +pack.zip → pack (folder) → pack.mcmeta +pack (folder) → pack (folder) → pack.mcmeta

Correct: +pack.zip → pack.mcmeta +pack (folder) → pack.mcmeta

# World

The world cannot be zipped inside the saves folder.

Wrong: +world.zip → level.dat +world.zip → world (directory) → level.dat

Correct: +world (directory) → level.dat

+ + + diff --git a/SHADERS.html b/SHADERS.html index 418fba1e..c338307f 100644 --- a/SHADERS.html +++ b/SHADERS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Shaders

# Open4ES

# Screenshot of Open4ES-Chocapic on Minecraft 1.8.9

Open4ES

- + diff --git a/SIGN-IN.html b/SIGN-IN.html index 4dc83e64..1106e004 100644 --- a/SIGN-IN.html +++ b/SIGN-IN.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Signing in

PojavLauncher supports multiple types of accounts to sign in:

  • Microsoft Accounts(*)
  • Local Accounts(^)

(*) Microsoft Accounts only work if the Microsoft Account has Minecraft: Java Edition purchased.

(^) Local Accounts only work if you have already logged into a Microsoft Account with Minecraft: Java Edition purchased.

- + diff --git a/UNJAIL.html b/UNJAIL.html index 196c1d08..b100f020 100644 --- a/UNJAIL.html +++ b/UNJAIL.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Bringing PojavLauncher to unjailbroken iOS

After many months working on PojavLauncher for unjailbroken devices, we're so excited to announce PojavLauncher 2.1--the first official build of PojavLauncher to support unjailbroken iDevices! This means that you can enjoy PojavLauncher while still keeping your device secure and on the latest versions of iOS!

- + diff --git a/ZINK.html b/ZINK.html index ee08b615..ec52d7ed 100644 --- a/ZINK.html +++ b/ZINK.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)
- + diff --git a/ZINKNOTWORKING.html b/ZINKNOTWORKING.html new file mode 100644 index 00000000..0763f16d --- /dev/null +++ b/ZINKNOTWORKING.html @@ -0,0 +1,37 @@ + + + + + + Zink doesn't work | PojavLauncher + + + + + + + + + + + +

# Zink doesn't work

If Zink worked for you before the foxglove update, this might get it running on your device. It doesn't help on devices which don't fulfill the base Zink requirements.

**/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/custom_env.txt** 
+(if this file does not exist, create it)
+
MESA_GL_VERSION_OVERRIDE=4.6
+MESA_GLSL_VERSION_OVERRIDE=460
+
+ + + diff --git a/archived_pages/DEVICES_LINUX_INCL.html b/archived_pages/DEVICES_LINUX_INCL.html index 52c736a2..680af625 100644 --- a/archived_pages/DEVICES_LINUX_INCL.html +++ b/archived_pages/DEVICES_LINUX_INCL.html @@ -11,7 +11,7 @@ - + @@ -19,11 +19,11 @@ GitHub (opens new window)

# Supported Devices

# Android

Minimum requirements:

  • 32-bit (aarch32 or 32-bit/i386) CPU
  • Android 5.0
  • 1 gigabyte of RAM

Recommended requirements:

  • 64-bit (aarch64 or 64-bit/x86_64) CPU
  • Android 8.0
  • 4 gigabytes of RAM
  • GPU with "Vulkan" API (support for vulkanmod and/or v3_zink)

# ChromeOS

Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.

# Linux

It is not recommended to run PojavLauncher on Linux. Though, you can try sideloading the app on your distribution by using Anbox or Waydroid. We won't provide support for it though.

- + diff --git a/archived_pages/JDK8.html b/archived_pages/JDK8.html index 3275a0e2..2723cef1 100644 --- a/archived_pages/JDK8.html +++ b/archived_pages/JDK8.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# OpenJDK 8, coming to iOS

- + (opens new window)

# OpenJDK 8, coming to iOS

+ diff --git a/archived_pages/OGL32.html b/archived_pages/OGL32.html index 5e183f60..d11d5fdf 100644 --- a/archived_pages/OGL32.html +++ b/archived_pages/OGL32.html @@ -11,7 +11,7 @@ - + @@ -19,9 +19,9 @@ GitHub (opens new window)

# Supporting 1.17 and beyond

After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we've gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots.

Here's how to get it to work. You need to have a GitHub account in order to download the builds and JRE. Regardless of your platform, you'll need to download this resource pack (opens new window). The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell's patch for 1.17 on gl4es.

# Known issues

  • [Android only] Crosshair icon and Block outline don't render.
  • You can tell us in our Discord server (opens new window) or open an issue if you found one.
  • UPDATE: 32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution. We finally found a gold bar under the sea! Although this JRE17 (opens new window) is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.)

# Platform-specific instruction

# Android:

  • Download latest build: here (opens new window).
  • Download JRE17: here (opens new window). You need to download the artifact that matches your device architecture: jre17-<architecture>, don’t pick jdk17 or debuginfo.
  • When you install the APK, it will be displayed as second app if you have one installed before.
  • Go to launcher settings.
  • Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there.
  • Switch renderer to gl4es 1.1.5 - OpenGL ES 3.
  • On 32-bit, you need to add -Xss1m to JVM arguments, otherwise Java will crash.
  • Now launch Minecraft 1.17 and enjoy!

# iOS:

  • Install package openjdk-16-jre or openjdk-17-jre (if you have Procursus bootstrap)
  • Get latest build from the GitHub (opens new window) or Doregon's Repo (opens new window).
  • After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences.
  • Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem.
  • Change Renderer to tinygl4angle.
  • Now launch Minecraft 1.17 and enjoy!
  • Since iOS uses tinygl4angle renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+.

# Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04 (opens new window))

  • Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. This (opens new window) is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go!
  • A small note: When the popup about 1.17 appears, tap Play Anyway. Tapping OK will overwrite the patch.
  • Another small note: 1.17.1 or below will simply not work with this patch. I recommend using per-version config feature with it. If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction:
  1. Download the new assets-v0 on the PojavLauncher Discord server, or here. (opens new window)

  2. Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below).

  3. Modify the options.txt file. + (opens new window)

    # Supporting 1.17 and beyond

    After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we've gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots.

    Here's how to get it to work. You need to have a GitHub account in order to download the builds and JRE. Regardless of your platform, you'll need to download this resource pack (opens new window). The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell's patch for 1.17 on gl4es.

    # Known issues

    • [Android only] Crosshair icon and Block outline don't render.
    • You can tell us in our Discord server (opens new window) or open an issue if you found one.
    • UPDATE: 32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution. We finally found a gold bar under the sea! Although this JRE17 (opens new window) is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.)

    # Platform-specific instruction

    # Android:

    • Download latest build: here (opens new window).
    • Download JRE17: here (opens new window). You need to download the artifact that matches your device architecture: jre17-<architecture>, don’t pick jdk17 or debuginfo.
    • When you install the APK, it will be displayed as second app if you have one installed before.
    • Go to launcher settings.
    • Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there.
    • Switch renderer to gl4es 1.1.5 - OpenGL ES 3.
    • On 32-bit, you need to add -Xss1m to JVM arguments, otherwise Java will crash.
    • Now launch Minecraft 1.17 and enjoy!

    # iOS:

    • Install package openjdk-16-jre or openjdk-17-jre (if you have Procursus bootstrap)
    • Get latest build from the GitHub (opens new window) or Doregon's Repo (opens new window).
    • After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences.
    • Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem.
    • Change Renderer to tinygl4angle.
    • Now launch Minecraft 1.17 and enjoy!
    • Since iOS uses tinygl4angle renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+.

    # Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04 (opens new window))

    • Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. This (opens new window) is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go!
    • A small note: When the popup about 1.17 appears, tap Play Anyway. Tapping OK will overwrite the patch.
    • Another small note: 1.17.1 or below will simply not work with this patch. I recommend using per-version config feature with it. If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction:
    1. Download the new assets-v0 on the PojavLauncher Discord server, or here. (opens new window)

    2. Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below).

    3. Modify the options.txt file. With the file names above, change the resourcePacks key to: resourcePacks:["assets-v0.zip","new_patch_name.zip"].

    4. Now enjoy your game. Be sure to choose Play Anyway when the popup shows.

    Until we get a more permenant solution to fix 1.17 and newer, this is what we have. It's not perfect, but it works. We hope to see a version of gl4es that translates OpenGL 3 to OpenGL ES, or continue to work on Zink as a backup method if all else fails.*

    # Does OptiFine or Sodium works?

    # OptiFine

    • OptiFine seems to not working on Android, as the patch resource pack gets ignored. However, it works by putting patched shader files into the client.

      • Download this patcher (opens new window). Since OptiFine preloads some shader files, the assets-v0 resource pack trick could not be applied.
      • Navigate to Options -> Launch a mod installer (the first option). Pick the downloaded patcher.
      • Select the installed OptiFine version that you want to patch.
      • Press "OK" to start the patch process.
      • The alert "Patched version" will be displayed once the patching process finished, otherwise, an alert will display with some error description. Report this to us if this happens.
      • Now go back to the launcher and press Play. When an alert displays about "install additional resources”, press “Play anyway”.
      • Enjoy OptiFine moment.

      Known issue: Render Regions crashes the game.

    • OptiFine works on iOS. Render Regions works.

    # Sodium

    • Sodium is currently not working on both platforms.
- + diff --git a/archived_pages/PARTNERSHIPS.html b/archived_pages/PARTNERSHIPS.html index a184c566..c2c3120c 100644 --- a/archived_pages/PARTNERSHIPS.html +++ b/archived_pages/PARTNERSHIPS.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Interacting with our fellow developers

- + (opens new window)

# Interacting with our fellow developers

+ diff --git a/archived_pages/RIP-A7.html b/archived_pages/RIP-A7.html index 885a31f1..f780233e 100644 --- a/archived_pages/RIP-A7.html +++ b/archived_pages/RIP-A7.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# Deprecating support for the Apple A7 chip

The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already.

Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2.

This means the following:

  • PojavLauncher 2.1 will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the a7_allow preference to YES.

  • PojavLauncher 2.1's code will be archived and moved to the 2.1-legacy branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported.

  • PojavLauncher 2.2 will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the a7_allow preference to YES, however support will not be provided for issues encountered while using an A7 device.

    • If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available.
- + (opens new window)

# Deprecating support for the Apple A7 chip

The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already.

Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2.

This means the following:

  • PojavLauncher 2.1 will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the a7_allow preference to YES.

  • PojavLauncher 2.1's code will be archived and moved to the 2.1-legacy branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported.

  • PojavLauncher 2.2 will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the a7_allow preference to YES, however support will not be provided for issues encountered while using an A7 device.

    • If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available.
+ diff --git a/archived_pages/index.html b/archived_pages/index.html index 3d83b049..52f1a5a4 100644 --- a/archived_pages/index.html +++ b/archived_pages/index.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# PojavLauncher Website Archives

To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding /archived_pages to the end of the domain name.

Pages currently in the archive:

Deprecating support for the Apple A7 chip (RIP-A7)
Supporting 1.17 and beyond (OGL32)
Interacting with our fellow developers (PARTNERSHIPS)
OpenJDK 8, coming to iOS (JDK8) Installing PojavLauncher (ft. Linux)

- + (opens new window)

# PojavLauncher Website Archives

To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding /archived_pages to the end of the domain name.

Pages currently in the archive:

Deprecating support for the Apple A7 chip (RIP-A7)
Supporting 1.17 and beyond (OGL32)
Interacting with our fellow developers (PARTNERSHIPS)
OpenJDK 8, coming to iOS (JDK8) Installing PojavLauncher (ft. Linux)

+ diff --git a/assets/js/14.ca627ee3.js b/assets/js/14.381caada.js similarity index 99% rename from assets/js/14.ca627ee3.js rename to assets/js/14.381caada.js index bacaad87..e4fb1d4e 100644 --- a/assets/js/14.ca627ee3.js +++ b/assets/js/14.381caada.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{310:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-1.96a0b3c7.png"},311:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-2.99495cb5.png"},312:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-3.d484abce.png"},313:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-4.07b1b65e.png"},314:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-1.0ad48a3b.png"},315:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-2.c2192189.png"},316:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-3.ad935f47.png"},317:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-4.1103453a.png"},344:function(t,e,o){"use strict";o.r(e);var a=o(8),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"installing-the-launcher"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installing-the-launcher"}},[t._v("#")]),t._v(" Installing the launcher")]),t._v(" "),e("h2",{attrs:{id:"android"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),e("p",[t._v("Instructions for installing PojavLauncher on Android devices.")]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Google Play")]),t._v(" "),e("p",[t._v("You can grab PojavLauncher from the Google Play Store "),e("a",{attrs:{href:"https://play.google.com/store/apps/details?id=net.kdt.pojavlaunch",target:"_blank",rel:"noopener noreferrer"}},[t._v("here."),e("OutboundLink")],1)])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("GitHub Actions")]),t._v(" "),e("p",[t._v("If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.")]),t._v(" "),e("p",[e("strong",[t._v("Using nightly.link:")])]),t._v(" "),e("ol",[e("li",[t._v("Download the "),e("a",{attrs:{href:"https://nightly.link/PojavLauncherTeam/PojavLauncher/workflows/android/v3_openjdk/app-debug.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("Latest Artifact"),e("OutboundLink")],1),t._v(" using this link.")]),t._v(" "),e("li",[t._v("Install as any usual .apk")])]),t._v(" "),e("p",[e("strong",[t._v("Using Github (requires an account):")])]),t._v(" "),e("ol",[e("li",[t._v("Start off by heading to the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavLauncher"),e("OutboundLink")],1),t._v(' repository and switching to the "Actions" tab.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(310),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Next, select "Android CI" in the workflow selection menu.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(311),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v("Choose a build with a green or blue checkmark next to the branch you want to download.\n"),e("ul",[e("li",[e("code",[t._v("v3_openjdk")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(312),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v('Under "Artifacts", choose the build type you wish to download.\n'),e("ul",[e("li",[e("code",[t._v("app-debug")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(313),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"5"}},[e("li",[t._v("Install as any usual .apk")])])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Source")]),t._v(" "),e("p",[e("strong",[t._v("Instructions coming in a future revision to this website.")])])]),t._v(" "),e("h2",{attrs:{id:"ios"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),e("p",[t._v("Instructions for installing PojavLauncher on Apple devices.")]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (TrollStore)")]),t._v(" "),e("p",[t._v("We recommend TrollStore for all users if possible. This method allows for automatic JIT enabling, more memory allocation, and non-revoking installs.")]),t._v(" "),e("p",[t._v("Note: "),e("strong",[t._v("Enable URL Schemes in TrollStore settings.")])]),t._v(" "),e("h3",{attrs:{id:"trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}},[t._v("#")]),t._v(" TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+)")]),t._v(" "),e("h4",{attrs:{id:"for-arm64-trollstore-is-compatible-with-the-following-ios-versions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#for-arm64-trollstore-is-compatible-with-the-following-ios-versions"}},[t._v("#")]),t._v(" For arm64, TrollStore is compatible with the following iOS versions:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("- 14.0 to 16.6.1\n- 17.0 \n- 16.7 to 16.7.8 (*)\n- 17.0.1 to 17.5.1 (*)\n- 18 b1 to 18 b4 (*)\n")])])]),e("p",[t._v("(*) - requires the palera1n jailbreak")]),t._v(" "),e("h4",{attrs:{id:"for-arm64e-trollstore-is-compatible-with-the-following-ios-versions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#for-arm64e-trollstore-is-compatible-with-the-following-ios-versions"}},[t._v("#")]),t._v(" For arm64e, TrollStore is compatible with the following iOS versions:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("- 14.0 to 16.6.1\n- 17.0 (*)\n\n(*) - No installation method at the moment.\n")])])]),e("ol",[e("li",[e("p",[t._v("Follow these steps to install "),e("a",{attrs:{href:"https://github.com/opa334/TrollStore",target:"_blank",rel:"noopener noreferrer"}},[t._v("TrollStore"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("li",[e("p",[t._v("Download the latest release from "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/download/v2.2/net.kdt.pojavlauncher-2.2-ios.ipa",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("ul",[e("li",[t._v("For a specific release, you can find its package on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Releases"),e("OutboundLink")],1),t._v(" page")])])]),t._v(" "),e("li",[e("p",[t._v("Locate where the .ipa was downloaded, tap the Share icon, and choose TrollStore in the list of options available.")])])]),t._v(" "),e("p",[t._v("You can now enjoy Minecraft: Java Edition on your iDevice!")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (Jailed)")]),t._v(" "),e("p",[e("strong",[t._v("Requires an active Apple ID, that has signed into the "),e("a",{attrs:{href:"https://developer.apple.com/account",target:"_blank",rel:"noopener noreferrer"}},[t._v("Apple Developer Program"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("p",[t._v("PojavLauncher supports being sideloaded with AltStore, Sideloadly, and Xcode. Instructions to use AltStore are below--for other options, refer to their documentation.")]),t._v(" "),e("ol",[e("li",[e("p",[t._v("Follow the official guide on installing AltStore itself:")]),t._v(" "),e("ul",[e("li",[t._v("Instructions for "),e("a",{attrs:{href:"https://faq.altstore.io/getting-started/how-to-install-altstore-macos",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mac"),e("OutboundLink")],1),t._v(" and "),e("a",{attrs:{href:"https://faq.altstore.io/getting-started/how-to-install-altstore-windows",target:"_blank",rel:"noopener noreferrer"}},[t._v("Windows"),e("OutboundLink")],1)])])]),t._v(" "),e("li",[e("p",[t._v("Install the latest release using this "),e("a",{attrs:{href:"altstore://install?url=https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/latest/download/net.kdt.pojavlauncher.ipa"}},[t._v("Install with AltStore")]),t._v(" button.")]),t._v(" "),e("ul",[e("li",[t._v("For a specific release, you can find its button on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Releases"),e("OutboundLink")],1),t._v(" page")])])])]),t._v(" "),e("p",[t._v("Installing PojavLauncher is not the end for iOS devices. In order to play Minecraft itself, you will need to "),e("RouterLink",{attrs:{to:"/JIT.html"}},[t._v("enable JIT")]),t._v(".")],1)]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (Jailbroken)")]),t._v(" "),e("p",[e("strong",[t._v("Currently, AppSync Unified is not supported.")]),t._v(" There is an "),e("a",{attrs:{href:"https://github.com/akemin-dayo/AppSync/issues/108",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue"),e("OutboundLink")],1),t._v(" regarding the data directory when installed with AppSync.")]),t._v(" "),e("p",[t._v("You can follow the "),e("code",[t._v("Sideloading (TrollStore)")]),t._v(" or "),e("code",[t._v("Sideloading (Jailed)")]),t._v(" steps to sideload on a jailbroken iDevice. Regardless of the method, you will benefit from automatic JIT enabling and more memory allocation.")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("GitHub Actions")]),t._v(" "),e("p",[e("strong",[t._v("Requires a GitHub account in order to download.")])]),t._v(" "),e("p",[t._v("If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.")]),t._v(" "),e("ol",[e("li",[t._v("Start off by heading to the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavLauncher iOS"),e("OutboundLink")],1),t._v(' repository and switching to the "Actions" tab.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(314),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Next, select "Development Build" in the workflow selection menu.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(315),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v("Choose a build with a green or blue checkmark next to the branch you want to download.\n"),e("ul",[e("li",[e("code",[t._v("main")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(316),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v('Under "Artifacts", choose '),e("code",[t._v("net.kdt.pojavlauncher.ipa")])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(317),alt:""}})]),t._v(" "),e("p",[t._v("Once you have an Actions build downloaded, you can now unzip the file and use this .ipa for TrollStore or sideloading.")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Source")]),t._v(" "),e("p",[e("strong",[t._v("Instructions coming in a future revision to this website.")])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{310:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-1.96a0b3c7.png"},311:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-2.99495cb5.png"},312:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-3.d484abce.png"},313:function(t,e,o){t.exports=o.p+"assets/img/Android-Actions-4.07b1b65e.png"},314:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-1.0ad48a3b.png"},315:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-2.c2192189.png"},316:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-3.ad935f47.png"},317:function(t,e,o){t.exports=o.p+"assets/img/iOS-Actions-4.1103453a.png"},348:function(t,e,o){"use strict";o.r(e);var a=o(8),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"installing-the-launcher"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installing-the-launcher"}},[t._v("#")]),t._v(" Installing the launcher")]),t._v(" "),e("h2",{attrs:{id:"android"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),e("p",[t._v("Instructions for installing PojavLauncher on Android devices.")]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Google Play")]),t._v(" "),e("p",[t._v("You can grab PojavLauncher from the Google Play Store "),e("a",{attrs:{href:"https://play.google.com/store/apps/details?id=net.kdt.pojavlaunch",target:"_blank",rel:"noopener noreferrer"}},[t._v("here."),e("OutboundLink")],1)])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("GitHub Actions")]),t._v(" "),e("p",[t._v("If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.")]),t._v(" "),e("p",[e("strong",[t._v("Using nightly.link:")])]),t._v(" "),e("ol",[e("li",[t._v("Download the "),e("a",{attrs:{href:"https://nightly.link/PojavLauncherTeam/PojavLauncher/workflows/android/v3_openjdk/app-debug.zip",target:"_blank",rel:"noopener noreferrer"}},[t._v("Latest Artifact"),e("OutboundLink")],1),t._v(" using this link.")]),t._v(" "),e("li",[t._v("Install as any usual .apk")])]),t._v(" "),e("p",[e("strong",[t._v("Using Github (requires an account):")])]),t._v(" "),e("ol",[e("li",[t._v("Start off by heading to the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavLauncher"),e("OutboundLink")],1),t._v(' repository and switching to the "Actions" tab.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(310),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Next, select "Android CI" in the workflow selection menu.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(311),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v("Choose a build with a green or blue checkmark next to the branch you want to download.\n"),e("ul",[e("li",[e("code",[t._v("v3_openjdk")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(312),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v('Under "Artifacts", choose the build type you wish to download.\n'),e("ul",[e("li",[e("code",[t._v("app-debug")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(313),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"5"}},[e("li",[t._v("Install as any usual .apk")])])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Source")]),t._v(" "),e("p",[e("strong",[t._v("Instructions coming in a future revision to this website.")])])]),t._v(" "),e("h2",{attrs:{id:"ios"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),e("p",[t._v("Instructions for installing PojavLauncher on Apple devices.")]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (TrollStore)")]),t._v(" "),e("p",[t._v("We recommend TrollStore for all users if possible. This method allows for automatic JIT enabling, more memory allocation, and non-revoking installs.")]),t._v(" "),e("p",[t._v("Note: "),e("strong",[t._v("Enable URL Schemes in TrollStore settings.")])]),t._v(" "),e("h3",{attrs:{id:"trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}},[t._v("#")]),t._v(" TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+)")]),t._v(" "),e("h4",{attrs:{id:"for-arm64-trollstore-is-compatible-with-the-following-ios-versions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#for-arm64-trollstore-is-compatible-with-the-following-ios-versions"}},[t._v("#")]),t._v(" For arm64, TrollStore is compatible with the following iOS versions:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("- 14.0 to 16.6.1\n- 17.0 \n- 16.7 to 16.7.8 (*)\n- 17.0.1 to 17.5.1 (*)\n- 18 b1 to 18 b4 (*)\n")])])]),e("p",[t._v("(*) - requires the palera1n jailbreak")]),t._v(" "),e("h4",{attrs:{id:"for-arm64e-trollstore-is-compatible-with-the-following-ios-versions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#for-arm64e-trollstore-is-compatible-with-the-following-ios-versions"}},[t._v("#")]),t._v(" For arm64e, TrollStore is compatible with the following iOS versions:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("- 14.0 to 16.6.1\n- 17.0 (*)\n\n(*) - No installation method at the moment.\n")])])]),e("ol",[e("li",[e("p",[t._v("Follow these steps to install "),e("a",{attrs:{href:"https://github.com/opa334/TrollStore",target:"_blank",rel:"noopener noreferrer"}},[t._v("TrollStore"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("li",[e("p",[t._v("Download the latest release from "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/download/v2.2/net.kdt.pojavlauncher-2.2-ios.ipa",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("ul",[e("li",[t._v("For a specific release, you can find its package on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Releases"),e("OutboundLink")],1),t._v(" page")])])]),t._v(" "),e("li",[e("p",[t._v("Locate where the .ipa was downloaded, tap the Share icon, and choose TrollStore in the list of options available.")])])]),t._v(" "),e("p",[t._v("You can now enjoy Minecraft: Java Edition on your iDevice!")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (Jailed)")]),t._v(" "),e("p",[e("strong",[t._v("Requires an active Apple ID, that has signed into the "),e("a",{attrs:{href:"https://developer.apple.com/account",target:"_blank",rel:"noopener noreferrer"}},[t._v("Apple Developer Program"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("p",[t._v("PojavLauncher supports being sideloaded with AltStore, Sideloadly, and Xcode. Instructions to use AltStore are below--for other options, refer to their documentation.")]),t._v(" "),e("ol",[e("li",[e("p",[t._v("Follow the official guide on installing AltStore itself:")]),t._v(" "),e("ul",[e("li",[t._v("Instructions for "),e("a",{attrs:{href:"https://faq.altstore.io/getting-started/how-to-install-altstore-macos",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mac"),e("OutboundLink")],1),t._v(" and "),e("a",{attrs:{href:"https://faq.altstore.io/getting-started/how-to-install-altstore-windows",target:"_blank",rel:"noopener noreferrer"}},[t._v("Windows"),e("OutboundLink")],1)])])]),t._v(" "),e("li",[e("p",[t._v("Install the latest release using this "),e("a",{attrs:{href:"altstore://install?url=https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/latest/download/net.kdt.pojavlauncher.ipa"}},[t._v("Install with AltStore")]),t._v(" button.")]),t._v(" "),e("ul",[e("li",[t._v("For a specific release, you can find its button on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Releases"),e("OutboundLink")],1),t._v(" page")])])])]),t._v(" "),e("p",[t._v("Installing PojavLauncher is not the end for iOS devices. In order to play Minecraft itself, you will need to "),e("RouterLink",{attrs:{to:"/JIT.html"}},[t._v("enable JIT")]),t._v(".")],1)]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Sideloading (Jailbroken)")]),t._v(" "),e("p",[e("strong",[t._v("Currently, AppSync Unified is not supported.")]),t._v(" There is an "),e("a",{attrs:{href:"https://github.com/akemin-dayo/AppSync/issues/108",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue"),e("OutboundLink")],1),t._v(" regarding the data directory when installed with AppSync.")]),t._v(" "),e("p",[t._v("You can follow the "),e("code",[t._v("Sideloading (TrollStore)")]),t._v(" or "),e("code",[t._v("Sideloading (Jailed)")]),t._v(" steps to sideload on a jailbroken iDevice. Regardless of the method, you will benefit from automatic JIT enabling and more memory allocation.")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("GitHub Actions")]),t._v(" "),e("p",[e("strong",[t._v("Requires a GitHub account in order to download.")])]),t._v(" "),e("p",[t._v("If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions.")]),t._v(" "),e("ol",[e("li",[t._v("Start off by heading to the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavLauncher iOS"),e("OutboundLink")],1),t._v(' repository and switching to the "Actions" tab.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(314),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Next, select "Development Build" in the workflow selection menu.')])]),t._v(" "),e("p",[e("img",{attrs:{src:o(315),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v("Choose a build with a green or blue checkmark next to the branch you want to download.\n"),e("ul",[e("li",[e("code",[t._v("main")]),t._v(" will be the one for most people.")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(316),alt:""}})]),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v('Under "Artifacts", choose '),e("code",[t._v("net.kdt.pojavlauncher.ipa")])])]),t._v(" "),e("p",[e("img",{attrs:{src:o(317),alt:""}})]),t._v(" "),e("p",[t._v("Once you have an Actions build downloaded, you can now unzip the file and use this .ipa for TrollStore or sideloading.")])]),t._v(" "),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Source")]),t._v(" "),e("p",[e("strong",[t._v("Instructions coming in a future revision to this website.")])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/15.3678c9eb.js b/assets/js/15.96f55d3d.js similarity index 100% rename from assets/js/15.3678c9eb.js rename to assets/js/15.96f55d3d.js diff --git a/assets/js/21.86b00bdf.js b/assets/js/21.9c9c8b55.js similarity index 86% rename from assets/js/21.86b00bdf.js rename to assets/js/21.9c9c8b55.js index f90c8905..114b7284 100644 --- a/assets/js/21.86b00bdf.js +++ b/assets/js/21.9c9c8b55.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{292:function(t,e,n){},318:function(t,e,n){"use strict";n(292)},374:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(318),n(8)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{292:function(t,e,n){},318:function(t,e,n){"use strict";n(292)},386:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(318),n(8)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/27.35018721.js b/assets/js/27.ba5e9ff1.js similarity index 98% rename from assets/js/27.35018721.js rename to assets/js/27.ba5e9ff1.js index 7cde6716..fc4459b6 100644 --- a/assets/js/27.35018721.js +++ b/assets/js/27.ba5e9ff1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{330:function(e,t,a){"use strict";a.r(t);var i=a(8),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-s-32-bit-support"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-s-32-bit-support"}},[e._v("#")]),e._v(" PojavLauncher's 32-bit support")]),e._v(" "),t("p",[e._v("Most of you, Android users, who are reading this now, won't be bothered by this documentation, but for the poor souls who have a 32-bit device, let's press "),t("s",[e._v("L")]),e._v(" F to pay respects to them.")]),e._v(" "),t("p",[e._v("ARM transitioned into the modern "),t("code",[e._v("arm64/aarch64")]),e._v(" architecture, which significantly improved utilization and stability compared to its widely used predecessor, "),t("code",[e._v("arm/aarch32")]),e._v(", while also maintaining compatibility using code blocks for parity between both architectures.")]),e._v(" "),t("p",[e._v("We won't get into much detail regarding it, but if you'd like to learn more about it have a read of "),t("a",{attrs:{href:"https://en.m.wikipedia.org/wiki/ARM_architecture_family",target:"_blank",rel:"noopener noreferrer"}},[e._v("this documentary about the ARM platform."),t("OutboundLink")],1)]),e._v(" "),t("p",[t("strong",[e._v("You may encounter issues while using PojavLauncher on 32-bit devices. Here's a list of things that are known to be problematic:")])]),e._v(" "),t("h2",{attrs:{id:"ram-allocation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ram-allocation"}},[e._v("#")]),e._v(" RAM Allocation")]),e._v(" "),t("p",[t("strong",[e._v("Real 32-bit devices (32-bit hardware and firmware), can't allocate more than 768MB of RAM to PojavLauncher. This CAN'T be changed even if the device has extra RAM to spare.")])]),e._v(" "),t("ul",[t("li",[e._v("Examples of real 32-bit SoCs: Qualcomm Snapdragon 801, 800, 600, 400, S4, S3, S2, S1, etc.")])]),e._v(" "),t("p",[t("strong",[e._v("64-bit devices limited to 32-bit firmware can't allocate more than ~1000MB of RAM. As said earlier, this CAN'T be changed.")])]),e._v(" "),t("ul",[t("li",[e._v("Examples of 64-bit SoCs limited to 32-bit firmware: MediaTek Helio G37, G35, G25, P35, P25, P23, P22, etc.")])]),e._v(" "),t("h2",{attrs:{id:"performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#performance"}},[e._v("#")]),e._v(" Performance")]),e._v(" "),t("p",[e._v("Due to 32-bit's processing speed limit, Minecraft's performance is always compromised. Even with optimization mods installed, you may receive big stutters even on the lowest settings. Decreasing RAM Allocation may help performance in some scenarios.")]),e._v(" "),t("h2",{attrs:{id:"compatibility"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compatibility"}},[e._v("#")]),e._v(" Compatibility")]),e._v(" "),t("p",[e._v("As of snapshot "),t("a",{attrs:{href:"https://minecraft.wiki/w/Java_Edition_24w14a",target:"_blank",rel:"noopener noreferrer"}},[e._v("24w14a"),t("OutboundLink")],1),e._v(", Minecraft has officially dropped support for the 32-Bit architecture, ultimately meaning if you own a 32-Bit device you will "),t("strong",[e._v("NOT")]),e._v(" be able to run Minecraft 1.20.5+ on said device.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{331:function(e,t,a){"use strict";a.r(t);var i=a(8),o=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-s-32-bit-support"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-s-32-bit-support"}},[e._v("#")]),e._v(" PojavLauncher's 32-bit support")]),e._v(" "),t("p",[e._v("Most of you, Android users, who are reading this now, won't be bothered by this documentation, but for the poor souls who have a 32-bit device, let's press "),t("s",[e._v("L")]),e._v(" F to pay respects to them.")]),e._v(" "),t("p",[e._v("ARM transitioned into the modern "),t("code",[e._v("arm64/aarch64")]),e._v(" architecture, which significantly improved utilization and stability compared to its widely used predecessor, "),t("code",[e._v("arm/aarch32")]),e._v(", while also maintaining compatibility using code blocks for parity between both architectures.")]),e._v(" "),t("p",[e._v("We won't get into much detail regarding it, but if you'd like to learn more about it have a read of "),t("a",{attrs:{href:"https://en.m.wikipedia.org/wiki/ARM_architecture_family",target:"_blank",rel:"noopener noreferrer"}},[e._v("this documentary about the ARM platform."),t("OutboundLink")],1)]),e._v(" "),t("p",[t("strong",[e._v("You may encounter issues while using PojavLauncher on 32-bit devices. Here's a list of things that are known to be problematic:")])]),e._v(" "),t("h2",{attrs:{id:"ram-allocation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ram-allocation"}},[e._v("#")]),e._v(" RAM Allocation")]),e._v(" "),t("p",[t("strong",[e._v("Real 32-bit devices (32-bit hardware and firmware), can't allocate more than 768MB of RAM to PojavLauncher. This CAN'T be changed even if the device has extra RAM to spare.")])]),e._v(" "),t("ul",[t("li",[e._v("Examples of real 32-bit SoCs: Qualcomm Snapdragon 801, 800, 600, 400, S4, S3, S2, S1, etc.")])]),e._v(" "),t("p",[t("strong",[e._v("64-bit devices limited to 32-bit firmware can't allocate more than ~1000MB of RAM. As said earlier, this CAN'T be changed.")])]),e._v(" "),t("ul",[t("li",[e._v("Examples of 64-bit SoCs limited to 32-bit firmware: MediaTek Helio G37, G35, G25, P35, P25, P23, P22, etc.")])]),e._v(" "),t("h2",{attrs:{id:"performance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#performance"}},[e._v("#")]),e._v(" Performance")]),e._v(" "),t("p",[e._v("Due to 32-bit's processing speed limit, Minecraft's performance is always compromised. Even with optimization mods installed, you may receive big stutters even on the lowest settings. Decreasing RAM Allocation may help performance in some scenarios.")]),e._v(" "),t("h2",{attrs:{id:"compatibility"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#compatibility"}},[e._v("#")]),e._v(" Compatibility")]),e._v(" "),t("p",[e._v("As of snapshot "),t("a",{attrs:{href:"https://minecraft.wiki/w/Java_Edition_24w14a",target:"_blank",rel:"noopener noreferrer"}},[e._v("24w14a"),t("OutboundLink")],1),e._v(", Minecraft has officially dropped support for the 32-Bit architecture, ultimately meaning if you own a 32-Bit device you will "),t("strong",[e._v("NOT")]),e._v(" be able to run Minecraft 1.20.5+ on said device.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/28.1b260f9c.js b/assets/js/28.70b620d4.js similarity index 56% rename from assets/js/28.1b260f9c.js rename to assets/js/28.70b620d4.js index 14216f73..076d1725 100644 --- a/assets/js/28.1b260f9c.js +++ b/assets/js/28.70b620d4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{331:function(e,r,t){"use strict";t.r(r);var a=t(8),n=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"pojavlauncher"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher"}},[e._v("#")]),e._v(" PojavLauncher")]),e._v(" "),r("h3",{attrs:{id:"from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"}},[e._v("#")]),e._v(" From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.")]),e._v(" "),r("p",[e._v("PojavLauncher is based off of "),r("strong",[e._v("zhouwei's Boardwalk")]),e._v(" project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support.")]),e._v(" "),r("p",[e._v("Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store!")]),e._v(" "),r("h2",{attrs:{id:"credits"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#credits"}},[e._v("#")]),e._v(" Credits")]),e._v(" "),r("p",[e._v("PojavLauncher didn't just appear out of thin air, but was made possible by the following people!")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://twitter.com/PLaunchTeam",target:"_blank",rel:"noopener noreferrer"}},[e._v("@PojavLauncherTeam"),r("OutboundLink")],1),e._v(", which includes")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/khanhduytran0",target:"_blank",rel:"noopener noreferrer"}},[e._v("@DuyKhanhTran"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/artdeell",target:"_blank",rel:"noopener noreferrer"}},[e._v("@artdeell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Mathias-Boulay",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Mathias Bouley"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/crystall1nedev",target:"_blank",rel:"noopener noreferrer"}},[e._v("@crystall1nedev"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("...and many more contributors to the "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Android"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("iOS"),r("OutboundLink")],1),e._v(" repositories.")]),e._v(" "),r("p",[e._v("PojavLauncher also uses the following third-party components:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/zhuowei/Boardwalk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boardwalk"),r("OutboundLink")],1),e._v(" (JVM Launcher): Unknown License/"),r("a",{attrs:{href:"https://github.com/zhuowei/Boardwalk/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(" or GNU GPLv2.")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/caciocavallo",target:"_blank",rel:"noopener noreferrer"}},[e._v("Caciocavallo"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/caciocavallo/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("GNU GPLv2 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[e._v("Android Support Libraries: "),r("a",{attrs:{href:"https://android.googlesource.com/platform/prebuilts/maven_repo/android/+/master/NOTICE.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/ptitSeb/gl4es",target:"_blank",rel:"noopener noreferrer"}},[e._v("GL4ES"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/ptitSeb/gl4es/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v("."),r("br")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/openjdk-multiarch-jdk8u",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenJDK"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://openjdk.java.net/legal/gplv2+ce.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("GNU GPLv2 License"),r("OutboundLink")],1),e._v(". On iOS, it was ported by "),r("a",{attrs:{href:"https://twitter.com/diatrus",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Diatrus"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/lwjgl3",target:"_blank",rel:"noopener noreferrer"}},[e._v("LWJGL3"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/LWJGL/lwjgl3/blob/master/LICENSE.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD-3 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/lwjglx",target:"_blank",rel:"noopener noreferrer"}},[e._v("LWJGLX"),r("OutboundLink")],1),e._v(" (LWJGL2 API compatibility layer for LWJGL3): unknown license."),r("br")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://gitlab.freedesktop.org/mesa/mesa",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mesa 3D Graphics Library"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://docs.mesa3d.org/license.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/pro-grade/pro-grade",target:"_blank",rel:"noopener noreferrer"}},[e._v("pro-grade"),r("OutboundLink")],1),e._v(" (Java sandboxing security manager): "),r("a",{attrs:{href:"https://github.com/pro-grade/pro-grade/blob/master/LICENSE.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/iqiyi/xHook",target:"_blank",rel:"noopener noreferrer"}},[e._v("xHook"),r("OutboundLink")],1),e._v(" (Used for exit code trapping): "),r("a",{attrs:{href:"https://github.com/iqiyi/xHook/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT and BSD-style licenses"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/anholt/libepoxy",target:"_blank",rel:"noopener noreferrer"}},[e._v("libepoxy"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/anholt/libepoxy/blob/master/COPYING",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/virglrenderer",target:"_blank",rel:"noopener noreferrer"}},[e._v("virglrenderer"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://gitlab.freedesktop.org/virgl/virglrenderer/-/blob/master/COPYING",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://commons.apache.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache Commons"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"http://www.apache.org/licenses/LICENSE-2.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://code.google.com/p/jsr-305",target:"_blank",rel:"noopener noreferrer"}},[e._v("jsr305"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"http://opensource.org/licenses/BSD-3-Clause",target:"_blank",rel:"noopener noreferrer"}},[e._v("3-Clause BSD License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/stleary/JSON-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("org.json"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://www.json.org/license.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("The JSON License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/kakashidinho/metalangle",target:"_blank",rel:"noopener noreferrer"}},[e._v("MetalANGLE"),r("OutboundLink")],1),e._v(" by @kakashidinho and ANGLE team: "),r("a",{attrs:{href:"https://github.com/kakashidinho/metalangle/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/KhronosGroup/MoltenVK",target:"_blank",rel:"noopener noreferrer"}},[e._v("MoltenVK"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/KhronosGroup/MoltenVK/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/hbang/Alderis",target:"_blank",rel:"noopener noreferrer"}},[e._v("Alderis"),r("OutboundLink")],1),e._v(" (color picker for iOS < 14): "),r("a",{attrs:{href:"https://github.com/hbang/Alderis/blob/master/LICENSE.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/immago/DBNumberedSlider",target:"_blank",rel:"noopener noreferrer"}},[e._v("DBNumberedSlider"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/immago/DBNumberedSlider/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/facebook/fishhook",target:"_blank",rel:"noopener noreferrer"}},[e._v("fishhook"),r("OutboundLink")],1),e._v(" (jailed environment usage only): "),r("a",{attrs:{href:"https://github.com/facebook/fishhook/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD-3 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/java-native-access/jna",target:"_blank",rel:"noopener noreferrer"}},[e._v("Java Native Access"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/java-native-access/jna/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/google/shaderc",target:"_blank",rel:"noopener noreferrer"}},[e._v("shaderc"),r("OutboundLink")],1),e._v(" (used by mods that uses Vulkan for rendering): "),r("a",{attrs:{href:"https://github.com/google/shaderc/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/TimOliver/TOInsetGroupedTableView",target:"_blank",rel:"noopener noreferrer"}},[e._v("TOInsetGroupedTableView"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/TimOliver/TOInsetGroupedTableView/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h2",{attrs:{id:"special-thanks-to-these-guys"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#special-thanks-to-these-guys"}},[e._v("#")]),e._v(" Special thanks to these guys")]),e._v(" "),r("ul",[r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://mc-heads.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("MCHeads"),r("OutboundLink")],1),e._v(" for providing Minecraft avatars.")]),e._v(" "),r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://github.com/Diatrus",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Diatrus"),r("OutboundLink")],1),e._v(" for helping make this a reality in the beginning.")]),e._v(" "),r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://macstadium.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("MacStadium"),r("OutboundLink")],1),e._v(" for providing the hardware needed to help PojavLauncher iOS go further.")])]),e._v(" "),r("p",[r("img",{attrs:{src:"https://user-images.githubusercontent.com/55281754/183129754-c3736bb9-d528-4af7-9351-a12b3be7549e.png",alt:""}})])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{330:function(e,r,t){"use strict";t.r(r);var a=t(8),n=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"pojavlauncher"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher"}},[e._v("#")]),e._v(" PojavLauncher")]),e._v(" "),r("h3",{attrs:{id:"from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"}},[e._v("#")]),e._v(" From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.")]),e._v(" "),r("p",[e._v("PojavLauncher is based off of "),r("strong",[e._v("zhouwei's Boardwalk")]),e._v(" project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support.")]),e._v(" "),r("p",[e._v("Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store!")]),e._v(" "),r("h2",{attrs:{id:"credits"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#credits"}},[e._v("#")]),e._v(" Credits")]),e._v(" "),r("p",[e._v("PojavLauncher didn't just appear out of thin air, but was made possible by the following people!")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://twitter.com/PLaunchTeam",target:"_blank",rel:"noopener noreferrer"}},[e._v("@PojavLauncherTeam"),r("OutboundLink")],1),e._v(", which includes")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/khanhduytran0",target:"_blank",rel:"noopener noreferrer"}},[e._v("@DuyKhanhTran"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/artdeell",target:"_blank",rel:"noopener noreferrer"}},[e._v("@artdeell"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Mathias-Boulay",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Mathias Bouley"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/crystall1nedev",target:"_blank",rel:"noopener noreferrer"}},[e._v("@crystall1nedev"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("...and many more contributors to the "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Android"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("iOS"),r("OutboundLink")],1),e._v(" repositories.")]),e._v(" "),r("p",[e._v("PojavLauncher also uses the following third-party components:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/zhuowei/Boardwalk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boardwalk"),r("OutboundLink")],1),e._v(" (JVM Launcher): Unknown License/"),r("a",{attrs:{href:"https://github.com/zhuowei/Boardwalk/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(" or GNU GPLv2.")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/caciocavallo",target:"_blank",rel:"noopener noreferrer"}},[e._v("Caciocavallo"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/caciocavallo/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("GNU GPLv2 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[e._v("Android Support Libraries: "),r("a",{attrs:{href:"https://android.googlesource.com/platform/prebuilts/maven_repo/android/+/master/NOTICE.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/ptitSeb/gl4es",target:"_blank",rel:"noopener noreferrer"}},[e._v("GL4ES"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/ptitSeb/gl4es/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v("."),r("br")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/openjdk-multiarch-jdk8u",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenJDK"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://openjdk.java.net/legal/gplv2+ce.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("GNU GPLv2 License"),r("OutboundLink")],1),e._v(". On iOS, it was ported by "),r("a",{attrs:{href:"https://twitter.com/diatrus",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Diatrus"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/lwjgl3",target:"_blank",rel:"noopener noreferrer"}},[e._v("LWJGL3"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/LWJGL/lwjgl3/blob/master/LICENSE.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD-3 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/lwjglx",target:"_blank",rel:"noopener noreferrer"}},[e._v("LWJGLX"),r("OutboundLink")],1),e._v(" (LWJGL2 API compatibility layer for LWJGL3): unknown license."),r("br")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://gitlab.freedesktop.org/mesa/mesa",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mesa 3D Graphics Library"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://docs.mesa3d.org/license.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/pro-grade/pro-grade",target:"_blank",rel:"noopener noreferrer"}},[e._v("pro-grade"),r("OutboundLink")],1),e._v(" (Java sandboxing security manager): "),r("a",{attrs:{href:"https://github.com/pro-grade/pro-grade/blob/master/LICENSE.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/iqiyi/xHook",target:"_blank",rel:"noopener noreferrer"}},[e._v("xHook"),r("OutboundLink")],1),e._v(" (Used for exit code trapping): "),r("a",{attrs:{href:"https://github.com/iqiyi/xHook/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT and BSD-style licenses"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/anholt/libepoxy",target:"_blank",rel:"noopener noreferrer"}},[e._v("libepoxy"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/anholt/libepoxy/blob/master/COPYING",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/osmesa-zink-builder",target:"_blank",rel:"noopener noreferrer"}},[e._v("Zink"),r("OutboundLink")],1),e._v(": MIT License.")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://commons.apache.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache Commons"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"http://www.apache.org/licenses/LICENSE-2.0.txt",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://code.google.com/p/jsr-305",target:"_blank",rel:"noopener noreferrer"}},[e._v("jsr305"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"http://opensource.org/licenses/BSD-3-Clause",target:"_blank",rel:"noopener noreferrer"}},[e._v("3-Clause BSD License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/stleary/JSON-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("org.json"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://www.json.org/license.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("The JSON License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/kakashidinho/metalangle",target:"_blank",rel:"noopener noreferrer"}},[e._v("MetalANGLE"),r("OutboundLink")],1),e._v(" by @kakashidinho and ANGLE team: "),r("a",{attrs:{href:"https://github.com/kakashidinho/metalangle/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD License 2.0"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/KhronosGroup/MoltenVK",target:"_blank",rel:"noopener noreferrer"}},[e._v("MoltenVK"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/KhronosGroup/MoltenVK/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/hbang/Alderis",target:"_blank",rel:"noopener noreferrer"}},[e._v("Alderis"),r("OutboundLink")],1),e._v(" (color picker for iOS < 14): "),r("a",{attrs:{href:"https://github.com/hbang/Alderis/blob/master/LICENSE.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/immago/DBNumberedSlider",target:"_blank",rel:"noopener noreferrer"}},[e._v("DBNumberedSlider"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/immago/DBNumberedSlider/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/facebook/fishhook",target:"_blank",rel:"noopener noreferrer"}},[e._v("fishhook"),r("OutboundLink")],1),e._v(" (jailed environment usage only): "),r("a",{attrs:{href:"https://github.com/facebook/fishhook/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("BSD-3 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/java-native-access/jna",target:"_blank",rel:"noopener noreferrer"}},[e._v("Java Native Access"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/java-native-access/jna/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/google/shaderc",target:"_blank",rel:"noopener noreferrer"}},[e._v("shaderc"),r("OutboundLink")],1),e._v(" (used by mods that uses Vulkan for rendering): "),r("a",{attrs:{href:"https://github.com/google/shaderc/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0 License"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/TimOliver/TOInsetGroupedTableView",target:"_blank",rel:"noopener noreferrer"}},[e._v("TOInsetGroupedTableView"),r("OutboundLink")],1),e._v(": "),r("a",{attrs:{href:"https://github.com/TimOliver/TOInsetGroupedTableView/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT License"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h2",{attrs:{id:"special-thanks-to-these-guys"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#special-thanks-to-these-guys"}},[e._v("#")]),e._v(" Special thanks to these guys")]),e._v(" "),r("ul",[r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://mc-heads.net",target:"_blank",rel:"noopener noreferrer"}},[e._v("MCHeads"),r("OutboundLink")],1),e._v(" for providing Minecraft avatars.")]),e._v(" "),r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://github.com/Diatrus",target:"_blank",rel:"noopener noreferrer"}},[e._v("@Diatrus"),r("OutboundLink")],1),e._v(" for helping make this a reality in the beginning.")]),e._v(" "),r("li",[e._v("Thanks to "),r("a",{attrs:{href:"https://macstadium.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("MacStadium"),r("OutboundLink")],1),e._v(" for providing the hardware needed to help PojavLauncher iOS go further.")])]),e._v(" "),r("p",[r("img",{attrs:{src:"https://user-images.githubusercontent.com/55281754/183129754-c3736bb9-d528-4af7-9351-a12b3be7549e.png",alt:""}})])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/29.40fe6dd1.js b/assets/js/29.b6522c58.js similarity index 96% rename from assets/js/29.40fe6dd1.js rename to assets/js/29.b6522c58.js index 095c66d7..308c7a8a 100644 --- a/assets/js/29.40fe6dd1.js +++ b/assets/js/29.b6522c58.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{335:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"will-pojavlauncher-ever-come-to-app-store-for-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-pojavlauncher-ever-come-to-app-store-for-ios"}},[e._v("#")]),e._v(" Will PojavLauncher ever come to App Store for iOS?")]),e._v(" "),t("h3",{attrs:{id:"from-the-app-store-review-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#from-the-app-store-review-guidelines"}},[e._v("#")]),e._v(" From the App Store review guidelines:")]),e._v(" "),t("p",[t("strong",[e._v("2.5.2")]),e._v(": Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.")]),e._v(" "),t("p",[e._v("Apple Developer Documentation Referenced: "),t("a",{attrs:{href:"https://developer.apple.com/app-store/review/guidelines/#performance:~:text=Apps%20should%20be,by%20the%20user",target:"_blank",rel:"noopener noreferrer"}},[e._v("Section 2.5.2"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Additionally, $99 per year is required for pushing updates.")]),e._v(" "),t("p",[t("strong",[e._v("If PojavLauncher is ever pushed to the App Store, you will know!")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{333:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"will-pojavlauncher-ever-come-to-app-store-for-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#will-pojavlauncher-ever-come-to-app-store-for-ios"}},[e._v("#")]),e._v(" Will PojavLauncher ever come to App Store for iOS?")]),e._v(" "),t("h3",{attrs:{id:"from-the-app-store-review-guidelines"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#from-the-app-store-review-guidelines"}},[e._v("#")]),e._v(" From the App Store review guidelines:")]),e._v(" "),t("p",[t("strong",[e._v("2.5.2")]),e._v(": Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.")]),e._v(" "),t("p",[e._v("Apple Developer Documentation Referenced: "),t("a",{attrs:{href:"https://developer.apple.com/app-store/review/guidelines/#performance:~:text=Apps%20should%20be,by%20the%20user",target:"_blank",rel:"noopener noreferrer"}},[e._v("Section 2.5.2"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Additionally, $99 per year is required for pushing updates.")]),e._v(" "),t("p",[t("strong",[e._v("If PojavLauncher is ever pushed to the App Store, you will know!")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/31.d772bf38.js b/assets/js/31.d772bf38.js new file mode 100644 index 00000000..ebf92e92 --- /dev/null +++ b/assets/js/31.d772bf38.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{334:function(e,r,t){"use strict";t.r(r);var o=t(8),a=Object(o.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"can-t-find-the-log-file-non-root"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#can-t-find-the-log-file-non-root"}},[e._v("#")]),e._v(" Can't find the log file (non-root)")]),e._v(" "),r("p",[e._v("There are mutiple ways to do this. Usually, pressing the "),r("strong",[e._v("Share log file")]),e._v(" button is enough.")]),e._v(" "),r("h2",{attrs:{id:"android-10-and-newer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android-10-and-newer"}},[e._v("#")]),e._v(" Android 10 and newer")]),e._v(" "),r("p",[r("strong",[e._v("/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/latestlog.txt")])]),e._v(" "),r("ol",[r("li",[e._v("Install "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.marc.files",target:"_blank",rel:"noopener noreferrer"}},[e._v("Files by Marc apps & software"),r("OutboundLink")],1),e._v(" from Play Store.")]),e._v(" "),r("li",[e._v("Press the 3 lines in the top left corner → PojavLauncher → latestlog.txt")])]),e._v(" "),r("p",[e._v("If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone.\nYou can also use "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver",target:"_blank",rel:"noopener noreferrer"}},[e._v("ZArchiver"),r("OutboundLink")],1),e._v(" (or "),r("a",{attrs:{href:"https://mixplorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MiXplorer"),r("OutboundLink")],1),e._v(") with "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=moe.shizuku.privileged.api&hl=en_US",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shizuku"),r("OutboundLink")],1),e._v(" to access it.")]),e._v(" "),r("h2",{attrs:{id:"android-9-and-older"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android-9-and-older"}},[e._v("#")]),e._v(" Android 9 and older")]),e._v(" "),r("p",[r("strong",[e._v("/storage/emulated/0/games/PojavLauncher/latestlog.txt")])]),e._v(" "),r("p",[e._v("All file managers can access this directory. "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver",target:"_blank",rel:"noopener noreferrer"}},[e._v("ZArchiver"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://mixplorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MiXplorer"),r("OutboundLink")],1),e._v(" are recommended.")])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/32.2c059362.js b/assets/js/32.2c059362.js new file mode 100644 index 00000000..a6369aff --- /dev/null +++ b/assets/js/32.2c059362.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{335:function(e,r,t){"use strict";t.r(r);var a=t(8),n=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"can-t-find-minecraft-non-root"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#can-t-find-minecraft-non-root"}},[e._v("#")]),e._v(" Can't find .minecraft (non-root)")]),e._v(" "),r("p",[e._v("As with the log file, there are mutiple ways to do this.")]),e._v(" "),r("h2",{attrs:{id:"android-10-and-newer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android-10-and-newer"}},[e._v("#")]),e._v(" Android 10 and newer")]),e._v(" "),r("p",[r("strong",[e._v("/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/.minecraft")])]),e._v(" "),r("ol",[r("li",[e._v("Install "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.marc.files",target:"_blank",rel:"noopener noreferrer"}},[e._v("Files by Marc apps & software"),r("OutboundLink")],1),e._v(" from Play Store.")]),e._v(" "),r("li",[e._v("Press the 3 dots in the top right corner → "),r("strong",[e._v("Show hidden files")])]),e._v(" "),r("li",[e._v("Press the 3 lines in the top left corner → PojavLauncher → .minecraft")])]),e._v(" "),r("p",[e._v("If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone.\nYou can also use "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver",target:"_blank",rel:"noopener noreferrer"}},[e._v("ZArchiver"),r("OutboundLink")],1),e._v(" (or "),r("a",{attrs:{href:"https://mixplorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MiXplorer"),r("OutboundLink")],1),e._v(") with "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=moe.shizuku.privileged.api&hl=en_US",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shizuku"),r("OutboundLink")],1),e._v(" to access it.")]),e._v(" "),r("h2",{attrs:{id:"android-9-and-older"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android-9-and-older"}},[e._v("#")]),e._v(" Android 9 and older")]),e._v(" "),r("p",[r("strong",[e._v("/storage/emulated/0/games/PojavLauncher/.minecraft")])]),e._v(" "),r("p",[e._v("All file managers can access this directory. "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver",target:"_blank",rel:"noopener noreferrer"}},[e._v("ZArchiver"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://mixplorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MiXplorer"),r("OutboundLink")],1),e._v(" are recommended.")])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/33.6168e019.js b/assets/js/33.6168e019.js new file mode 100644 index 00000000..ff500d55 --- /dev/null +++ b/assets/js/33.6168e019.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{336:function(t,i,s){"use strict";s.r(i);var e=s(8),n=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"can-t-log-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#can-t-log-in"}},[this._v("#")]),this._v(" Can't log in")]),this._v(" "),t("p",[this._v("To fix your issues with login, try logging into minecraft.net first, sometimes just logging into the site fixes the issue. If that does not fix it, check these things:")]),this._v(" "),t("p",[this._v("a) you must own Minecraft: Java Edition\nb) you must have a username set (check this if you are using Xbox Game Pass)\nc) your account should not be a child member of a family, playing Minecraft like this only works on the official Minecraft Launcher for PC.\nd) if the error is different and links you somewhere, try following any steps on the site it links you to")])])}),[],!1,null,null,null);i.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/31.3aa74262.js b/assets/js/34.4f986602.js similarity index 97% rename from assets/js/31.3aa74262.js rename to assets/js/34.4f986602.js index 94227d00..79a659cf 100644 --- a/assets/js/31.3aa74262.js +++ b/assets/js/34.4f986602.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{333:function(t,e,a){"use strict";a.r(e);var o=a(8),r=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"contributing-to-the-translation-of-pojavlauncher"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-the-translation-of-pojavlauncher"}},[t._v("#")]),t._v(" Contributing to the translation of PojavLauncher")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("For the convenience of translators, we use "),e("a",{attrs:{href:"https://crowdin.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Crowdin"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("li",[e("p",[t._v("Anyone can join the project on Crowdin and start translating right now.")])])]),t._v(" "),e("p",[e("a",{attrs:{href:"https://crwd.in/pojavlauncher",target:"_blank",rel:"noopener noreferrer"}},[t._v("Join the project"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"getting-started-for-newcomers-on-crowdin"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-for-newcomers-on-crowdin"}},[t._v("#")]),t._v(" Getting started for newcomers on Crowdin")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("After you sign up on Crowdin and join the project, you can start translating the strings.")])]),t._v(" "),e("li",[e("p",[t._v("First, on the project page, you should select the language you want to translate PojavLauncher into.")])]),t._v(" "),e("li",[e("p",[t._v("Then, you will see the files to be translated. After the name of each file, you can see the translation progress of that file. The blue bar represents the progress of translated strings, and the green bar represents the progress of approved strings.")])]),t._v(" "),e("li",[e("p",[t._v('Now you can click on the "Translate all" button and you will be moved to the translation editor. But first, Crowdin will suggest you to read useful tips for using the translation editor.')])])]),t._v(" "),e("h2",{attrs:{id:"what-to-translate-and-what-not-to-translate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-to-translate-and-what-not-to-translate"}},[t._v("#")]),t._v(" What to translate and what not to translate?")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Things not to translate: PojavLauncher, codes like "),e("code",[t._v("<1>, , \\n, %s, %.2f, %1$s, %@")]),t._v(", arrows like ◀,")])]),t._v(" "),e("ul",[e("li",[t._v("Except for the list above, you can translate anything else.")])]),t._v(" "),e("h2",{attrs:{id:"proofreading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#proofreading"}},[t._v("#")]),t._v(" Proofreading")]),t._v(" "),e("ul",[e("li",[t._v("Proofreading of the strings is made by the language proofreader. Proofreaders are appointed by @Syjalo. Please don't ask him to approve the strings or appoint somebody as a proofreader. He will choose a suitable candidate in his opinion. Approved or most voted translation suggestions will be added to the launcher.")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{337:function(t,e,a){"use strict";a.r(e);var o=a(8),r=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"contributing-to-the-translation-of-pojavlauncher"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-the-translation-of-pojavlauncher"}},[t._v("#")]),t._v(" Contributing to the translation of PojavLauncher")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("For the convenience of translators, we use "),e("a",{attrs:{href:"https://crowdin.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Crowdin"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("li",[e("p",[t._v("Anyone can join the project on Crowdin and start translating right now.")])])]),t._v(" "),e("p",[e("a",{attrs:{href:"https://crwd.in/pojavlauncher",target:"_blank",rel:"noopener noreferrer"}},[t._v("Join the project"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"getting-started-for-newcomers-on-crowdin"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-for-newcomers-on-crowdin"}},[t._v("#")]),t._v(" Getting started for newcomers on Crowdin")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("After you sign up on Crowdin and join the project, you can start translating the strings.")])]),t._v(" "),e("li",[e("p",[t._v("First, on the project page, you should select the language you want to translate PojavLauncher into.")])]),t._v(" "),e("li",[e("p",[t._v("Then, you will see the files to be translated. After the name of each file, you can see the translation progress of that file. The blue bar represents the progress of translated strings, and the green bar represents the progress of approved strings.")])]),t._v(" "),e("li",[e("p",[t._v('Now you can click on the "Translate all" button and you will be moved to the translation editor. But first, Crowdin will suggest you to read useful tips for using the translation editor.')])])]),t._v(" "),e("h2",{attrs:{id:"what-to-translate-and-what-not-to-translate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-to-translate-and-what-not-to-translate"}},[t._v("#")]),t._v(" What to translate and what not to translate?")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Things not to translate: PojavLauncher, codes like "),e("code",[t._v("<1>, , \\n, %s, %.2f, %1$s, %@")]),t._v(", arrows like ◀,")])]),t._v(" "),e("ul",[e("li",[t._v("Except for the list above, you can translate anything else.")])]),t._v(" "),e("h2",{attrs:{id:"proofreading"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#proofreading"}},[t._v("#")]),t._v(" Proofreading")]),t._v(" "),e("ul",[e("li",[t._v("Proofreading of the strings is made by the language proofreader. Proofreaders are appointed by @Syjalo. Please don't ask him to approve the strings or appoint somebody as a proofreader. He will choose a suitable candidate in his opinion. Approved or most voted translation suggestions will be added to the launcher.")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/35.333033d2.js b/assets/js/35.333033d2.js deleted file mode 100644 index c2f5cbdc..00000000 --- a/assets/js/35.333033d2.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{338:function(e,r,t){"use strict";t.r(r);var i=t(8),n=Object(i.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"device-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#device-requirements"}},[e._v("#")]),e._v(" Device requirements")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Minimum")]),e._v(" means 30 or more average FPS on 1.7.10 with "),r("a",{attrs:{href:"https://optifine.net/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" installed at lowest settings.")]),e._v(" "),r("li",[r("strong",[e._v("Recommended")]),e._v(" means 60 or more average FPS on 1.19.4 with "),r("a",{attrs:{href:"https://optifine.net/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" installed at lowest settings.")])]),e._v(" "),r("h2",{attrs:{id:"android"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),r("h3",{attrs:{id:"minimum-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#minimum-requirements"}},[e._v("#")]),e._v(" Minimum requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Qualcomm Snapdragon 400 (or equivalent)")]),e._v(" "),r("li",[e._v("Android 5.0")]),e._v(" "),r("li",[e._v("1GB RAM")])]),e._v(" "),r("h3",{attrs:{id:"recommended-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recommended-requirements"}},[e._v("#")]),e._v(" Recommended requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Qualcomm Snapdragon 820 (or equivalent) with Vulkan API support")]),e._v(" "),r("li",[e._v("Android 8.0 and newer")]),e._v(" "),r("li",[e._v("4GB RAM or higher (the more the merrier)")])]),e._v(" "),r("h3",{attrs:{id:"chromeos"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#chromeos"}},[e._v("#")]),e._v(" ChromeOS")]),e._v(" "),r("ul",[r("li",[e._v("Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.")])]),e._v(" "),r("h2",{attrs:{id:"ios"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),r("h3",{attrs:{id:"minimum-requirements-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#minimum-requirements-2"}},[e._v("#")]),e._v(" Minimum requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Apple A8 SoC\n"),r("ul",[r("li",[e._v("The Apple A7 SoC is losing support in PojavLauncher 2.3.")])])]),e._v(" "),r("li",[e._v("iOS 14")]),e._v(" "),r("li",[e._v("1GB RAM")])]),e._v(" "),r("h3",{attrs:{id:"recommended-requirements-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recommended-requirements-2"}},[e._v("#")]),e._v(" Recommended requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Apple A14/A12X Bionic SoC")]),e._v(" "),r("li",[e._v("iOS 14")]),e._v(" "),r("li",[e._v("4GB RAM or higher")])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/32.a729987c.js b/assets/js/35.cd91cc7a.js similarity index 98% rename from assets/js/32.a729987c.js rename to assets/js/35.cd91cc7a.js index ac7aa68e..55f7b50e 100644 --- a/assets/js/32.a729987c.js +++ b/assets/js/35.cd91cc7a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{334:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"contributing-to-this-website"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-this-website"}},[e._v("#")]),e._v(" Contributing to this website")]),e._v(" "),t("p",[e._v("We're always happy to accept help from our beloved community, and this website is no different. However, we want to cover some ground rules before you get started.")]),e._v(" "),t("h2",{attrs:{id:"what-is-vuepress"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-vuepress"}},[e._v("#")]),e._v(" What is Vuepress?")]),e._v(" "),t("p",[e._v("Vuepress is a static website generator, although it looks really good. It takes three things: a config file, markdown (.md) documents, and resources for images and such, and then compiles them into HTML for browser-friendly access.")]),e._v(" "),t("h2",{attrs:{id:"how-do-i-contribute"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-contribute"}},[e._v("#")]),e._v(" How do I contribute?")]),e._v(" "),t("p",[e._v("Simple:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Fork "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("this repository"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("li",[t("p",[e._v('Click on "Edit this page" on any page, then edit the markdown file with your properly tuned syntax (using Discord? You already know Markdown), then save and commit. It\'s that easy.')])]),e._v(" "),t("li",[t("p",[e._v("If you want to see your changes on your fork, you'll have to either")])])]),e._v(" "),t("p",[e._v("1- Rename the repo to "),t("code",[e._v(".github.io")])]),e._v(" "),t("ul",[t("li",[e._v("Set the Pages settings to build from the root of "),t("code",[e._v("gh-pages")])])]),e._v(" "),t("p",[e._v("2- (if you have node installed), run "),t("code",[e._v("npm install && npm run build && npm run start")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"what-to-do-and-what-not-to-do"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-to-do-and-what-not-to-do"}},[e._v("#")]),e._v(" What to do and what not to do?")]),e._v(" "),t("p",[e._v("You're allowed to pretty much change anything, as long as it follows all of these rules:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Do not")]),e._v(" make any promises unless you were given permission from the developers.")]),e._v(" "),t("li",[t("strong",[e._v("Do not")]),e._v(" spread misinformation and inaccurate content.")]),e._v(" "),t("li",[e._v("Although you can change everything else, "),t("strong",[e._v("do not touch .vuepress/config.js")]),e._v(". If you need to change something in it, let Crystall1nedev or CriticalRange know.")]),e._v(" "),t("li",[e._v("Never, never ever ever merge "),t("code",[e._v("gh-pages")]),e._v(" and "),t("code",[e._v("main")]),e._v(" into each other. gh-pages is the "),t("strong",[e._v("result")]),e._v(", main is the "),t("strong",[e._v("rough draft")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Do not")]),e._v(" delete any dot files (.nvmrc, .gitattributes, etc)")])]),e._v(" "),t("p",[e._v("With all of these in mind, you're free to help us out with our website!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{338:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"contributing-to-this-website"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-this-website"}},[e._v("#")]),e._v(" Contributing to this website")]),e._v(" "),t("p",[e._v("We're always happy to accept help from our beloved community, and this website is no different. However, we want to cover some ground rules before you get started.")]),e._v(" "),t("h2",{attrs:{id:"what-is-vuepress"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-vuepress"}},[e._v("#")]),e._v(" What is Vuepress?")]),e._v(" "),t("p",[e._v("Vuepress is a static website generator, although it looks really good. It takes three things: a config file, markdown (.md) documents, and resources for images and such, and then compiles them into HTML for browser-friendly access.")]),e._v(" "),t("h2",{attrs:{id:"how-do-i-contribute"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-do-i-contribute"}},[e._v("#")]),e._v(" How do I contribute?")]),e._v(" "),t("p",[e._v("Simple:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Fork "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("this repository"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("li",[t("p",[e._v('Click on "Edit this page" on any page, then edit the markdown file with your properly tuned syntax (using Discord? You already know Markdown), then save and commit. It\'s that easy.')])]),e._v(" "),t("li",[t("p",[e._v("If you want to see your changes on your fork, you'll have to either")])])]),e._v(" "),t("p",[e._v("1- Rename the repo to "),t("code",[e._v(".github.io")])]),e._v(" "),t("ul",[t("li",[e._v("Set the Pages settings to build from the root of "),t("code",[e._v("gh-pages")])])]),e._v(" "),t("p",[e._v("2- (if you have node installed), run "),t("code",[e._v("npm install && npm run build && npm run start")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"what-to-do-and-what-not-to-do"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-to-do-and-what-not-to-do"}},[e._v("#")]),e._v(" What to do and what not to do?")]),e._v(" "),t("p",[e._v("You're allowed to pretty much change anything, as long as it follows all of these rules:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Do not")]),e._v(" make any promises unless you were given permission from the developers.")]),e._v(" "),t("li",[t("strong",[e._v("Do not")]),e._v(" spread misinformation and inaccurate content.")]),e._v(" "),t("li",[e._v("Although you can change everything else, "),t("strong",[e._v("do not touch .vuepress/config.js")]),e._v(". If you need to change something in it, let Crystall1nedev or CriticalRange know.")]),e._v(" "),t("li",[e._v("Never, never ever ever merge "),t("code",[e._v("gh-pages")]),e._v(" and "),t("code",[e._v("main")]),e._v(" into each other. gh-pages is the "),t("strong",[e._v("result")]),e._v(", main is the "),t("strong",[e._v("rough draft")]),e._v(".")]),e._v(" "),t("li",[t("strong",[e._v("Do not")]),e._v(" delete any dot files (.nvmrc, .gitattributes, etc)")])]),e._v(" "),t("p",[e._v("With all of these in mind, you're free to help us out with our website!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/36.a128fb7a.js b/assets/js/36.a128fb7a.js new file mode 100644 index 00000000..81d3be1c --- /dev/null +++ b/assets/js/36.a128fb7a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{340:function(e,t,a){"use strict";a.r(t);var o=a(8),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"random-crashes-during-gameplay"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#random-crashes-during-gameplay"}},[e._v("#")]),e._v(" Random crashes during gameplay")]),e._v(" "),t("p",[e._v("Make sure you aren't getting the warning due to too much allocated RAM. Even if you are close to the limit but not breaking it, RAM allocation might still be the cause of the crash. Try allocating 100-250MB less than the maximum, depending on your device. Keep in mind that when using big modpacks, you might also be crashing because you don't have enough allocated memory (that's if you see "),t("code",[e._v("java.lang.OutOfMemoryError")]),e._v(" in your log file).")]),e._v(" "),t("p",[e._v("Highest RAM allocation doesn't mean highest performance. Your might usually gain tens of FPS by figuring out which RAM allocation setting runs Pojav the best on your device.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/33.d941eda2.js b/assets/js/37.b9612398.js similarity index 53% rename from assets/js/33.d941eda2.js rename to assets/js/37.b9612398.js index 9953949d..d9b96f9d 100644 --- a/assets/js/33.d941eda2.js +++ b/assets/js/37.b9612398.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{337:function(t,s,o){"use strict";o.r(s);var e=o(8),i=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"customizing-the-on-screen-controls"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#customizing-the-on-screen-controls"}},[t._v("#")]),t._v(" Customizing the on-screen controls")]),t._v(" "),s("h2",{attrs:{id:"android"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),s("p",[t._v('There is "Custom controls" button in the main menu, by clicking that you will be able to change you custom controls.')]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/a476f630-c3a9-4c3c-83d1-ff39454d0105",width:"45%",height:"45%"}}),t._v(" "),s("p",[t._v("You can access the options by clicking the cogwheel at the top of the screen.")]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/8209a266-524e-45e2-b841-72f1d76aea43",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("After clicking the cogwheel, you get a drawer with the following options:")]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/d70b38b8-2396-4bfe-b405-390a369f3776",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("1- Adds a button of your liking.")]),t._v(" "),s("p",[t._v("2- Adds a button drawer, if you press it, your buttons that you assigned will show up.")]),t._v(" "),s("p",[t._v("3- Adds a joystick.")]),t._v(" "),s("p",[t._v("4- Loads custom controls.")]),t._v(" "),s("p",[t._v("5- Saves current custom controls.")]),t._v(" "),s("p",[t._v("6- Option to select default custom controls.")]),t._v(" "),s("p",[t._v("7- Exports current controls.")]),t._v(" "),s("h2",{attrs:{id:"ios"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),s("p",[t._v("To start editing your controlmap in iOS, head to top-left and press the sidebar. (shown in image)")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/Dev1ss0/Dev1ss0.github.io/main/images/Actions/ios/IMG_3219.png",width:"45%",height:"45%"}}),t._v(" "),s("p",[t._v("Press the custom controls button.")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/Dev1ss0/Dev1ss0.github.io/7d01c01011b0e135aac34849846a8fd48893ecbf/images/Actions/ios/IMG_3220.png",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("After that, long press anywhere for more options.")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/Dev1ss0/Dev1ss0.github.io/main/images/Actions/ios/IMG_3221.png",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("Now you will get a pop-up with the following options:")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/Dev1ss0/Dev1ss0.github.io/main/images/Actions/ios/IMG_3222.png",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("1- Exits the controlmap editor.")]),t._v(" "),s("p",[t._v("2- Saves the current layout/edited controlmap.")]),t._v(" "),s("p",[t._v("3- Loads an existing .json (controlmap) from the controlmap folder.")]),t._v(" "),s("p",[t._v("4- Adds a safe area where buttons are restricted from getting outside of the safe area, whilst not registering touches nor gestures outside the safe area.")]),t._v(" "),s("p",[t._v("5- Adds a button to your liking.")]),t._v(" "),s("p",[t._v("6- Adds a button drawer, has a function of adding a sub-button binded to its drawer. When pressed, buttons binded to it will show up, configurable to make it hold button instead of toggling.")]),t._v(" "),s("p",[t._v("7- Adds a joystick.")])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{339:function(t,s,o){"use strict";o.r(s);var e=o(8),r=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"customizing-the-on-screen-controls"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#customizing-the-on-screen-controls"}},[t._v("#")]),t._v(" Customizing the on-screen controls")]),t._v(" "),s("h2",{attrs:{id:"android"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),s("p",[t._v('There is "Custom controls" button in the main menu, by clicking that you will be able to change you custom controls.')]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/a476f630-c3a9-4c3c-83d1-ff39454d0105",width:"45%",height:"45%"}}),t._v(" "),s("p",[t._v("You can access the options by clicking the cogwheel at the top of the screen.")]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/8209a266-524e-45e2-b841-72f1d76aea43",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("After clicking the cogwheel, you get a drawer with the following options:")]),t._v(" "),s("img",{attrs:{src:"https://github.com/user-attachments/assets/d70b38b8-2396-4bfe-b405-390a369f3776",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("1- Adds a button of your liking.")]),t._v(" "),s("p",[t._v("2- Adds a button drawer, if you press it, your buttons that you assigned will show up.")]),t._v(" "),s("p",[t._v("3- Adds a joystick.")]),t._v(" "),s("p",[t._v("4- Loads custom controls.")]),t._v(" "),s("p",[t._v("5- Saves current custom controls.")]),t._v(" "),s("p",[t._v("6- Option to select default custom controls.")]),t._v(" "),s("p",[t._v("7- Exports current controls.")]),t._v(" "),s("h2",{attrs:{id:"ios"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),s("p",[t._v("To start editing your controlmap in iOS, head to top-left and press the sidebar. (shown in image)")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/whal-whales/random-imgs-repo-for-stuff/refs/heads/main/IMG_3219.png",width:"45%",height:"45%"}}),t._v(" "),s("p",[t._v("Press the custom controls button.")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/whal-whales/random-imgs-repo-for-stuff/refs/heads/main/IMG_3220-1.png",width:"45%",height:"45%"}}),t._v(" "),s("p",[t._v("After that, long press anywhere for more options.")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/whal-whales/random-imgs-repo-for-stuff/refs/heads/main/IMG_3221.png",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("Now you will get a pop-up with the following options:")]),t._v(" "),s("img",{attrs:{src:"https://raw.githubusercontent.com/whal-whales/random-imgs-repo-for-stuff/refs/heads/main/IMG_3222.png",width:"75%",height:"75%"}}),t._v(" "),s("p",[t._v("1- Exits the controlmap editor.")]),t._v(" "),s("p",[t._v("2- Saves the current layout/edited controlmap.")]),t._v(" "),s("p",[t._v("3- Loads an existing .json (controlmap) from the controlmap folder.")]),t._v(" "),s("p",[t._v("4- Adds a safe area where buttons are restricted from getting outside of the safe area, whilst not registering touches nor gestures outside the safe area.")]),t._v(" "),s("p",[t._v("5- Adds a button to your liking.")]),t._v(" "),s("p",[t._v("6- Adds a button drawer, has a function of adding a sub-button binded to its drawer. When pressed, buttons binded to it will show up, configurable to make it hold button instead of toggling.")]),t._v(" "),s("p",[t._v("7- Adds a joystick.")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/34.e1ed4fb0.js b/assets/js/38.620bfaf4.js similarity index 97% rename from assets/js/34.e1ed4fb0.js rename to assets/js/38.620bfaf4.js index f67c0b57..8aa8364c 100644 --- a/assets/js/34.e1ed4fb0.js +++ b/assets/js/38.620bfaf4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{336:function(t,o,e){"use strict";e.r(o);var r=e(8),s=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"installing-custom-versions-of-minecraft"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installing-custom-versions-of-minecraft"}},[t._v("#")]),t._v(" Installing custom versions of Minecraft")]),t._v(" "),o("p",[t._v("If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!")]),t._v(" "),o("h3",{attrs:{id:"installation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation:")]),t._v(" "),o("ol",[o("li",[t._v("If you are on Android, install "),o("a",{attrs:{href:"https://forum.xda-developers.com/showpost.php?p=23109280&postcount=2",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiXplorer")]),o("OutboundLink")],1),t._v(" and "),o("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.mixplorer.addon.archive",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiX Archive")]),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("Make a copy of the Minecraft version you want to modify")]),t._v(" "),o("li",[t._v("Rename the custom version "),o("strong",[t._v("folder")]),t._v(", "),o("strong",[t._v(".jar")]),t._v(" and "),o("strong",[t._v(".json")]),t._v(" to your desired custom version name (for example, "),o("strong",[t._v("foo")]),t._v(", "),o("strong",[t._v("foo.jar")]),t._v(", "),o("strong",[t._v("foo.json")]),t._v(")")]),t._v(" "),o("li",[t._v("Open the custom version's "),o("strong",[t._v(".json")]),t._v(" with MiX's "),o("strong",[t._v("Text Editor")])]),t._v(" "),o("li",[t._v("Remove "),o("code",[t._v('"downloads:{"client"...}')]),t._v(" as shown in the screenshot")])]),t._v(" "),o("p",[o("img",{attrs:{src:"https://user-images.githubusercontent.com/85581164/220926885-d25e911f-98c4-4989-af06-f1bd81acc7e2.jpg",alt:"custom2"}})]),t._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[t._v("Change "),o("code",[t._v('"id": "1.2.4"')]),t._v(" to "),o("code",[t._v('"id": "(your custom version name)"')])]),t._v(" "),o("li",[t._v("Change "),o("code",[t._v('"mainClass": "net.minecraft.launchwrapper.Launch"')]),t._v(" to "),o("code",[t._v('"mainClass": "net.minecraft.client.Minecraft"')])]),t._v(" "),o("li",[t._v("Save the "),o("strong",[t._v(".json")])]),t._v(" "),o("li",[t._v("Modify your "),o("strong",[t._v(".jar")]),t._v(" as desired, make sure to delete the "),o("code",[t._v("META-INF")]),t._v(" folder afterwards.")]),t._v(" "),o("li",[t._v("Start up your custom version!")])]),t._v(" "),o("h3",{attrs:{id:"notes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),o("ul",[o("li",[t._v("If your game is stuck at the Mojang screen afterwards, try deleting "),o("strong",[t._v("options.txt")])]),t._v(" "),o("li",[t._v("This guide is "),o("strong",[t._v("NOT")]),t._v(" for Babric or Cursed Fabric!")])])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{341:function(t,o,e){"use strict";e.r(o);var r=e(8),s=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"installing-custom-versions-of-minecraft"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installing-custom-versions-of-minecraft"}},[t._v("#")]),t._v(" Installing custom versions of Minecraft")]),t._v(" "),o("p",[t._v("If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!")]),t._v(" "),o("h3",{attrs:{id:"installation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation:")]),t._v(" "),o("ol",[o("li",[t._v("If you are on Android, install "),o("a",{attrs:{href:"https://forum.xda-developers.com/showpost.php?p=23109280&postcount=2",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiXplorer")]),o("OutboundLink")],1),t._v(" and "),o("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.mixplorer.addon.archive",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiX Archive")]),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("Make a copy of the Minecraft version you want to modify")]),t._v(" "),o("li",[t._v("Rename the custom version "),o("strong",[t._v("folder")]),t._v(", "),o("strong",[t._v(".jar")]),t._v(" and "),o("strong",[t._v(".json")]),t._v(" to your desired custom version name (for example, "),o("strong",[t._v("foo")]),t._v(", "),o("strong",[t._v("foo.jar")]),t._v(", "),o("strong",[t._v("foo.json")]),t._v(")")]),t._v(" "),o("li",[t._v("Open the custom version's "),o("strong",[t._v(".json")]),t._v(" with MiX's "),o("strong",[t._v("Text Editor")])]),t._v(" "),o("li",[t._v("Remove "),o("code",[t._v('"downloads:{"client"...}')]),t._v(" as shown in the screenshot")])]),t._v(" "),o("p",[o("img",{attrs:{src:"https://user-images.githubusercontent.com/85581164/220926885-d25e911f-98c4-4989-af06-f1bd81acc7e2.jpg",alt:"custom2"}})]),t._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[t._v("Change "),o("code",[t._v('"id": "1.2.4"')]),t._v(" to "),o("code",[t._v('"id": "(your custom version name)"')])]),t._v(" "),o("li",[t._v("Change "),o("code",[t._v('"mainClass": "net.minecraft.launchwrapper.Launch"')]),t._v(" to "),o("code",[t._v('"mainClass": "net.minecraft.client.Minecraft"')])]),t._v(" "),o("li",[t._v("Save the "),o("strong",[t._v(".json")])]),t._v(" "),o("li",[t._v("Modify your "),o("strong",[t._v(".jar")]),t._v(" as desired, make sure to delete the "),o("code",[t._v("META-INF")]),t._v(" folder afterwards.")]),t._v(" "),o("li",[t._v("Start up your custom version!")])]),t._v(" "),o("h3",{attrs:{id:"notes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),o("ul",[o("li",[t._v("If your game is stuck at the Mojang screen afterwards, try deleting "),o("strong",[t._v("options.txt")])]),t._v(" "),o("li",[t._v("This guide is "),o("strong",[t._v("NOT")]),t._v(" for Babric or Cursed Fabric!")])])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/39.886e2e22.js b/assets/js/39.886e2e22.js new file mode 100644 index 00000000..30d5629d --- /dev/null +++ b/assets/js/39.886e2e22.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{342:function(e,r,i){"use strict";i.r(r);var t=i(8),n=Object(t.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"device-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#device-requirements"}},[e._v("#")]),e._v(" Device requirements")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Minimum")]),e._v(" means 60 or more average FPS on 1.12.2 with "),r("a",{attrs:{href:"https://optifine.net/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" installed at lowest settings.")]),e._v(" "),r("li",[r("strong",[e._v("Recommended")]),e._v(" means 60 or more average FPS on 1.21.1 with "),r("a",{attrs:{href:"https://optifine.net/downloads",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" installed with the following settings:")]),e._v(" "),r("li",[e._v("10 Render Distance")]),e._v(" "),r("li",[e._v("Smooth Lighting")]),e._v(" "),r("li",[e._v("All animations")]),e._v(" "),r("li",[e._v("75% Resolution")])]),e._v(" "),r("h2",{attrs:{id:"android"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),r("h3",{attrs:{id:"minimum-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#minimum-requirements"}},[e._v("#")]),e._v(" Minimum requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Qualcomm Snapdragon 460 (or equivalent)")]),e._v(" "),r("li",[e._v("Android 5.0")]),e._v(" "),r("li",[e._v("1GB RAM")])]),e._v(" "),r("h3",{attrs:{id:"recommended-requirements"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recommended-requirements"}},[e._v("#")]),e._v(" Recommended requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Qualcomm Snapdragon 855 (or equivalent)")]),e._v(" "),r("li",[e._v("Android 8.0 and newer")]),e._v(" "),r("li",[e._v("6GB RAM or higher")])]),e._v(" "),r("h3",{attrs:{id:"chromeos"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#chromeos"}},[e._v("#")]),e._v(" ChromeOS")]),e._v(" "),r("ul",[r("li",[e._v("Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.")])]),e._v(" "),r("h2",{attrs:{id:"ios"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),r("h3",{attrs:{id:"minimum-requirements-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#minimum-requirements-2"}},[e._v("#")]),e._v(" Minimum requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Apple A8/A8X SoC")]),e._v(" "),r("li",[e._v("iOS 14/iPadOS 14 or higher\n"),r("ul",[r("li",[e._v("iOS/iPadOS 12 & 13 is losing support in PojavLauncher 2.3.")])])]),e._v(" "),r("li",[e._v("2GB RAM")])]),e._v(" "),r("h3",{attrs:{id:"recommended-requirements-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recommended-requirements-2"}},[e._v("#")]),e._v(" Recommended requirements:")]),e._v(" "),r("ul",[r("li",[e._v("Apple A14/A12X Bionic SoC")]),e._v(" "),r("li",[e._v("iOS/iPadOS 14 or higher")]),e._v(" "),r("li",[e._v("6GB RAM or higher")])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/36.9c67dd25.js b/assets/js/40.12a0e9be.js similarity index 93% rename from assets/js/36.9c67dd25.js rename to assets/js/40.12a0e9be.js index 4cb38b55..67eb7ff5 100644 --- a/assets/js/36.9c67dd25.js +++ b/assets/js/40.12a0e9be.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{340:function(e,r,t){"use strict";t.r(r);var o=t(8),a=Object(o.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"official-pojavlauncher-discord-server"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#official-pojavlauncher-discord-server"}},[e._v("#")]),e._v(" Official PojavLauncher Discord server")]),e._v(" "),r("p",[e._v("The only official invite for the PojavLauncher server, beware of invites created by other users.\n"),r("a",{attrs:{href:"https://discord.gg/pojavlauncher-724163890803638273",target:"_blank",rel:"noopener noreferrer"}},[e._v("invite link"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("NOTE: A Minecraft account is "),r("strong",[e._v("REQUIRED")]),e._v(" in order for you to be able to seek PojavLauncher-based support in the server.")])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{343:function(e,r,t){"use strict";t.r(r);var o=t(8),a=Object(o.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"official-pojavlauncher-discord-server"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#official-pojavlauncher-discord-server"}},[e._v("#")]),e._v(" Official PojavLauncher Discord server")]),e._v(" "),r("p",[e._v("The only official invite for the PojavLauncher server, beware of invites created by other users.\n"),r("a",{attrs:{href:"https://discord.gg/pojavlauncher-724163890803638273",target:"_blank",rel:"noopener noreferrer"}},[e._v("invite link"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("NOTE: A Minecraft account is "),r("strong",[e._v("REQUIRED")]),e._v(" in order for you to be able to seek PojavLauncher-based support in the server.")])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/37.ba1527db.js b/assets/js/41.a6ac8d41.js similarity index 86% rename from assets/js/37.ba1527db.js rename to assets/js/41.a6ac8d41.js index 3cc6d296..b54877ff 100644 --- a/assets/js/37.ba1527db.js +++ b/assets/js/41.a6ac8d41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{339:function(t,n,s){"use strict";s.r(n);var e=s(8),i=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"using-environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-environment-variables"}},[this._v("#")]),this._v(" Using environment variables")])])}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{344:function(t,n,s){"use strict";s.r(n);var e=s(8),i=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"using-environment-variables"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-environment-variables"}},[this._v("#")]),this._v(" Using environment variables")])])}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/38.4e77cb6f.js b/assets/js/42.5f6742fc.js similarity index 97% rename from assets/js/38.4e77cb6f.js rename to assets/js/42.5f6742fc.js index eda3f705..76cb6c69 100644 --- a/assets/js/38.4e77cb6f.js +++ b/assets/js/42.5f6742fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{341:function(e,t,o){"use strict";o.r(t);var a=o(8),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"exporting-videos-with-replay-mod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#exporting-videos-with-replay-mod"}},[e._v("#")]),e._v(" Exporting videos with Replay Mod")]),e._v(" "),t("ol",[t("li",[e._v("Download the ffmpeg binary "),t("a",{attrs:{href:"https://github.com/Khang-NT/ffmpeg-binary-android/releases/tag/2018-07-31",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Choose one based on your device’s architecture.\n"),t("ul",[t("li",[e._v("(For GitHub builds) Due to the limit of Replay’s command window, you'll need to rename the executable to a short name, like -> "),t("code",[e._v(":fr:")]),e._v(". Let’s call it "),t("code",[e._v("")]),e._v(".")])])]),e._v(" "),t("li",[e._v("Install an APK Editor from Google Play or anywhere else (Make sure to use safe sources such as APKPure).")]),e._v(" "),t("li",[e._v("Follow the instructions of the app to add the executable to "),t("code",[e._v("/lib/")]),e._v(" folder of the APK. Then build the APK and install it.\n"),t("ul",[t("li",[e._v("(Required for a clean install) Install required mods (Forge, Replay Mod).")])])]),e._v(" "),t("li",[e._v("Now launch Minecraft. We're not done yet, so force close it after launching.")]),e._v(" "),t("li",[e._v("Find latestlog.txt.\n"),t("ul",[t("li",[e._v("Open it and find this line: "),t("code",[e._v("Added custom env: POJAV_NATIVEDIR=")]),e._v(".")]),e._v(" "),t("li",[e._v("Copy the "),t("code",[e._v("")]),e._v(" part.")])])]),e._v(" "),t("li",[e._v("Launch the game again, go to Replay Viewer and load the replay you want to export.")]),e._v(" "),t("li",[e._v("Follow Replay’s instructions to add keyframes, then (press T show mouse cursor and) click at "),t("code",[e._v("Render Camera Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Scroll to the bottom, paste the text you copied in step 5 into the first command line window, then write "),t("code",[e._v("/")]),e._v(" (step 1) at the end of the text line.")]),e._v(" "),t("li",[e._v("Tap "),t("code",[e._v("Render")]),e._v(" and enjoy your video.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{345:function(e,t,o){"use strict";o.r(t);var a=o(8),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"exporting-videos-with-replay-mod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#exporting-videos-with-replay-mod"}},[e._v("#")]),e._v(" Exporting videos with Replay Mod")]),e._v(" "),t("ol",[t("li",[e._v("Download the ffmpeg binary "),t("a",{attrs:{href:"https://github.com/Khang-NT/ffmpeg-binary-android/releases/tag/2018-07-31",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". Choose one based on your device’s architecture.\n"),t("ul",[t("li",[e._v("(For GitHub builds) Due to the limit of Replay’s command window, you'll need to rename the executable to a short name, like -> "),t("code",[e._v(":fr:")]),e._v(". Let’s call it "),t("code",[e._v("")]),e._v(".")])])]),e._v(" "),t("li",[e._v("Install an APK Editor from Google Play or anywhere else (Make sure to use safe sources such as APKPure).")]),e._v(" "),t("li",[e._v("Follow the instructions of the app to add the executable to "),t("code",[e._v("/lib/")]),e._v(" folder of the APK. Then build the APK and install it.\n"),t("ul",[t("li",[e._v("(Required for a clean install) Install required mods (Forge, Replay Mod).")])])]),e._v(" "),t("li",[e._v("Now launch Minecraft. We're not done yet, so force close it after launching.")]),e._v(" "),t("li",[e._v("Find latestlog.txt.\n"),t("ul",[t("li",[e._v("Open it and find this line: "),t("code",[e._v("Added custom env: POJAV_NATIVEDIR=")]),e._v(".")]),e._v(" "),t("li",[e._v("Copy the "),t("code",[e._v("")]),e._v(" part.")])])]),e._v(" "),t("li",[e._v("Launch the game again, go to Replay Viewer and load the replay you want to export.")]),e._v(" "),t("li",[e._v("Follow Replay’s instructions to add keyframes, then (press T show mouse cursor and) click at "),t("code",[e._v("Render Camera Path")]),e._v(".")]),e._v(" "),t("li",[e._v("Scroll to the bottom, paste the text you copied in step 5 into the first command line window, then write "),t("code",[e._v("/")]),e._v(" (step 1) at the end of the text line.")]),e._v(" "),t("li",[e._v("Tap "),t("code",[e._v("Render")]),e._v(" and enjoy your video.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/39.c3a3447e.js b/assets/js/43.8db0cfa9.js similarity index 77% rename from assets/js/39.c3a3447e.js rename to assets/js/43.8db0cfa9.js index 6e893040..c4a8a98b 100644 --- a/assets/js/39.c3a3447e.js +++ b/assets/js/43.8db0cfa9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{342:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{347:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/40.cd55fcca.js b/assets/js/44.d1fb2c9a.js similarity index 86% rename from assets/js/40.cd55fcca.js rename to assets/js/44.d1fb2c9a.js index 670e3c76..8868c277 100644 --- a/assets/js/40.cd55fcca.js +++ b/assets/js/44.d1fb2c9a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{343:function(t,n,o){"use strict";o.r(n);var a=o(8),s=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"downloading-a-copy-of-minecraft"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downloading-a-copy-of-minecraft"}},[this._v("#")]),this._v(" Downloading a copy of Minecraft")])])}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{346:function(t,n,o){"use strict";o.r(n);var a=o(8),s=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"downloading-a-copy-of-minecraft"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downloading-a-copy-of-minecraft"}},[this._v("#")]),this._v(" Downloading a copy of Minecraft")])])}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/41.c7e98223.js b/assets/js/45.b9a7280b.js similarity index 98% rename from assets/js/41.c7e98223.js rename to assets/js/45.b9a7280b.js index 5a01c96b..cce7bb62 100644 --- a/assets/js/41.c7e98223.js +++ b/assets/js/45.b9a7280b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{345:function(e,t,a){"use strict";a.r(t);var o=a(8),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"system-support-in-future-versions-of-pojavlauncher-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-support-in-future-versions-of-pojavlauncher-ios"}},[e._v("#")]),e._v(" System support in future versions of PojavLauncher iOS")]),e._v(" "),t("p",[t("em",[e._v("This announcement will be covering the next 3 releases of PojavLauncher iOS.")])]),e._v(" "),t("p",[e._v("We've made some great strides with the iOS port of PojavLauncher: fixing "),t("RouterLink",{attrs:{to:"/OGL32.html"}},[e._v("1.17 and newer")]),e._v(", bringing "),t("RouterLink",{attrs:{to:"/JDK8.html"}},[e._v("OpenJDK 8 to iOS")]),e._v(", and now unveiling an "),t("RouterLink",{attrs:{to:"/UNJAIL.html"}},[e._v("jailed variant")]),e._v(". However, all of the advancements we're making also stirred up old conversations, and we've come to a final conclusion:")],1),e._v(" "),t("p",[t("strong",[e._v("A future release of PojavLauncher will require iOS 14.0 and later.")])]),e._v(" "),t("h2",{attrs:{id:"but-why"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#but-why"}},[e._v("#")]),e._v(" But why?")]),e._v(" "),t("p",[e._v("Supporting iOS 12.0 and newer was a feat of engineering. However, it created multiple issues with feature support and user experience. We need to verify that our code works on iOS 12 before going ahead and compiling--if it does not, this complicates our development as we are faced with two options: dropping the feature on older versions, or importing external libraries. This causes slower development times, or lack of the feature entirely for our users.")]),e._v(" "),t("p",[e._v("We also observed the userbase currently playing on PojavLauncher. Most of the users asking for support in our Discord server (which is many times more active than the Issues tab on the GitHub repository) are already running iOS 14.0 or newer, and a few cases of users on iOS 13. We barely see users running iOS 12 anymore, and now that PojavLauncher works jailed, users can update to a newer release of iOS while still retaining Java Edition.")]),e._v(" "),t("p",[e._v("This decision also comes after we understood that we don't really have the ability to test on these older versions anymore. Our devices are already running iOS 14.0+, and so are most of our testers.")]),e._v(" "),t("h2",{attrs:{id:"so-what-happens-now"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#so-what-happens-now"}},[e._v("#")]),e._v(" So what happens now?")]),e._v(" "),t("p",[e._v("Things are going to get somewhat complex, but this document will sort these things out.")]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.1 - Recap")]),e._v(" "),t("p",[e._v("PojavLauncher 2.1 was largely unchanged from its original plans. Just to recap, its key features:")]),e._v(" "),t("ul",[t("li",[e._v("New split user interface to allow switching menus with ease")]),e._v(" "),t("li",[e._v("Rewritten preferences menu")]),e._v(" "),t("li",[e._v("Transitioned code to Objective-C from Java")]),e._v(" "),t("li",[e._v("First release with compatibility unjailbroken")]),e._v(" "),t("li",[e._v("Final release with jailbreak-specific packages")])]),e._v(" "),t("p",[e._v("This release will also begin to warn users with 1GB of memory about the incoming end-of-life.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.2 - 1GB EOL")]),e._v(" "),t("p",[e._v("PojavLauncher 2.2 was already planned to drop the Apple A7-equipped devices from support, due to performance and stability issues. This has been extended all devices with less than 1 gigabyte of total memory:")]),e._v(" "),t("ul",[t("li",[e._v("iPhone 5s")]),e._v(" "),t("li",[e._v("iPhone 6")]),e._v(" "),t("li",[e._v("iPhone 6 Plus")]),e._v(" "),t("li",[e._v("iPad mini (2nd generation)")]),e._v(" "),t("li",[e._v("iPad mini (3rd generation)")]),e._v(" "),t("li",[e._v("iPad Air (1st generation)")]),e._v(" "),t("li",[e._v("iPod touch (6th generation)")])]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("a7_allow")]),e._v(" boolean in the preferences file has been replaced with "),t("code",[e._v("force_unsupported_launch")]),e._v(" to reflect the change. As stated before, support for these devices will end 3 weeks after 2.2 releases, or immediately, for you, if this boolean is toggled.")]),e._v(" "),t("p",[e._v("This release will also begin to warn users on iOS 12 or 13 about the incoming end-of-life. If you are using a device that is capable of running iOS 14 or later, the warning will additionally tell you to upgrade to a newer version of iOS.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.3 - iOS 14.0+ begins")]),e._v(" "),t("p",[e._v("PojavLauncher 2.3 will begin the end-of-life process for iOS 12/13 users. Taking a similar approach to 2.2, the "),t("code",[e._v("force_unsupported_launch")]),e._v(" boolean can be toggled to override the behaviour of the launcher not opening. Support for these versions will end 3 weeks after 2.3 releases, or immediately, for you, if this boolean is toggled.")]),e._v(" "),t("p",[e._v("As part of this deprecation, beta builds of PojavLauncher 2.4 will move to iOS 14.0 and newer APIs. Moving to these APIs may break the boolean's ability to continue launching the application.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.4 - iOS 14.0+ completed")]),e._v(" "),t("p",[e._v("PojavLauncher 2.4 will complete the transition to iOS 14.0 APIs and be incompatible with iOS 12/13 without modification to the source code.")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{349:function(e,t,a){"use strict";a.r(t);var o=a(8),i=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"system-support-in-future-versions-of-pojavlauncher-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-support-in-future-versions-of-pojavlauncher-ios"}},[e._v("#")]),e._v(" System support in future versions of PojavLauncher iOS")]),e._v(" "),t("p",[t("em",[e._v("This announcement will be covering the next 3 releases of PojavLauncher iOS.")])]),e._v(" "),t("p",[e._v("We've made some great strides with the iOS port of PojavLauncher: fixing "),t("RouterLink",{attrs:{to:"/OGL32.html"}},[e._v("1.17 and newer")]),e._v(", bringing "),t("RouterLink",{attrs:{to:"/JDK8.html"}},[e._v("OpenJDK 8 to iOS")]),e._v(", and now unveiling an "),t("RouterLink",{attrs:{to:"/UNJAIL.html"}},[e._v("jailed variant")]),e._v(". However, all of the advancements we're making also stirred up old conversations, and we've come to a final conclusion:")],1),e._v(" "),t("p",[t("strong",[e._v("A future release of PojavLauncher will require iOS 14.0 and later.")])]),e._v(" "),t("h2",{attrs:{id:"but-why"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#but-why"}},[e._v("#")]),e._v(" But why?")]),e._v(" "),t("p",[e._v("Supporting iOS 12.0 and newer was a feat of engineering. However, it created multiple issues with feature support and user experience. We need to verify that our code works on iOS 12 before going ahead and compiling--if it does not, this complicates our development as we are faced with two options: dropping the feature on older versions, or importing external libraries. This causes slower development times, or lack of the feature entirely for our users.")]),e._v(" "),t("p",[e._v("We also observed the userbase currently playing on PojavLauncher. Most of the users asking for support in our Discord server (which is many times more active than the Issues tab on the GitHub repository) are already running iOS 14.0 or newer, and a few cases of users on iOS 13. We barely see users running iOS 12 anymore, and now that PojavLauncher works jailed, users can update to a newer release of iOS while still retaining Java Edition.")]),e._v(" "),t("p",[e._v("This decision also comes after we understood that we don't really have the ability to test on these older versions anymore. Our devices are already running iOS 14.0+, and so are most of our testers.")]),e._v(" "),t("h2",{attrs:{id:"so-what-happens-now"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#so-what-happens-now"}},[e._v("#")]),e._v(" So what happens now?")]),e._v(" "),t("p",[e._v("Things are going to get somewhat complex, but this document will sort these things out.")]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.1 - Recap")]),e._v(" "),t("p",[e._v("PojavLauncher 2.1 was largely unchanged from its original plans. Just to recap, its key features:")]),e._v(" "),t("ul",[t("li",[e._v("New split user interface to allow switching menus with ease")]),e._v(" "),t("li",[e._v("Rewritten preferences menu")]),e._v(" "),t("li",[e._v("Transitioned code to Objective-C from Java")]),e._v(" "),t("li",[e._v("First release with compatibility unjailbroken")]),e._v(" "),t("li",[e._v("Final release with jailbreak-specific packages")])]),e._v(" "),t("p",[e._v("This release will also begin to warn users with 1GB of memory about the incoming end-of-life.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.2 - 1GB EOL")]),e._v(" "),t("p",[e._v("PojavLauncher 2.2 was already planned to drop the Apple A7-equipped devices from support, due to performance and stability issues. This has been extended all devices with less than 1 gigabyte of total memory:")]),e._v(" "),t("ul",[t("li",[e._v("iPhone 5s")]),e._v(" "),t("li",[e._v("iPhone 6")]),e._v(" "),t("li",[e._v("iPhone 6 Plus")]),e._v(" "),t("li",[e._v("iPad mini (2nd generation)")]),e._v(" "),t("li",[e._v("iPad mini (3rd generation)")]),e._v(" "),t("li",[e._v("iPad Air (1st generation)")]),e._v(" "),t("li",[e._v("iPod touch (6th generation)")])]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("a7_allow")]),e._v(" boolean in the preferences file has been replaced with "),t("code",[e._v("force_unsupported_launch")]),e._v(" to reflect the change. As stated before, support for these devices will end 3 weeks after 2.2 releases, or immediately, for you, if this boolean is toggled.")]),e._v(" "),t("p",[e._v("This release will also begin to warn users on iOS 12 or 13 about the incoming end-of-life. If you are using a device that is capable of running iOS 14 or later, the warning will additionally tell you to upgrade to a newer version of iOS.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.3 - iOS 14.0+ begins")]),e._v(" "),t("p",[e._v("PojavLauncher 2.3 will begin the end-of-life process for iOS 12/13 users. Taking a similar approach to 2.2, the "),t("code",[e._v("force_unsupported_launch")]),e._v(" boolean can be toggled to override the behaviour of the launcher not opening. Support for these versions will end 3 weeks after 2.3 releases, or immediately, for you, if this boolean is toggled.")]),e._v(" "),t("p",[e._v("As part of this deprecation, beta builds of PojavLauncher 2.4 will move to iOS 14.0 and newer APIs. Moving to these APIs may break the boolean's ability to continue launching the application.")])]),e._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[e._v("PojavLauncher 2.4 - iOS 14.0+ completed")]),e._v(" "),t("p",[e._v("PojavLauncher 2.4 will complete the transition to iOS 14.0 APIs and be incompatible with iOS 12/13 without modification to the source code.")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/46.67a18a8f.js b/assets/js/46.67a18a8f.js new file mode 100644 index 00000000..98463c31 --- /dev/null +++ b/assets/js/46.67a18a8f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{350:function(t,e,n){"use strict";n.r(e);var a=n(8),o=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"crash-when-executing-a-jar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#crash-when-executing-a-jar"}},[t._v("#")]),t._v(" Crash when executing a jar")]),t._v(" "),e("p",[t._v("This is not how it works, mods have to be installed into the "),e("strong",[t._v(".minecraft/mods")]),t._v(" directory. Mod loaders (e. g. Forge and Fabric) and some mods like OptiFine and Iris have an integrated installer, this is not the case for the absolute majority of mods, meaning they don't have any GUI that would run when opening them with the Execute .jar button in the launcher. If you don't know how to get into the "),e("strong",[t._v(".minecraft")]),t._v(" directory, please read the article on how to access it.")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/42.b2cfe607.js b/assets/js/47.52ecada5.js similarity index 86% rename from assets/js/42.b2cfe607.js rename to assets/js/47.52ecada5.js index d0fe4669..56acecd0 100644 --- a/assets/js/42.b2cfe607.js +++ b/assets/js/47.52ecada5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{346:function(t,s,a){"use strict";a.r(s);var n=a(8),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"adding-custom-java-arguments"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-custom-java-arguments"}},[this._v("#")]),this._v(" Adding custom Java arguments")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{352:function(t,s,a){"use strict";a.r(s);var n=a(8),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"adding-custom-java-arguments"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-custom-java-arguments"}},[this._v("#")]),this._v(" Adding custom Java arguments")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/48.12c66971.js b/assets/js/48.12c66971.js new file mode 100644 index 00000000..6224b546 --- /dev/null +++ b/assets/js/48.12c66971.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{351:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"installing-java-runtimes-manually"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-java-runtimes-manually"}},[e._v("#")]),e._v(" Installing Java runtimes manually")]),e._v(" "),t("p",[e._v("If you for whatever reason decided to install "),t("code",[e._v("app-debug-noruntime")]),e._v(" or you want to update for whatever reason, here's how you do it.")]),e._v(" "),t("ol",[t("li",[e._v("Go to the "),t("strong",[e._v("android-openjdk-build-multiarch")]),e._v(" repo on GitHub, pick the branch you want (e. g. buildjre8 or buildjre17-21.)")]),e._v(" "),t("li",[e._v("Log into GitHub, else you won't be able to download the runtime.")]),e._v(" "),t("li",[e._v("Click on the name of the action, then download the "),t("code",[e._v("pojav")]),e._v(" version of the runtime (e. g. "),t("code",[e._v("jre17-pojav")]),e._v("). Do not download jdk, your game might crash with it.")]),e._v(" "),t("li",[e._v("Extract the zip with your file manager. "),t("a",{attrs:{href:"https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver",target:"_blank",rel:"noopener noreferrer"}},[e._v("ZArchiver"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://mixplorer.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MiXplorer"),t("OutboundLink")],1),e._v(" are recommended.")]),e._v(" "),t("li",[e._v("Open Pojav and go to Settings → Java Tweaks → Runtime Manager → Add new, then select the .tar.xz file you just extracted from the zip.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/49.3d991421.js b/assets/js/49.3d991421.js new file mode 100644 index 00000000..58c3d774 --- /dev/null +++ b/assets/js/49.3d991421.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{353:function(t,e,a){"use strict";a.r(e);var r=a(8),i=Object(r.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"which-java-version-to-use"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#which-java-version-to-use"}},[this._v("#")]),this._v(" Which Java version to use?")]),this._v(" "),t("p",[this._v("Generally, this is what you want to know:\n- Minecraft 1.17 and newer: Java 21\n- Minecraft 1.16.5 and older: Java 8")]),this._v(" "),t("p",[this._v("Note: some modded Minecraft versions require a different Java runtime than normal (e. g. Cursed Fabric or Babric for Minecraft b1.7.3). Others might work even when using a different runtime (e. g. Fabric for Minecraft 1.16.5 allows using Java 17). However, some mods, notably OptiFabric, might stop working altogether.")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/43.71116029.js b/assets/js/50.200732ae.js similarity index 54% rename from assets/js/43.71116029.js rename to assets/js/50.200732ae.js index 26082bb9..1492d928 100644 --- a/assets/js/43.71116029.js +++ b/assets/js/50.200732ae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{348:function(e,t,a){"use strict";a.r(t);var o=a(8),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"ios-and-jit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios-and-jit"}},[e._v("#")]),e._v(' iOS and "JIT"')]),e._v(" "),t("h2",{attrs:{id:"what-is-jit-and-why-do-i-care"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-jit-and-why-do-i-care"}},[e._v("#")]),e._v(" What is JIT and why do I care?")]),e._v(" "),t("p",[e._v("JIT stands for "),t("strong",[e._v("just-in-time compilation")]),e._v(", and (although not specific to Java), it serves as a method of executing Java code quicker then its alternatives, by compiling "),t("em",[e._v("essential instructions")]),e._v(" at runtime, rather than its slower alternatives that compile "),t("em",[e._v("all")]),e._v(" code at runtime repeatedly or writing in a less portable, hardware-level format. It is the fastest™ method to running Minecraft: Java Edition on mobile devices, essentially required for a more pleasant gaming experience.")]),e._v(" "),t("p",[e._v("On Apple's mobile platforms (iOS, iPadOS, tvOS, in our case), a security feature known as "),t("strong",[e._v("code-signing")]),e._v(" is deeply rooted in the operating system. It serves to verify that applications haven't been tampered with after they were installed by a user, done so that malicious payload cannot be installed after-the-fact by a malicious user(e.g. hackers). However, due to the process in which code-signing works, this prevents JIT from functioning properly as it mainly requires reading code, modifying it, and then executing it in some fashion (whether that be by copying the code to a new location in memory, executing directly, or mirroring it).")]),e._v(" "),t("h2",{attrs:{id:"what-does-this-mean-for-pojavlauncher"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-does-this-mean-for-pojavlauncher"}},[e._v("#")]),e._v(" What does this mean for PojavLauncher?")]),e._v(" "),t("h3",{attrs:{id:"jailbroken-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#jailbroken-devices"}},[e._v("#")]),e._v(" Jailbroken devices")]),e._v(" "),t("p",[e._v("Users with Jailbroken devices don't need to worry about JIT requirements, as PojavLauncher is specially built to detect jailbreaks and automatically enable new features.")]),e._v(" "),t("h3",{attrs:{id:"unjailbroken-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unjailbroken-devices"}},[e._v("#")]),e._v(" Unjailbroken devices")]),e._v(" "),t("p",[e._v("Users with Unjailbroken devices can see two different outcomes, based on what they used to sideload PojavLauncher.")]),e._v(" "),t("h4",{attrs:{id:"trollstore"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#trollstore"}},[e._v("#")]),e._v(" TrollStore")]),e._v(" "),t("p",[e._v("If you used TrollStore to sideload PojavLauncher, good news: PojavLauncher takes advantage of the extended entitlements with TrollStore and automatically enables JIT when launched.")]),e._v(" "),t("h4",{attrs:{id:"normal-sideload"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#normal-sideload"}},[e._v("#")]),e._v(" Normal sideload")]),e._v(" "),t("p",[e._v("If you sideload normally, you will need to enable JIT in some way. The most common method is to attach a debug server to the application while it's running - AltStore, SideStore, SideJITServer, and Jitterbug all of these use this method to enable JIT.")]),e._v(" "),t("p",[e._v("The only downside to this method is that you are required to be connected to a WiFi network in order to enable JIT. (*)")]),e._v(" "),t("p",[e._v("(*) - Enabling JIT on iOS 17.x & iOS 18 betas (at the moment) can only be enabled through AltJIT (macOS only) or SideJITServer, which requires a computer (Windows, MacOS and Linux only). This is because these methods utilize pymobiledevice3 to enable JIT due to changes in iOS.")]),e._v(" "),t("p",[e._v("Methods to enable JIT:")]),e._v(" "),t("ul",[t("li",[t("p",[t("a",{attrs:{href:"https://faq.altstore.io/how-to-use-altstore/altjit",target:"_blank",rel:"noopener noreferrer"}},[e._v("AltStore AltJIT"),t("OutboundLink")],1),e._v(" (*)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/osy/Jitterbug/tree/main/Jitterbug",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jitterbug"),t("OutboundLink")],1),e._v(" (^)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://docs.sidestore.io/docs/faq/#:~:text=Can%20I%20activate,selecting%20'Enable%20JIT'",target:"_blank",rel:"noopener noreferrer"}},[e._v("SideStore SideJIT"),t("OutboundLink")],1),e._v(" (^)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://docs.sidestore.io/docs/intro",target:"_blank",rel:"noopener noreferrer"}},[e._v("SideStore Anisette"),t("OutboundLink")],1),e._v(" (^)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/nythepegasus/SideJITServer",target:"_blank",rel:"noopener noreferrer"}},[e._v("SideJITServer"),t("OutboundLink")],1),e._v(" (!)")])])]),e._v(" "),t("p",[e._v("(*) - AltJIT for iOS 17.x & iOS 18 betas only works on macOS. Requires pymobiledevice3.")]),e._v(" "),t("p",[e._v("(^) - Does not work for iOS 17.x & iOS 18 betas, as enabling JIT will be done with pymobiledevice3.")]),e._v(" "),t("p",[e._v("(!) - Does not work for iOS 16.x or below, use the other methods listed above to enable JIT. This method is meant for iOS 17.x & iOS 18 betas.")]),e._v(" "),t("p",[e._v("Methods not listed here are not confirmed or recommended by us for use with PojavLauncher.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{354:function(e,t,a){"use strict";a.r(t);var o=a(8),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"ios-and-jit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios-and-jit"}},[e._v("#")]),e._v(' iOS and "JIT"')]),e._v(" "),t("h2",{attrs:{id:"what-is-jit-and-why-do-i-care"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-jit-and-why-do-i-care"}},[e._v("#")]),e._v(" What is JIT and why do I care?")]),e._v(" "),t("p",[e._v("JIT stands for "),t("strong",[e._v("just-in-time compilation")]),e._v(", and (although not specific to Java), it serves as a method of executing Java code quicker then its alternatives, by compiling "),t("em",[e._v("essential instructions")]),e._v(" at runtime, rather than its slower alternatives that compile "),t("em",[e._v("all")]),e._v(" code at runtime repeatedly or writing in a less portable, hardware-level format. It is the fastest™ method to running Minecraft: Java Edition on mobile devices, essentially required for a more pleasant gaming experience.")]),e._v(" "),t("p",[e._v("On Apple's mobile platforms (iOS, iPadOS, tvOS, in our case), a security feature known as "),t("strong",[e._v("code-signing")]),e._v(" is deeply rooted in the operating system. It serves to verify that applications haven't been tampered with after they were installed by a user, done so that malicious payload cannot be installed after-the-fact by a malicious user(e.g. hackers). However, due to the process in which code-signing works, this prevents JIT from functioning properly as it mainly requires reading code, modifying it, and then executing it in some fashion (whether that be by copying the code to a new location in memory, executing directly, or mirroring it).")]),e._v(" "),t("h2",{attrs:{id:"what-does-this-mean-for-pojavlauncher"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-does-this-mean-for-pojavlauncher"}},[e._v("#")]),e._v(" What does this mean for PojavLauncher?")]),e._v(" "),t("h3",{attrs:{id:"jailbroken-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#jailbroken-devices"}},[e._v("#")]),e._v(" Jailbroken devices")]),e._v(" "),t("p",[e._v("Users with Jailbroken devices don't need to worry about JIT requirements, as PojavLauncher is specially built to detect jailbreaks and automatically enable new features.")]),e._v(" "),t("h3",{attrs:{id:"unjailbroken-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#unjailbroken-devices"}},[e._v("#")]),e._v(" Unjailbroken devices")]),e._v(" "),t("p",[e._v("Users with Unjailbroken devices can see two different outcomes, based on what they used to sideload PojavLauncher.")]),e._v(" "),t("h4",{attrs:{id:"trollstore"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#trollstore"}},[e._v("#")]),e._v(" TrollStore")]),e._v(" "),t("p",[e._v("If you used TrollStore to sideload PojavLauncher, good news: PojavLauncher takes advantage of the extended entitlements with TrollStore and automatically enables JIT when launched.")]),e._v(" "),t("h4",{attrs:{id:"normal-sideload"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#normal-sideload"}},[e._v("#")]),e._v(" Normal sideload")]),e._v(" "),t("p",[e._v("If you sideload normally, you will need to enable JIT in some way. The most common method is to attach a debug server to the application while it's running - AltStore, SideStore, SideJITServer, and Jitterbug all of these use this method to enable JIT.")]),e._v(" "),t("p",[e._v("The only downside to this method is that you are required to be connected to a WiFi network in order to enable JIT. (*)")]),e._v(" "),t("p",[e._v("(*) - Enabling JIT on iOS 17.0.1+ & iOS 18 betas (at the moment) can only be enabled through AltJIT (macOS only) or SideJITServer, which requires a computer (Windows, MacOS and Linux only). This is because these methods utilize pymobiledevice3 to enable JIT due to changes in iOS.")]),e._v(" "),t("h2",{attrs:{id:"what-are-the-methods-to-enable-jit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-are-the-methods-to-enable-jit"}},[e._v("#")]),e._v(" What are the methods to enable JIT?")]),e._v(" "),t("p",[e._v("The methods to enable JIT can be found "),t("a",{attrs:{href:"https://github.com/ItAnthon/JIT-on-iOS",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Methods not listed here are not confirmed or recommended by us for use with PojavLauncher.")]),e._v(" "),t("h2",{attrs:{id:"so-how-do-i-enable-jit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#so-how-do-i-enable-jit"}},[e._v("#")]),e._v(" So how do I enable JIT?")]),e._v(" "),t("ul",[t("li",[t("p",[t("a",{attrs:{href:"https://havoc.app/package/trollstorelite",target:"_blank",rel:"noopener noreferrer"}},[e._v("TrollStore Lite"),t("OutboundLink")],1),e._v(" (!)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://ios.cfw.guide/installing-trollstore",target:"_blank",rel:"noopener noreferrer"}},[e._v("TrollStore"),t("OutboundLink")],1),e._v(" (@)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://faq.altstore.io/how-to-use-altstore/altjit",target:"_blank",rel:"noopener noreferrer"}},[e._v("AltStore AltJIT"),t("OutboundLink")],1),e._v(" (#)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/osy/Jitterbug/tree/main/Jitterbug",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jitterbug"),t("OutboundLink")],1),e._v(" ($)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://docs.sidestore.io/docs/faq#can-i-activate-jit",target:"_blank",rel:"noopener noreferrer"}},[e._v("SideStore"),t("OutboundLink")],1),e._v(" ($)")])]),e._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/nythepegasus/SideJITServer",target:"_blank",rel:"noopener noreferrer"}},[e._v("SideJITServer"),t("OutboundLink")],1),e._v(" (%)")])])]),e._v(" "),t("p",[e._v("(!) - Limited to Jailbroken devices only. (JIT is granted by the Jailbreak itself)")]),e._v(" "),t("p",[e._v("(@) - Limited to devices with the CoreTrust bug. (iOS 14.0 - iOS 16.6.1 & iOS 17.0)")]),e._v(" "),t("p",[e._v("(#) - AltJIT for iOS 17.x & iOS 18 betas only works on macOS. Requires pymobiledevice3.")]),e._v(" "),t("p",[e._v("($) - Does not work for iOS 17.x & iOS 18 betas, as enabling JIT will be done with pymobiledevice3.")]),e._v(" "),t("p",[e._v("(%) - Does not work for iOS 16.x or below, use the other methods listed above to enable JIT. This method is meant for iOS 17.x & iOS 18 betas.")]),e._v(" "),t("h2",{attrs:{id:"methods-coming-soon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#methods-coming-soon"}},[e._v("#")]),e._v(" Methods coming Soon:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("JITStreamer 2.0 (^)")])]),e._v(" "),t("li",[t("p",[e._v("UTM SE (^)")])])]),e._v(" "),t("p",[e._v("(^) - iOS 17.4+ Only")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/44.9745a1bc.js b/assets/js/51.b1bf3cc8.js similarity index 96% rename from assets/js/44.9745a1bc.js rename to assets/js/51.b1bf3cc8.js index 1d8fa5b9..22ca22a5 100644 --- a/assets/js/44.9745a1bc.js +++ b/assets/js/51.b1bf3cc8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{347:function(e,a,o){"use strict";o.r(a);var n=o(8),r=Object(n.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"is-pojavlauncher-legal-and-safe-to-use"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-pojavlauncher-legal-and-safe-to-use"}},[e._v("#")]),e._v(" Is PojavLauncher legal and safe to use?")]),e._v(" "),a("p",[e._v("Although in the past it may have not been the case, PojavLauncher is now legal in Microsoft's perspective. This is due to our objective to prevent piracy with our launcher, and reject offering support by any means for those who do not own the game.")]),e._v(" "),a("p",[e._v("PojavLauncher also abides by the Minecraft EULA, providing a free and open-source launcher that does not redistribute game files on any other server asides Mojang's.")]),e._v(" "),a("p",[e._v("Authentication and downloads are performed directly with Mojang's servers--PojavLauncher never collects any of your personal information such as credentials or data, as your information is only stored on-device where only you can access it.")]),e._v(" "),a("p",[e._v("PojavLauncher does not cause harm to your device, and does not distribute harmful programs and executables.")]),e._v(" "),a("ul",[a("li",[e._v("This cannot be verified if you acquire PojavLauncher from a source that is not official(e.g. pgyer.com, ipaomtk.com, etc.).")]),e._v(" "),a("li",[e._v("For jailbroken iOS users: jailbreaking can be considered a security risk (which is the reason why Apple is against it) so be cautious when jailbroken.")]),e._v(" "),a("li",[e._v("Other Minecraft: Java Edition on Android/iOS apps highly likely steals assets and/or code from PojavLauncher. "),a("strong",[e._v("They are not owned nor managed by PojavLauncherTeam.")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{356:function(e,a,o){"use strict";o.r(a);var n=o(8),r=Object(n.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"is-pojavlauncher-legal-and-safe-to-use"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-pojavlauncher-legal-and-safe-to-use"}},[e._v("#")]),e._v(" Is PojavLauncher legal and safe to use?")]),e._v(" "),a("p",[e._v("Although in the past it may have not been the case, PojavLauncher is now legal in Microsoft's perspective. This is due to our objective to prevent piracy with our launcher, and reject offering support by any means for those who do not own the game.")]),e._v(" "),a("p",[e._v("PojavLauncher also abides by the Minecraft EULA, providing a free and open-source launcher that does not redistribute game files on any other server asides Mojang's.")]),e._v(" "),a("p",[e._v("Authentication and downloads are performed directly with Mojang's servers--PojavLauncher never collects any of your personal information such as credentials or data, as your information is only stored on-device where only you can access it.")]),e._v(" "),a("p",[e._v("PojavLauncher does not cause harm to your device, and does not distribute harmful programs and executables.")]),e._v(" "),a("ul",[a("li",[e._v("This cannot be verified if you acquire PojavLauncher from a source that is not official(e.g. pgyer.com, ipaomtk.com, etc.).")]),e._v(" "),a("li",[e._v("For jailbroken iOS users: jailbreaking can be considered a security risk (which is the reason why Apple is against it) so be cautious when jailbroken.")]),e._v(" "),a("li",[e._v("Other Minecraft: Java Edition on Android/iOS apps highly likely steals assets and/or code from PojavLauncher. "),a("strong",[e._v("They are not owned nor managed by PojavLauncherTeam.")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/45.d8afbb26.js b/assets/js/52.936dd052.js similarity index 94% rename from assets/js/45.d8afbb26.js rename to assets/js/52.936dd052.js index 940a2edd..e02203b2 100644 --- a/assets/js/45.d8afbb26.js +++ b/assets/js/52.936dd052.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{349:function(o,e,n){"use strict";n.r(e);var t=n(8),a=Object(t.a)({},(function(){var o=this,e=o._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[e("h1",{attrs:{id:"offline-mode-is-going-places"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#offline-mode-is-going-places"}},[o._v("#")]),o._v(" Offline mode is going places.")]),o._v(" "),e("p",[o._v("Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased)")]),o._v(" "),e("p",[o._v("PojavLauncher does "),e("strong",[o._v("NOT")]),o._v(", and will "),e("strong",[o._v("NEVER")]),o._v(" support "),e("strong",[o._v("piracy acts")]),o._v(". You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft.\nTo purchase Minecraft "),e("a",{attrs:{href:"https://www.minecraft.net/",target:"_blank",rel:"noopener noreferrer"}},[o._v("click this"),e("OutboundLink")],1),o._v(".")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{355:function(o,e,n){"use strict";n.r(e);var t=n(8),a=Object(t.a)({},(function(){var o=this,e=o._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[e("h1",{attrs:{id:"offline-mode-is-going-places"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#offline-mode-is-going-places"}},[o._v("#")]),o._v(" Offline mode is going places.")]),o._v(" "),e("p",[o._v("Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased)")]),o._v(" "),e("p",[o._v("PojavLauncher does "),e("strong",[o._v("NOT")]),o._v(", and will "),e("strong",[o._v("NEVER")]),o._v(" support "),e("strong",[o._v("piracy acts")]),o._v(". You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft.\nTo purchase Minecraft "),e("a",{attrs:{href:"https://www.minecraft.net/",target:"_blank",rel:"noopener noreferrer"}},[o._v("click this"),e("OutboundLink")],1),o._v(".")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/46.54ef8f01.js b/assets/js/53.6eae458a.js similarity index 96% rename from assets/js/46.54ef8f01.js rename to assets/js/53.6eae458a.js index daf1e4d1..8af65afe 100644 --- a/assets/js/46.54ef8f01.js +++ b/assets/js/53.6eae458a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{350:function(e,t,a){"use strict";a.r(t);var s=a(8),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supported-minecraft-versions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-minecraft-versions"}},[e._v("#")]),e._v(" Supported Minecraft versions")]),e._v(" "),t("p",[e._v("With each new Minecraft release comes the question: "),t("em",[e._v("Will it play nice with PojavLauncher?")])]),e._v(" "),t("p",[e._v("Thanks to the hard work from PojavLauncherTeam, both the Android and the iOS port now cover most Minecraft versions...")]),e._v(" "),t("p",[e._v("...with some small exceptions that will be listed below.")]),e._v(" "),t("h2",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Current issues, as of the Foxglove update:")]),e._v(" "),t("h2",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("Current issues, as of the v2.2 Deepslate update:")]),e._v(" "),t("ul",[t("li",[e._v("v2.2 Deepslate will not open versions of minecraft past 1.20 (*)")]),e._v(" "),t("li",[e._v("v2.2 Deepslate does not have Java 21. (*)")])]),e._v(" "),t("p",[e._v("(*) - To fix these issues, please use "),t("a",{attrs:{href:"https://nightly.link/PojavLauncherTeam/PojavLauncher_iOS/workflows/development/main/net.kdt.pojavlauncher-ios.ipa.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("the most recent github actions developer build"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{359:function(e,t,a){"use strict";a.r(t);var s=a(8),r=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supported-minecraft-versions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-minecraft-versions"}},[e._v("#")]),e._v(" Supported Minecraft versions")]),e._v(" "),t("p",[e._v("With each new Minecraft release comes the question: "),t("em",[e._v("Will it play nice with PojavLauncher?")])]),e._v(" "),t("p",[e._v("Thanks to the hard work from PojavLauncherTeam, both the Android and the iOS port now cover most Minecraft versions...")]),e._v(" "),t("p",[e._v("...with some small exceptions that will be listed below.")]),e._v(" "),t("h2",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Current issues, as of the Foxglove update:")]),e._v(" "),t("h2",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("Current issues, as of the v2.2 Deepslate update:")]),e._v(" "),t("ul",[t("li",[e._v("v2.2 Deepslate will not open versions of minecraft past 1.20 (*)")]),e._v(" "),t("li",[e._v("v2.2 Deepslate does not have Java 21. (*)")])]),e._v(" "),t("p",[e._v("(*) - To fix these issues, please use "),t("a",{attrs:{href:"https://nightly.link/PojavLauncherTeam/PojavLauncher_iOS/workflows/development/main/net.kdt.pojavlauncher-ios.ipa.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("the most recent github actions developer build"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/54.29a607d9.js b/assets/js/54.29a607d9.js new file mode 100644 index 00000000..2ac3d325 --- /dev/null +++ b/assets/js/54.29a607d9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{357:function(o,t,e){"use strict";e.r(t);var a=e(8),n=Object(a.a)({},(function(){var o=this,t=o._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[t("h1",{attrs:{id:"i-have-a-mod-conflict"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#i-have-a-mod-conflict"}},[o._v("#")]),o._v(" I have a mod conflict")]),o._v(" "),t("p",[o._v("Try removing the mods by half:")]),o._v(" "),t("ol",[t("li",[o._v("Remove half of the mods (including mods that depend on other mods from the first half)")]),o._v(" "),t("li",[o._v("If you don't crash, put in half of the mods you just removed, then continue adding up. If you do crash, remove half of the mods you have now.")]),o._v(" "),t("li",[o._v("Figure out which mod is causing the issue.")])]),o._v(" "),t("h2",{attrs:{id:"we-don-t-know-what-doesn-t-work-means"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#we-don-t-know-what-doesn-t-work-means"}},[o._v("#")]),o._v(" We don't know what doesn't work means")]),o._v(" "),t("p",[o._v('"Doesn\'t work" does not actually mean anything, explain more thoroughly. For example:')]),o._v(" "),t("p",[t("strong",[o._v("Wrong:")]),o._v(" My game crashes please help!11!1\n"),t("strong",[o._v("Correct:")]),o._v(" After I installed OptiFine, my game crashes, here's the latestlog.txt. Please tell me which mod it's conflicting with.")]),o._v(" "),t("p",[t("strong",[o._v("Wrong:")]),o._v(" My resource pack doesn't show up!11!1\n"),t("strong",[o._v("Correct:")]),o._v(" I installed a resource pack from (link) and I have no idea how to properly install it, it doesn't show up in-game. Do I leave it as a zip, extract it or what do I do? Here's a video of how it looks.")]),o._v(" "),t("p",[o._v("If you don't really know what you are doing, the best you can do is just send the log file (latestlog.txt), you don't have to say anything about it.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/55.62f66576.js b/assets/js/55.62f66576.js new file mode 100644 index 00000000..81560301 --- /dev/null +++ b/assets/js/55.62f66576.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{358:function(s,t,n){"use strict";n.r(t);var e=n(8),a=Object(e.a)({},(function(){var s=this._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"installing-any-mod-results-in-a-crash"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installing-any-mod-results-in-a-crash"}},[this._v("#")]),this._v(" Installing any mod results in a crash")]),this._v(" "),s("p",[this._v('Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead.')])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/55.b96b046a.js b/assets/js/55.b96b046a.js deleted file mode 100644 index e6aef207..00000000 --- a/assets/js/55.b96b046a.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{358:function(e,r,n){"use strict";n.r(r);var s=n(8),a=Object(s.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"renderers"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#renderers"}},[e._v("#")]),e._v(" Renderers")]),e._v(" "),r("p",[e._v("Minecraft runs on OpenGL, and mobile devices generally only support OpenGL ES (GLES). And since Minecraft won't run on GLES, we have to use renderers as compatibility layers between OpenGL ES and OpenGL.")]),e._v(" "),r("h2",{attrs:{id:"holy-gl4es"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#holy-gl4es"}},[e._v("#")]),e._v(" Holy GL4ES")]),e._v(" "),r("ul",[r("li",[e._v("Designed for performance, Holy GL4ES is the default renderer in PojavLauncher and should be used in almost all scenrarios.")]),e._v(" "),r("li",[e._v("Supports OpenGL 2.1 and has shader converting capabilities, thus makes up for about 1/8 of the OpenGL 3.x standard.")]),e._v(" "),r("li",[e._v("Works on all versions of vanilla Minecraft.")])]),e._v(" "),r("h3",{attrs:{id:"a-screenshot-of-holy-gl4es-running-minecraft-1-19-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-holy-gl4es-running-minecraft-1-19-4"}},[e._v("#")]),e._v(" A screenshot of Holy GL4ES running Minecraft 1.19.4")]),e._v(" "),r("p",[r("img",{attrs:{src:"https://cdn.discordapp.com/attachments/967462820012773466/1094267417980579890/Screenshot_2023-04-08-16-17-56-860_net.kdt.pojavlaunch.debug.jpg",alt:"holygl4es"}})]),e._v(" "),r("h2",{attrs:{id:"angle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#angle"}},[e._v("#")]),e._v(" ANGLE")]),e._v(" "),r("ul",[r("li",[e._v("A bit slower than Holy GL4ES, runs on Vulkan. Should be used only in specific cases, where one can't load a server resource pack or a mod does not run because of missing OpenGL extensions.")]),e._v(" "),r("li",[e._v("Supports OpenGL 3.2 only.")]),e._v(" "),r("li",[e._v("Only works on Minecraft 1.17+")])]),e._v(" "),r("h3",{attrs:{id:"a-screenshot-of-angle-running-minecraft-1-19-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-angle-running-minecraft-1-19-4"}},[e._v("#")]),e._v(" A screenshot of ANGLE running Minecraft 1.19.4")]),e._v(" "),r("p",[r("img",{attrs:{src:"https://cdn.discordapp.com/attachments/967462820012773466/1094267418236428288/Screenshot_2023-04-08-16-19-39-025_net.kdt.pojavlaunch.debug.jpg",alt:"angle"}})]),e._v(" "),r("h2",{attrs:{id:"virglrenderer"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#virglrenderer"}},[e._v("#")]),e._v(" virglrenderer")]),e._v(" "),r("ul",[r("li",[e._v("Very slow, will soon be removed. It's only use cases are mods that don't run because of missing OpenGL extensions and running shaders.")]),e._v(" "),r("li",[e._v("Supports OpenGL 4.3.")]),e._v(" "),r("li",[e._v("Works on Minecraft 1.7+, can be extremely buggy.")])]),e._v(" "),r("h3",{attrs:{id:"a-screenshot-of-virglrenderer-running-minecraft-1-12-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-virglrenderer-running-minecraft-1-12-2"}},[e._v("#")]),e._v(" A screenshot of virglrenderer running Minecraft 1.12.2")]),e._v(" "),r("p",[r("img",{attrs:{src:"https://cdn.discordapp.com/attachments/967462820012773466/1094267418517454858/Screenshot_2023-04-08-16-27-08-363_net.kdt.pojavlaunch.debug.jpg",alt:"virglrenderer"}})])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/47.b533cd0e.js b/assets/js/56.8ce4b27e.js similarity index 97% rename from assets/js/47.b533cd0e.js rename to assets/js/56.8ce4b27e.js index 03682afe..7769f4b6 100644 --- a/assets/js/47.b533cd0e.js +++ b/assets/js/56.8ce4b27e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{353:function(t,o,e){"use strict";e.r(o);var r=e(8),s=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"installing-custom-versions-of-minecraft"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installing-custom-versions-of-minecraft"}},[t._v("#")]),t._v(" Installing custom versions of Minecraft")]),t._v(" "),o("p",[t._v("If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!")]),t._v(" "),o("h3",{attrs:{id:"installation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation:")]),t._v(" "),o("ol",[o("li",[t._v("If you are on Android, install "),o("a",{attrs:{href:"https://forum.xda-developers.com/showpost.php?p=23109280&postcount=2",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiXplorer")]),o("OutboundLink")],1),t._v(" and "),o("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.mixplorer.addon.archive",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiX Archive")]),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("Make a copy of the Minecraft version you want to modify")]),t._v(" "),o("li",[t._v("Rename the custom version "),o("strong",[t._v("folder")]),t._v(", "),o("strong",[t._v(".jar")]),t._v(" and "),o("strong",[t._v(".json")]),t._v(" to your desired custom version name (for example, "),o("strong",[t._v("foo")]),t._v(", "),o("strong",[t._v("foo.jar")]),t._v(", "),o("strong",[t._v("foo.json")]),t._v(")")]),t._v(" "),o("li",[t._v("Open the custom version's "),o("strong",[t._v(".json")]),t._v(" with MiX's "),o("strong",[t._v("Text Editor")])]),t._v(" "),o("li",[t._v("Remove "),o("code",[t._v('"downloads:{"client"...}')]),t._v(" as shown in the screenshot")])]),t._v(" "),o("p",[o("img",{attrs:{src:"https://user-images.githubusercontent.com/85581164/220926885-d25e911f-98c4-4989-af06-f1bd81acc7e2.jpg",alt:"custom2"}})]),t._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[t._v("Change "),o("code",[t._v('"id": "1.2.4"')]),t._v(" to "),o("code",[t._v('"id": "(your custom version name)"')])]),t._v(" "),o("li",[t._v("Change "),o("code",[t._v('"mainClass": "net.minecraft.launchwrapper.Launch"')]),t._v(" to "),o("code",[t._v('"mainClass": "net.minecraft.client.Minecraft"')])]),t._v(" "),o("li",[t._v("Save the "),o("strong",[t._v(".json")])]),t._v(" "),o("li",[t._v("Modify your "),o("strong",[t._v(".jar")]),t._v(" as desired, make sure to delete the "),o("code",[t._v("META-INF")]),t._v(" folder afterwards.")]),t._v(" "),o("li",[t._v("Start up your custom version!")])]),t._v(" "),o("h3",{attrs:{id:"notes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),o("ul",[o("li",[t._v("If your game is stuck at the Mojang screen afterwards, try deleting "),o("strong",[t._v("options.txt")])]),t._v(" "),o("li",[t._v("This guide is "),o("strong",[t._v("NOT")]),t._v(" for Babric or Cursed Fabric!")])])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{360:function(t,o,e){"use strict";e.r(o);var r=e(8),s=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"installing-custom-versions-of-minecraft"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installing-custom-versions-of-minecraft"}},[t._v("#")]),t._v(" Installing custom versions of Minecraft")]),t._v(" "),o("p",[t._v("If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers!")]),t._v(" "),o("h3",{attrs:{id:"installation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation:")]),t._v(" "),o("ol",[o("li",[t._v("If you are on Android, install "),o("a",{attrs:{href:"https://forum.xda-developers.com/showpost.php?p=23109280&postcount=2",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiXplorer")]),o("OutboundLink")],1),t._v(" and "),o("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.mixplorer.addon.archive",target:"_blank",rel:"noopener noreferrer"}},[o("strong",[t._v("MiX Archive")]),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("Make a copy of the Minecraft version you want to modify")]),t._v(" "),o("li",[t._v("Rename the custom version "),o("strong",[t._v("folder")]),t._v(", "),o("strong",[t._v(".jar")]),t._v(" and "),o("strong",[t._v(".json")]),t._v(" to your desired custom version name (for example, "),o("strong",[t._v("foo")]),t._v(", "),o("strong",[t._v("foo.jar")]),t._v(", "),o("strong",[t._v("foo.json")]),t._v(")")]),t._v(" "),o("li",[t._v("Open the custom version's "),o("strong",[t._v(".json")]),t._v(" with MiX's "),o("strong",[t._v("Text Editor")])]),t._v(" "),o("li",[t._v("Remove "),o("code",[t._v('"downloads:{"client"...}')]),t._v(" as shown in the screenshot")])]),t._v(" "),o("p",[o("img",{attrs:{src:"https://user-images.githubusercontent.com/85581164/220926885-d25e911f-98c4-4989-af06-f1bd81acc7e2.jpg",alt:"custom2"}})]),t._v(" "),o("ol",{attrs:{start:"6"}},[o("li",[t._v("Change "),o("code",[t._v('"id": "1.2.4"')]),t._v(" to "),o("code",[t._v('"id": "(your custom version name)"')])]),t._v(" "),o("li",[t._v("Change "),o("code",[t._v('"mainClass": "net.minecraft.launchwrapper.Launch"')]),t._v(" to "),o("code",[t._v('"mainClass": "net.minecraft.client.Minecraft"')])]),t._v(" "),o("li",[t._v("Save the "),o("strong",[t._v(".json")])]),t._v(" "),o("li",[t._v("Modify your "),o("strong",[t._v(".jar")]),t._v(" as desired, make sure to delete the "),o("code",[t._v("META-INF")]),t._v(" folder afterwards.")]),t._v(" "),o("li",[t._v("Start up your custom version!")])]),t._v(" "),o("h3",{attrs:{id:"notes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),o("ul",[o("li",[t._v("If your game is stuck at the Mojang screen afterwards, try deleting "),o("strong",[t._v("options.txt")])]),t._v(" "),o("li",[t._v("This guide is "),o("strong",[t._v("NOT")]),t._v(" for Babric or Cursed Fabric!")])])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/56.d281dacb.js b/assets/js/56.d281dacb.js deleted file mode 100644 index c485d158..00000000 --- a/assets/js/56.d281dacb.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{360:function(a,t,r){"use strict";r.r(t);var e=r(8),o=Object(e.a)({},(function(){var a=this._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[a("h1",{attrs:{id:"the-road-ahead-for-pojavlauncher"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-road-ahead-for-pojavlauncher"}},[this._v("#")]),this._v(" The road ahead for PojavLauncher")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/57.a8c712b7.js b/assets/js/57.a8c712b7.js new file mode 100644 index 00000000..390592db --- /dev/null +++ b/assets/js/57.a8c712b7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{361:function(t,s,o){"use strict";o.r(s);var e=o(8),i=Object(e.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"my-mods-don-t-show-up-in-game"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#my-mods-don-t-show-up-in-game"}},[this._v("#")]),this._v(" My mods don't show up in-game")]),this._v(" "),t("ol",[t("li",[this._v('Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead.')]),this._v(" "),t("li",[this._v("If a custom path is set in Profile options (pencil button), make sure your mods are in your custom path.")])])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/48.f6d8140d.js b/assets/js/58.399a034d.js similarity index 98% rename from assets/js/48.f6d8140d.js rename to assets/js/58.399a034d.js index 9e8d8e15..71be98b2 100644 --- a/assets/js/48.f6d8140d.js +++ b/assets/js/58.399a034d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{355:function(t,e,a){"use strict";a.r(e);var s=a(8),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#modpacks"}},[t._v("#")]),t._v(" Modpacks")]),t._v(" "),e("p",[t._v('Modpacks, usually archived in a .zip form containing mod metadatas, are mods usually "duct taped" together to bring modded Minecraft in a more convenient way rather than handpicking mods one by one.')]),t._v(" "),e("p",[t._v("Popular examples of these can be found on both the "),e("a",{attrs:{href:"https://modrinth.com/modpacks",target:"_blank",rel:"noopener noreferrer"}},[t._v("Modrinth"),e("OutboundLink")],1),t._v(" and the "),e("a",{attrs:{href:"https://www.curseforge.com/minecraft/modpacks",target:"_blank",rel:"noopener noreferrer"}},[t._v("CurseForge"),e("OutboundLink")],1),t._v(" website.")]),t._v(" "),e("h2",{attrs:{id:"official-modpacks-from-pojavlauncherteam"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#official-modpacks-from-pojavlauncherteam"}},[t._v("#")]),t._v(" Official Modpacks from PojavLauncherTeam")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavOptimize",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavOptimize (crystall1nedev, Chuck_Norris_)"),e("OutboundLink")],1),t._v(" - A collection of mods to improve the performance and user experience.")]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.mediafire.com/folder/6p1xqhmmihf7x/PojavOptimize",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavOptimize (GaucovyAero)"),e("OutboundLink")],1),t._v(" - For maximum FPS, this modpack ships with the lowest settings possible.")])]),t._v(" "),e("p",[t._v("These modpacks are specially made for PojavLauncher, but it doesn't mean you can't try them on PC too!")]),t._v(" "),e("h1",{attrs:{id:"installing-modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installing-modpacks"}},[t._v("#")]),t._v(" Installing Modpacks")]),t._v(" "),e("h2",{attrs:{id:"android"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),e("ol",[e("li",[t._v("Click on the profile section at top of the play button.")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/7d76fe6c-e2f0-44b3-aaaf-1cdfc22b9c42",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Press on the "create new profile" button.')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/431d8191-c207-40f6-99e4-8f957692782c",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v('Click on "create modpack profile".')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/2fb3e4e6-e9f7-4f2d-a141-44ef3a86cfb3",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v("Pick your desired modpack, enjoy!")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/31196b5d-1100-4f28-9a20-14f8a2cf6a4b",width:"25%",height:"25%"}}),t._v(" "),e("h2",{attrs:{id:"ios"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),e("ol",[e("li",[t._v("Go to profiles from the sidebar.")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/18eb075e-1b0e-4047-82bc-e6946c013e78",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Press the "+" button')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/93da54e8-a9c4-452a-a248-9d7c9bef83fe",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v('Once a prompt appears, press the "Modpack" option.')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/36f2d847-6a94-4c83-949f-86f54a257fb6",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v("Pick your desired modpack, enjoy!")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/422ec7ad-123e-4095-97ea-ff6c055f973e",width:"25%",height:"25%"}})])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{362:function(t,e,a){"use strict";a.r(e);var s=a(8),r=Object(s.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#modpacks"}},[t._v("#")]),t._v(" Modpacks")]),t._v(" "),e("p",[t._v('Modpacks, usually archived in a .zip form containing mod metadatas, are mods usually "duct taped" together to bring modded Minecraft in a more convenient way rather than handpicking mods one by one.')]),t._v(" "),e("p",[t._v("Popular examples of these can be found on both the "),e("a",{attrs:{href:"https://modrinth.com/modpacks",target:"_blank",rel:"noopener noreferrer"}},[t._v("Modrinth"),e("OutboundLink")],1),t._v(" and the "),e("a",{attrs:{href:"https://www.curseforge.com/minecraft/modpacks",target:"_blank",rel:"noopener noreferrer"}},[t._v("CurseForge"),e("OutboundLink")],1),t._v(" website.")]),t._v(" "),e("h2",{attrs:{id:"official-modpacks-from-pojavlauncherteam"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#official-modpacks-from-pojavlauncherteam"}},[t._v("#")]),t._v(" Official Modpacks from PojavLauncherTeam")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavOptimize",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavOptimize (crystall1nedev, Chuck_Norris_)"),e("OutboundLink")],1),t._v(" - A collection of mods to improve the performance and user experience.")]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.mediafire.com/folder/6p1xqhmmihf7x/PojavOptimize",target:"_blank",rel:"noopener noreferrer"}},[t._v("PojavOptimize (GaucovyAero)"),e("OutboundLink")],1),t._v(" - For maximum FPS, this modpack ships with the lowest settings possible.")])]),t._v(" "),e("p",[t._v("These modpacks are specially made for PojavLauncher, but it doesn't mean you can't try them on PC too!")]),t._v(" "),e("h1",{attrs:{id:"installing-modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installing-modpacks"}},[t._v("#")]),t._v(" Installing Modpacks")]),t._v(" "),e("h2",{attrs:{id:"android"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[t._v("#")]),t._v(" Android")]),t._v(" "),e("ol",[e("li",[t._v("Click on the profile section at top of the play button.")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/7d76fe6c-e2f0-44b3-aaaf-1cdfc22b9c42",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Press on the "create new profile" button.')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/431d8191-c207-40f6-99e4-8f957692782c",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v('Click on "create modpack profile".')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/2fb3e4e6-e9f7-4f2d-a141-44ef3a86cfb3",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v("Pick your desired modpack, enjoy!")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/31196b5d-1100-4f28-9a20-14f8a2cf6a4b",width:"25%",height:"25%"}}),t._v(" "),e("h2",{attrs:{id:"ios"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[t._v("#")]),t._v(" iOS")]),t._v(" "),e("ol",[e("li",[t._v("Go to profiles from the sidebar.")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/18eb075e-1b0e-4047-82bc-e6946c013e78",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v('Press the "+" button')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/93da54e8-a9c4-452a-a248-9d7c9bef83fe",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[t._v('Once a prompt appears, press the "Modpack" option.')])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/36f2d847-6a94-4c83-949f-86f54a257fb6",width:"25%",height:"25%"}}),t._v(" "),e("ol",{attrs:{start:"4"}},[e("li",[t._v("Pick your desired modpack, enjoy!")])]),t._v(" "),e("img",{attrs:{src:"https://github.com/user-attachments/assets/422ec7ad-123e-4095-97ea-ff6c055f973e",width:"25%",height:"25%"}})])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/49.4f8a7be0.js b/assets/js/59.e4861342.js similarity index 99% rename from assets/js/49.4f8a7be0.js rename to assets/js/59.e4861342.js index 5379c60b..a1f553ea 100644 --- a/assets/js/49.4f8a7be0.js +++ b/assets/js/59.e4861342.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{351:function(e,r,t){"use strict";t.r(r);var n=t(8),o=Object(n.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"unsupported-mods-and-clients-workarounds-fixes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unsupported-mods-and-clients-workarounds-fixes"}},[e._v("#")]),e._v(" Unsupported Mods and Clients (+ Workarounds/Fixes)")]),e._v(" "),r("p",[e._v("Not everything that works on PC works on PojavLauncher. Below is a non-exhaustive list of mods that "),r("strong",[e._v("may")]),e._v(" not work, along with fixes or workarounds.")]),e._v(" "),r("h2",{attrs:{id:"performance-mods-shaders"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#performance-mods-shaders"}},[e._v("#")]),e._v(" Performance Mods + Shaders")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/sodium",target:"_blank",rel:"noopener noreferrer"}},[e._v("Sodium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/folder/n004fh6pxuxk8/Sodium_1.17%2B",target:"_blank",rel:"noopener noreferrer"}},[e._v("GL4ES Patch"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("0.5.x and later does not work without disabling the terrain optimization mixins. It's not recommended and therefore isn't faster than Vanilla/Optifine")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/embeddium",target:"_blank",rel:"noopener noreferrer"}},[e._v("Embeddium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Same problem as Sodium")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/rubidium/files",target:"_blank",rel:"noopener noreferrer"}},[e._v("Rubidium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/folder/jcyrf8l0osn4m/Rubidium_1.17%2B",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gl4ES Patch"),r("OutboundLink")],1),e._v(" for GL4ES, otherwise same as the previous two")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/chlorine",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chlorine"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/1286604-shaders-mod-updated-by-karyonix",target:"_blank",rel:"noopener noreferrer"}},[e._v("ShadersMod (GLSL Shaders)"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/irisshaders",target:"_blank",rel:"noopener noreferrer"}},[e._v("Iris"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://irisshaders.net/download",target:"_blank",rel:"noopener noreferrer"}},[e._v("Iris Installer"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://optifine.net/home",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Render Regions don't work")])])]),e._v(" "),r("li",[r("strong",[e._v("Optifine Shaders:")]),e._v(" The only supported shaders are "),r("a",{attrs:{href:"https://www.mediafire.com/folder/cp87zpb3ichj7/Open4ES",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open4ES"),r("OutboundLink")],1),e._v(" for GL4ES. It works best with Adreno graphics (found in Qualcomm Snapdragon SoCs) and PowerVR graphics, with required patches (found in several low-end MediaTek SoCs). Mali GPUs are not supported. Below is a list of smartphones that are tested and works with Open4ES:\n"),r("ul",[r("li",[r("strong",[e._v("Xiaomi Poco F3")]),e._v(" (Snapdragon 870)")]),e._v(" "),r("li",[r("strong",[e._v("Xiaomi Poco X5 Pro")]),e._v(" (Snapdragon 778G)")]),e._v(" "),r("li",[r("strong",[e._v("Xiaomi Redmi Note 8")]),e._v(" (Snapdragon 665)")]),e._v(" "),r("li",[r("strong",[e._v("Oppo A53")]),e._v(" (Snapdragon 460)")])])])]),e._v(" "),r("h2",{attrs:{id:"skyblock-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#skyblock-mods"}},[e._v("#")]),e._v(" Skyblock Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://essential.gg/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Essential"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Skytils/SkytilsMod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skytils"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/Skytils/SkytilsMod/releases/download/v1.3.0-pre5/Skytils-1.3.0-pre5.jar",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.3.0-pre5"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Sk1erLLC/Patcher",target:"_blank",rel:"noopener noreferrer"}},[e._v("Patcher"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/7a3gubce278k338/Patcher-1.6.1_1.8.9.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.6.1"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Moulberry/NotEnoughUpdates/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("NotEnoughUpdates"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/u0l09df4riulu2w/NotEnoughUpdates-2.1.1-pre-1.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("2.1.1-pre-1"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://sbewebsite.appspot.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skyblock Extras"),r("OutboundLink")],1)])]),e._v(" "),r("h2",{attrs:{id:"input-related-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-related-mods"}},[e._v("#")]),e._v(" Input-related Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/TeamMidnightDust/MidnightControls/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("MidnightControls"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/controllable",target:"_blank",rel:"noopener noreferrer"}},[e._v("Controllable"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/mouse-tweaks",target:"_blank",rel:"noopener noreferrer"}},[e._v("MouseTweaks"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Almost all of them don't work because they aren't made with Android's inputs in mind")])])])]),e._v(" "),r("h2",{attrs:{id:"other-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-mods"}},[e._v("#")]),e._v(" Other Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/legacy4j",target:"_blank",rel:"noopener noreferrer"}},[e._v("Legacy4J"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Set "),r("code",[e._v("selectedControllerHandler")]),e._v(" in options.txt to 0")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/create",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Disable Flywheel.")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/flywheel",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flywheel"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/physics-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Physics Mod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/scannable",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scannable"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Works on 1.12")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/colormatic",target:"_blank",rel:"noopener noreferrer"}},[e._v("Colormatic"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/itemphysic",target:"_blank",rel:"noopener noreferrer"}},[e._v("ItemPhysic"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/itemphysic-lite",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lite"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[e._v("RandomPatches "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/randompatches-forge",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("(Forge)")]),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/randompatches-fabric",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("(Fabric)")]),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/smooth-font",target:"_blank",rel:"noopener noreferrer"}},[e._v("Smooth Font"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/mrcrayfishs-gun-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("MrCrayfish's Gun Mod"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("1.16.5 is broken")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mcarchive.net/mods/applied-energistics?gvsn=",target:"_blank",rel:"noopener noreferrer"}},[e._v("Applied Energistics"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/applied-energistics-2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Applied Energistics 2"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://forum.feed-the-beast.com/threads/zombe-mod-for-ftb-1-4-7.18012/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Zombe"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.replaymod.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ReplayMod"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("FFMPEG is wrongly placed")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/dynamic-surroundings",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dynamic Surroundings"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("White textures on 1.12")])])]),e._v(" "),r("li",[e._v("Sex mod "),r("strong",[e._v("(thanks "),r("em",[e._v("@Adiixyz")]),e._v(")")])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/minecraft-transport-simulator",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Vehicles"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Only broken on Forge")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-engineering",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Engineering"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Works on 1.12")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-portals-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Portals"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-railroading",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Railroading"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-engineering",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Engineering"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/discordrpc",target:"_blank",rel:"noopener noreferrer"}},[e._v("DiscordRPC"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("If your PvP/Hack Client crashes because of this, contact their developers for a fix.")])])])]),e._v(" "),r("h2",{attrs:{id:"unsupported-clients"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unsupported-clients"}},[e._v("#")]),e._v(" Unsupported Clients")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://batmod.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BatMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.labymod.net/en",target:"_blank",rel:"noopener noreferrer"}},[e._v("LabyMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mysterymod.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MysteryMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.lunarclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lunar Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v('".exe"')])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://client.badlion.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Badlion Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v('".exe"')])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.salwyrr.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Salwyrr Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("You can't use a launcher in a launcher")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://meteorclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Meteor Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://qolhub.kieruken.dev/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pizza Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://qolhub.kieruken.dev/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cheeto Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/3arthqu4ke/3arthh4ck",target:"_blank",rel:"noopener noreferrer"}},[e._v("3arthh4ck"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/n7ey56j5aued7r0/3arthh4ck-1.8.7-release.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("Patched"),r("OutboundLink")],1),e._v(" version")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.aresclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ares Client"),r("OutboundLink")],1)])]),e._v(" "),r("h1",{attrs:{id:"credits"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#credits"}},[e._v("#")]),e._v(" Credits")]),e._v(" "),r("ul",[r("li",[e._v("https://github.com/Mathias-Boulay/ and all the people in issue "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/issues/1948",target:"_blank",rel:"noopener noreferrer"}},[e._v("#1948"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("https://github.com/ZenZenXDz")]),e._v(" "),r("li",[e._v("https://github.com/revoscode")]),e._v(" "),r("li",[e._v("https://github.com/GaucovyAero")])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{363:function(e,r,t){"use strict";t.r(r);var n=t(8),o=Object(n.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"unsupported-mods-and-clients-workarounds-fixes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unsupported-mods-and-clients-workarounds-fixes"}},[e._v("#")]),e._v(" Unsupported Mods and Clients (+ Workarounds/Fixes)")]),e._v(" "),r("p",[e._v("Not everything that works on PC works on PojavLauncher. Below is a non-exhaustive list of mods that "),r("strong",[e._v("may")]),e._v(" not work, along with fixes or workarounds.")]),e._v(" "),r("h2",{attrs:{id:"performance-mods-shaders"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#performance-mods-shaders"}},[e._v("#")]),e._v(" Performance Mods + Shaders")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/sodium",target:"_blank",rel:"noopener noreferrer"}},[e._v("Sodium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/folder/n004fh6pxuxk8/Sodium_1.17%2B",target:"_blank",rel:"noopener noreferrer"}},[e._v("GL4ES Patch"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("0.5.x and later does not work without disabling the terrain optimization mixins. It's not recommended and therefore isn't faster than Vanilla/Optifine")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/embeddium",target:"_blank",rel:"noopener noreferrer"}},[e._v("Embeddium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Same problem as Sodium")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/rubidium/files",target:"_blank",rel:"noopener noreferrer"}},[e._v("Rubidium"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/folder/jcyrf8l0osn4m/Rubidium_1.17%2B",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gl4ES Patch"),r("OutboundLink")],1),e._v(" for GL4ES, otherwise same as the previous two")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/chlorine",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chlorine"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/1286604-shaders-mod-updated-by-karyonix",target:"_blank",rel:"noopener noreferrer"}},[e._v("ShadersMod (GLSL Shaders)"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/irisshaders",target:"_blank",rel:"noopener noreferrer"}},[e._v("Iris"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://irisshaders.net/download",target:"_blank",rel:"noopener noreferrer"}},[e._v("Iris Installer"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://optifine.net/home",target:"_blank",rel:"noopener noreferrer"}},[e._v("OptiFine"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Render Regions don't work")])])]),e._v(" "),r("li",[r("strong",[e._v("Optifine Shaders:")]),e._v(" The only supported shaders are "),r("a",{attrs:{href:"https://www.mediafire.com/folder/cp87zpb3ichj7/Open4ES",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open4ES"),r("OutboundLink")],1),e._v(" for GL4ES. It works best with Adreno graphics (found in Qualcomm Snapdragon SoCs) and PowerVR graphics, with required patches (found in several low-end MediaTek SoCs). Mali GPUs are not supported. Below is a list of smartphones that are tested and works with Open4ES:\n"),r("ul",[r("li",[r("strong",[e._v("Xiaomi Poco F3")]),e._v(" (Snapdragon 870)")]),e._v(" "),r("li",[r("strong",[e._v("Xiaomi Poco X5 Pro")]),e._v(" (Snapdragon 778G)")]),e._v(" "),r("li",[r("strong",[e._v("Xiaomi Redmi Note 8")]),e._v(" (Snapdragon 665)")]),e._v(" "),r("li",[r("strong",[e._v("Oppo A53")]),e._v(" (Snapdragon 460)")])])])]),e._v(" "),r("h2",{attrs:{id:"skyblock-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#skyblock-mods"}},[e._v("#")]),e._v(" Skyblock Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://essential.gg/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Essential"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Skytils/SkytilsMod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skytils"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/Skytils/SkytilsMod/releases/download/v1.3.0-pre5/Skytils-1.3.0-pre5.jar",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.3.0-pre5"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Sk1erLLC/Patcher",target:"_blank",rel:"noopener noreferrer"}},[e._v("Patcher"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/7a3gubce278k338/Patcher-1.6.1_1.8.9.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.6.1"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/Moulberry/NotEnoughUpdates/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("NotEnoughUpdates"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/u0l09df4riulu2w/NotEnoughUpdates-2.1.1-pre-1.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("2.1.1-pre-1"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://sbewebsite.appspot.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skyblock Extras"),r("OutboundLink")],1)])]),e._v(" "),r("h2",{attrs:{id:"input-related-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#input-related-mods"}},[e._v("#")]),e._v(" Input-related Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/TeamMidnightDust/MidnightControls/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("MidnightControls"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/controllable",target:"_blank",rel:"noopener noreferrer"}},[e._v("Controllable"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/mouse-tweaks",target:"_blank",rel:"noopener noreferrer"}},[e._v("MouseTweaks"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Almost all of them don't work because they aren't made with Android's inputs in mind")])])])]),e._v(" "),r("h2",{attrs:{id:"other-mods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-mods"}},[e._v("#")]),e._v(" Other Mods")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://modrinth.com/mod/legacy4j",target:"_blank",rel:"noopener noreferrer"}},[e._v("Legacy4J"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Set "),r("code",[e._v("selectedControllerHandler")]),e._v(" in options.txt to 0")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/create",target:"_blank",rel:"noopener noreferrer"}},[e._v("Create"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Disable Flywheel.")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/flywheel",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flywheel"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/physics-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Physics Mod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/scannable",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scannable"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Works on 1.12")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/colormatic",target:"_blank",rel:"noopener noreferrer"}},[e._v("Colormatic"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/itemphysic",target:"_blank",rel:"noopener noreferrer"}},[e._v("ItemPhysic"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/itemphysic-lite",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lite"),r("OutboundLink")],1),e._v(" works")])])]),e._v(" "),r("li",[e._v("RandomPatches "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/randompatches-forge",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("(Forge)")]),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/randompatches-fabric",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("(Fabric)")]),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/smooth-font",target:"_blank",rel:"noopener noreferrer"}},[e._v("Smooth Font"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/mrcrayfishs-gun-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("MrCrayfish's Gun Mod"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("1.16.5 is broken")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mcarchive.net/mods/applied-energistics?gvsn=",target:"_blank",rel:"noopener noreferrer"}},[e._v("Applied Energistics"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/applied-energistics-2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Applied Energistics 2"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://forum.feed-the-beast.com/threads/zombe-mod-for-ftb-1-4-7.18012/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Zombe"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.replaymod.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ReplayMod"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("FFMPEG is wrongly placed")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/dynamic-surroundings",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dynamic Surroundings"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("White textures on 1.12")])])]),e._v(" "),r("li",[e._v("Sex mod "),r("strong",[e._v("(thanks "),r("em",[e._v("@Adiixyz")]),e._v(")")])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/minecraft-transport-simulator",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Vehicles"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Only broken on Forge")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-engineering",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Engineering"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("Works on 1.12")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-portals-mod",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Portals"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-railroading",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Railroading"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/immersive-engineering",target:"_blank",rel:"noopener noreferrer"}},[e._v("Immersive Engineering"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.curseforge.com/minecraft/mc-mods/discordrpc",target:"_blank",rel:"noopener noreferrer"}},[e._v("DiscordRPC"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("If your PvP/Hack Client crashes because of this, contact their developers for a fix.")])])])]),e._v(" "),r("h2",{attrs:{id:"unsupported-clients"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unsupported-clients"}},[e._v("#")]),e._v(" Unsupported Clients")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://batmod.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BatMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.labymod.net/en",target:"_blank",rel:"noopener noreferrer"}},[e._v("LabyMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mysterymod.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("MysteryMod"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.lunarclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lunar Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v('".exe"')])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://client.badlion.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Badlion Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v('".exe"')])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.salwyrr.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Salwyrr Client"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[e._v("You can't use a launcher in a launcher")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://meteorclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Meteor Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://qolhub.kieruken.dev/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pizza Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://qolhub.kieruken.dev/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cheeto Client"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/3arthqu4ke/3arthh4ck",target:"_blank",rel:"noopener noreferrer"}},[e._v("3arthh4ck"),r("OutboundLink")],1),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.mediafire.com/file/n7ey56j5aued7r0/3arthh4ck-1.8.7-release.jar/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("Patched"),r("OutboundLink")],1),e._v(" version")])])]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.aresclient.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ares Client"),r("OutboundLink")],1)])]),e._v(" "),r("h1",{attrs:{id:"credits"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#credits"}},[e._v("#")]),e._v(" Credits")]),e._v(" "),r("ul",[r("li",[e._v("https://github.com/Mathias-Boulay/ and all the people in issue "),r("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/issues/1948",target:"_blank",rel:"noopener noreferrer"}},[e._v("#1948"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("https://github.com/ZenZenXDz")]),e._v(" "),r("li",[e._v("https://github.com/revoscode")]),e._v(" "),r("li",[e._v("https://github.com/GaucovyAero")])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/50.0d1699aa.js b/assets/js/60.b38a88b8.js similarity index 77% rename from assets/js/50.0d1699aa.js rename to assets/js/60.b38a88b8.js index 6fb55fcb..ba46598e 100644 --- a/assets/js/50.0d1699aa.js +++ b/assets/js/60.b38a88b8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{352:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{364:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/51.29a847c9.js b/assets/js/61.dc2d3341.js similarity index 97% rename from assets/js/51.29a847c9.js rename to assets/js/61.dc2d3341.js index 19adc019..307e3748 100644 --- a/assets/js/51.29a847c9.js +++ b/assets/js/61.dc2d3341.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{354:function(t,e,i){"use strict";i.r(e);var a=i(8),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"optimizing-the-game"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optimizing-the-game"}},[t._v("#")]),t._v(" Optimizing the game")]),t._v(" "),e("p",[t._v("There are lots of ways to optimize your Java Edition experience if it's being slow for you; or your device is just bad in general. From mods like OptiFine and Sodium to more complex stuff like JVM arguments, we'll cover all of them here.")]),t._v(" "),e("h2",{attrs:{id:"optifine"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optifine"}},[t._v("#")]),t._v(" OptiFine")]),t._v(" "),e("p",[t._v("OptiFine, previously known as Optimine and OptiFog; is a Minecraft modification created by sp614x, Insecs, Payton147 and lacuravivid in which the development began on December 22, 2010; was a modification originally created about pushing the fog away but also other features; like FPS Boost, Occlussion Culling, Hidden Geometry removal, Texture Mipmaping and Chunk Loading optimizations in the first development/beta versions of Minecraft")]),t._v(" "),e("h3",{attrs:{id:"getting-and-installing-optifine"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-and-installing-optifine"}},[t._v("#")]),t._v(" Getting (and installing) OptiFine")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("Go to the official OptiFine website; "),e("a",{attrs:{href:"https://optifine.net",target:"_blank",rel:"noopener noreferrer"}},[t._v("optifine.net"),e("OutboundLink")],1),t._v(".\n"),e("img",{attrs:{src:"https://media.discordapp.net/attachments/955349865758601266/1035479281960243230/Screenshot_2022-10-28_17-00-12.png",alt:"websiteIMG"}})])]),t._v(" "),e("li",[e("p",[t._v("Depending on what Minecraft version you mainly use, get the specific OptiFine for it. Let's say; I play 1.12.2, so I'll get the latest 1.12.2 OptiFine available.\n"),e("img",{attrs:{src:"https://media.discordapp.net/attachments/955349865758601266/1035479282627137576/Screenshot_2022-10-28_17-03-03.png",alt:"1.12.2OFSc"}})])])]),t._v(" "),e("h2",{attrs:{id:"sodium"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sodium"}},[t._v("#")]),t._v(" Sodium")]),t._v(" "),e("h2",{attrs:{id:"optimizing-modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optimizing-modpacks"}},[t._v("#")]),t._v(' "Optimizing" ModPacks')]),t._v(" "),e("h2",{attrs:{id:"jvm-arguments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#jvm-arguments"}},[t._v("#")]),t._v(" JVM Arguments")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{365:function(t,e,i){"use strict";i.r(e);var a=i(8),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"optimizing-the-game"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optimizing-the-game"}},[t._v("#")]),t._v(" Optimizing the game")]),t._v(" "),e("p",[t._v("There are lots of ways to optimize your Java Edition experience if it's being slow for you; or your device is just bad in general. From mods like OptiFine and Sodium to more complex stuff like JVM arguments, we'll cover all of them here.")]),t._v(" "),e("h2",{attrs:{id:"optifine"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optifine"}},[t._v("#")]),t._v(" OptiFine")]),t._v(" "),e("p",[t._v("OptiFine, previously known as Optimine and OptiFog; is a Minecraft modification created by sp614x, Insecs, Payton147 and lacuravivid in which the development began on December 22, 2010; was a modification originally created about pushing the fog away but also other features; like FPS Boost, Occlussion Culling, Hidden Geometry removal, Texture Mipmaping and Chunk Loading optimizations in the first development/beta versions of Minecraft")]),t._v(" "),e("h3",{attrs:{id:"getting-and-installing-optifine"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-and-installing-optifine"}},[t._v("#")]),t._v(" Getting (and installing) OptiFine")]),t._v(" "),e("ul",[e("li",[e("p",[t._v("Go to the official OptiFine website; "),e("a",{attrs:{href:"https://optifine.net",target:"_blank",rel:"noopener noreferrer"}},[t._v("optifine.net"),e("OutboundLink")],1),t._v(".\n"),e("img",{attrs:{src:"https://media.discordapp.net/attachments/955349865758601266/1035479281960243230/Screenshot_2022-10-28_17-00-12.png",alt:"websiteIMG"}})])]),t._v(" "),e("li",[e("p",[t._v("Depending on what Minecraft version you mainly use, get the specific OptiFine for it. Let's say; I play 1.12.2, so I'll get the latest 1.12.2 OptiFine available.\n"),e("img",{attrs:{src:"https://media.discordapp.net/attachments/955349865758601266/1035479282627137576/Screenshot_2022-10-28_17-03-03.png",alt:"1.12.2OFSc"}})])])]),t._v(" "),e("h2",{attrs:{id:"sodium"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sodium"}},[t._v("#")]),t._v(" Sodium")]),t._v(" "),e("h2",{attrs:{id:"optimizing-modpacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#optimizing-modpacks"}},[t._v("#")]),t._v(' "Optimizing" ModPacks')]),t._v(" "),e("h2",{attrs:{id:"jvm-arguments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#jvm-arguments"}},[t._v("#")]),t._v(" JVM Arguments")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/52.755ab5d0.js b/assets/js/62.c9e7f981.js similarity index 95% rename from assets/js/52.755ab5d0.js rename to assets/js/62.c9e7f981.js index 0a3f39f2..8561ad17 100644 --- a/assets/js/52.755ab5d0.js +++ b/assets/js/62.c9e7f981.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{357:function(e,r,t){"use strict";t.r(r);var a=t(8),o=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"there-was-a-problem-while-parsing-the-package-error-while-installing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#there-was-a-problem-while-parsing-the-package-error-while-installing"}},[e._v("#")]),e._v(' "There was a problem while parsing the package" error while installing')]),e._v(" "),r("p",[e._v("Google Chrome may corrupt the installation of PojavLauncher. Instead of Chrome, use "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=org.mozilla.firefox",target:"_blank",rel:"noopener noreferrer"}},[e._v("Firefox"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.brave.browser",target:"_blank",rel:"noopener noreferrer"}},[e._v("Brave"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Alternatively, you can use "),r("a",{attrs:{href:"https://github.com/Aefyr/SAI",target:"_blank",rel:"noopener noreferrer"}},[e._v("Split APKs Installer (SAI)"),r("OutboundLink")],1),e._v(" if you would like to check the error message. (Most default installers do not show the installation error message)")])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{368:function(e,r,t){"use strict";t.r(r);var a=t(8),o=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"there-was-a-problem-while-parsing-the-package-error-while-installing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#there-was-a-problem-while-parsing-the-package-error-while-installing"}},[e._v("#")]),e._v(' "There was a problem while parsing the package" error while installing')]),e._v(" "),r("p",[e._v("Google Chrome may corrupt the installation of PojavLauncher. Instead of Chrome, use "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=org.mozilla.firefox",target:"_blank",rel:"noopener noreferrer"}},[e._v("Firefox"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.brave.browser",target:"_blank",rel:"noopener noreferrer"}},[e._v("Brave"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Alternatively, you can use "),r("a",{attrs:{href:"https://github.com/Aefyr/SAI",target:"_blank",rel:"noopener noreferrer"}},[e._v("Split APKs Installer (SAI)"),r("OutboundLink")],1),e._v(" if you would like to check the error message. (Most default installers do not show the installation error message)")])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/63.c1f90e62.js b/assets/js/63.c1f90e62.js new file mode 100644 index 00000000..a9ab5c8c --- /dev/null +++ b/assets/js/63.c1f90e62.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{369:function(e,t,r){"use strict";r.r(t);var a=r(8),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"rlcraft"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rlcraft"}},[e._v("#")]),e._v(" RLCraft")]),e._v(" "),t("h3",{attrs:{id:"in-order-to-run-rlcraft-you-have-to-remove-these-mods"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#in-order-to-run-rlcraft-you-have-to-remove-these-mods"}},[e._v("#")]),e._v(" In order to run RLCraft you have to remove these mods:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Custom Main Menu")])]),e._v(" "),t("li",[t("p",[e._v("Fancy Block Particles")])]),e._v(" "),t("li",[t("p",[e._v("Dynamic Surroundings")])]),e._v(" "),t("li",[t("p",[e._v("Sound Filters")])])]),e._v(" "),t("p",[t("strong",[e._v("credits to "),t("a",{attrs:{href:"https://github.com/kasrarouhi",target:"_blank",rel:"noopener noreferrer"}},[e._v("kasrarouhi"),t("OutboundLink")],1)])]),e._v(" "),t("h1",{attrs:{id:"better-than-wolves-btw"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#better-than-wolves-btw"}},[e._v("#")]),e._v(" Better Than Wolves (BTW)")]),e._v(" "),t("h2",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("h3",{attrs:{id:"warning-this-is-the-short-version-of-the-guide-it-is-recommended-to-use-the-full-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#warning-this-is-the-short-version-of-the-guide-it-is-recommended-to-use-the-full-version"}},[e._v("#")]),e._v(" WARNING: This is the short version of the guide. It is recommended to use the "),t("a",{attrs:{href:"https://www.mediafire.com/file/3ex8b12pvwb2g9m/INSTALL_BTW_updated_v1.2.pdf/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("full version."),t("OutboundLink")],1)]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Download Acode Editor, ZArchiver and RAR from the Google Play Store if you haven’t already.")])]),e._v(" "),t("li",[t("p",[e._v("Download the "),t("a",{attrs:{href:"https://github.com/BTW-Community/legacy-fabric-installer/releases/tag/1.1.1-btw",target:"_blank",rel:"noopener noreferrer"}},[e._v("BTW Installer"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("li",[t("p",[e._v("Go into PojavLauncher, execute the .jar and install it.")])]),e._v(" "),t("li",[t("p",[e._v("Launch the game (should crash that’s normal).")])]),e._v(" "),t("li",[t("p",[e._v('Check the .jar in "***.minecraft/versions/cursed-fabric-btw-version-name***". If it doesn’t have 5MB, it is corrupted. You must replace it with the vanilla 1.5.2 .jar and name it "'),t("em",[t("strong",[e._v("cursed-fabric-btw-version-name.jar")])]),e._v('".')])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("The long guide explains it better (with screenshots).")])]),e._v(" "),t("p",[e._v("Create a new 1.5.2-custom version by copying the vanilla version and renaming the files inside that directory, then remove "),t("code",[e._v("client")]),e._v(" downloads, change the "),t("code",[e._v("id")]),e._v(" to 1.5.2-custom, change "),t("code",[e._v("mainClass")]),e._v(" from "),t("code",[e._v("net.minecraft.launchwrapper.Launch")]),e._v(" to "),t("code",[e._v("net.minecraft.client.Minecraft")]),e._v(", then remove the "),t("code",[e._v("asm-all")]),e._v(" dependency downloads.")])]),e._v(" "),t("li",[t("p",[t("strong",[e._v("The long guide explains it better (with screenshots).")])]),e._v(" "),t("p",[e._v("To fix your username, add "),t("code",[e._v('"minecraftArguments": "--assetsDir ${assets_root} --username $ {auth_player_name} --session ${auth_session}",')]),e._v(" to your "),t("em",[t("strong",[e._v("cursed-fabric-loader-btw-version-name.json")])]),e._v(".")])]),e._v(" "),t("li",[t("p",[e._v("Download the "),t("a",{attrs:{href:"https://github.com/BTW-Community/Cursed-BTW/releases/tag/v0.5-beta-v2.1.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("BTW Mod"),t("OutboundLink")],1),e._v(" .jar and put the .jar in the mods folder.")])]),e._v(" "),t("li",[t("p",[e._v('Now we have to patch a Cursed Fabric .jar that\'s located in "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***".')]),e._v(" "),t("p",[e._v("Download this file: "),t("a",{attrs:{href:"https://github.com/ItAnthon/AppletMain-Patch",target:"_blank",rel:"noopener noreferrer"}},[e._v("AppletMain"),t("OutboundLink")],1),e._v(' not running into your downloads folder, then grab the patched AppletMain file from here and copy it into this location: "***/net/fabricmc/loader/entrypoint/applet/AppletMain.class***" (inside of the unpatched .jar file using RAR).')])]),e._v(" "),t("li",[t("p",[e._v('Grab the patched .jar file and replace the old one inside of "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***". Please be sure that it has the same name as the original .jar file.')])]),e._v(" "),t("li",[t("p",[e._v("Done, launch the game.")])])]),e._v(" "),t("p",[t("strong",[e._v("credits to "),t("a",{attrs:{href:"https://github.com/gaucovyaero/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GaucovyAero"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://github.com/ItAnthon",target:"_blank",rel:"noopener noreferrer"}},[e._v("ItAnthon"),t("OutboundLink")],1)])]),e._v(" "),t("h1",{attrs:{id:"valkyrien-skies-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#valkyrien-skies-2"}},[e._v("#")]),e._v(" Valkyrien Skies 2")]),e._v(" "),t("h2",{attrs:{id:"android-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android-2"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("As of 2024/09/09, there is no way to run VS2 on Android in Singleplayer, so your only option is to join a VS2 server. You can host a server capable of running VS2 on Android inside Termux, but it's not very easy to setup.")]),e._v(" "),t("p",[e._v("There's a script created by "),t("a",{attrs:{href:"https://github.com/sa1672ndo",target:"_blank",rel:"noopener noreferrer"}},[e._v("sa1672ndo"),t("OutboundLink")],1),e._v(" that automates this entire process to make the installation easier.")]),e._v(" "),t("p",[e._v("The script can be found "),t("a",{attrs:{href:"https://github.com/sa1672ndo/vs2termux",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("strong",[e._v("credits to "),t("a",{attrs:{href:"https://github.com/sa1672ndo",target:"_blank",rel:"noopener noreferrer"}},[e._v("sa1672ndo"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/53.46db47cc.js b/assets/js/64.6417d1fb.js similarity index 77% rename from assets/js/53.46db47cc.js rename to assets/js/64.6417d1fb.js index e302d5c8..98ec9320 100644 --- a/assets/js/53.46db47cc.js +++ b/assets/js/64.6417d1fb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{356:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{366:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/54.811c323c.js b/assets/js/65.0416cceb.js similarity index 98% rename from assets/js/54.811c323c.js rename to assets/js/65.0416cceb.js index 96576fe6..f9513110 100644 --- a/assets/js/54.811c323c.js +++ b/assets/js/65.0416cceb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{359:function(t,e,o){"use strict";o.r(e);var a=o(8),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"app-not-installed"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#app-not-installed"}},[t._v("#")]),t._v(' "App not installed"')]),t._v(" "),e("p",[t._v("The error message looks like this:")]),t._v(" "),e("img",{attrs:{src:"https://media.discordapp.net/attachments/755410958100201472/1081249821907750974/image.png?width=575&height=146",alt:"Image"}}),t._v(" "),e("p",[t._v("Not sure why this happens, but it only happened to one dev build for VenomousSteam81.")]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"install-with-pc-laptop"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-with-pc-laptop"}},[t._v("#")]),t._v(" Install with PC/Laptop")]),t._v(" "),e("p",[t._v("To fix, simply grab your PC/Laptop (unless you have Android 11 and above, continue to the next session), install "),e("a",{attrs:{href:"https://developer.android.com/studio/releases/platform-tools",target:"_blank",rel:"noopener noreferrer"}},[t._v("ADB"),e("OutboundLink")],1),t._v(" for your OS. Then, search up how to use adb for your OS. After figuring that out, go ahead and connect your phone to your PC.")]),t._v(" "),e("p",[t._v("Now, download the PojavLauncher build you downloaded on your phone (or copy the one off of your phone), do "),e("code",[t._v("adb pm install path/to/pojavlauncher/apk.apk")]),t._v(" (if that doesn't work and gives an error, use "),e("code",[t._v("adb shell pm install path/to/pojavlauncher/apk.apk")]),t._v("), and it should install. If not, please make an issue on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki github"),e("OutboundLink")],1),t._v(", making sure to mention VenomousSteam81.")]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"install-without-pc-laptop-android-11-and-newer-only"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-without-pc-laptop-android-11-and-newer-only"}},[t._v("#")]),t._v(" Install without PC/Laptop (Android 11 and newer only)")]),t._v(" "),e("p",[t._v("First, go to settings and enable developer options (not telling you how to do so), turn on wireless ADB, accept all the ADB stuff, "),e("a",{attrs:{href:"https://github.com/tytydraco/ladb",target:"_blank",rel:"noopener noreferrer"}},[t._v("then either download and build it yourself"),e("OutboundLink")],1),t._v(" with termux, buy the app from the "),e("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.draco.ladb",target:"_blank",rel:"noopener noreferrer"}},[t._v("play store"),e("OutboundLink")],1),t._v(", or go find some apk on the internet.")]),t._v(" "),e("p",[t._v("Next, download PojavLauncher from "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/actions",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Actions"),e("OutboundLink")],1),t._v(". Open LADB, accept the ADB connection, then type (or copy paste) "),e("code",[t._v("pm install path/to/pojavlauncher/apk.apk")]),t._v(". If that also doesn't work, please make an issue on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki github"),e("OutboundLink")],1),t._v(", making sure to mention VenomousSteam81.")]),t._v(" "),e("p",[t._v("Thank you for your time!")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{367:function(t,e,o){"use strict";o.r(e);var a=o(8),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"app-not-installed"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#app-not-installed"}},[t._v("#")]),t._v(' "App not installed"')]),t._v(" "),e("p",[t._v("The error message looks like this:")]),t._v(" "),e("img",{attrs:{src:"https://media.discordapp.net/attachments/755410958100201472/1081249821907750974/image.png?width=575&height=146",alt:"Image"}}),t._v(" "),e("p",[t._v("Not sure why this happens, but it only happened to one dev build for VenomousSteam81.")]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"install-with-pc-laptop"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-with-pc-laptop"}},[t._v("#")]),t._v(" Install with PC/Laptop")]),t._v(" "),e("p",[t._v("To fix, simply grab your PC/Laptop (unless you have Android 11 and above, continue to the next session), install "),e("a",{attrs:{href:"https://developer.android.com/studio/releases/platform-tools",target:"_blank",rel:"noopener noreferrer"}},[t._v("ADB"),e("OutboundLink")],1),t._v(" for your OS. Then, search up how to use adb for your OS. After figuring that out, go ahead and connect your phone to your PC.")]),t._v(" "),e("p",[t._v("Now, download the PojavLauncher build you downloaded on your phone (or copy the one off of your phone), do "),e("code",[t._v("adb pm install path/to/pojavlauncher/apk.apk")]),t._v(" (if that doesn't work and gives an error, use "),e("code",[t._v("adb shell pm install path/to/pojavlauncher/apk.apk")]),t._v("), and it should install. If not, please make an issue on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki github"),e("OutboundLink")],1),t._v(", making sure to mention VenomousSteam81.")]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"install-without-pc-laptop-android-11-and-newer-only"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-without-pc-laptop-android-11-and-newer-only"}},[t._v("#")]),t._v(" Install without PC/Laptop (Android 11 and newer only)")]),t._v(" "),e("p",[t._v("First, go to settings and enable developer options (not telling you how to do so), turn on wireless ADB, accept all the ADB stuff, "),e("a",{attrs:{href:"https://github.com/tytydraco/ladb",target:"_blank",rel:"noopener noreferrer"}},[t._v("then either download and build it yourself"),e("OutboundLink")],1),t._v(" with termux, buy the app from the "),e("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.draco.ladb",target:"_blank",rel:"noopener noreferrer"}},[t._v("play store"),e("OutboundLink")],1),t._v(", or go find some apk on the internet.")]),t._v(" "),e("p",[t._v("Next, download PojavLauncher from "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/actions",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Actions"),e("OutboundLink")],1),t._v(". Open LADB, accept the ADB connection, then type (or copy paste) "),e("code",[t._v("pm install path/to/pojavlauncher/apk.apk")]),t._v(". If that also doesn't work, please make an issue on the "),e("a",{attrs:{href:"https://github.com/PojavLauncherTeam/pojavlauncherteam.github.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("wiki github"),e("OutboundLink")],1),t._v(", making sure to mention VenomousSteam81.")]),t._v(" "),e("p",[t._v("Thank you for your time!")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/66.a50ce7aa.js b/assets/js/66.a50ce7aa.js new file mode 100644 index 00000000..af47a6b0 --- /dev/null +++ b/assets/js/66.a50ce7aa.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{370:function(e,n,a){"use strict";a.r(n);var r=a(8),s=Object(r.a)({},(function(){var e=this,n=e._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"renderers"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#renderers"}},[e._v("#")]),e._v(" Renderers")]),e._v(" "),n("p",[e._v("Minecraft runs on OpenGL, and mobile devices generally only support OpenGL ES (GLES). And since Minecraft won't run on GLES, we have to use renderers as compatibility layers between OpenGL ES and OpenGL.")]),e._v(" "),n("blockquote",[n("p",[e._v("All of the following renderers were tested using the same environment; Minecraft 1.21.1 with Optifine, 8 chunks, running on a Snapdragon 778g at 80% resolution scale, with Fast graphics and smooth lighting.")])]),e._v(" "),n("h2",{attrs:{id:"holy-gl4es"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#holy-gl4es"}},[e._v("#")]),e._v(" Holy GL4ES")]),e._v(" "),n("ul",[n("li",[e._v("Optimized for performance, Holy GL4ES is the default renderer in PojavLauncher and should be used in almost all scenrarios.")]),e._v(" "),n("li",[e._v("Supports OpenGL 2.1 and has shader converting capabilities, thus makes up for about 1/8 of the OpenGL 3.x standard.")]),e._v(" "),n("li",[e._v("Works on all versions of vanilla Minecraft.")])]),e._v(" "),n("h3",{attrs:{id:"a-screenshot-of-holy-gl4es-running-minecraft-1-21-1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-holy-gl4es-running-minecraft-1-21-1"}},[e._v("#")]),e._v(" A screenshot of Holy GL4ES running Minecraft 1.21.1")]),e._v(" "),n("p",[n("img",{attrs:{src:"https://cdn.discordapp.com/attachments/729671788187091024/1287348906983952497/2024-09-22_12.32.23.png?ex=66f28a19&is=66f13899&hm=63c6388b26f3cc1d4fbe67d74216de09ccb5a0ad0b27d0a18004dc9d67ad81c7&",alt:"holygl4es"}})]),e._v(" "),n("h2",{attrs:{id:"angle"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#angle"}},[e._v("#")]),e._v(" ANGLE")]),e._v(" "),n("ul",[n("li",[e._v("Slower than Holy GL4ES(*), runs on Vulkan. Should be used only in specific cases, where a server resource pack or a mod fails to run due to missing OpenGL extensions.")]),e._v(" "),n("li",[e._v("Supports OpenGL 3.2 only.")]),e._v(" "),n("li",[e._v("Only works on Minecraft 1.17+")])]),e._v(" "),n("blockquote",[n("p",[e._v("On iOS devices, ANGLE can provide faster performance than Holy GL4ES.")])]),e._v(" "),n("h3",{attrs:{id:"a-screenshot-of-angle-running-minecraft-1-21-1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-angle-running-minecraft-1-21-1"}},[e._v("#")]),e._v(" A screenshot of ANGLE running Minecraft 1.21.1")]),e._v(" "),n("p",[n("img",{attrs:{src:"https://cdn.discordapp.com/attachments/729671788187091024/1287348906191093811/Screenshot_20240922_124430_PojavLauncher_Minecraft_Java_Edition_for_Android.jpg?ex=66f28a19&is=66f13899&hm=88e553848a800ce70b019fded18cbdfbe62b64fcdc1201c491966e74011b3938&",alt:"angle"}})]),e._v(" "),n("h2",{attrs:{id:"zink"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#zink"}},[e._v("#")]),e._v(" Zink")]),e._v(" "),n("ul",[n("li",[e._v("Slow. It's only useful for mods that don't run due to missing OpenGL extensions and for running shaders.")]),e._v(" "),n("li",[e._v("Supports OpenGL 4.5 on Adreno GPUs with Turnip, and OpenGL 3.3 on Mali GPUs. Adreno GPUs without Turnip "),n("strong",[e._v("will")]),e._v(" experience significant bugs or crashes when using Zink.")]),e._v(" "),n("li",[e._v("Works on all vanilla versions of Minecraft.")])]),e._v(" "),n("h3",{attrs:{id:"a-screenshot-of-zink-running-minecraft-1-21-1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#a-screenshot-of-zink-running-minecraft-1-21-1"}},[e._v("#")]),e._v(" A screenshot of Zink running Minecraft 1.21.1")]),e._v(" "),n("p",[n("img",{attrs:{src:"https://cdn.discordapp.com/attachments/729671788187091024/1287348906606461000/2024-09-22_12.38.14.png?ex=66f28a19&is=66f13899&hm=9f1dc738d286463d1d2fcf7e9b055c06da027353ace6ddad043c22667b2d8f1f&",alt:"Zink"}})])])}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/67.fd6f3c9d.js b/assets/js/67.fd6f3c9d.js new file mode 100644 index 00000000..5bebca7e --- /dev/null +++ b/assets/js/67.fd6f3c9d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{371:function(r,e,o){"use strict";o.r(e);var t=o(8),a=Object(t.a)({},(function(){var r=this,e=r._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[e("h1",{attrs:{id:"resource-pack-or-world-doesn-t-show-up"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#resource-pack-or-world-doesn-t-show-up"}},[r._v("#")]),r._v(" Resource pack or world doesn't show up")]),r._v(" "),e("p",[r._v("Read carefully and check the structure of the archives (zips) or folders (directories), make sure there are no additional ones.")]),r._v(" "),e("h2",{attrs:{id:"resource-pack"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#resource-pack"}},[r._v("#")]),r._v(" Resource pack")]),r._v(" "),e("p",[e("strong",[r._v("Wrong:")]),r._v("\npack.zip → pack (folder) → pack.mcmeta\npack (folder) → pack (folder) → pack.mcmeta")]),r._v(" "),e("p",[e("strong",[r._v("Correct:")]),r._v("\npack.zip → pack.mcmeta\npack (folder) → pack.mcmeta")]),r._v(" "),e("h2",{attrs:{id:"world"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#world"}},[r._v("#")]),r._v(" World")]),r._v(" "),e("p",[r._v("The world cannot be zipped inside the saves folder.")]),r._v(" "),e("p",[e("strong",[r._v("Wrong:")]),r._v("\nworld.zip → level.dat\nworld.zip → world (directory) → level.dat")]),r._v(" "),e("p",[e("strong",[r._v("Correct:")]),r._v("\nworld (directory) → level.dat")])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/57.3f480009.js b/assets/js/68.bebc0b0c.js similarity index 95% rename from assets/js/57.3f480009.js rename to assets/js/68.bebc0b0c.js index 2d6ba06a..77a4516c 100644 --- a/assets/js/57.3f480009.js +++ b/assets/js/68.bebc0b0c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{364:function(e,t,r){"use strict";r.r(t);var s=r(8),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"shaders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shaders"}},[e._v("#")]),e._v(" Shaders")]),e._v(" "),t("h3",{attrs:{id:"open4es"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open4es"}},[e._v("#")]),e._v(" Open4ES")]),e._v(" "),t("ul",[t("li",[e._v("Famous shaders (e.g. SEUS), which are converted to work with GL4ES.")]),e._v(" "),t("li",[e._v("Open4ES GitHub repository "),t("a",{attrs:{href:"https://github.com/Open4Es/Open4Es-Shader-Android",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Open4ES Old Versions Archive "),t("a",{attrs:{href:"https://www.mediafire.com/folder/cp87zpb3ichj7/Open4ES",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}},[e._v("#")]),e._v(" Screenshot of Open4ES-Chocapic on Minecraft 1.8.9")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://cdn.discordapp.com/attachments/967462820012773466/1094273064096764024/Screenshot_2023-04-08-16-49-38-257_net.kdt.pojavlaunch.debug.jpg",alt:"Open4ES"}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{374:function(e,t,r){"use strict";r.r(t);var s=r(8),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"shaders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shaders"}},[e._v("#")]),e._v(" Shaders")]),e._v(" "),t("h3",{attrs:{id:"open4es"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#open4es"}},[e._v("#")]),e._v(" Open4ES")]),e._v(" "),t("ul",[t("li",[e._v("Famous shaders (e.g. SEUS), which are converted to work with GL4ES.")]),e._v(" "),t("li",[e._v("Open4ES GitHub repository "),t("a",{attrs:{href:"https://github.com/Open4Es/Open4Es-Shader-Android",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Open4ES Old Versions Archive "),t("a",{attrs:{href:"https://www.mediafire.com/folder/cp87zpb3ichj7/Open4ES",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}},[e._v("#")]),e._v(" Screenshot of Open4ES-Chocapic on Minecraft 1.8.9")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://cdn.discordapp.com/attachments/967462820012773466/1094273064096764024/Screenshot_2023-04-08-16-49-38-257_net.kdt.pojavlaunch.debug.jpg",alt:"Open4ES"}})])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/58.72d357a1.js b/assets/js/69.4bfd5310.js similarity index 92% rename from assets/js/58.72d357a1.js rename to assets/js/69.4bfd5310.js index c3bd7fbb..54f1145d 100644 --- a/assets/js/58.72d357a1.js +++ b/assets/js/69.4bfd5310.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{361:function(t,o,n){"use strict";n.r(o);var i=n(8),s=Object(i.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"signing-in"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#signing-in"}},[t._v("#")]),t._v(" Signing in")]),t._v(" "),o("p",[t._v("PojavLauncher supports multiple types of accounts to sign in:")]),t._v(" "),o("ul",[o("li",[t._v("Microsoft Accounts(*)")]),t._v(" "),o("li",[t._v("Local Accounts(^)")])]),t._v(" "),o("p",[t._v("(*) Microsoft Accounts only work if the Microsoft Account has Minecraft: Java Edition purchased.")]),t._v(" "),o("p",[t._v("(^) Local Accounts only work if you have already logged into a Microsoft Account with Minecraft: Java Edition purchased.")])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{372:function(t,o,n){"use strict";n.r(o);var i=n(8),s=Object(i.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"signing-in"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#signing-in"}},[t._v("#")]),t._v(" Signing in")]),t._v(" "),o("p",[t._v("PojavLauncher supports multiple types of accounts to sign in:")]),t._v(" "),o("ul",[o("li",[t._v("Microsoft Accounts(*)")]),t._v(" "),o("li",[t._v("Local Accounts(^)")])]),t._v(" "),o("p",[t._v("(*) Microsoft Accounts only work if the Microsoft Account has Minecraft: Java Edition purchased.")]),t._v(" "),o("p",[t._v("(^) Local Accounts only work if you have already logged into a Microsoft Account with Minecraft: Java Edition purchased.")])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/59.1fba1f04.js b/assets/js/70.0791721f.js similarity index 92% rename from assets/js/59.1fba1f04.js rename to assets/js/70.0791721f.js index c084465c..6df6a386 100644 --- a/assets/js/59.1fba1f04.js +++ b/assets/js/70.0791721f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{362:function(n,e,o){"use strict";o.r(e);var t=o(8),i=Object(t.a)({},(function(){var n=this._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[n("h1",{attrs:{id:"bringing-pojavlauncher-to-unjailbroken-ios"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#bringing-pojavlauncher-to-unjailbroken-ios"}},[this._v("#")]),this._v(" Bringing PojavLauncher to unjailbroken iOS")]),this._v(" "),n("p",[this._v("After many months working on PojavLauncher for unjailbroken devices, we're so excited to announce PojavLauncher 2.1--the first official build of PojavLauncher to support unjailbroken iDevices! This means that you can enjoy PojavLauncher while still keeping your device secure and on the latest versions of iOS!")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{373:function(n,e,o){"use strict";o.r(e);var t=o(8),i=Object(t.a)({},(function(){var n=this._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[n("h1",{attrs:{id:"bringing-pojavlauncher-to-unjailbroken-ios"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#bringing-pojavlauncher-to-unjailbroken-ios"}},[this._v("#")]),this._v(" Bringing PojavLauncher to unjailbroken iOS")]),this._v(" "),n("p",[this._v("After many months working on PojavLauncher for unjailbroken devices, we're so excited to announce PojavLauncher 2.1--the first official build of PojavLauncher to support unjailbroken iDevices! This means that you can enjoy PojavLauncher while still keeping your device secure and on the latest versions of iOS!")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/60.6b5ca379.js b/assets/js/71.a267d562.js similarity index 77% rename from assets/js/60.6b5ca379.js rename to assets/js/71.a267d562.js index 9ab5d743..c28a2f09 100644 --- a/assets/js/60.6b5ca379.js +++ b/assets/js/71.a267d562.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{363:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{375:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/72.e60e86d1.js b/assets/js/72.e60e86d1.js new file mode 100644 index 00000000..2e4dcd96 --- /dev/null +++ b/assets/js/72.e60e86d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{376:function(t,e,s){"use strict";s.r(e);var n=s(8),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"zink-doesn-t-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#zink-doesn-t-work"}},[t._v("#")]),t._v(" Zink doesn't work")]),t._v(" "),e("p",[t._v("If Zink worked for you before the "),e("code",[t._v("foxglove")]),t._v(" update, this might get it running on your device. It doesn't help on devices which don't fulfill the base Zink requirements.")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",[e("code",[t._v("**/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/custom_env.txt** \n(if this file does not exist, create it)\n")])])]),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("MESA_GL_VERSION_OVERRIDE=4.6\nMESA_GLSL_VERSION_OVERRIDE=460\n")])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/61.1950357f.js b/assets/js/73.9ec38d2c.js similarity index 98% rename from assets/js/61.1950357f.js rename to assets/js/73.9ec38d2c.js index 7e17af43..d85bc06d 100644 --- a/assets/js/61.1950357f.js +++ b/assets/js/73.9ec38d2c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{365:function(e,t,o){"use strict";o.r(t);var i=o(8),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supported-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-devices"}},[e._v("#")]),e._v(" Supported Devices")]),e._v(" "),t("h2",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Minimum requirements:")]),e._v(" "),t("ul",[t("li",[e._v("32-bit (aarch32 or 32-bit/i386) CPU")]),e._v(" "),t("li",[e._v("Android 5.0")]),e._v(" "),t("li",[e._v("1 gigabyte of RAM")])]),e._v(" "),t("p",[e._v("Recommended requirements:")]),e._v(" "),t("ul",[t("li",[e._v("64-bit (aarch64 or 64-bit/x86_64) CPU")]),e._v(" "),t("li",[e._v("Android 8.0")]),e._v(" "),t("li",[e._v("4 gigabytes of RAM")]),e._v(" "),t("li",[e._v('GPU with "Vulkan" API (support for '),t("code",[e._v("vulkanmod")]),e._v(" and/or "),t("code",[e._v("v3_zink")]),e._v(")")])]),e._v(" "),t("h3",{attrs:{id:"chromeos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chromeos"}},[e._v("#")]),e._v(" ChromeOS")]),e._v(" "),t("p",[e._v("Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.")]),e._v(" "),t("h3",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),t("p",[e._v("It is not recommended to run PojavLauncher on Linux. Though, you can try sideloading the app on your distribution by using Anbox or Waydroid. We won't provide support for it though.")]),e._v(" "),t("ul",[t("li",[e._v("Installing Anbox\n"),t("ul",[t("li",[e._v("on Ubuntu ("),t("code",[e._v("snap")]),e._v(" is required);")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("snap install --devmode --beta anbox\n")])])]),e._v("You'll have to install necessary kernel modules though, so check the official "),t("a",{attrs:{href:"https://docs.anbox.io/userguide/install_kernel_modules.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Anbox wiki"),t("OutboundLink")],1),e._v(" about it.\n"),t("ul",[t("li",[t("p",[e._v("on Arch-based (Manjaro, Endeavor, Garuda) distributions;")]),e._v(" "),t("p",[e._v("Check the official "),t("a",{attrs:{href:"https://wiki.archlinux.org/title/Anbox#:~:text=Project%20provides%20OpenGApps.-,Install%20Anbox,steps%20done%20to%20use%20Anbox!",target:"_blank",rel:"noopener noreferrer"}},[e._v("Arch wiki"),t("OutboundLink")],1),e._v(" about it, as it is a loooong tutorial to be included here.")])])])])]),e._v(" "),t("h2",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("Minimum requirements:")]),e._v(" "),t("ul",[t("li",[e._v("Apple A8 SoC\n"),t("ul",[t("li",[e._v("The Apple A7 SoC is losing support in PojavLauncher 2.2.")])])]),e._v(" "),t("li",[e._v("iOS 12")]),e._v(" "),t("li",[e._v("1 gigabyte of RAM")])]),e._v(" "),t("p",[e._v("Recommended requirements:")]),e._v(" "),t("ul",[t("li",[e._v("Apple A10/A10X Fusion SoC")]),e._v(" "),t("li",[e._v("iOS 14")]),e._v(" "),t("li",[e._v("2 gigabytes of RAM")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{377:function(e,t,o){"use strict";o.r(t);var i=o(8),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supported-devices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supported-devices"}},[e._v("#")]),e._v(" Supported Devices")]),e._v(" "),t("h2",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android")]),e._v(" "),t("p",[e._v("Minimum requirements:")]),e._v(" "),t("ul",[t("li",[e._v("32-bit (aarch32 or 32-bit/i386) CPU")]),e._v(" "),t("li",[e._v("Android 5.0")]),e._v(" "),t("li",[e._v("1 gigabyte of RAM")])]),e._v(" "),t("p",[e._v("Recommended requirements:")]),e._v(" "),t("ul",[t("li",[e._v("64-bit (aarch64 or 64-bit/x86_64) CPU")]),e._v(" "),t("li",[e._v("Android 8.0")]),e._v(" "),t("li",[e._v("4 gigabytes of RAM")]),e._v(" "),t("li",[e._v('GPU with "Vulkan" API (support for '),t("code",[e._v("vulkanmod")]),e._v(" and/or "),t("code",[e._v("v3_zink")]),e._v(")")])]),e._v(" "),t("h3",{attrs:{id:"chromeos"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chromeos"}},[e._v("#")]),e._v(" ChromeOS")]),e._v(" "),t("p",[e._v("Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps.")]),e._v(" "),t("h3",{attrs:{id:"linux"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#linux"}},[e._v("#")]),e._v(" Linux")]),e._v(" "),t("p",[e._v("It is not recommended to run PojavLauncher on Linux. Though, you can try sideloading the app on your distribution by using Anbox or Waydroid. We won't provide support for it though.")]),e._v(" "),t("ul",[t("li",[e._v("Installing Anbox\n"),t("ul",[t("li",[e._v("on Ubuntu ("),t("code",[e._v("snap")]),e._v(" is required);")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("snap install --devmode --beta anbox\n")])])]),e._v("You'll have to install necessary kernel modules though, so check the official "),t("a",{attrs:{href:"https://docs.anbox.io/userguide/install_kernel_modules.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Anbox wiki"),t("OutboundLink")],1),e._v(" about it.\n"),t("ul",[t("li",[t("p",[e._v("on Arch-based (Manjaro, Endeavor, Garuda) distributions;")]),e._v(" "),t("p",[e._v("Check the official "),t("a",{attrs:{href:"https://wiki.archlinux.org/title/Anbox#:~:text=Project%20provides%20OpenGApps.-,Install%20Anbox,steps%20done%20to%20use%20Anbox!",target:"_blank",rel:"noopener noreferrer"}},[e._v("Arch wiki"),t("OutboundLink")],1),e._v(" about it, as it is a loooong tutorial to be included here.")])])])])]),e._v(" "),t("h2",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS")]),e._v(" "),t("p",[e._v("Minimum requirements:")]),e._v(" "),t("ul",[t("li",[e._v("Apple A8 SoC\n"),t("ul",[t("li",[e._v("The Apple A7 SoC is losing support in PojavLauncher 2.2.")])])]),e._v(" "),t("li",[e._v("iOS 12")]),e._v(" "),t("li",[e._v("1 gigabyte of RAM")])]),e._v(" "),t("p",[e._v("Recommended requirements:")]),e._v(" "),t("ul",[t("li",[e._v("Apple A10/A10X Fusion SoC")]),e._v(" "),t("li",[e._v("iOS 14")]),e._v(" "),t("li",[e._v("2 gigabytes of RAM")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/62.85343d43.js b/assets/js/74.bb6e46d5.js similarity index 86% rename from assets/js/62.85343d43.js rename to assets/js/74.bb6e46d5.js index 2603f699..1e2682a9 100644 --- a/assets/js/62.85343d43.js +++ b/assets/js/74.bb6e46d5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{366:function(t,o,s){"use strict";s.r(o);var n=s(8),i=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"openjdk-8-coming-to-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openjdk-8-coming-to-ios"}},[this._v("#")]),this._v(" OpenJDK 8, coming to iOS")])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{378:function(t,o,s){"use strict";s.r(o);var n=s(8),i=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"openjdk-8-coming-to-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#openjdk-8-coming-to-ios"}},[this._v("#")]),this._v(" OpenJDK 8, coming to iOS")])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/63.cbfcdf27.js b/assets/js/75.1d2d7d35.js similarity index 99% rename from assets/js/63.cbfcdf27.js rename to assets/js/75.1d2d7d35.js index 94d6b01d..6cb01a4a 100644 --- a/assets/js/63.cbfcdf27.js +++ b/assets/js/75.1d2d7d35.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{368:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supporting-1-17-and-beyond"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supporting-1-17-and-beyond"}},[e._v("#")]),e._v(" Supporting 1.17 and beyond")]),e._v(" "),t("p",[e._v("After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we've gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots.")]),e._v(" "),t("p",[e._v("Here's how to get it to work. You need to have a "),t("strong",[e._v("GitHub account")]),e._v(" in order to download the builds and JRE. "),t("s",[e._v("Regardless of your platform, you'll need to download "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724164160761626624/860864619350065162/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("this resource pack"),t("OutboundLink")],1),e._v(".")]),e._v(" The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell's patch for 1.17 on gl4es.")]),e._v(" "),t("h2",{attrs:{id:"known-issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("[Android only] Crosshair icon and Block outline don't render.")]),e._v(" "),t("li",[e._v("You can tell us in "),t("a",{attrs:{href:"https://discord.gg/6RpEJda",target:"_blank",rel:"noopener noreferrer"}},[e._v("our Discord server"),t("OutboundLink")],1),e._v(" or open an issue if you found one.")]),e._v(" "),t("li",[e._v("UPDATE: "),t("s",[e._v("32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution.")]),e._v(" We finally found a gold bar under the sea! Although this "),t("a",{attrs:{href:"https://www.mediafire.com/file/v0xcufgzwgga0jy/jre17-arm-20210914-termux.tar.xz/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("JRE17"),t("OutboundLink")],1),e._v(" is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.)")])]),e._v(" "),t("h2",{attrs:{id:"platform-specific-instruction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#platform-specific-instruction"}},[e._v("#")]),e._v(" Platform-specific instruction")]),e._v(" "),t("h3",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android:")]),e._v(" "),t("ul",[t("li",[e._v("Download latest build: "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/actions?query=branch%3Av3_openjdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Download JRE17: "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch/releases/tag/jre17-ec28559",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". You need to download the artifact that matches your device architecture: "),t("code",[e._v("jre17-")]),e._v(", don’t pick jdk17 or debuginfo.")]),e._v(" "),t("li",[e._v("When you install the APK, it will be displayed as second app if you have one installed before.")]),e._v(" "),t("li",[e._v("Go to launcher settings.")]),e._v(" "),t("li",[e._v("Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there.")]),e._v(" "),t("li",[e._v("Switch renderer to gl4es 1.1.5 - OpenGL ES 3.")]),e._v(" "),t("li",[t("s",[e._v("On 32-bit, you need to add "),t("code",[e._v("-Xss1m")]),e._v(" to JVM arguments, otherwise Java will crash.")])]),e._v(" "),t("li",[e._v("Now launch Minecraft 1.17 and enjoy!")])]),e._v(" "),t("h3",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS:")]),e._v(" "),t("ul",[t("li",[e._v("Install package "),t("code",[e._v("openjdk-16-jre")]),e._v(" or "),t("code",[e._v("openjdk-17-jre")]),e._v(" (if you have Procursus bootstrap)")]),e._v(" "),t("li",[e._v("Get latest build from the "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/actions?query=branch%3Amain",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://repo.doregon.gq",target:"_blank",rel:"noopener noreferrer"}},[e._v("Doregon's Repo"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences.")]),e._v(" "),t("li",[e._v("Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem.")]),e._v(" "),t("li",[e._v("Change Renderer to "),t("code",[e._v("tinygl4angle")]),e._v(".")]),e._v(" "),t("li",[e._v("Now launch Minecraft 1.17 and enjoy!")]),e._v(" "),t("li",[e._v("Since iOS uses "),t("code",[e._v("tinygl4angle")]),e._v(" renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+.")])]),e._v(" "),t("h2",{attrs:{id:"note-for-minecraft-21w37a-on-android-thanks-to-notahero04"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#note-for-minecraft-21w37a-on-android-thanks-to-notahero04"}},[e._v("#")]),e._v(" Note for Minecraft 21w37a+ on Android (thanks to "),t("a",{attrs:{href:"https://github.com/NotAHero04",target:"_blank",rel:"noopener noreferrer"}},[e._v("@NotAHero04"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("ul",[t("li",[e._v("Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/923349783589056522/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("This"),t("OutboundLink")],1),e._v(" is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go!")]),e._v(" "),t("li",[e._v("A small note: When the popup about 1.17 appears, tap "),t("strong",[e._v("Play Anyway")]),e._v(". Tapping OK "),t("strong",[e._v("will overwrite the patch")]),e._v(".")]),e._v(" "),t("li",[e._v("Another small note: 1.17.1 or below will simply not work with this patch. "),t("s",[e._v("I recommend using per-version config feature with it.")]),e._v(" If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction:")])]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Download the new assets-v0 on the PojavLauncher Discord server, or "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/923349783589056522/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("here."),t("OutboundLink")],1)])]),e._v(" "),t("li",[t("p",[e._v("Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below).")])]),e._v(" "),t("li",[t("p",[e._v('Modify the options.txt file.\nWith the file names above, change the resourcePacks key to:\nresourcePacks:["assets-v0.zip","'),t("code",[e._v("new_patch_name")]),e._v('.zip"].')])]),e._v(" "),t("li",[t("p",[e._v("Now enjoy your game. Be sure to choose Play Anyway when the popup shows.")])])]),e._v(" "),t("p",[e._v("Until we get a more permenant solution to fix 1.17 and newer, this is what we have. It's not perfect, but it works. We hope to see a version of gl4es that translates OpenGL 3 to OpenGL ES, or continue to work on Zink as a backup method if all else fails.*")]),e._v(" "),t("h2",{attrs:{id:"does-optifine-or-sodium-works"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#does-optifine-or-sodium-works"}},[e._v("#")]),e._v(" Does OptiFine or Sodium works?")]),e._v(" "),t("h3",{attrs:{id:"optifine"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#optifine"}},[e._v("#")]),e._v(" OptiFine")]),e._v(" "),t("ul",[t("li",[t("p",[t("s",[e._v("OptiFine seems to not working on Android, as the patch resource pack gets ignored.")]),e._v(" However, it works by putting patched shader files into the client.")]),e._v(" "),t("ul",[t("li",[e._v("Download "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/922043517860212736/Pojav117AssetsPatcher.jar",target:"_blank",rel:"noopener noreferrer"}},[e._v("this patcher"),t("OutboundLink")],1),e._v(". Since OptiFine preloads some shader files, the "),t("code",[e._v("assets-v0")]),e._v(" resource pack trick could not be applied.")]),e._v(" "),t("li",[e._v("Navigate to Options -> Launch a mod installer (the first option). Pick the downloaded patcher.")]),e._v(" "),t("li",[e._v("Select the installed OptiFine version that you want to patch.")]),e._v(" "),t("li",[e._v('Press "OK" to start the patch process.')]),e._v(" "),t("li",[e._v('The alert "Patched '),t("code",[e._v("version")]),e._v('" will be displayed once the patching process finished, otherwise, an alert will display with some error description. Report this to us if this happens.')]),e._v(" "),t("li",[e._v('Now go back to the launcher and press Play. When an alert displays about "install additional resources”, press “Play anyway”.')]),e._v(" "),t("li",[e._v("Enjoy OptiFine moment.")])]),e._v(" "),t("p",[t("strong",[e._v("Known issue:")]),e._v(" Render Regions crashes the game.")])]),e._v(" "),t("li",[t("p",[e._v("OptiFine works on iOS. Render Regions works.")])])]),e._v(" "),t("h3",{attrs:{id:"sodium"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sodium"}},[e._v("#")]),e._v(" Sodium")]),e._v(" "),t("ul",[t("li",[e._v("Sodium is currently not working on both platforms.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{379:function(e,t,o){"use strict";o.r(t);var r=o(8),a=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supporting-1-17-and-beyond"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supporting-1-17-and-beyond"}},[e._v("#")]),e._v(" Supporting 1.17 and beyond")]),e._v(" "),t("p",[e._v("After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we've gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots.")]),e._v(" "),t("p",[e._v("Here's how to get it to work. You need to have a "),t("strong",[e._v("GitHub account")]),e._v(" in order to download the builds and JRE. "),t("s",[e._v("Regardless of your platform, you'll need to download "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724164160761626624/860864619350065162/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("this resource pack"),t("OutboundLink")],1),e._v(".")]),e._v(" The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell's patch for 1.17 on gl4es.")]),e._v(" "),t("h2",{attrs:{id:"known-issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("[Android only] Crosshair icon and Block outline don't render.")]),e._v(" "),t("li",[e._v("You can tell us in "),t("a",{attrs:{href:"https://discord.gg/6RpEJda",target:"_blank",rel:"noopener noreferrer"}},[e._v("our Discord server"),t("OutboundLink")],1),e._v(" or open an issue if you found one.")]),e._v(" "),t("li",[e._v("UPDATE: "),t("s",[e._v("32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution.")]),e._v(" We finally found a gold bar under the sea! Although this "),t("a",{attrs:{href:"https://www.mediafire.com/file/v0xcufgzwgga0jy/jre17-arm-20210914-termux.tar.xz/file",target:"_blank",rel:"noopener noreferrer"}},[e._v("JRE17"),t("OutboundLink")],1),e._v(" is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.)")])]),e._v(" "),t("h2",{attrs:{id:"platform-specific-instruction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#platform-specific-instruction"}},[e._v("#")]),e._v(" Platform-specific instruction")]),e._v(" "),t("h3",{attrs:{id:"android"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#android"}},[e._v("#")]),e._v(" Android:")]),e._v(" "),t("ul",[t("li",[e._v("Download latest build: "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher/actions?query=branch%3Av3_openjdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("Download JRE17: "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch/releases/tag/jre17-ec28559",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". You need to download the artifact that matches your device architecture: "),t("code",[e._v("jre17-")]),e._v(", don’t pick jdk17 or debuginfo.")]),e._v(" "),t("li",[e._v("When you install the APK, it will be displayed as second app if you have one installed before.")]),e._v(" "),t("li",[e._v("Go to launcher settings.")]),e._v(" "),t("li",[e._v("Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there.")]),e._v(" "),t("li",[e._v("Switch renderer to gl4es 1.1.5 - OpenGL ES 3.")]),e._v(" "),t("li",[t("s",[e._v("On 32-bit, you need to add "),t("code",[e._v("-Xss1m")]),e._v(" to JVM arguments, otherwise Java will crash.")])]),e._v(" "),t("li",[e._v("Now launch Minecraft 1.17 and enjoy!")])]),e._v(" "),t("h3",{attrs:{id:"ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#ios"}},[e._v("#")]),e._v(" iOS:")]),e._v(" "),t("ul",[t("li",[e._v("Install package "),t("code",[e._v("openjdk-16-jre")]),e._v(" or "),t("code",[e._v("openjdk-17-jre")]),e._v(" (if you have Procursus bootstrap)")]),e._v(" "),t("li",[e._v("Get latest build from the "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/actions?query=branch%3Amain",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://repo.doregon.gq",target:"_blank",rel:"noopener noreferrer"}},[e._v("Doregon's Repo"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("li",[e._v("After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences.")]),e._v(" "),t("li",[e._v("Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem.")]),e._v(" "),t("li",[e._v("Change Renderer to "),t("code",[e._v("tinygl4angle")]),e._v(".")]),e._v(" "),t("li",[e._v("Now launch Minecraft 1.17 and enjoy!")]),e._v(" "),t("li",[e._v("Since iOS uses "),t("code",[e._v("tinygl4angle")]),e._v(" renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+.")])]),e._v(" "),t("h2",{attrs:{id:"note-for-minecraft-21w37a-on-android-thanks-to-notahero04"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#note-for-minecraft-21w37a-on-android-thanks-to-notahero04"}},[e._v("#")]),e._v(" Note for Minecraft 21w37a+ on Android (thanks to "),t("a",{attrs:{href:"https://github.com/NotAHero04",target:"_blank",rel:"noopener noreferrer"}},[e._v("@NotAHero04"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("ul",[t("li",[e._v("Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/923349783589056522/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("This"),t("OutboundLink")],1),e._v(" is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go!")]),e._v(" "),t("li",[e._v("A small note: When the popup about 1.17 appears, tap "),t("strong",[e._v("Play Anyway")]),e._v(". Tapping OK "),t("strong",[e._v("will overwrite the patch")]),e._v(".")]),e._v(" "),t("li",[e._v("Another small note: 1.17.1 or below will simply not work with this patch. "),t("s",[e._v("I recommend using per-version config feature with it.")]),e._v(" If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction:")])]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Download the new assets-v0 on the PojavLauncher Discord server, or "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/923349783589056522/assets-v0.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("here."),t("OutboundLink")],1)])]),e._v(" "),t("li",[t("p",[e._v("Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below).")])]),e._v(" "),t("li",[t("p",[e._v('Modify the options.txt file.\nWith the file names above, change the resourcePacks key to:\nresourcePacks:["assets-v0.zip","'),t("code",[e._v("new_patch_name")]),e._v('.zip"].')])]),e._v(" "),t("li",[t("p",[e._v("Now enjoy your game. Be sure to choose Play Anyway when the popup shows.")])])]),e._v(" "),t("p",[e._v("Until we get a more permenant solution to fix 1.17 and newer, this is what we have. It's not perfect, but it works. We hope to see a version of gl4es that translates OpenGL 3 to OpenGL ES, or continue to work on Zink as a backup method if all else fails.*")]),e._v(" "),t("h2",{attrs:{id:"does-optifine-or-sodium-works"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#does-optifine-or-sodium-works"}},[e._v("#")]),e._v(" Does OptiFine or Sodium works?")]),e._v(" "),t("h3",{attrs:{id:"optifine"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#optifine"}},[e._v("#")]),e._v(" OptiFine")]),e._v(" "),t("ul",[t("li",[t("p",[t("s",[e._v("OptiFine seems to not working on Android, as the patch resource pack gets ignored.")]),e._v(" However, it works by putting patched shader files into the client.")]),e._v(" "),t("ul",[t("li",[e._v("Download "),t("a",{attrs:{href:"https://cdn.discordapp.com/attachments/724163890803638277/922043517860212736/Pojav117AssetsPatcher.jar",target:"_blank",rel:"noopener noreferrer"}},[e._v("this patcher"),t("OutboundLink")],1),e._v(". Since OptiFine preloads some shader files, the "),t("code",[e._v("assets-v0")]),e._v(" resource pack trick could not be applied.")]),e._v(" "),t("li",[e._v("Navigate to Options -> Launch a mod installer (the first option). Pick the downloaded patcher.")]),e._v(" "),t("li",[e._v("Select the installed OptiFine version that you want to patch.")]),e._v(" "),t("li",[e._v('Press "OK" to start the patch process.')]),e._v(" "),t("li",[e._v('The alert "Patched '),t("code",[e._v("version")]),e._v('" will be displayed once the patching process finished, otherwise, an alert will display with some error description. Report this to us if this happens.')]),e._v(" "),t("li",[e._v('Now go back to the launcher and press Play. When an alert displays about "install additional resources”, press “Play anyway”.')]),e._v(" "),t("li",[e._v("Enjoy OptiFine moment.")])]),e._v(" "),t("p",[t("strong",[e._v("Known issue:")]),e._v(" Render Regions crashes the game.")])]),e._v(" "),t("li",[t("p",[e._v("OptiFine works on iOS. Render Regions works.")])])]),e._v(" "),t("h3",{attrs:{id:"sodium"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sodium"}},[e._v("#")]),e._v(" Sodium")]),e._v(" "),t("ul",[t("li",[e._v("Sodium is currently not working on both platforms.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/64.6ea9615a.js b/assets/js/76.59de7e2d.js similarity index 87% rename from assets/js/64.6ea9615a.js rename to assets/js/76.59de7e2d.js index c81c621c..03707dd3 100644 --- a/assets/js/64.6ea9615a.js +++ b/assets/js/76.59de7e2d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{367:function(t,e,r){"use strict";r.r(e);var s=r(8),n=Object(s.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"interacting-with-our-fellow-developers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interacting-with-our-fellow-developers"}},[this._v("#")]),this._v(" Interacting with our fellow developers")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{380:function(t,e,r){"use strict";r.r(e);var s=r(8),n=Object(s.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"interacting-with-our-fellow-developers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interacting-with-our-fellow-developers"}},[this._v("#")]),this._v(" Interacting with our fellow developers")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/65.f59e4ae8.js b/assets/js/77.aa70530c.js similarity index 95% rename from assets/js/65.f59e4ae8.js rename to assets/js/77.aa70530c.js index bf4c791f..983fd5f5 100644 --- a/assets/js/65.f59e4ae8.js +++ b/assets/js/77.aa70530c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{369:function(e,t,a){"use strict";a.r(t);var r=a(8),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-website-archives"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-website-archives"}},[e._v("#")]),e._v(" PojavLauncher Website Archives")]),e._v(" "),t("p",[e._v("To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding "),t("code",[e._v("/archived_pages")]),e._v(" to the end of the domain name.")]),e._v(" "),t("p",[e._v("Pages currently in the archive:")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/archived_pages/RIP-A7.html"}},[e._v("Deprecating support for the Apple A7 chip (RIP-A7)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/OGL32.html"}},[e._v("Supporting 1.17 and beyond (OGL32)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/PARTNERSHIPS.html"}},[e._v("Interacting with our fellow developers (PARTNERSHIPS)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/JDK8.html"}},[e._v("OpenJDK 8, coming to iOS (JDK8)")]),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/DEVICES_LINUX_INCL.html"}},[e._v("Installing PojavLauncher (ft. Linux)")])],1)])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{381:function(e,t,a){"use strict";a.r(t);var r=a(8),n=Object(r.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-website-archives"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-website-archives"}},[e._v("#")]),e._v(" PojavLauncher Website Archives")]),e._v(" "),t("p",[e._v("To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding "),t("code",[e._v("/archived_pages")]),e._v(" to the end of the domain name.")]),e._v(" "),t("p",[e._v("Pages currently in the archive:")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/archived_pages/RIP-A7.html"}},[e._v("Deprecating support for the Apple A7 chip (RIP-A7)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/OGL32.html"}},[e._v("Supporting 1.17 and beyond (OGL32)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/PARTNERSHIPS.html"}},[e._v("Interacting with our fellow developers (PARTNERSHIPS)")]),t("br"),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/JDK8.html"}},[e._v("OpenJDK 8, coming to iOS (JDK8)")]),e._v(" "),t("RouterLink",{attrs:{to:"/archived_pages/DEVICES_LINUX_INCL.html"}},[e._v("Installing PojavLauncher (ft. Linux)")])],1)])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/66.8e649d95.js b/assets/js/78.71160914.js similarity index 97% rename from assets/js/66.8e649d95.js rename to assets/js/78.71160914.js index b7eaa6dc..a986386b 100644 --- a/assets/js/66.8e649d95.js +++ b/assets/js/78.71160914.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{370:function(e,o,t){"use strict";t.r(o);var s=t(8),r=Object(s.a)({},(function(){var e=this,o=e._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"deprecating-support-for-the-apple-a7-chip"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#deprecating-support-for-the-apple-a7-chip"}},[e._v("#")]),e._v(" Deprecating support for the Apple A7 chip")]),e._v(" "),o("p",[e._v("The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already.")]),e._v(" "),o("p",[e._v("Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2.")]),e._v(" "),o("p",[e._v("This means the following:")]),e._v(" "),o("ul",[o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.1")]),e._v(" will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the "),o("code",[e._v("a7_allow")]),e._v(" preference to "),o("code",[e._v("YES")]),e._v(".")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.1's code")]),e._v(" will be archived and moved to the "),o("code",[e._v("2.1-legacy")]),e._v(" branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported.")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.2")]),e._v(" will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the "),o("code",[e._v("a7_allow")]),e._v(" preference to "),o("code",[e._v("YES")]),e._v(", however support will not be provided for issues encountered while using an A7 device.")]),e._v(" "),o("ul",[o("li",[e._v("If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available.")])])])])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{385:function(e,o,t){"use strict";t.r(o);var s=t(8),r=Object(s.a)({},(function(){var e=this,o=e._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"deprecating-support-for-the-apple-a7-chip"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#deprecating-support-for-the-apple-a7-chip"}},[e._v("#")]),e._v(" Deprecating support for the Apple A7 chip")]),e._v(" "),o("p",[e._v("The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already.")]),e._v(" "),o("p",[e._v("Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2.")]),e._v(" "),o("p",[e._v("This means the following:")]),e._v(" "),o("ul",[o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.1")]),e._v(" will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the "),o("code",[e._v("a7_allow")]),e._v(" preference to "),o("code",[e._v("YES")]),e._v(".")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.1's code")]),e._v(" will be archived and moved to the "),o("code",[e._v("2.1-legacy")]),e._v(" branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported.")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("PojavLauncher 2.2")]),e._v(" will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the "),o("code",[e._v("a7_allow")]),e._v(" preference to "),o("code",[e._v("YES")]),e._v(", however support will not be provided for issues encountered while using an A7 device.")]),e._v(" "),o("ul",[o("li",[e._v("If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available.")])])])])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/67.cb12d099.js b/assets/js/79.42f1dd1d.js similarity index 84% rename from assets/js/67.cb12d099.js rename to assets/js/79.42f1dd1d.js index 3a0dc7ab..f64dc97f 100644 --- a/assets/js/67.cb12d099.js +++ b/assets/js/79.42f1dd1d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{371:function(t,s,n){"use strict";n.r(s);var a=n(8),e=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[t("img",{attrs:{src:"https://cdn.discordapp.com/attachments/1059094483582586950/1087061554190618674/images.png",alt:"."}})])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{383:function(t,s,n){"use strict";n.r(s);var a=n(8),e=Object(a.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[t("img",{attrs:{src:"https://cdn.discordapp.com/attachments/1059094483582586950/1087061554190618674/images.png",alt:"."}})])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/68.321dd9f0.js b/assets/js/80.604a0915.js similarity index 99% rename from assets/js/68.321dd9f0.js rename to assets/js/80.604a0915.js index 17c77467..93902b8b 100644 --- a/assets/js/68.321dd9f0.js +++ b/assets/js/80.604a0915.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{373:function(e,t,i){"use strict";i.r(t);var a=i(8),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-ios"}},[e._v("#")]),e._v(" PojavLauncher iOS")]),e._v(" "),t("h2",{attrs:{id:"_2-2-deepslate"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-2-deepslate"}},[e._v("#")]),e._v(' 2.2 "Deepslate"')]),e._v(" "),t("p",[e._v("With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show:")]),e._v(" "),t("ul",[t("li",[e._v("Implemented a controller configurator")]),e._v(" "),t("li",[e._v("Increased reliability in various places")]),e._v(" "),t("li",[e._v("Added haptics to the on-screen controls")]),e._v(" "),t("li",[e._v("Switched to new input methods to speed up control times")]),e._v(" "),t("li",[e._v("Secured demo mode")]),e._v(" "),t("li",[e._v("Added new preferences to control more of the app")]),e._v(" "),t("li",[e._v("Resolve various issues with windowing in older versions")]),e._v(" "),t("li",[e._v("and many, many more!")])]),e._v(" "),t("p",[t("strong",[e._v("This is the last major release of PojavLauncher that will support iOS 12 and 13.")]),e._v(" Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547.")]),e._v(" "),t("p",[e._v("A full commit changelog is available "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/compare/v2.1.3...v2.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"_2-1-sculk-catalyst"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-1-sculk-catalyst"}},[e._v("#")]),e._v(' 2.1 "Sculk Catalyst"')]),e._v(" "),t("p",[e._v("Minor release, major changes!")]),e._v(" "),t("h3",{attrs:{id:"jailbreak-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#jailbreak-requirement"}},[e._v("#")]),e._v(" Jailbreak requirement")]),e._v(" "),t("p",[e._v("PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited:")]),e._v(" "),t("ul",[t("li",[e._v("You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task.")]),e._v(" "),t("li",[e._v("Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround.")]),e._v(" "),t("li",[e._v("RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks.")])]),e._v(" "),t("p",[e._v("If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken.")]),e._v(" "),t("h3",{attrs:{id:"new-features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#new-features"}},[e._v("#")]),e._v(" New features")]),e._v(" "),t("ul",[t("li",[e._v("Added Demo mode support")]),e._v(" "),t("li",[e._v("Automatic Java version and Renderer selection")]),e._v(" "),t("li",[e._v("Cosmetica custom capes integration")]),e._v(" "),t("li",[e._v("Complete Controller support")]),e._v(" "),t("li",[e._v("Fullscreen AirPlay display support")]),e._v(" "),t("li",[e._v("Keyboard and mouse support deepened")]),e._v(" "),t("li",[e._v("Many settings that were missing from Android are added")]),e._v(" "),t("li",[e._v("(iPadOS 16) Stage Manager support")])]),e._v(" "),t("h3",{attrs:{id:"security"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#security"}},[e._v("#")]),e._v(" Security")]),e._v(" "),t("ul",[t("li",[e._v("Patch log4shell exploit in client")])]),e._v(" "),t("h3",{attrs:{id:"user-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user-interface"}},[e._v("#")]),e._v(" User interface")]),e._v(" "),t("ul",[t("li",[e._v("Added vertical UI")]),e._v(" "),t("li",[e._v("Redesigned Launcher UI to match Android")]),e._v(" "),t("li",[e._v("The current login state will be shown in the title")]),e._v(" "),t("li",[e._v("Play button is greyed out when launching")]),e._v(" "),t("li",[e._v("Back button is hidden when launching")]),e._v(" "),t("li",[e._v("Custom controls UI completed")]),e._v(" "),t("li",[e._v("The control button editor is now a movable window")]),e._v(" "),t("li",[e._v("When game crash occurs, Log Output will be shown for user to determine the problem in place")]),e._v(" "),t("li",[e._v("Multilingual support: you can contribute your translation through Crowdin")]),e._v(" "),t("li",[e._v("New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example)")])]),e._v(" "),t("h3",{attrs:{id:"fixes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Slight changes to error messages")]),e._v(" "),t("li",[e._v("Fix Makefile errors in "),t("code",[e._v("deploy")]),e._v(" and "),t("code",[e._v("ipa")])]),e._v(" "),t("li",[e._v("Fix NullPointerException when launching ≤1.6.4")]),e._v(" "),t("li",[e._v("Fix NullPointerException when setting inherited fields")]),e._v(" "),t("li",[e._v("Fix “Share your logs” not working")]),e._v(" "),t("li",[e._v("Fix Forge, Fabric 1.17+ not launching")]),e._v(" "),t("li",[e._v("Fix postinst issue on Procursus")])]),e._v(" "),t("h3",{attrs:{id:"issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("ul",[t("li",[e._v("Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0")]),e._v(" "),t("li",[e._v("Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later")]),e._v(" "),t("li",[e._v("Old (pre-2.0) custom control .json files no longer work, remove to fix")]),e._v(" "),t("li",[e._v("This is the last release that will support Apple devices with the A7 chip")]),e._v(" "),t("li",[e._v("Mojang login has been removed with this release due to the March 10th deadline")])]),e._v(" "),t("h2",{attrs:{id:"_2-0-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-0-1"}},[e._v("#")]),e._v(" 2.0.1")]),e._v(" "),t("p",[e._v("This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction.")]),e._v(" "),t("h2",{attrs:{id:"_2-0-raw-iron"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-0-raw-iron"}},[e._v("#")]),e._v(' 2.0 "Raw Iron"')]),e._v(" "),t("h3",{attrs:{id:"changes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("The Login view has been simplified to three easy buttons")]),e._v(" "),t("li",[e._v("The Offline Account has been replaced with "),t("a",{attrs:{href:"https://pojavlauncherteam.github.io/updates/local.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Local Account"),t("OutboundLink")],1),e._v(". Installing Minecraft now requires a Mojang or Microsoft account logged in.")]),e._v(" "),t("li",[e._v("New FAQ page to show quick answers to questions")]),e._v(" "),t("li",[e._v("New About view to show quick details, links, and update history")]),e._v(" "),t("li",[e._v("Ability to send logs from within the launcher")]),e._v(" "),t("li",[e._v("The Select Account screen is now a pop-up window")]),e._v(" "),t("li",[e._v("New picker view to switch versions without typing them manually")]),e._v(" "),t("li",[e._v("Support to show your locally installed clients")]),e._v(" "),t("li",[e._v("New settings page to manage preferences")]),e._v(" "),t("li",[e._v("OpenJDK 8 support, to allow older versions of modded Minecraft")]),e._v(" "),t("li",[e._v("New mod installer, built into the launcher")]),e._v(" "),t("li",[e._v("Unfinished in-launcher custom controls (#292)")]),e._v(" "),t("li",[e._v("Move to "),t("code",[e._v("/usr/share")]),e._v(", for better rootFS compatibility")]),e._v(" "),t("li",[e._v("New packaging format (#291)\n"),t("ul",[t("li",[e._v("release, for iOS 14 and lower (full root access jailbreaks)")]),e._v(" "),t("li",[e._v("release-rootless, for iOS 15 (Procursus rootless jailbreak)")])])])]),e._v(" "),t("h3",{attrs:{id:"fixes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-2"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("WIP fix for typing on 1.12.2 and older")]),e._v(" "),t("li",[e._v("The hotbar now works across GUI scales")]),e._v(" "),t("li",[e._v("(With JDK 8) Forge 1.8.9 - 1.15.2 now work")]),e._v(" "),t("li",[e._v("(With JDK 8) Vanilla 1.5.2 and under now work")]),e._v(" "),t("li",[e._v("Buttons now scale correctly according to screen size")]),e._v(" "),t("li",[e._v("Crash if login to Microsoft fails.")])]),e._v(" "),t("h3",{attrs:{id:"issues-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues-2"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("ul",[t("li",[e._v("Old custom control .json files no longer work, remove to fix")]),e._v(" "),t("li",[e._v("Custom controls settings page is not complete, there may be some issues!")]),e._v(" "),t("li",[e._v("An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the Java arguments preference and overb0ard), but you may need to close all apps and remove some tweaks in order to free up enough.")]),e._v(" "),t("li")]),e._v(" "),t("h2",{attrs:{id:"_1-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-2"}},[e._v("#")]),e._v(" 1.2")]),e._v(" "),t("h3",{attrs:{id:"changes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes-2"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("Use new method for Microsoft login")]),e._v(" "),t("li",[e._v("Added gl4es 1.1.5 as an option")]),e._v(" "),t("li",[e._v("WIP custom controls (can be changed by placing at "),t("code",[e._v("/var/mobile/Documents/.pojavlauncher/controlmap/default.json")]),e._v("). Note that some functions may not work properly.")]),e._v(" "),t("li",[e._v("WIP external mouse support")]),e._v(" "),t("li",[e._v("Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt")]),e._v(" "),t("li",[e._v("Reduction of file size with removal of unused binaries")]),e._v(" "),t("li",[e._v("Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher")])]),e._v(" "),t("h3",{attrs:{id:"fixes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-3"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Fix file permission issues during install of package")]),e._v(" "),t("li",[e._v("Hide home bar like Bedrock Edition")]),e._v(" "),t("li",[e._v("Properly hide iPad status bar")])]),e._v(" "),t("h3",{attrs:{id:"known-issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("Crash if login to Microsoft fails.")]),e._v(" "),t("li",[e._v("Control buttons notch offset seems doubled.")]),e._v(" "),t("li",[e._v("Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).")]),e._v(" "),t("li",[e._v("Text input will not work on 1.12.2 and below.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices-2"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the overrideargs.txt file and jetsamctl), but we are unsure if iOS 12 will give enough free RAM.")])]),e._v(" "),t("h2",{attrs:{id:"_1-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-1"}},[e._v("#")]),e._v(" 1.1")]),e._v(" "),t("h3",{attrs:{id:"changes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes-3"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("Added a place to customize JVM Flags, by create and edit "),t("code",[e._v("minecraft/overrideargs.txt")]),e._v(" file.")]),e._v(" "),t("li",[e._v("Changed button offset for avoiding notch cutout on iPhone X and newer.")]),e._v(" "),t("li",[e._v("Forge 1.13+ (not all) and Fabric API are now supported.")]),e._v(" "),t("li",[t("code",[e._v("launcher_profiles.json")]),e._v(" is now automatically created.")]),e._v(" "),t("li",[e._v("Minecraft 1.6.1 to 1.13.2 are now playable.")]),e._v(" "),t("li",[e._v("Mojang authentication was re-written, so it should work now.")])]),e._v(" "),t("h3",{attrs:{id:"fixes-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-4"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Fixed random crashes occur while Minecraft is initializing.")])]),e._v(" "),t("h3",{attrs:{id:"known-issues-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues-2"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("Crash if login to Microsoft fails.")]),e._v(" "),t("li",[e._v("Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).")]),e._v(" "),t("li",[e._v("Text input will not work on 1.12.2 and below.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices-3"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds due to too few RAM. Higher RAM can be set, but I'm unsure if iOS 12 will gives enough free RAM.")])]),e._v(" "),t("h2",{attrs:{id:"_1-0"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-0"}},[e._v("#")]),e._v(" 1.0")]),e._v(" "),t("h3",{attrs:{id:"features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#features"}},[e._v("#")]),e._v(" Features")]),e._v(" "),t("ul",[t("li",[e._v("Login with Mojang (might not work), Microsoft (not tested) or offline.")]),e._v(" "),t("li",[e._v("Minecraft 1.14+ are playable.")]),e._v(" "),t("li",[e._v("Multiplayer and joining servers works.")]),e._v(" "),t("li",[e._v("Audio works (need enable ringer).")]),e._v(" "),t("li",[e._v("Fabric and OptiFine works.")]),e._v(" "),t("li",[e._v("Bedrock-like gestures: click to hotbar item; click to place block (trigger right mouse); hold and move to destroy blocks (trigger hold left mouse), but attacking entites is left mouse, so not same as Bedrock.")]),e._v(" "),t("li",[e._v("Hold screen on UI will hold the left mouse, so it can also used for moving the scroll bar.")]),e._v(" "),t("li",[e._v("On-screen control buttons.")])]),e._v(" "),t("h3",{attrs:{id:"limitations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limitations"}},[e._v("#")]),e._v(" Limitations")]),e._v(" "),t("ul",[t("li",[e._v("Jailbreak is required in order to install OpenJDK and PojavLauncher.")]),e._v(" "),t("li",[e._v("Forge won't work.")]),e._v(" "),t("li",[e._v("Fabric API won't work.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tell us"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"crashes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crashes"}},[e._v("#")]),e._v(" Crashes")]),e._v(" "),t("ul",[t("li",[t("s",[e._v("I've got some reports that JVM was crashing after press “Play” button.")])]),e._v(" "),t("li",[t("s",[e._v("Also, it seems that checkra1n jailbroken devices will get crashed at entering Minecraft (?)")])]),e._v(" "),t("li",[e._v("They were all random crashes and will be fixed in next release.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{382:function(e,t,i){"use strict";i.r(t);var a=i(8),o=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"pojavlauncher-ios"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-ios"}},[e._v("#")]),e._v(" PojavLauncher iOS")]),e._v(" "),t("h2",{attrs:{id:"_2-2-deepslate"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-2-deepslate"}},[e._v("#")]),e._v(' 2.2 "Deepslate"')]),e._v(" "),t("p",[e._v("With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show:")]),e._v(" "),t("ul",[t("li",[e._v("Implemented a controller configurator")]),e._v(" "),t("li",[e._v("Increased reliability in various places")]),e._v(" "),t("li",[e._v("Added haptics to the on-screen controls")]),e._v(" "),t("li",[e._v("Switched to new input methods to speed up control times")]),e._v(" "),t("li",[e._v("Secured demo mode")]),e._v(" "),t("li",[e._v("Added new preferences to control more of the app")]),e._v(" "),t("li",[e._v("Resolve various issues with windowing in older versions")]),e._v(" "),t("li",[e._v("and many, many more!")])]),e._v(" "),t("p",[t("strong",[e._v("This is the last major release of PojavLauncher that will support iOS 12 and 13.")]),e._v(" Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547.")]),e._v(" "),t("p",[e._v("A full commit changelog is available "),t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/compare/v2.1.3...v2.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"_2-1-sculk-catalyst"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-1-sculk-catalyst"}},[e._v("#")]),e._v(' 2.1 "Sculk Catalyst"')]),e._v(" "),t("p",[e._v("Minor release, major changes!")]),e._v(" "),t("h3",{attrs:{id:"jailbreak-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#jailbreak-requirement"}},[e._v("#")]),e._v(" Jailbreak requirement")]),e._v(" "),t("p",[e._v("PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited:")]),e._v(" "),t("ul",[t("li",[e._v("You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task.")]),e._v(" "),t("li",[e._v("Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround.")]),e._v(" "),t("li",[e._v("RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks.")])]),e._v(" "),t("p",[e._v("If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken.")]),e._v(" "),t("h3",{attrs:{id:"new-features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#new-features"}},[e._v("#")]),e._v(" New features")]),e._v(" "),t("ul",[t("li",[e._v("Added Demo mode support")]),e._v(" "),t("li",[e._v("Automatic Java version and Renderer selection")]),e._v(" "),t("li",[e._v("Cosmetica custom capes integration")]),e._v(" "),t("li",[e._v("Complete Controller support")]),e._v(" "),t("li",[e._v("Fullscreen AirPlay display support")]),e._v(" "),t("li",[e._v("Keyboard and mouse support deepened")]),e._v(" "),t("li",[e._v("Many settings that were missing from Android are added")]),e._v(" "),t("li",[e._v("(iPadOS 16) Stage Manager support")])]),e._v(" "),t("h3",{attrs:{id:"security"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#security"}},[e._v("#")]),e._v(" Security")]),e._v(" "),t("ul",[t("li",[e._v("Patch log4shell exploit in client")])]),e._v(" "),t("h3",{attrs:{id:"user-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#user-interface"}},[e._v("#")]),e._v(" User interface")]),e._v(" "),t("ul",[t("li",[e._v("Added vertical UI")]),e._v(" "),t("li",[e._v("Redesigned Launcher UI to match Android")]),e._v(" "),t("li",[e._v("The current login state will be shown in the title")]),e._v(" "),t("li",[e._v("Play button is greyed out when launching")]),e._v(" "),t("li",[e._v("Back button is hidden when launching")]),e._v(" "),t("li",[e._v("Custom controls UI completed")]),e._v(" "),t("li",[e._v("The control button editor is now a movable window")]),e._v(" "),t("li",[e._v("When game crash occurs, Log Output will be shown for user to determine the problem in place")]),e._v(" "),t("li",[e._v("Multilingual support: you can contribute your translation through Crowdin")]),e._v(" "),t("li",[e._v("New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example)")])]),e._v(" "),t("h3",{attrs:{id:"fixes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Slight changes to error messages")]),e._v(" "),t("li",[e._v("Fix Makefile errors in "),t("code",[e._v("deploy")]),e._v(" and "),t("code",[e._v("ipa")])]),e._v(" "),t("li",[e._v("Fix NullPointerException when launching ≤1.6.4")]),e._v(" "),t("li",[e._v("Fix NullPointerException when setting inherited fields")]),e._v(" "),t("li",[e._v("Fix “Share your logs” not working")]),e._v(" "),t("li",[e._v("Fix Forge, Fabric 1.17+ not launching")]),e._v(" "),t("li",[e._v("Fix postinst issue on Procursus")])]),e._v(" "),t("h3",{attrs:{id:"issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("ul",[t("li",[e._v("Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0")]),e._v(" "),t("li",[e._v("Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later")]),e._v(" "),t("li",[e._v("Old (pre-2.0) custom control .json files no longer work, remove to fix")]),e._v(" "),t("li",[e._v("This is the last release that will support Apple devices with the A7 chip")]),e._v(" "),t("li",[e._v("Mojang login has been removed with this release due to the March 10th deadline")])]),e._v(" "),t("h2",{attrs:{id:"_2-0-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-0-1"}},[e._v("#")]),e._v(" 2.0.1")]),e._v(" "),t("p",[e._v("This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction.")]),e._v(" "),t("h2",{attrs:{id:"_2-0-raw-iron"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-0-raw-iron"}},[e._v("#")]),e._v(' 2.0 "Raw Iron"')]),e._v(" "),t("h3",{attrs:{id:"changes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("The Login view has been simplified to three easy buttons")]),e._v(" "),t("li",[e._v("The Offline Account has been replaced with "),t("a",{attrs:{href:"https://pojavlauncherteam.github.io/updates/local.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Local Account"),t("OutboundLink")],1),e._v(". Installing Minecraft now requires a Mojang or Microsoft account logged in.")]),e._v(" "),t("li",[e._v("New FAQ page to show quick answers to questions")]),e._v(" "),t("li",[e._v("New About view to show quick details, links, and update history")]),e._v(" "),t("li",[e._v("Ability to send logs from within the launcher")]),e._v(" "),t("li",[e._v("The Select Account screen is now a pop-up window")]),e._v(" "),t("li",[e._v("New picker view to switch versions without typing them manually")]),e._v(" "),t("li",[e._v("Support to show your locally installed clients")]),e._v(" "),t("li",[e._v("New settings page to manage preferences")]),e._v(" "),t("li",[e._v("OpenJDK 8 support, to allow older versions of modded Minecraft")]),e._v(" "),t("li",[e._v("New mod installer, built into the launcher")]),e._v(" "),t("li",[e._v("Unfinished in-launcher custom controls (#292)")]),e._v(" "),t("li",[e._v("Move to "),t("code",[e._v("/usr/share")]),e._v(", for better rootFS compatibility")]),e._v(" "),t("li",[e._v("New packaging format (#291)\n"),t("ul",[t("li",[e._v("release, for iOS 14 and lower (full root access jailbreaks)")]),e._v(" "),t("li",[e._v("release-rootless, for iOS 15 (Procursus rootless jailbreak)")])])])]),e._v(" "),t("h3",{attrs:{id:"fixes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-2"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("WIP fix for typing on 1.12.2 and older")]),e._v(" "),t("li",[e._v("The hotbar now works across GUI scales")]),e._v(" "),t("li",[e._v("(With JDK 8) Forge 1.8.9 - 1.15.2 now work")]),e._v(" "),t("li",[e._v("(With JDK 8) Vanilla 1.5.2 and under now work")]),e._v(" "),t("li",[e._v("Buttons now scale correctly according to screen size")]),e._v(" "),t("li",[e._v("Crash if login to Microsoft fails.")])]),e._v(" "),t("h3",{attrs:{id:"issues-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#issues-2"}},[e._v("#")]),e._v(" Issues")]),e._v(" "),t("ul",[t("li",[e._v("Old custom control .json files no longer work, remove to fix")]),e._v(" "),t("li",[e._v("Custom controls settings page is not complete, there may be some issues!")]),e._v(" "),t("li",[e._v("An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the Java arguments preference and overb0ard), but you may need to close all apps and remove some tweaks in order to free up enough.")]),e._v(" "),t("li")]),e._v(" "),t("h2",{attrs:{id:"_1-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-2"}},[e._v("#")]),e._v(" 1.2")]),e._v(" "),t("h3",{attrs:{id:"changes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes-2"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("Use new method for Microsoft login")]),e._v(" "),t("li",[e._v("Added gl4es 1.1.5 as an option")]),e._v(" "),t("li",[e._v("WIP custom controls (can be changed by placing at "),t("code",[e._v("/var/mobile/Documents/.pojavlauncher/controlmap/default.json")]),e._v("). Note that some functions may not work properly.")]),e._v(" "),t("li",[e._v("WIP external mouse support")]),e._v(" "),t("li",[e._v("Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt")]),e._v(" "),t("li",[e._v("Reduction of file size with removal of unused binaries")]),e._v(" "),t("li",[e._v("Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher")])]),e._v(" "),t("h3",{attrs:{id:"fixes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-3"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Fix file permission issues during install of package")]),e._v(" "),t("li",[e._v("Hide home bar like Bedrock Edition")]),e._v(" "),t("li",[e._v("Properly hide iPad status bar")])]),e._v(" "),t("h3",{attrs:{id:"known-issues"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("Crash if login to Microsoft fails.")]),e._v(" "),t("li",[e._v("Control buttons notch offset seems doubled.")]),e._v(" "),t("li",[e._v("Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).")]),e._v(" "),t("li",[e._v("Text input will not work on 1.12.2 and below.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices-2"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the overrideargs.txt file and jetsamctl), but we are unsure if iOS 12 will give enough free RAM.")])]),e._v(" "),t("h2",{attrs:{id:"_1-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-1"}},[e._v("#")]),e._v(" 1.1")]),e._v(" "),t("h3",{attrs:{id:"changes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changes-3"}},[e._v("#")]),e._v(" Changes")]),e._v(" "),t("ul",[t("li",[e._v("Added a place to customize JVM Flags, by create and edit "),t("code",[e._v("minecraft/overrideargs.txt")]),e._v(" file.")]),e._v(" "),t("li",[e._v("Changed button offset for avoiding notch cutout on iPhone X and newer.")]),e._v(" "),t("li",[e._v("Forge 1.13+ (not all) and Fabric API are now supported.")]),e._v(" "),t("li",[t("code",[e._v("launcher_profiles.json")]),e._v(" is now automatically created.")]),e._v(" "),t("li",[e._v("Minecraft 1.6.1 to 1.13.2 are now playable.")]),e._v(" "),t("li",[e._v("Mojang authentication was re-written, so it should work now.")])]),e._v(" "),t("h3",{attrs:{id:"fixes-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#fixes-4"}},[e._v("#")]),e._v(" Fixes")]),e._v(" "),t("ul",[t("li",[e._v("Fixed random crashes occur while Minecraft is initializing.")])]),e._v(" "),t("h3",{attrs:{id:"known-issues-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-issues-2"}},[e._v("#")]),e._v(" Known issues")]),e._v(" "),t("ul",[t("li",[e._v("Crash if login to Microsoft fails.")]),e._v(" "),t("li",[e._v("Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).")]),e._v(" "),t("li",[e._v("Text input will not work on 1.12.2 and below.")])]),e._v(" "),t("h3",{attrs:{id:"a-note-for-old-idevices-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-note-for-old-idevices-3"}},[e._v("#")]),e._v(" A note for old iDevices")]),e._v(" "),t("ul",[t("li",[e._v("If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds due to too few RAM. Higher RAM can be set, but I'm unsure if iOS 12 will gives enough free RAM.")])]),e._v(" "),t("h2",{attrs:{id:"_1-0"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-0"}},[e._v("#")]),e._v(" 1.0")]),e._v(" "),t("h3",{attrs:{id:"features"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#features"}},[e._v("#")]),e._v(" Features")]),e._v(" "),t("ul",[t("li",[e._v("Login with Mojang (might not work), Microsoft (not tested) or offline.")]),e._v(" "),t("li",[e._v("Minecraft 1.14+ are playable.")]),e._v(" "),t("li",[e._v("Multiplayer and joining servers works.")]),e._v(" "),t("li",[e._v("Audio works (need enable ringer).")]),e._v(" "),t("li",[e._v("Fabric and OptiFine works.")]),e._v(" "),t("li",[e._v("Bedrock-like gestures: click to hotbar item; click to place block (trigger right mouse); hold and move to destroy blocks (trigger hold left mouse), but attacking entites is left mouse, so not same as Bedrock.")]),e._v(" "),t("li",[e._v("Hold screen on UI will hold the left mouse, so it can also used for moving the scroll bar.")]),e._v(" "),t("li",[e._v("On-screen control buttons.")])]),e._v(" "),t("h3",{attrs:{id:"limitations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#limitations"}},[e._v("#")]),e._v(" Limitations")]),e._v(" "),t("ul",[t("li",[e._v("Jailbreak is required in order to install OpenJDK and PojavLauncher.")]),e._v(" "),t("li",[e._v("Forge won't work.")]),e._v(" "),t("li",[e._v("Fabric API won't work.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/PojavLauncherTeam/PojavLauncher_iOS/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tell us"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"crashes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#crashes"}},[e._v("#")]),e._v(" Crashes")]),e._v(" "),t("ul",[t("li",[t("s",[e._v("I've got some reports that JVM was crashing after press “Play” button.")])]),e._v(" "),t("li",[t("s",[e._v("Also, it seems that checkra1n jailbroken devices will get crashed at entering Minecraft (?)")])]),e._v(" "),t("li",[e._v("They were all random crashes and will be fixed in next release.")])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/69.7d212bb9.js b/assets/js/81.5a998a7c.js similarity index 96% rename from assets/js/69.7d212bb9.js rename to assets/js/81.5a998a7c.js index ed70a83d..987e1c59 100644 --- a/assets/js/69.7d212bb9.js +++ b/assets/js/81.5a998a7c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{372:function(t,n,i){"use strict";i.r(n);var e=i(8),r=Object(e.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"pojavlauncher-wiki-images"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-wiki-images"}},[t._v("#")]),t._v(" PojavLauncher Wiki Images")]),t._v(" "),n("p",[t._v("This directory is pretty self explanatory; it contains images used for the Wiki")]),t._v(" "),n("h2",{attrs:{id:"directory-structure"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#directory-structure"}},[t._v("#")]),t._v(" Directory Structure")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("images\n├── Actions\n│ ├── android\n│ │ └── Android-Actions-1.png\n│ │ Android-Actions-2.png\n│ │ Android-Actions-3.png\n│ │ Android-Actions-4.png\n│ └── ios\n│ └── iOS-Actions-1.png\n│ iOS-Actions-1.png\n│ iOS-Actions-1.png \n│ iOS-Actions-1.png\n├── Screenshots\n│ ├── Controls\n│ │\n│ └── OptiFine\n│ └── OptiFine.png\n│ OptiFine-1.png\n│ OptiFine-2.png\n│ \n└── EOF (END OF DIRECTORY) \n")])])]),n("h2",{attrs:{id:"contributing-to-this-directory"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-this-directory"}},[t._v("#")]),t._v(" Contributing to this directory")]),t._v(" "),n("p",[t._v("You can:")]),t._v(" "),n("ul",[n("li",[t._v("Change images")]),t._v(" "),n("li",[t._v("Replace image with a better quality\n"),n("ul",[n("li",[t._v("Add missing images that you think is required")])])])]),t._v(" "),n("p",[t._v("Submit/Open a pull request on this repository!")]),t._v(" "),n("div",{attrs:{align:"center"}},[n("p",[n("code",[t._v("^ w ^")]),t._v(" -NeveuXon/Nev")])])])}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{384:function(t,n,i){"use strict";i.r(n);var e=i(8),r=Object(e.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"pojavlauncher-wiki-images"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#pojavlauncher-wiki-images"}},[t._v("#")]),t._v(" PojavLauncher Wiki Images")]),t._v(" "),n("p",[t._v("This directory is pretty self explanatory; it contains images used for the Wiki")]),t._v(" "),n("h2",{attrs:{id:"directory-structure"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#directory-structure"}},[t._v("#")]),t._v(" Directory Structure")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("images\n├── Actions\n│ ├── android\n│ │ └── Android-Actions-1.png\n│ │ Android-Actions-2.png\n│ │ Android-Actions-3.png\n│ │ Android-Actions-4.png\n│ └── ios\n│ └── iOS-Actions-1.png\n│ iOS-Actions-1.png\n│ iOS-Actions-1.png \n│ iOS-Actions-1.png\n├── Screenshots\n│ ├── Controls\n│ │\n│ └── OptiFine\n│ └── OptiFine.png\n│ OptiFine-1.png\n│ OptiFine-2.png\n│ \n└── EOF (END OF DIRECTORY) \n")])])]),n("h2",{attrs:{id:"contributing-to-this-directory"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-this-directory"}},[t._v("#")]),t._v(" Contributing to this directory")]),t._v(" "),n("p",[t._v("You can:")]),t._v(" "),n("ul",[n("li",[t._v("Change images")]),t._v(" "),n("li",[t._v("Replace image with a better quality\n"),n("ul",[n("li",[t._v("Add missing images that you think is required")])])])]),t._v(" "),n("p",[t._v("Submit/Open a pull request on this repository!")]),t._v(" "),n("div",{attrs:{align:"center"}},[n("p",[n("code",[t._v("^ w ^")]),t._v(" -NeveuXon/Nev")])])])}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/app.14bb2fbd.js b/assets/js/app.14bb2fbd.js deleted file mode 100644 index 0c09b48b..00000000 --- a/assets/js/app.14bb2fbd.js +++ /dev/null @@ -1,16 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var o,a,s=t[0],l=t[1],c=t[2],d=0,f=[];d=t||n<0||m&&e-c>=i}function S(){var e=p();if(w(e))return _(e);s=setTimeout(S,function(e){var n=t-(e-l);return m?f(n,i-(e-c)):n}(e))}function _(e){return s=void 0,g&&o?y(e):(o=r=void 0,a)}function O(){var e=p(),n=w(e);if(o=arguments,r=this,l=e,n){if(void 0===s)return b(l);if(m)return s=setTimeout(S,t),y(l)}return void 0===s&&(s=setTimeout(S,t)),a}return t=v(t)||0,h(n)&&(u=!!n.leading,i=(m="maxWait"in n)?d(v(n.maxWait)||0,t):i,g="trailing"in n?!!n.trailing:g),O.cancel=function(){void 0!==s&&clearTimeout(s),c=0,o=l=r=s=void 0},O.flush=function(){return void 0===s?a:_(p())},O}},function(e,t,n){var o,r; -/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress - * @license MIT */void 0===(r="function"==typeof(o=function(){var e,t,n={version:"0.2.0"},o=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(o[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,o.minimum,1),n.status=1===e?null:e;var l=n.render(!t),c=l.querySelector(o.barSelector),u=o.speed,d=o.easing;return l.offsetWidth,a((function(t){""===o.positionUsing&&(o.positionUsing=n.getPositioningCSS()),s(c,function(e,t,n){var r;return(r="translate3d"===o.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,r}(e,u,d)),1===e?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){s(l,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),o.trickleSpeed)};return o.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*o.trickleRate)},e=0,t=0,n.promise=function(o){return o&&"resolved"!==o.state()?(0===t&&n.start(),e++,t++,o.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=o.template;var r,a=t.querySelector(o.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(o.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),o.showSpinner||(r=t.querySelector(o.spinnerSelector))&&f(r),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(o.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var o,r=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((o=e[r]+i)in n)return o;return t}(n))}function o(e,t,o){t=n(t),e.style[t]=o}return function(e,t){var n,r,i=arguments;if(2==i.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,i[1],i[2])}}();function l(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),o=n+t;l(n,t)||(e.className=o.substring(1))}function u(e,t){var n,o=d(e);l(e,t)&&(n=o.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?o.call(t,n,t,e):o)||(e.exports=r)},function(e,t,n){"use strict";var o=n(0),r=n(48).f,i=n(13),a=n(96),s=n(34),l=n(64),c=n(122);e.exports=function(e,t){var n,u,d,f,p,h=e.target,v=e.global,m=e.stat;if(n=v?o:m?o[h]||s(h,{}):o[h]&&o[h].prototype)for(u in t){if(f=t[u],d=e.dontCallGetSet?(p=r(n,u))&&p.value:n[u],!c(v?u:h+(m?".":"#")+u,e.forced)&&void 0!==d){if(typeof f==typeof d)continue;l(f,d)}(e.sham||d&&d.sham)&&i(f,"sham",!0),a(n,u,f,e)}}},function(e,t,n){"use strict";var o=n(26),r=Function.prototype.call;e.exports=o?r.bind(r):function(){return r.apply(r,arguments)}},function(e,t,n){"use strict";var o=n(3);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(49),r=n(29);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(50),r=TypeError;e.exports=function(e){if(o(e))throw new r("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(0),r=n(1),i=function(e){return r(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(o[e]):o[e]&&o[e][t]}},function(e,t,n){"use strict";var o=n(1),r=n(104),i=TypeError;e.exports=function(e){if(o(e))return e;throw new i(r(e)+" is not a function")}},function(e,t,n){"use strict";var o=n(0),r=n(58),i=n(9),a=n(60),s=n(55),l=n(54),c=o.Symbol,u=r("wks"),d=l?c.for||c:c&&c.withoutSetter||a;e.exports=function(e){return i(u,e)||(u[e]=s&&i(c,e)?c[e]:d("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var o=n(59),r=n(0),i=n(34),a=e.exports=r["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.38.1",mode:o?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(e,t,n){"use strict";var o=n(0),r=Object.defineProperty;e.exports=function(e,t){try{r(o,e,{value:t,configurable:!0,writable:!0})}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(29),r=Object;e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var o=n(119);e.exports=function(e){return o(e.length)}},function(e,t,n){var o=n(147),r=n(11),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,l=o(function(){return arguments}())?o:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,t,n){var o=n(10)(n(7),"Map");e.exports=o},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var o=n(167),r=n(174),i=n(176),a=n(177),s=n(178);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){var o=n(4),r=n(44),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(o(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t,n){var o=n(12),r=n(11);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==o(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";t.a=["ThemeManager","BackToTop"]},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";var o=n(5),r=n(25),i=n(101),a=n(27),s=n(28),l=n(51),c=n(9),u=n(61),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=s(e),t=l(t),u)try{return d(e,t)}catch(e){}if(c(e,t))return a(!r(i.f,e,t),e[t])}},function(e,t,n){"use strict";var o=n(2),r=n(3),i=n(16),a=Object,s=o("".split);e.exports=r((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?s(e,""):a(e)}:a},function(e,t,n){"use strict";e.exports=function(e){return null==e}},function(e,t,n){"use strict";var o=n(102),r=n(52);e.exports=function(e){var t=o(e,"string");return r(t)?t:t+""}},function(e,t,n){"use strict";var o=n(30),r=n(1),i=n(53),a=n(54),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return r(t)&&i(t.prototype,s(e))}},function(e,t,n){"use strict";var o=n(2);e.exports=o({}.isPrototypeOf)},function(e,t,n){"use strict";var o=n(55);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(56),r=n(3),i=n(0).String;e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},function(e,t,n){"use strict";var o,r,i=n(0),a=n(57),s=i.process,l=i.Deno,c=s&&s.versions||l&&l.version,u=c&&c.v8;u&&(r=(o=u.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(r=+o[1]),e.exports=r},function(e,t,n){"use strict";var o=n(0).navigator,r=o&&o.userAgent;e.exports=r?String(r):""},function(e,t,n){"use strict";var o=n(33);e.exports=function(e,t){return o[e]||(o[e]=t||{})}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(2),r=0,i=Math.random(),a=o(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++r+i,36)}},function(e,t,n){"use strict";var o=n(5),r=n(3),i=n(106);e.exports=!o&&!r((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(6),r=String,i=TypeError;e.exports=function(e){if(o(e))return e;throw new i(r(e)+" is not an object")}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(9),r=n(113),i=n(48),a=n(15);e.exports=function(e,t,n){for(var s=r(t),l=a.f,c=i.f,u=0;uu))return!1;var f=l.get(e),p=l.get(t);if(f&&p)return f==t&&p==e;var h=-1,v=!0,m=2&n?new o:void 0;for(l.set(e,t),l.set(t,e);++h-1&&e%1==0&&e]/;e.exports=function(e){var t,n=""+e,r=o.exec(n);if(!r)return n;var i="",a=0,s=0;for(a=r.index;a1?1:s,n=.5*(1-Math.cos(Math.PI*a)),o=t.startX+(t.x-t.startX)*n,r=t.startY+(t.y-t.startY)*n,t.method.call(t.scrollable,o,r),o===t.x&&r===t.y||e.requestAnimationFrame(p.bind(e,t))}function h(n,o,a){var l,c,u,d,f=i();n===t.body?(l=e,c=e.scrollX||e.pageXOffset,u=e.scrollY||e.pageYOffset,d=r.scroll):(l=n,c=n.scrollLeft,u=n.scrollTop,d=s),p({scrollable:l,method:d,startTime:f,startX:c,startY:u,x:o,y:a})}}}}()},function(e,t,n){"use strict";var o=n(24),r=n(35),i=n(36),a=n(142),s=n(144);o({target:"Array",proto:!0,arity:1,forced:n(3)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=r(this),n=i(t),o=arguments.length;s(n+o);for(var l=0;l79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return r(this,e,t,t>1?arguments[1]:void 0)}})},function(e,t,n){"use strict";var o={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!o.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:o},function(e,t,n){"use strict";var o=n(25),r=n(6),i=n(52),a=n(103),s=n(105),l=n(32),c=TypeError,u=l("toPrimitive");e.exports=function(e,t){if(!r(e)||i(e))return e;var n,l=a(e,u);if(l){if(void 0===t&&(t="default"),n=o(l,e,t),!r(n)||i(n))return n;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},function(e,t,n){"use strict";var o=n(31),r=n(50);e.exports=function(e,t){var n=e[t];return r(n)?void 0:o(n)}},function(e,t,n){"use strict";var o=String;e.exports=function(e){try{return o(e)}catch(e){return"Object"}}},function(e,t,n){"use strict";var o=n(25),r=n(1),i=n(6),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&r(n=e.toString)&&!i(s=o(n,e)))return s;if(r(n=e.valueOf)&&!i(s=o(n,e)))return s;if("string"!==t&&r(n=e.toString)&&!i(s=o(n,e)))return s;throw new a("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o=n(0),r=n(6),i=o.document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(3);e.exports=o&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(e,t,n){"use strict";var o=n(5),r=n(9),i=Function.prototype,a=o&&Object.getOwnPropertyDescriptor,s=r(i,"name"),l=s&&"something"===function(){}.name,c=s&&(!o||o&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:l,CONFIGURABLE:c}},function(e,t,n){"use strict";var o=n(2),r=n(1),i=n(33),a=o(Function.toString);r(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},function(e,t,n){"use strict";var o,r,i,a=n(111),s=n(0),l=n(6),c=n(13),u=n(9),d=n(33),f=n(112),p=n(63),h=s.TypeError,v=s.WeakMap;if(a||d.state){var m=d.state||(d.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,o=function(e,t){if(m.has(e))throw new h("Object already initialized");return t.facade=e,m.set(e,t),t},r=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var g=f("state");p[g]=!0,o=function(e,t){if(u(e,g))throw new h("Object already initialized");return t.facade=e,c(e,g,t),t},r=function(e){return u(e,g)?e[g]:{}},i=function(e){return u(e,g)}}e.exports={set:o,get:r,has:i,enforce:function(e){return i(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw new h("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(0),r=n(1),i=o.WeakMap;e.exports=r(i)&&/native code/.test(String(i))},function(e,t,n){"use strict";var o=n(58),r=n(60),i=o("keys");e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t,n){"use strict";var o=n(30),r=n(2),i=n(114),a=n(121),s=n(62),l=r([].concat);e.exports=o("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?l(t,n(e)):t}},function(e,t,n){"use strict";var o=n(115),r=n(120).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(2),r=n(9),i=n(28),a=n(116).indexOf,s=n(63),l=o([].push);e.exports=function(e,t){var n,o=i(e),c=0,u=[];for(n in o)!r(s,n)&&r(o,n)&&l(u,n);for(;t.length>c;)r(o,n=t[c++])&&(~a(u,n)||l(u,n));return u}},function(e,t,n){"use strict";var o=n(28),r=n(117),i=n(36),a=function(e){return function(t,n,a){var s=o(t),l=i(s);if(0===l)return!e&&-1;var c,u=r(a,l);if(e&&n!=n){for(;l>u;)if((c=s[u++])!=c)return!0}else for(;l>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var o=n(65),r=Math.max,i=Math.min;e.exports=function(e,t){var n=o(e);return n<0?r(n+t,0):i(n,t)}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var t=+e;return(t>0?r:o)(t)}},function(e,t,n){"use strict";var o=n(65),r=Math.min;e.exports=function(e){var t=o(e);return t>0?r(t,9007199254740991):0}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(3),r=n(1),i=/#|\.prototype\./,a=function(e,t){var n=l[s(e)];return n===u||n!==c&&(r(t)?o(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},l=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(31),r=n(35),i=n(49),a=n(36),s=TypeError,l="Reduce of empty array with no initial value",c=function(e){return function(t,n,c,u){var d=r(t),f=i(d),p=a(d);if(o(n),0===p&&c<2)throw new s(l);var h=e?p-1:0,v=e?-1:1;if(c<2)for(;;){if(h in f){u=f[h],h+=v;break}if(h+=v,e?h<0:p<=h)throw new s(l)}for(;e?h>=0:p>h;h+=v)h in f&&(u=n(u,f[h],h,d));return u}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(3);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){return 1},1)}))}},function(e,t,n){"use strict";var o=n(126);e.exports="NODE"===o},function(e,t,n){"use strict";var o=n(0),r=n(57),i=n(16),a=function(e){return r.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":o.Bun&&"string"==typeof Bun.version?"BUN":o.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(o.process)?"NODE":o.window&&o.document?"BROWSER":"REST"},function(e,t,n){"use strict";var o=n(24),r=n(0),i=n(128),a=n(129),s=r.WebAssembly,l=7!==new Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,l),o({global:!0,constructor:!0,arity:1,forced:l},n)},u=function(e,t){if(s&&s[e]){var n={};n[e]=a("WebAssembly."+e,t,l),o({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:l},n)}};c("Error",(function(e){return function(t){return i(e,this,arguments)}})),c("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),c("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),c("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),c("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),c("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),c("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},function(e,t,n){"use strict";var o=n(26),r=Function.prototype,i=r.apply,a=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(o?a.bind(i):function(){return a.apply(i,arguments)})},function(e,t,n){"use strict";var o=n(30),r=n(9),i=n(13),a=n(53),s=n(66),l=n(64),c=n(133),u=n(134),d=n(135),f=n(138),p=n(139),h=n(5),v=n(59);e.exports=function(e,t,n,m){var g=m?2:1,y=e.split("."),b=y[y.length-1],w=o.apply(null,y);if(w){var S=w.prototype;if(!v&&r(S,"cause")&&delete S.cause,!n)return w;var _=o("Error"),O=t((function(e,t){var n=d(m?t:e,void 0),o=m?new w(e):new w;return void 0!==n&&i(o,"message",n),p(o,O,o.stack,2),this&&a(S,this)&&u(o,this,O),arguments.length>g&&f(o,arguments[g]),o}));if(O.prototype=S,"Error"!==b?s?s(O,_):l(O,_,{name:!0}):h&&"stackTraceLimit"in w&&(c(O,w,"stackTraceLimit"),c(O,w,"prepareStackTrace")),l(O,w),!v)try{S.name!==b&&i(S,"name",b),S.constructor=O}catch(e){}return O}}},function(e,t,n){"use strict";var o=n(2),r=n(31);e.exports=function(e,t,n){try{return o(r(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(e){}}},function(e,t,n){"use strict";var o=n(132),r=String,i=TypeError;e.exports=function(e){if(o(e))return e;throw new i("Can't set "+r(e)+" as a prototype")}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){return o(e)||null===e}},function(e,t,n){"use strict";var o=n(15).f;e.exports=function(e,t,n){n in e||o(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},function(e,t,n){"use strict";var o=n(1),r=n(6),i=n(66);e.exports=function(e,t,n){var a,s;return i&&o(a=t.constructor)&&a!==n&&r(s=a.prototype)&&s!==n.prototype&&i(e,s),e}},function(e,t,n){"use strict";var o=n(97);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:o(e)}},function(e,t,n){"use strict";var o=n(137),r=n(1),i=n(16),a=n(32)("toStringTag"),s=Object,l="Arguments"===i(function(){return arguments}());e.exports=o?i:function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),a))?n:l?i(t):"Object"===(o=i(t))&&r(t.callee)?"Arguments":o}},function(e,t,n){"use strict";var o={};o[n(32)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(6),r=n(13);e.exports=function(e,t){o(t)&&"cause"in t&&r(e,"cause",t.cause)}},function(e,t,n){"use strict";var o=n(13),r=n(140),i=n(141),a=Error.captureStackTrace;e.exports=function(e,t,n,s){i&&(a?a(e,t):o(e,"stack",r(n,s)))}},function(e,t,n){"use strict";var o=n(2),r=Error,i=o("".replace),a=String(new r("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=i(e,s,"");return e}},function(e,t,n){"use strict";var o=n(3),r=n(27);e.exports=!o((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},function(e,t,n){"use strict";var o=n(5),r=n(143),i=TypeError,a=Object.getOwnPropertyDescriptor,s=o&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(r(e)&&!a(e,"length").writable)throw new i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},function(e,t,n){"use strict";var o=n(16);e.exports=Array.isArray||function(e){return"Array"===o(e)}},function(e,t,n){"use strict";var o=TypeError;e.exports=function(e){if(e>9007199254740991)throw o("Maximum allowed index exceeded");return e}},function(e,t,n){var o=n(67),r=n(146);e.exports=function e(t,n,i,a,s){var l=-1,c=t.length;for(i||(i=r),s||(s=[]);++l0&&i(u)?n>1?e(u,n-1,i,a,s):o(s,u):a||(s[s.length]=u)}return s}},function(e,t,n){var o=n(14),r=n(37),i=n(4),a=o?o.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||r(e)||!!(a&&e&&e[a])}},function(e,t,n){var o=n(12),r=n(11);e.exports=function(e){return r(e)&&"[object Arguments]"==o(e)}},function(e,t,n){var o=n(14),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,s=o?o.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var o=!0}catch(e){}var r=a.call(e);return o&&(t?e[s]=n:delete e[s]),r}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var o=n(151),r=n(207),i=n(45),a=n(4),s=n(218);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?r(e[0],e[1]):o(e):s(e)}},function(e,t,n){var o=n(152),r=n(206),i=n(84);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||o(n,e,t)}}},function(e,t,n){var o=n(69),r=n(73);e.exports=function(e,t,n,i){var a=n.length,s=a,l=!i;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a-1}},function(e,t,n){var o=n(18);e.exports=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},function(e,t,n){var o=n(17);e.exports=function(){this.__data__=new o,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var o=n(17),r=n(38),i=n(40);e.exports=function(e,t){var n=this.__data__;if(n instanceof o){var a=n.__data__;if(!r||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var o=n(71),r=n(164),i=n(39),a=n(72),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,f=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||r(e))&&(o(e)?f:s).test(a(e))}},function(e,t,n){var o,r=n(165),i=(o=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var o=n(7)["__core-js_shared__"];e.exports=o},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var o=n(168),r=n(17),i=n(38);e.exports=function(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}},function(e,t,n){var o=n(169),r=n(170),i=n(171),a=n(172),s=n(173);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var o=n(75),r=n(230),i=n(235),a=n(76),s=n(236),l=n(41);e.exports=function(e,t,n){var c=-1,u=r,d=e.length,f=!0,p=[],h=p;if(n)f=!1,u=i;else if(d>=200){var v=t?null:s(e);if(v)return l(v);f=!1,u=a,h=new o}else h=t?[]:p;e:for(;++c-1}},function(e,t,n){var o=n(232),r=n(233),i=n(234);e.exports=function(e,t,n){return t==t?i(e,t,n):o(e,r,n)}},function(e,t){e.exports=function(e,t,n,o){for(var r=e.length,i=n+(o?1:-1);o?i--:++i=0&&Math.floor(t)===t&&isFinite(e)}function v(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function m(e){return null==e?"":Array.isArray(e)||f(e)&&e.toString===d?JSON.stringify(e,g,2):String(e)}function g(e,t){return t&&t.__v_isRef?t.value:t}function y(e){var t=parseFloat(e);return isNaN(t)?e:t}function b(e,t){for(var n=Object.create(null),o=e.split(","),r=0;r-1)return e.splice(o,1)}}var _=Object.prototype.hasOwnProperty;function O(e,t){return _.call(e,t)}function x(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var k=/-(\w)/g,A=x((function(e){return e.replace(k,(function(e,t){return t?t.toUpperCase():""}))})),P=x((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),T=/\B([A-Z])/g,C=x((function(e){return e.replace(T,"-$1").toLowerCase()}));var j=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var o=arguments.length;return o?o>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function E(e,t){t=t||0;for(var n=e.length-t,o=new Array(n);n--;)o[n]=e[n+t];return o}function L(e,t){for(var n in t)e[n]=t[n];return e}function M(e){for(var t={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var ee=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var te,ne=X&&X.match(/firefox\/(\d+)/),oe={}.watch,re=!1;if(K)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){re=!0}}),window.addEventListener("test-passive",null,ie)}catch(e){}var ae=function(){return void 0===te&&(te=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),te},se=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function le(e){return"function"==typeof e&&/native code/.test(e.toString())}var ce,ue="undefined"!=typeof Symbol&&le(Symbol)&&"undefined"!=typeof Reflect&&le(Reflect.ownKeys);ce="undefined"!=typeof Set&&le(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var de=null;function fe(e){void 0===e&&(e=null),e||de&&de._scope.off(),de=e,e&&e._scope.on()}var pe=function(){function e(e,t,n,o,r,i,a,s){this.tag=e,this.data=t,this.children=n,this.text=o,this.elm=r,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),he=function(e){void 0===e&&(e="");var t=new pe;return t.text=e,t.isComment=!0,t};function ve(e){return new pe(void 0,void 0,void 0,String(e))}function me(e){var t=new pe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}"function"==typeof SuppressedError&&SuppressedError;var ge=0,ye=[],be=function(){function e(){this._pending=!1,this.id=ge++,this.subs=[]}return e.prototype.addSub=function(e){this.subs.push(e)},e.prototype.removeSub=function(e){this.subs[this.subs.indexOf(e)]=null,this._pending||(this._pending=!0,ye.push(this))},e.prototype.depend=function(t){e.target&&e.target.addDep(this)},e.prototype.notify=function(e){var t=this.subs.filter((function(e){return e}));for(var n=0,o=t.length;n0&&(Xe((c=e(c,"".concat(n||"","_").concat(o)))[0])&&Xe(d)&&(f[u]=ve(d.text+c[0].text),c.shift()),f.push.apply(f,c)):l(c)?Xe(d)?f[u]=ve(d.text+c):""!==c&&f.push(ve(c)):Xe(c)&&Xe(d)?f[u]=ve(d.text+c.text):(s(t._isVList)&&a(c.tag)&&i(c.key)&&a(n)&&(c.key="__vlist".concat(n,"_").concat(o,"__")),f.push(c)));return f}(e):void 0}function Xe(e){return a(e)&&a(e.text)&&!1===e.isComment}function Ye(e,t){var n,o,i,s,l=null;if(r(e)||"string"==typeof e)for(l=new Array(e.length),n=0,o=e.length;n0,s=t?!!t.$stable:!a,l=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&r&&r!==o&&l===r.$key&&!a&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=mt(e,n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=gt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),V(i,"$stable",s),V(i,"$key",l),V(i,"$hasNormal",a),i}function mt(e,t,n,o){var i=function(){var t=de;fe(e);var n=arguments.length?o.apply(null,arguments):o({}),i=(n=n&&"object"==typeof n&&!r(n)?[n]:Ke(n))&&n[0];return fe(t),n&&(!i||1===n.length&&i.isComment&&!ht(i))?void 0:n};return o.proxy&&Object.defineProperty(t,n,{get:i,enumerable:!0,configurable:!0}),i}function gt(e,t){return function(){return e[t]}}function yt(e){return{get attrs(){if(!e._attrsProxy){var t=e._attrsProxy={};V(t,"_v_attr_proxy",!0),bt(t,e.$attrs,o,e,"$attrs")}return e._attrsProxy},get listeners(){e._listenersProxy||bt(e._listenersProxy={},e.$listeners,o,e,"$listeners");return e._listenersProxy},get slots(){return function(e){e._slotsProxy||St(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(e)},emit:j(e.$emit,e),expose:function(t){t&&Object.keys(t).forEach((function(n){return Fe(e,t,n)}))}}}function bt(e,t,n,o,r){var i=!1;for(var a in t)a in e?t[a]!==n[a]&&(i=!0):(i=!0,wt(e,a,o,r));for(var a in e)a in t||(i=!0,delete e[a]);return i}function wt(e,t,n,o){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){return n[o][t]}})}function St(e,t){for(var n in t)e[n]=t[n];for(var n in e)n in t||delete e[n]}var _t=null;function Ot(e,t){return(e.__esModule||ue&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?t.extend(e):e}function xt(e){if(r(e))for(var t=0;tdocument.createEvent("Event").timeStamp&&(cn=function(){return un.now()})}var dn=function(e,t){if(e.post){if(!t.post)return 1}else if(t.post)return-1;return e.id-t.id};function fn(){var e,t;for(ln=cn(),an=!0,tn.sort(dn),sn=0;snsn&&tn[n].id>e.id;)n--;tn.splice(n+1,0,e)}else tn.push(e);rn||(rn=!0,Ut(fn))}}function hn(e,t){if(e){for(var n=Object.create(null),o=ue?Reflect.ownKeys(e):Object.keys(e),r=0;r-1)if(i&&!O(r,"default"))a=!1;else if(""===a||a===C(e)){var l=$n(String,r.type);(l<0||s-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!p(e)&&e.test(t)}function Yn(e,t){var n=e.cache,o=e.keys,r=e._vnode,i=e.$vnode;for(var a in n){var s=n[a];if(s){var l=s.name;l&&!t(l)&&Zn(n,a,o,r)}}i.componentOptions.children=void 0}function Zn(e,t,n,o){var r=e[t];!r||o&&r.tag===o.tag||r.componentInstance.$destroy(),e[t]=null,S(n,t)}Wn.prototype._init=function(e){var t=this;t._uid=Hn++,t._isVue=!0,t.__v_skip=!0,t._scope=new Be(!0),t._scope.parent=void 0,t._scope._vm=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),o=t._parentVnode;n.parent=t.parent,n._parentVnode=o;var r=o.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=jn(Vn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Kt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=ft(t._renderChildren,r),e.$scopedSlots=n?vt(e.$parent,n.data.scopedSlots,e.$slots):o,e._c=function(t,n,o,r){return kt(e,t,n,o,r,!1)},e.$createElement=function(t,n,o,r){return kt(e,t,n,o,r,!0)};var i=n&&n.data;Le(e,"$attrs",i&&i.attrs||o,null,!0),Le(e,"$listeners",t._parentListeners||o,null,!0)}(t),en(t,"beforeCreate",void 0,!1),function(e){var t=hn(e.$options.inject,e);t&&(Te(!1),Object.keys(t).forEach((function(n){Le(e,n,t[n])})),Te(!0))}(t),Un(t),function(e){var t=e.$options.provide;if(t){var n=c(t)?t.call(e):t;if(!u(n))return;for(var o=Ge(e),r=ue?Reflect.ownKeys(n):Object.keys(n),i=0;i1?E(n):n;for(var o=E(arguments,1),r='event handler for "'.concat(e,'"'),i=0,a=n.length;iparseInt(this.max)&&Zn(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Zn(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){Yn(e,(function(e){return Xn(t,e)}))})),this.$watch("exclude",(function(t){Yn(e,(function(e){return!Xn(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=xt(e),n=t&&t.componentOptions;if(n){var o=Kn(n),r=this.include,i=this.exclude;if(r&&(!o||!Xn(r,o))||i&&o&&Xn(i,o))return t;var a=this.cache,s=this.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):t.key;a[l]?(t.componentInstance=a[l].componentInstance,S(s,l),s.push(l)):(this.vnodeToCache=t,this.keyToCache=l),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return G}};Object.defineProperty(e,"config",t),e.util={warn:On,extend:L,mergeOptions:jn,defineReactive:Le},e.set=Me,e.delete=Ie,e.nextTick=Ut,e.observable=function(e){return Ee(e),e},e.options=Object.create(null),z.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,L(e.options.components,eo),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=E(arguments,1);return n.unshift(this),c(e.install)?e.install.apply(e,n):c(e)&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=jn(this.options,e),this}}(e),qn(e),function(e){z.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&f(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&c(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Wn),Object.defineProperty(Wn.prototype,"$isServer",{get:ae}),Object.defineProperty(Wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wn,"FunctionalRenderContext",{value:vn}),Wn.version="2.7.16";var to=b("style,class"),no=b("input,textarea,option,select,progress"),oo=b("contenteditable,draggable,spellcheck"),ro=b("events,caret,typing,plaintext-only"),io=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ao="http://www.w3.org/1999/xlink",so=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},lo=function(e){return so(e)?e.slice(6,e.length):""},co=function(e){return null==e||!1===e};function uo(e){for(var t=e.data,n=e,o=e;a(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(t=fo(o.data,t));for(;a(n=n.parent);)n&&n.data&&(t=fo(t,n.data));return function(e,t){if(a(e)||a(t))return po(e,ho(t));return""}(t.staticClass,t.class)}function fo(e,t){return{staticClass:po(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function po(e,t){return e?t?e+" "+t:e:t||""}function ho(e){return Array.isArray(e)?function(e){for(var t,n="",o=0,r=e.length;o-1?No(e,t,n):io(t)?co(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):oo(t)?e.setAttribute(t,function(e,t){return co(t)||"false"===t?"false":"contenteditable"===e&&ro(t)?t:"true"}(t,n)):so(t)?co(n)?e.removeAttributeNS(ao,lo(t)):e.setAttributeNS(ao,t,n):No(e,t,n)}function No(e,t,n){if(co(n))e.removeAttribute(t);else{if(Y&&!Z&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var o=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",o)};e.addEventListener("input",o),e.__ieph=!0}e.setAttribute(t,n)}}var Uo={create:$o,update:$o};function Fo(e,t){var n=t.elm,o=t.data,r=e.data;if(!(i(o.staticClass)&&i(o.class)&&(i(r)||i(r.staticClass)&&i(r.class)))){var s=uo(t),l=n._transitionClasses;a(l)&&(s=po(s,ho(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var zo,Bo={create:Fo,update:Fo};function Go(e,t,n){var o=zo;return function r(){var i=t.apply(null,arguments);null!==i&&Vo(e,r,n,o)}}var Jo=Et&&!(ne&&Number(ne[1])<=53);function Ho(e,t,n,o){if(Jo){var r=ln,i=t;t=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=r||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}zo.addEventListener(e,t,re?{capture:n,passive:o}:n)}function Vo(e,t,n,o){(o||zo).removeEventListener(e,t._wrapper||t,n)}function Wo(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},o=e.data.on||{};zo=t.elm||e.elm,function(e){if(a(e.__r)){var t=Y?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),Ve(n,o,Ho,Vo,Go,t.context),zo=void 0}}var qo,Ko={create:Wo,update:Wo,destroy:function(e){return Wo(e,ko)}};function Xo(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,o,r=t.elm,l=e.data.domProps||{},c=t.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=t.data.domProps=L({},c)),l)n in c||(r[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),o===l[n])continue;1===r.childNodes.length&&r.removeChild(r.childNodes[0])}if("value"===n&&"PROGRESS"!==r.tagName){r._value=o;var u=i(o)?"":String(o);Yo(r,u)&&(r.value=u)}else if("innerHTML"===n&&go(r.tagName)&&i(r.innerHTML)){(qo=qo||document.createElement("div")).innerHTML="".concat(o,"");for(var d=qo.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;d.firstChild;)r.appendChild(d.firstChild)}else if(o!==l[n])try{r[n]=o}catch(e){}}}}function Yo(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,o=e._vModifiers;if(a(o)){if(o.number)return y(n)!==y(t);if(o.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Zo={create:Xo,update:Xo},Qo=x((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var o=e.split(n);o.length>1&&(t[o[0].trim()]=o[1].trim())}})),t}));function er(e){var t=tr(e.style);return e.staticStyle?L(e.staticStyle,t):t}function tr(e){return Array.isArray(e)?M(e):"string"==typeof e?Qo(e):e}var nr,or=/^--/,rr=/\s*!important$/,ir=function(e,t,n){if(or.test(t))e.style.setProperty(t,n);else if(rr.test(n))e.style.setProperty(C(t),n.replace(rr,""),"important");else{var o=sr(t);if(Array.isArray(n))for(var r=0,i=n.length;r-1?t.split(ur).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function fr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(ur).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),o=" "+t+" ";n.indexOf(o)>=0;)n=n.replace(o," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function pr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&L(t,hr(e.name||"v")),L(t,e),t}return"string"==typeof e?hr(e):void 0}}var hr=x((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),vr=K&&!Z,mr="transition",gr="transitionend",yr="animation",br="animationend";vr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mr="WebkitTransition",gr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yr="WebkitAnimation",br="webkitAnimationEnd"));var wr=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Sr(e){wr((function(){wr(e)}))}function _r(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),dr(e,t))}function Or(e,t){e._transitionClasses&&S(e._transitionClasses,t),fr(e,t)}function xr(e,t,n){var o=Ar(e,t),r=o.type,i=o.timeout,a=o.propCount;if(!r)return n();var s="transition"===r?gr:br,l=0,c=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++l>=a&&c()};setTimeout((function(){l0&&(n="transition",u=a,d=i.length):"animation"===t?c>0&&(n="animation",u=c,d=l.length):d=(n=(u=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:l.length:0,{type:n,timeout:u,propCount:d,hasTransform:"transition"===n&&kr.test(o[mr+"Property"])}}function Pr(e,t){for(;e.length1}function Mr(e,t){!0!==t.data.show&&Cr(t)}var Ir=function(e){var t,n,o={},c=e.modules,u=e.nodeOps;for(t=0;th?w(e,i(n[g+1])?null:n[g+1].elm,n,p,g,o):p>g&&_(t,d,h)}(d,v,g,n,c):a(g)?(a(e.text)&&u.setTextContent(d,""),w(d,null,g,0,g.length-1,n)):a(v)?_(v,0,v.length-1):a(e.text)&&u.setTextContent(d,""):e.text!==t.text&&u.setTextContent(d,t.text),a(h)&&a(p=h.hook)&&a(p=p.postpatch)&&p(e,t)}}}function A(e,t,n){if(s(n)&&a(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o-1,a.selected!==i&&(a.selected=i);else if(D(Ur(a),o))return void(e.selectedIndex!==s&&(e.selectedIndex=s));r||(e.selectedIndex=-1)}}function Nr(e,t){return t.every((function(t){return!D(t,e)}))}function Ur(e){return"_value"in e?e._value:e.value}function Fr(e){e.target.composing=!0}function zr(e){e.target.composing&&(e.target.composing=!1,Br(e.target,"input"))}function Br(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Gr(e){return!e.componentInstance||e.data&&e.data.transition?e:Gr(e.componentInstance._vnode)}var Jr={model:Rr,show:{bind:function(e,t,n){var o=t.value,r=(n=Gr(n)).data&&n.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;o&&r?(n.data.show=!0,Cr(n,(function(){e.style.display=i}))):e.style.display=o?i:"none"},update:function(e,t,n){var o=t.value;!o!=!t.oldValue&&((n=Gr(n)).data&&n.data.transition?(n.data.show=!0,o?Cr(n,(function(){e.style.display=e.__vOriginalDisplay})):jr(n,(function(){e.style.display="none"}))):e.style.display=o?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,o,r){r||(e.style.display=e.__vOriginalDisplay)}}},Hr={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Vr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Vr(xt(t.children)):e}function Wr(e){var t={},n=e.$options;for(var o in n.propsData)t[o]=e[o];var r=n._parentListeners;for(var o in r)t[A(o)]=r[o];return t}function qr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Kr=function(e){return e.tag||ht(e)},Xr=function(e){return"show"===e.name},Yr={name:"transition",props:Hr,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Kr)).length){0;var o=this.mode;0;var r=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var i=Vr(r);if(!i)return r;if(this._leaving)return qr(e,r);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:l(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Wr(this),c=this._vnode,u=Vr(c);if(i.data.directives&&i.data.directives.some(Xr)&&(i.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(i,u)&&!ht(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var d=u.data.transition=L({},s);if("out-in"===o)return this._leaving=!0,We(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),qr(e,r);if("in-out"===o){if(ht(i))return c;var f,p=function(){f()};We(s,"afterEnter",p),We(s,"enterCancelled",p),We(d,"delayLeave",(function(e){f=e}))}}return r}}},Zr=L({tag:String,moveClass:String},Hr);function Qr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ei(e){e.data.newPos=e.elm.getBoundingClientRect()}function ti(e){var t=e.data.pos,n=e.data.newPos,o=t.left-n.left,r=t.top-n.top;if(o||r){e.data.moved=!0;var i=e.elm.style;i.transform=i.WebkitTransform="translate(".concat(o,"px,").concat(r,"px)"),i.transitionDuration="0s"}}delete Zr.mode;var ni={Transition:Yr,TransitionGroup:{props:Zr,beforeMount:function(){var e=this,t=this._update;this._update=function(n,o){var r=Yt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,r(),t.call(e,n,o)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),o=this.prevChildren=this.children,r=this.$slots.default||[],i=this.children=[],a=Wr(this),s=0;s-1?bo[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:bo[e]=/HTMLUnknownElement/.test(t.toString())},L(Wn.options.directives,Jr),L(Wn.options.components,ni),Wn.prototype.__patch__=K?Ir:I,Wn.prototype.$mount=function(e,t){return function(e,t,n){var o;e.$el=t,e.$options.render||(e.$options.render=he),en(e,"beforeMount"),o=function(){e._update(e._render(),n)},new Ht(e,o,I,{before:function(){e._isMounted&&!e._isDestroyed&&en(e,"beforeUpdate")}},!0),n=!1;var r=e._preWatchers;if(r)for(var i=0;i=0&&(t=e.slice(o),e=e.slice(0,o));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(r.path||""),c=t&&t.path||"/",u=l.path?Oi(l.path,c,n||r.append):c,d=function(e,t,n){void 0===t&&(t={});var o,r=n||ui;try{o=r(e||"")}catch(e){o={}}for(var i in t){var a=t[i];o[i]=Array.isArray(a)?a.map(ci):ci(a)}return o}(l.query,r.query,o&&o.options.parseQuery),f=r.hash||l.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:d,hash:f}}var Ji,Hi=function(){},Vi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,o=this.$route,r=n.resolve(this.to,o,this.append),i=r.location,a=r.route,s=r.href,l={},c=n.options.linkActiveClass,u=n.options.linkExactActiveClass,d=null==c?"router-link-active":c,f=null==u?"router-link-exact-active":u,p=null==this.activeClass?d:this.activeClass,h=null==this.exactActiveClass?f:this.exactActiveClass,v=a.redirectedFrom?pi(null,Gi(a.redirectedFrom),null,n):a;l[h]=yi(o,v,this.exactPath),l[p]=this.exact||this.exactPath?l[h]:function(e,t){return 0===e.path.replace(fi,"/").indexOf(t.path.replace(fi,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(o,v);var m=l[h]?this.ariaCurrentValue:null,g=function(e){Wi(e)&&(t.replace?n.replace(i,Hi):n.push(i,Hi))},y={click:Wi};Array.isArray(this.event)?this.event.forEach((function(e){y[e]=g})):y[this.event]=g;var b={class:l},w=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:l[p],isExactActive:l[h]});if(w){if(1===w.length)return w[0];if(w.length>1||!w.length)return 0===w.length?e():e("span",{},w)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var S=function e(t){var n;if(t)for(var o=0;o-1&&(s.params[f]=n.params[f]);return s.path=Bi(u.path,s.params),l(u,s,a)}if(s.path){s.params={};for(var p=0;p-1}function xa(e,t){return Oa(e)&&e._isRouter&&(null==t||e.type===t)}function ka(e,t,n){var o=function(r){r>=e.length?n():e[r]?t(e[r],(function(){o(r+1)})):o(r+1)};o(0)}function Aa(e){return function(t,n,o){var r=!1,i=0,a=null;Pa(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,i++;var l,c=ja((function(t){var r;((r=t).__esModule||Ca&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:Ji.extend(t),n.components[s]=t,--i<=0&&o()})),u=ja((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Oa(e)?e:new Error(t),o(a))}));try{l=e(c,u)}catch(e){u(e)}if(l)if("function"==typeof l.then)l.then(c,u);else{var d=l.component;d&&"function"==typeof d.then&&d.then(c,u)}}})),r||o()}}function Pa(e,t){return Ta(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Ta(e){return Array.prototype.concat.apply([],e)}var Ca="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function ja(e){var t=!1;return function(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];if(!t)return t=!0,e.apply(this,n)}}var Ea=function(e,t){this.router=e,this.base=function(e){if(!e)if(qi){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function La(e,t,n,o){var r=Pa(e,(function(e,o,r,i){var a=function(e,t){"function"!=typeof e&&(e=Ji.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,o,r,i)})):n(a,o,r,i)}));return Ta(o?r.reverse():r)}function Ma(e,t){if(t)return function(){return e.apply(t,arguments)}}Ea.prototype.listen=function(e){this.cb=e},Ea.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Ea.prototype.onError=function(e){this.errorCbs.push(e)},Ea.prototype.transitionTo=function(e,t,n){var o,r=this;try{o=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var i=this.current;this.confirmTransition(o,(function(){r.updateRoute(o),t&&t(o),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(o,i)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(o)})))}),(function(e){n&&n(e),e&&!r.ready&&(xa(e,ya.redirected)&&i===vi||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},Ea.prototype.confirmTransition=function(e,t,n){var o=this,r=this.current;this.pending=e;var i,a,s=function(e){!xa(e)&&Oa(e)&&(o.errorCbs.length?o.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,c=r.matched.length-1;if(yi(e,r)&&l===c&&e.matched[l]===r.matched[c])return this.ensureURL(),e.hash&&aa(this.router,r,e,!1),s(((a=Sa(i=r,e,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var u=function(e,t){var n,o=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,o=va&&n;o&&this.listeners.push(ia());var r=function(){var n=e.current,r=Ra(e.base);e.current===vi&&r===e._startLocation||e.transitionTo(r,(function(e){o&&aa(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){ma(xi(o.base+e.fullPath)),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){ga(xi(o.base+e.fullPath)),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Ra(this.base)!==this.current.fullPath){var t=xi(this.base+this.current.fullPath);e?ma(t):ga(t)}},t.prototype.getCurrentLocation=function(){return Ra(this.base)},t}(Ea);function Ra(e){var t=window.location.pathname,n=t.toLowerCase(),o=e.toLowerCase();return!e||n!==o&&0!==n.indexOf(xi(o+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var $a=function(e){function t(t,n,o){e.call(this,t,n),o&&function(e){var t=Ra(e);if(!/^\/#/.test(t))return window.location.replace(xi(e+"/#"+t)),!0}(this.base)||Da()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=va&&t;n&&this.listeners.push(ia());var o=function(){var t=e.current;Da()&&e.transitionTo(Na(),(function(o){n&&aa(e.router,o,t,!0),va||za(o.fullPath)}))},r=va?"popstate":"hashchange";window.addEventListener(r,o),this.listeners.push((function(){window.removeEventListener(r,o)}))}},t.prototype.push=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){Fa(e.fullPath),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){za(e.fullPath),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Na()!==t&&(e?Fa(t):za(t))},t.prototype.getCurrentLocation=function(){return Na()},t}(Ea);function Da(){var e=Na();return"/"===e.charAt(0)||(za("/"+e),!1)}function Na(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Ua(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Fa(e){va?ma(Ua(e)):window.location.hash=e}function za(e){va?ga(Ua(e)):window.location.replace(Ua(e))}var Ba=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var o=this;this.transitionTo(e,(function(e){o.stack=o.stack.slice(0,o.index+1).concat(e),o.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this;this.transitionTo(e,(function(e){o.stack=o.stack.slice(0,o.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var o=this.stack[n];this.confirmTransition(o,(function(){var e=t.current;t.index=n,t.updateRoute(o),t.router.afterHooks.forEach((function(t){t&&t(o,e)}))}),(function(e){xa(e,ya.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Ea),Ga=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Yi(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!va&&!1!==e.fallback,this.fallback&&(t="hash"),qi||(t="abstract"),this.mode=t,t){case"history":this.history=new Ia(this,e.base);break;case"hash":this.history=new $a(this,e.base,this.fallback);break;case"abstract":this.history=new Ba(this,e.base);break;default:0}},Ja={currentRoute:{configurable:!0}};Ga.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Ja.currentRoute.get=function(){return this.history&&this.history.current},Ga.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ia||n instanceof $a){var o=function(e){n.setupListeners(),function(e){var o=n.current,r=t.options.scrollBehavior;va&&r&&"fullPath"in e&&aa(t,e,o,!1)}(e)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},Ga.prototype.beforeEach=function(e){return Va(this.beforeHooks,e)},Ga.prototype.beforeResolve=function(e){return Va(this.resolveHooks,e)},Ga.prototype.afterEach=function(e){return Va(this.afterHooks,e)},Ga.prototype.onReady=function(e,t){this.history.onReady(e,t)},Ga.prototype.onError=function(e){this.history.onError(e)},Ga.prototype.push=function(e,t,n){var o=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){o.history.push(e,t,n)}));this.history.push(e,t,n)},Ga.prototype.replace=function(e,t,n){var o=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){o.history.replace(e,t,n)}));this.history.replace(e,t,n)},Ga.prototype.go=function(e){this.history.go(e)},Ga.prototype.back=function(){this.go(-1)},Ga.prototype.forward=function(){this.go(1)},Ga.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},Ga.prototype.resolve=function(e,t,n){var o=Gi(e,t=t||this.history.current,n,this),r=this.match(o,t),i=r.redirectedFrom||r.fullPath;return{location:o,route:r,href:function(e,t,n){var o="hash"===n?"#"+t:t;return e?xi(e+"/"+o):o}(this.history.base,i,this.mode),normalizedTo:o,resolved:r}},Ga.prototype.getRoutes=function(){return this.matcher.getRoutes()},Ga.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Ga.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Ga.prototype,Ja);var Ha=Ga;function Va(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}Ga.install=function e(t){if(!e.installed||Ji!==t){e.installed=!0,Ji=t;var n=function(e){return void 0!==e},o=function(e,t){var o=e.$options._parentVnode;n(o)&&n(o=o.data)&&n(o=o.registerRouteInstance)&&o(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,o(this,this)},destroyed:function(){o(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",Si),t.component("RouterLink",Vi);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},Ga.version="3.6.5",Ga.isNavigationFailure=xa,Ga.NavigationFailureType=ya,Ga.START_LOCATION=vi,qi&&window.Vue&&window.Vue.use(Ga);n(100);n(127),n(94);var Wa={"components/AlgoliaSearchBox":()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,322)),"components/DropdownLink":()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,265)),"components/DropdownTransition":()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,253)),"components/Home":()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,293)),"components/NavLink":()=>n.e(24).then(n.bind(null,252)),"components/NavLinks":()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,277)),"components/Navbar":()=>Promise.all([n.e(0),n.e(1)]).then(n.bind(null,319)),"components/Page":()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,294)),"components/PageEdit":()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,279)),"components/PageNav":()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,280)),"components/Sidebar":()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,295)),"components/SidebarButton":()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,296)),"components/SidebarGroup":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,278)),"components/SidebarLink":()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,267)),"components/SidebarLinks":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,264)),"global-components/Badge":()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,329)),"global-components/CodeBlock":()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,323)),"global-components/CodeGroup":()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,324)),"layouts/404":()=>n.e(8).then(n.bind(null,325)),"layouts/Layout":()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,326)),NotFound:()=>n.e(8).then(n.bind(null,325)),Layout:()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,326)),"components/ThemeSwitcher":()=>n.e(26).then(n.bind(null,266)),"global-components/ThemeManager":()=>n.e(7).then(n.bind(null,327))},qa={"v-6d103c0f":()=>n.e(27).then(n.bind(null,330)),"v-7be33f55":()=>n.e(28).then(n.bind(null,331)),"v-592ee76f":()=>n.e(30).then(n.bind(null,332)),"v-225394af":()=>n.e(31).then(n.bind(null,333)),"v-4e22b48a":()=>n.e(32).then(n.bind(null,334)),"v-01d39fbb":()=>n.e(29).then(n.bind(null,335)),"v-345a158f":()=>n.e(34).then(n.bind(null,336)),"v-81274ae2":()=>n.e(33).then(n.bind(null,337)),"v-64989b6f":()=>n.e(35).then(n.bind(null,338)),"v-f522bdba":()=>n.e(37).then(n.bind(null,339)),"v-424cf6cf":()=>n.e(36).then(n.bind(null,340)),"v-9676641e":()=>n.e(38).then(n.bind(null,341)),"v-d825f8e2":()=>n.e(39).then(n.bind(null,342)),"v-de1236aa":()=>n.e(40).then(n.bind(null,343)),"v-6b9f262f":()=>n.e(14).then(n.bind(null,344)),"v-d168dba2":()=>n.e(41).then(n.bind(null,345)),"v-beda3462":()=>n.e(42).then(n.bind(null,346)),"v-003c2faf":()=>n.e(44).then(n.bind(null,347)),"v-ab47dc22":()=>n.e(43).then(n.bind(null,348)),"v-7a85af9e":()=>n.e(45).then(n.bind(null,349)),"v-f8efcd22":()=>n.e(46).then(n.bind(null,350)),"v-3eadfe49":()=>n.e(49).then(n.bind(null,351)),"v-2a5ebdfe":()=>n.e(50).then(n.bind(null,352)),"v-010d50e2":()=>n.e(47).then(n.bind(null,353)),"v-e815d23e":()=>n.e(51).then(n.bind(null,354)),"v-d732ddea":()=>n.e(48).then(n.bind(null,355)),"v-b555e268":()=>n.e(53).then(n.bind(null,356)),"v-c6805a6a":()=>n.e(52).then(n.bind(null,357)),"v-fc8dde62":()=>n.e(55).then(n.bind(null,358)),"v-9b08b72a":()=>n.e(54).then(n.bind(null,359)),"v-a4d8fe62":()=>n.e(56).then(n.bind(null,360)),"v-a6521322":()=>n.e(58).then(n.bind(null,361)),"v-5ed8efd6":()=>n.e(59).then(n.bind(null,362)),"v-751f9e23":()=>n.e(60).then(n.bind(null,363)),"v-1b47640f":()=>n.e(57).then(n.bind(null,364)),"v-051fd6ef":()=>n.e(61).then(n.bind(null,365)),"v-687695a2":()=>n.e(62).then(n.bind(null,366)),"v-72831da2":()=>n.e(64).then(n.bind(null,367)),"v-98819f36":()=>n.e(63).then(n.bind(null,368)),"v-66a0075c":()=>n.e(65).then(n.bind(null,369)),"v-1e60c8e2":()=>n.e(66).then(n.bind(null,370)),"v-cb4c1c86":()=>n.e(67).then(n.bind(null,371)),"v-7e90673c":()=>n.e(69).then(n.bind(null,372)),"v-7fc82f01":()=>n.e(68).then(n.bind(null,373))};function Ka(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Xa=/-(\w)/g,Ya=Ka(e=>e.replace(Xa,(e,t)=>t?t.toUpperCase():"")),Za=/\B([A-Z])/g,Qa=Ka(e=>e.replace(Za,"-$1").toLowerCase()),es=Ka(e=>e.charAt(0).toUpperCase()+e.slice(1));function ts(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(es(Ya(t))):e(es(t))||e(Qa(t))}const ns=Object.assign({},Wa,qa),os=e=>ns[e],rs=e=>qa[e],is=e=>Wa[e],as=e=>Wn.component(e);function ss(e){return ts(rs,e)}function ls(e){return ts(is,e)}function cs(e){return ts(os,e)}function us(e){return ts(as,e)}function ds(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!us(e)&&cs(e)){const t=await cs(e)();Wn.component(e,t.default)}}))}function fs(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}var ps=n(91),hs=n.n(ps),vs=n(92),ms=n.n(vs),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${ms()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=ws(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],e,this.siteMeta,Ss)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){ws(null,this.currentMetaTags),ys()}};function ys(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function bs(e=""){return e?``:""}function ws(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function Ss(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var _s=n(22),Os=n.n(_s),xs={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:Os()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),o=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),r=window.innerHeight+n;for(let e=0;e=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},ks=n(23),As=n.n(ks),Ps={mounted(){As.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,n)=>{e.path===t.path||Wn.component(e.name)||As.a.start(),n()}),this.$router.afterEach(()=>{As.a.done(),this.isSidebarOpen=!1})}},Ts={props:{parent:Object,code:String,options:{align:String,color:String,backgroundTransition:Boolean,backgroundColor:String,successText:String,staticIcon:Boolean}},data:()=>({success:!1,originalBackground:null,originalTransition:null}),computed:{alignStyle(){let e={};return e[this.options.align]="7.5px",e},iconClass(){return this.options.staticIcon?"":"hover"}},mounted(){this.originalTransition=this.parent.style.transition,this.originalBackground=this.parent.style.background},beforeDestroy(){this.parent.style.transition=this.originalTransition,this.parent.style.background=this.originalBackground},methods:{hexToRgb(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},copyToClipboard(e){if(navigator.clipboard)navigator.clipboard.writeText(this.code).then(()=>{this.setSuccessTransitions()},()=>{});else{let e=document.createElement("textarea");document.body.appendChild(e),e.value=this.code,e.select(),document.execCommand("Copy"),e.remove(),this.setSuccessTransitions()}},setSuccessTransitions(){if(clearTimeout(this.successTimeout),this.options.backgroundTransition){this.parent.style.transition="background 350ms";let e=this.hexToRgb(this.options.backgroundColor);this.parent.style.background=`rgba(${e.r}, ${e.g}, ${e.b}, 0.1)`}this.success=!0,this.successTimeout=setTimeout(()=>{this.options.backgroundTransition&&(this.parent.style.background=this.originalBackground,this.parent.style.transition=this.originalTransition),this.success=!1},500)}}},Cs=(n(239),n(8)),js=Object(Cs.a)(Ts,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"code-copy"},[t("svg",{class:e.iconClass,style:e.alignStyle,attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},on:{click:e.copyToClipboard}},[t("path",{attrs:{fill:"none",d:"M0 0h24v24H0z"}}),e._v(" "),t("path",{attrs:{fill:e.options.color,d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"}})]),e._v(" "),t("span",{class:e.success?"success":"",style:e.alignStyle},[e._v("\n "+e._s(e.options.successText)+"\n ")])])}),[],!1,null,"49140617",null).exports,Es=(n(240),{updated(){this.update()},methods:{update(){setTimeout(()=>{document.querySelectorAll('div[class*="language-"] pre').forEach(e=>{if(e.classList.contains("code-copy-added"))return;let t=new(Wn.extend(js));t.options={align:"bottom",color:"#27b1ff",backgroundTransition:!0,backgroundColor:"#0075b8",successText:"Copied!",staticIcon:!1},t.code=e.innerText,t.parent=e,t.$mount(),e.classList.add("code-copy-added"),e.appendChild(t.$el)})},100)}}}),Ls=n(93),Ms=n.n(Ls),Is=(n(241),{mounted(){Ms.a.polyfill()}}),Rs=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},o=window.Promise||function(e){function t(){}e(t,t)},r=function(e){var t=e.target;t!==k?-1!==b.indexOf(t)&&v({target:t}):h()},i=function(){if(!S&&x.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(_-e)>O.scrollOffset&&setTimeout(h,150)}},a=function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||h()},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(k.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=Rs({},O.container,e.container)),e.template){var n=Ds(e.template)?e.template:document.querySelector(e.template);t.template=n}return O=Rs({},O,t),b.forEach((function(e){e.dispatchEvent(Bs("medium-zoom:update",{detail:{zoom:A}}))})),A},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(Rs({},O,t))},c=function(){for(var e=arguments.length,t=Array(e),n=0;n0?t.reduce((function(e,t){return[].concat(e,Us(t))}),[]):b;return o.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(Bs("medium-zoom:detach",{detail:{zoom:A}}))})),b=b.filter((function(e){return-1===o.indexOf(e)})),A},d=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(o){o.addEventListener("medium-zoom:"+e,t,n)})),w.push({type:"medium-zoom:"+e,listener:t,options:n}),A},f=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(o){o.removeEventListener("medium-zoom:"+e,t,n)})),w=w.filter((function(n){return!(n.type==="medium-zoom:"+e&&n.listener.toString()===t.toString())})),A},p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,n=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,n=void 0;if(O.container)if(O.container instanceof Object)t=(e=Rs({},e,O.container)).width-e.left-e.right-2*O.margin,n=e.height-e.top-e.bottom-2*O.margin;else{var o=(Ds(O.container)?O.container:document.querySelector(O.container)).getBoundingClientRect(),r=o.width,i=o.height,a=o.left,s=o.top;e=Rs({},e,{width:r,height:i,left:a,top:s})}t=t||e.width-2*O.margin,n=n||e.height-2*O.margin;var l=x.zoomedHd||x.original,c=Ns(l)?t:l.naturalWidth||t,u=Ns(l)?n:l.naturalHeight||n,d=l.getBoundingClientRect(),f=d.top,p=d.left,h=d.width,v=d.height,m=Math.min(Math.max(h,c),t)/h,g=Math.min(Math.max(v,u),n)/v,y=Math.min(m,g),b="scale("+y+") translate3d("+((t-h)/2-p+O.margin+e.left)/y+"px, "+((n-v)/2-f+O.margin+e.top)/y+"px, 0)";x.zoomed.style.transform=b,x.zoomedHd&&(x.zoomedHd.style.transform=b)};return new o((function(e){if(t&&-1===b.indexOf(t))e(A);else{if(x.zoomed)e(A);else{if(t)x.original=t;else{if(!(b.length>0))return void e(A);var o=b;x.original=o[0]}if(x.original.dispatchEvent(Bs("medium-zoom:open",{detail:{zoom:A}})),_=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,S=!0,x.zoomed=zs(x.original),document.body.appendChild(k),O.template){var r=Ds(O.template)?O.template:document.querySelector(O.template);x.template=document.createElement("div"),x.template.appendChild(r.content.cloneNode(!0)),document.body.appendChild(x.template)}if(x.original.parentElement&&"PICTURE"===x.original.parentElement.tagName&&x.original.currentSrc&&(x.zoomed.src=x.original.currentSrc),document.body.appendChild(x.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),x.original.classList.add("medium-zoom-image--hidden"),x.zoomed.classList.add("medium-zoom-image--opened"),x.zoomed.addEventListener("click",h),x.zoomed.addEventListener("transitionend",(function t(){S=!1,x.zoomed.removeEventListener("transitionend",t),x.original.dispatchEvent(Bs("medium-zoom:opened",{detail:{zoom:A}})),e(A)})),x.original.getAttribute("data-zoom-src")){x.zoomedHd=x.zoomed.cloneNode(),x.zoomedHd.removeAttribute("srcset"),x.zoomedHd.removeAttribute("sizes"),x.zoomedHd.removeAttribute("loading"),x.zoomedHd.src=x.zoomed.getAttribute("data-zoom-src"),x.zoomedHd.onerror=function(){clearInterval(i),console.warn("Unable to reach the zoom image target "+x.zoomedHd.src),x.zoomedHd=null,n()};var i=setInterval((function(){x.zoomedHd.complete&&(clearInterval(i),x.zoomedHd.classList.add("medium-zoom-image--opened"),x.zoomedHd.addEventListener("click",h),document.body.appendChild(x.zoomedHd),n())}),10)}else if(x.original.hasAttribute("srcset")){x.zoomedHd=x.zoomed.cloneNode(),x.zoomedHd.removeAttribute("sizes"),x.zoomedHd.removeAttribute("loading");var a=x.zoomedHd.addEventListener("load",(function(){x.zoomedHd.removeEventListener("load",a),x.zoomedHd.classList.add("medium-zoom-image--opened"),x.zoomedHd.addEventListener("click",h),document.body.appendChild(x.zoomedHd),n()}))}else n()}}}))},h=function(){return new o((function(e){if(!S&&x.original){S=!0,document.body.classList.remove("medium-zoom--opened"),x.zoomed.style.transform="",x.zoomedHd&&(x.zoomedHd.style.transform=""),x.template&&(x.template.style.transition="opacity 150ms",x.template.style.opacity=0),x.original.dispatchEvent(Bs("medium-zoom:close",{detail:{zoom:A}})),x.zoomed.addEventListener("transitionend",(function t(){x.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(x.zoomed),x.zoomedHd&&document.body.removeChild(x.zoomedHd),document.body.removeChild(k),x.zoomed.classList.remove("medium-zoom-image--opened"),x.template&&document.body.removeChild(x.template),S=!1,x.zoomed.removeEventListener("transitionend",t),x.original.dispatchEvent(Bs("medium-zoom:closed",{detail:{zoom:A}})),x.original=null,x.zoomed=null,x.zoomedHd=null,x.template=null,e(A)}))}else e(A)}))},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target;return x.original?h():p({target:t})},m=function(){return O},g=function(){return b},y=function(){return x.original},b=[],w=[],S=!1,_=0,O=n,x={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?O=t:(t||"string"==typeof t)&&c(t),O=Rs({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},O);var k=Fs(O.background);document.addEventListener("click",r),document.addEventListener("keyup",a),document.addEventListener("scroll",i),window.addEventListener("resize",h);var A={open:p,close:h,toggle:v,update:s,clone:l,attach:c,detach:u,on:d,off:f,getOptions:m,getImages:g,getZoomedImage:y};return A};const Js=JSON.parse('{"background":"var(--bodyBgColor)"}'),Hs=Number("500");class Vs{constructor(){this.instance=null}update(e="img"){"undefined"!=typeof window&&(null===this.instance?this.instance=Gs(e,Js):(this.instance.detach(),this.instance.attach(e)))}updateDelay(e="img",t=Hs){setTimeout(()=>this.update(e),t)}}n(242);var Ws=[gs,xs,Ps,Es,Is,{watch:{"$page.path"(){void 0!==this.$vuepress.mediumZoom&&this.$vuepress.mediumZoom.updateDelay()}},mounted(){this.$vuepress.mediumZoom=new Vs,this.$vuepress.mediumZoom.updateDelay()}}],qs={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return fs("layout",e),Wn.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Ks=Object(Cs.a)(qs,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(Ks,"mixins",Ws);const Xs=[{name:"v-6d103c0f",path:"/32BIT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-6d103c0f").then(n)}},{name:"v-7be33f55",path:"/ABOUTPOJAV.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7be33f55").then(n)}},{name:"v-592ee76f",path:"/BUILD-FROM-SOURCE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-592ee76f").then(n)}},{name:"v-225394af",path:"/CONT-TRANSLATIONS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-225394af").then(n)}},{name:"v-4e22b48a",path:"/CONT-WEBSITE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-4e22b48a").then(n)}},{name:"v-01d39fbb",path:"/APPSTORE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-01d39fbb").then(n)}},{name:"v-345a158f",path:"/CUSTOM-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-345a158f").then(n)}},{name:"v-81274ae2",path:"/CUSTOM-CONTROLS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-81274ae2").then(n)}},{name:"v-64989b6f",path:"/DEVICES.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-64989b6f").then(n)}},{name:"v-f522bdba",path:"/ENV-VARS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-f522bdba").then(n)}},{name:"v-424cf6cf",path:"/DISCORD.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-424cf6cf").then(n)}},{name:"v-9676641e",path:"/FFMPEG.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-9676641e").then(n)}},{name:"v-d825f8e2",path:"/FIRST-STEPS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d825f8e2").then(n)}},{name:"v-de1236aa",path:"/INSTALL-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-de1236aa").then(n)}},{name:"v-6b9f262f",path:"/INSTALL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-6b9f262f").then(n)}},{name:"v-d168dba2",path:"/IOS-SUPPORT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d168dba2").then(n)}},{name:"v-beda3462",path:"/JAVA-ARGS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-beda3462").then(n)}},{name:"v-003c2faf",path:"/LEGAL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-003c2faf").then(n)}},{name:"v-ab47dc22",path:"/JIT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-ab47dc22").then(n)}},{name:"v-7a85af9e",path:"/LOCAL-MODE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7a85af9e").then(n)}},{name:"v-f8efcd22",path:"/MCVERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-f8efcd22").then(n)}},{name:"v-3eadfe49",path:"/MODS-UNSUPPORTED.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-3eadfe49").then(n)}},{name:"v-2a5ebdfe",path:"/NOTCHFIX.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-2a5ebdfe").then(n)}},{name:"v-010d50e2",path:"/MODDED-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-010d50e2").then(n)}},{name:"v-e815d23e",path:"/OPTIMIZATION.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-e815d23e").then(n)}},{name:"v-d732ddea",path:"/MODPACKS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d732ddea").then(n)}},{name:"v-b555e268",path:"/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-b555e268").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-c6805a6a",path:"/PARSINGERROR.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-c6805a6a").then(n)}},{name:"v-fc8dde62",path:"/RENDERERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-fc8dde62").then(n)}},{name:"v-9b08b72a",path:"/REFUSALOFINSTALL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-9b08b72a").then(n)}},{name:"v-a4d8fe62",path:"/ROADMAP.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-a4d8fe62").then(n)}},{name:"v-a6521322",path:"/SIGN-IN.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-a6521322").then(n)}},{name:"v-5ed8efd6",path:"/UNJAIL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-5ed8efd6").then(n)}},{name:"v-751f9e23",path:"/ZINK.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-751f9e23").then(n)}},{name:"v-1b47640f",path:"/SHADERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-1b47640f").then(n)}},{name:"v-051fd6ef",path:"/archived_pages/DEVICES_LINUX_INCL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-051fd6ef").then(n)}},{name:"v-687695a2",path:"/archived_pages/JDK8.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-687695a2").then(n)}},{name:"v-72831da2",path:"/archived_pages/PARTNERSHIPS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-72831da2").then(n)}},{name:"v-98819f36",path:"/archived_pages/OGL32.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-98819f36").then(n)}},{name:"v-66a0075c",path:"/archived_pages/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-66a0075c").then(n)}},{path:"/archived_pages/index.html",redirect:"/archived_pages/"},{name:"v-1e60c8e2",path:"/archived_pages/RIP-A7.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-1e60c8e2").then(n)}},{name:"v-cb4c1c86",path:"/changelogs/ANDROID.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-cb4c1c86").then(n)}},{name:"v-7e90673c",path:"/images/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7e90673c").then(n)}},{path:"/images/index.html",redirect:"/images/"},{name:"v-7fc82f01",path:"/changelogs/IOS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7fc82f01").then(n)}},{path:"*",component:Ks}],Ys={title:"PojavLauncher",description:"A flexible, fast and open-source Minecraft Java Edition launcher for Android and iOS",base:"/",headTags:[["meta",{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"}],["meta",{name:"theme-color",content:"#25262b",media:"(prefers-color-scheme: dark)"}],["meta",{name:"apple-mobile-web-app-capable",content:"yes"}],["meta",{name:"apple-mobile-web-app-status-bar-style",content:"black"}],["link",{rel:"'stylesheet",href:"/styles/website.css"}]],pages:[{title:"PojavLauncher's 32-bit support",frontmatter:{},regularPath:"/32BIT.html",relativePath:"32BIT.md",key:"v-6d103c0f",path:"/32BIT.html",headers:[{level:2,title:"RAM Allocation",slug:"ram-allocation"},{level:2,title:"Performance",slug:"performance"},{level:2,title:"Compatibility",slug:"compatibility"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" PojavLauncher's 32-bit support \n Most of you, Android users, who are reading this now, won't be bothered by this documentation, but for the poor souls who have a 32-bit device, let's press L F to pay respects to them. \n ARM transitioned into the modern arm64/aarch64 architecture, which significantly improved utilization and stability compared to its widely used predecessor, arm/aarch32 , while also maintaining compatibility using code blocks for parity between both architectures. \n We won't get into much detail regarding it, but if you'd like to learn more about it have a read of this documentary about the ARM platform. \n You may encounter issues while using PojavLauncher on 32-bit devices. Here's a list of things that are known to be problematic: \n RAM Allocation \n Real 32-bit devices (32-bit hardware and firmware), can't allocate more than 768MB of RAM to PojavLauncher. This CAN'T be changed even if the device has extra RAM to spare. \n \n Examples of real 32-bit SoCs: Qualcomm Snapdragon 801, 800, 600, 400, S4, S3, S2, S1, etc. \n \n 64-bit devices limited to 32-bit firmware can't allocate more than ~1000MB of RAM. As said earlier, this CAN'T be changed. \n \n Examples of 64-bit SoCs limited to 32-bit firmware: MediaTek Helio G37, G35, G25, P35, P25, P23, P22, etc. \n Performance \n Due to 32-bit's processing speed limit, Minecraft's performance is always compromised. Even with optimization mods installed, you may receive big stutters even on the lowest settings. Decreasing RAM Allocation may help performance in some scenarios. \n Compatibility \n As of snapshot 24w14a , Minecraft has officially dropped support for the 32-Bit architecture, ultimately meaning if you own a 32-Bit device you will NOT be able to run Minecraft 1.20.5+ on said device. \n"},{title:"PojavLauncher",frontmatter:{},regularPath:"/ABOUTPOJAV.html",relativePath:"ABOUTPOJAV.md",key:"v-7be33f55",path:"/ABOUTPOJAV.html",headers:[{level:3,title:"From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.",slug:"from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Special thanks to these guys",slug:"special-thanks-to-these-guys"}],lastUpdated:"10/27/2022, 9:21:34 PM",lastUpdatedTimestamp:1666905694e3,content:" PojavLauncher \n From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS. \n PojavLauncher is based off of zhouwei's Boardwalk project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support. \n Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store! \n Credits \n PojavLauncher didn't just appear out of thin air, but was made possible by the following people! \n @PojavLauncherTeam , which includes \n \n @DuyKhanhTran \n @artdeell \n @Mathias Bouley \n @crystall1nedev \n \n ...and many more contributors to the Android and iOS repositories. \n PojavLauncher also uses the following third-party components: \n \n Boardwalk (JVM Launcher): Unknown License/ Apache License 2.0 or GNU GPLv2. \n Caciocavallo : GNU GPLv2 License . \n Android Support Libraries: Apache License 2.0 . \n GL4ES : MIT License . \n OpenJDK : GNU GPLv2 License . On iOS, it was ported by @Diatrus \n LWJGL3 : BSD-3 License . \n LWJGLX (LWJGL2 API compatibility layer for LWJGL3): unknown license. \n Mesa 3D Graphics Library : MIT License . \n pro-grade (Java sandboxing security manager): Apache License 2.0 . \n xHook (Used for exit code trapping): MIT and BSD-style licenses . \n libepoxy : MIT License . \n virglrenderer : MIT License . \n Apache Commons : Apache License 2.0 . \n jsr305 : 3-Clause BSD License . \n org.json : The JSON License . \n MetalANGLE by @kakashidinho and ANGLE team: BSD License 2.0 . \n MoltenVK : Apache 2.0 License . \n Alderis (color picker for iOS < 14): Apache 2.0 License . \n DBNumberedSlider : Apache 2.0 License \n fishhook (jailed environment usage only): BSD-3 License . \n Java Native Access : Apache 2.0 License . \n shaderc (used by mods that uses Vulkan for rendering): Apache 2.0 License . \n TOInsetGroupedTableView : MIT License . \n Special thanks to these guys \n \n Thanks to MCHeads for providing Minecraft avatars. \n Thanks to @Diatrus for helping make this a reality in the beginning. \n Thanks to MacStadium for providing the hardware needed to help PojavLauncher iOS go further. \n \n \n"},{title:"Building from source",frontmatter:{},regularPath:"/BUILD-FROM-SOURCE.html",relativePath:"BUILD-FROM-SOURCE.md",key:"v-592ee76f",path:"/BUILD-FROM-SOURCE.html",headers:[{level:2,title:"Setting up JRE",slug:"setting-up-jre"},{level:3,title:"Android",slug:"android"},{level:3,title:"iOS",slug:"ios"},{level:2,title:"LWJGL",slug:"lwjgl"},{level:2,title:"Building the Launcher",slug:"building-the-launcher"},{level:3,title:"Updating translations",slug:"updating-translations"},{level:3,title:"Build GLFW Stub",slug:"build-glfw-stub"},{level:3,title:"Build the Launcher",slug:"build-the-launcher"}],lastUpdated:"11/4/2022, 4:16:58 PM",lastUpdatedTimestamp:1667578618e3,content:" Building from source \n \n \n Even though it is well-explained, building from source requires skill, internet and time. \n \n \n You can try building on Android with Termux , but no support will be included for it. \n \n \n It is recommended to clone the PojavLauncher repository before starting Setting Up JRE \n \n \n git clone https://github.com/PojavLauncherTeam/PojavLauncher \n Setting up JRE \n \n \n You can download it from CI Auto Builds if you don't want to/can't build. \n \n \n Source: PojavLauncherTeam/android-openjdk-build-multiarch \n Android \n \n Clone the git repository of PojavLauncherTeam/android-openjdk-build-multiarch \n \n git clone https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch\n \n \n Change the directory to the cloned repository \n \n cd android-openjdk-build-multiarch\n \n \n Download Android NDK r10e from here and place it in this directory with a file explorer. (Can't automatically download because of EULA) \n \n WARNING \n Do not attempt to build using a newer or older NDK, it will lead to compilation errors. \n iOS \n \n Get the latest Xcode (tested with Xcode 12). \n Platform and architecture specific environment variables \n \n \n \n Platform \n Architecture \n Target \n Target_JDK \n \n \n \n \n Android \n armv8/aarch64 \n aarch64-linux-android \n aarch64 \n \n \n Android \n armv7/aarch32 \n arm-linux-androideabi \n arm \n \n \n Android \n x86/i686 \n i686-linux-android \n x86 \n \n \n Android \n x86_64/amd64 \n x86_64-linux-android \n x86_64 \n \n \n iOS/iPadOS \n armv8/aarch64 \n aarch64-macos-ios \n aarch64 \n Building JRE (Java Runtime Environment) \n \n \n export BUILD_IOS=0\n \n \n \n export BUILD_IOS=1\n \n \n \n export BUILD_FREETYPE_VERSION=[2.10.4] \n TIP \n You can use versions between 2.6.2 and 2.10.4 but 2.10.4 is preferred. \n \n export JDK_DEBUG_LEVEL=[release] \n TIP \n You can use release , fastdebug and debug , but release is preferred \n \n export JVM_VARIANTS=[client] \n TIP \n You can use client and server variants, Client is for aarch32 and server is for other architectures \n \n (Android only) \n ./extractndk.sh \n ./maketoolchain.sh \n Get CUPS, Freetype and build Freetype \n ./getlibs.sh \n ./buildlibs.sh \n Clone JDK, run once \n ./clonejdk.sh \n Configure JDK and build \n ./buildjdk.sh \n TIP \n If no configuration is changed, run sh makejdkwithoutconfigure.sh instead \n Pack the built JDK \n ./removejdkdebuginfo.sh \n ./tarjdk.sh \n LWJGL \n \n Coming soon \n Building the Launcher \n Updating translations \n \n \n Updating translations is easier thanks to language list updater scripts \n \n \n Just run this command and it'll be automatically updated from Crowdin. \n \n \n \n \n scripts\\languagelist_updater.bat\n \n \n \n chmod +x scripts/languagelist_updater.sh\nbash scripts/languagelist_updater.sh\n Build GLFW Stub \n \n \n ./gradlew :jre_lwjgl3glfw:build\n \n \n \n gradle :jre_lwjgl3glfw:build\n Build the Launcher \n \n \n ./gradlew.bat :app_pojavlauncher:assembleDebug\n \n \n \n ./gradlew :app_pojavlauncher:assembleDebug\n \n \n \n"},{title:"Contributing to the translation of PojavLauncher",frontmatter:{},regularPath:"/CONT-TRANSLATIONS.html",relativePath:"CONT-TRANSLATIONS.md",key:"v-225394af",path:"/CONT-TRANSLATIONS.html",headers:[{level:2,title:"Getting started for newcomers on Crowdin",slug:"getting-started-for-newcomers-on-crowdin"},{level:2,title:"What to translate and what not to translate?",slug:"what-to-translate-and-what-not-to-translate"},{level:2,title:"Proofreading",slug:"proofreading"}],lastUpdated:"10/27/2022, 9:21:34 PM",lastUpdatedTimestamp:1666905694e3,content:' Contributing to the translation of PojavLauncher \n \n \n For the convenience of translators, we use Crowdin . \n \n \n Anyone can join the project on Crowdin and start translating right now. \n \n \n Join the project \n Getting started for newcomers on Crowdin \n \n \n After you sign up on Crowdin and join the project, you can start translating the strings. \n \n \n First, on the project page, you should select the language you want to translate PojavLauncher into. \n \n \n Then, you will see the files to be translated. After the name of each file, you can see the translation progress of that file. The blue bar represents the progress of translated strings, and the green bar represents the progress of approved strings. \n \n \n Now you can click on the "Translate all" button and you will be moved to the translation editor. But first, Crowdin will suggest you to read useful tips for using the translation editor. \n What to translate and what not to translate? \n WARNING \n Things not to translate: PojavLauncher, codes like <1>, , \\n, %s, %.2f, %1$s, %@ , arrows like ◀, \n \n \n Except for the list above, you can translate anything else. \n Proofreading \n \n Proofreading of the strings is made by the language proofreader. Proofreaders are appointed by @Syjalo. Please don\'t ask him to approve the strings or appoint somebody as a proofreader. He will choose a suitable candidate in his opinion. Approved or most voted translation suggestions will be added to the launcher. \n \n'},{title:"Contributing to this website",frontmatter:{},regularPath:"/CONT-WEBSITE.html",relativePath:"CONT-WEBSITE.md",key:"v-4e22b48a",path:"/CONT-WEBSITE.html",headers:[{level:2,title:"What is Vuepress?",slug:"what-is-vuepress"},{level:2,title:"How do I contribute?",slug:"how-do-i-contribute"},{level:2,title:"What to do and what not to do?",slug:"what-to-do-and-what-not-to-do"}],lastUpdated:"10/27/2022, 9:21:34 PM",lastUpdatedTimestamp:1666905694e3,content:" Contributing to this website \n We're always happy to accept help from our beloved community, and this website is no different. However, we want to cover some ground rules before you get started. \n What is Vuepress? \n Vuepress is a static website generator, although it looks really good. It takes three things: a config file, markdown (.md) documents, and resources for images and such, and then compiles them into HTML for browser-friendly access. \n How do I contribute? \n Simple: \n \n \n Fork this repository . \n \n \n Click on \"Edit this page\" on any page, then edit the markdown file with your properly tuned syntax (using Discord? You already know Markdown), then save and commit. It's that easy. \n \n \n If you want to see your changes on your fork, you'll have to either \n \n \n 1- Rename the repo to .github.io \n \n Set the Pages settings to build from the root of gh-pages \n \n 2- (if you have node installed), run npm install && npm run build && npm run start . \n What to do and what not to do? \n You're allowed to pretty much change anything, as long as it follows all of these rules: \n \n Do not make any promises unless you were given permission from the developers. \n Do not spread misinformation and inaccurate content. \n Although you can change everything else, do not touch .vuepress/config.js . If you need to change something in it, let Crystall1nedev or CriticalRange know. \n Never, never ever ever merge gh-pages and main into each other. gh-pages is the result , main is the rough draft . \n Do not delete any dot files (.nvmrc, .gitattributes, etc) \n \n With all of these in mind, you're free to help us out with our website! \n"},{title:"Will PojavLauncher ever come to App Store for iOS?",frontmatter:{},regularPath:"/APPSTORE.html",relativePath:"APPSTORE.md",key:"v-01d39fbb",path:"/APPSTORE.html",headers:[{level:3,title:"From the App Store review guidelines:",slug:"from-the-app-store-review-guidelines"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Will PojavLauncher ever come to App Store for iOS? \n From the App Store review guidelines: \n 2.5.2 : Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user. \n Apple Developer Documentation Referenced: Section 2.5.2 \n Additionally, $99 per year is required for pushing updates. \n If PojavLauncher is ever pushed to the App Store, you will know! \n"},{title:"Installing custom versions of Minecraft",frontmatter:{},regularPath:"/CUSTOM-MC.html",relativePath:"CUSTOM-MC.md",key:"v-345a158f",path:"/CUSTOM-MC.html",headers:[{level:3,title:"Installation:",slug:"installation"},{level:3,title:"Notes:",slug:"notes"}],lastUpdated:"4/10/2023, 12:22:28 PM",lastUpdatedTimestamp:1681129348e3,content:' Installing custom versions of Minecraft \n If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers! \n Installation: \n \n If you are on Android, install MiXplorer and MiX Archive \n Make a copy of the Minecraft version you want to modify \n Rename the custom version folder , .jar and .json to your desired custom version name (for example, foo , foo.jar , foo.json ) \n Open the custom version\'s .json with MiX\'s Text Editor \n Remove "downloads:{"client"...} as shown in the screenshot \n \n \n \n Change "id": "1.2.4" to "id": "(your custom version name)" \n Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft" \n Save the .json \n Modify your .jar as desired, make sure to delete the META-INF folder afterwards. \n Start up your custom version! \n Notes: \n \n If your game is stuck at the Mojang screen afterwards, try deleting options.txt \n This guide is NOT for Babric or Cursed Fabric! \n \n'},{title:"Customizing the on-screen controls",frontmatter:{},regularPath:"/CUSTOM-CONTROLS.html",relativePath:"CUSTOM-CONTROLS.md",key:"v-81274ae2",path:"/CUSTOM-CONTROLS.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:' Customizing the on-screen controls \n Android \n There is "Custom controls" button in the main menu, by clicking that you will be able to change you custom controls. \n \n You can access the options by clicking the cogwheel at the top of the screen. \n \n After clicking the cogwheel, you get a drawer with the following options: \n \n 1- Adds a button of your liking. \n 2- Adds a button drawer, if you press it, your buttons that you assigned will show up. \n 3- Adds a joystick. \n 4- Loads custom controls. \n 5- Saves current custom controls. \n 6- Option to select default custom controls. \n 7- Exports current controls. \n iOS \n To start editing your controlmap in iOS, head to top-left and press the sidebar. (shown in image) \n \n Press the custom controls button. \n \n After that, long press anywhere for more options. \n \n Now you will get a pop-up with the following options: \n \n 1- Exits the controlmap editor. \n 2- Saves the current layout/edited controlmap. \n 3- Loads an existing .json (controlmap) from the controlmap folder. \n 4- Adds a safe area where buttons are restricted from getting outside of the safe area, whilst not registering touches nor gestures outside the safe area. \n 5- Adds a button to your liking. \n 6- Adds a button drawer, has a function of adding a sub-button binded to its drawer. When pressed, buttons binded to it will show up, configurable to make it hold button instead of toggling. \n 7- Adds a joystick. \n'},{title:"Device requirements",frontmatter:{},regularPath:"/DEVICES.html",relativePath:"DEVICES.md",key:"v-64989b6f",path:"/DEVICES.html",headers:[{level:2,title:"Android",slug:"android"},{level:3,title:"Minimum requirements:",slug:"minimum-requirements"},{level:3,title:"Recommended requirements:",slug:"recommended-requirements"},{level:3,title:"ChromeOS",slug:"chromeos"},{level:2,title:"iOS",slug:"ios"},{level:3,title:"Minimum requirements:",slug:"minimum-requirements-2"},{level:3,title:"Recommended requirements:",slug:"recommended-requirements-2"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Device requirements \n \n Minimum means 30 or more average FPS on 1.7.10 with OptiFine installed at lowest settings. \n Recommended means 60 or more average FPS on 1.19.4 with OptiFine installed at lowest settings. \n Android \n Minimum requirements: \n \n Qualcomm Snapdragon 400 (or equivalent) \n Android 5.0 \n 1GB RAM \n Recommended requirements: \n \n Qualcomm Snapdragon 820 (or equivalent) with Vulkan API support \n Android 8.0 and newer \n 4GB RAM or higher (the more the merrier) \n ChromeOS \n \n Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps. \n iOS \n Minimum requirements: \n \n Apple A8 SoC\n \n The Apple A7 SoC is losing support in PojavLauncher 2.3. \n \n \n iOS 14 \n 1GB RAM \n Recommended requirements: \n \n Apple A14/A12X Bionic SoC \n iOS 14 \n 4GB RAM or higher \n \n"},{title:"Using environment variables",frontmatter:{},regularPath:"/ENV-VARS.html",relativePath:"ENV-VARS.md",key:"v-f522bdba",path:"/ENV-VARS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Using environment variables \n"},{title:"Official PojavLauncher Discord server",frontmatter:{},regularPath:"/DISCORD.html",relativePath:"DISCORD.md",key:"v-424cf6cf",path:"/DISCORD.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Official PojavLauncher Discord server \n The only official invite for the PojavLauncher server, beware of invites created by other users.\n invite link \n NOTE: A Minecraft account is REQUIRED in order for you to be able to seek PojavLauncher-based support in the server. \n"},{title:"Exporting videos with Replay Mod",frontmatter:{},regularPath:"/FFMPEG.html",relativePath:"FFMPEG.md",key:"v-9676641e",path:"/FFMPEG.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Exporting videos with Replay Mod \n \n Download the ffmpeg binary here . Choose one based on your device’s architecture.\n \n (For GitHub builds) Due to the limit of Replay’s command window, you'll need to rename the executable to a short name, like -> :fr: . Let’s call it . \n \n \n Install an APK Editor from Google Play or anywhere else (Make sure to use safe sources such as APKPure). \n Follow the instructions of the app to add the executable to /lib/ folder of the APK. Then build the APK and install it.\n \n (Required for a clean install) Install required mods (Forge, Replay Mod). \n \n \n Now launch Minecraft. We're not done yet, so force close it after launching. \n Find latestlog.txt.\n \n Open it and find this line: Added custom env: POJAV_NATIVEDIR= . \n Copy the part. \n \n \n Launch the game again, go to Replay Viewer and load the replay you want to export. \n Follow Replay’s instructions to add keyframes, then (press T show mouse cursor and) click at Render Camera Path . \n Scroll to the bottom, paste the text you copied in step 5 into the first command line window, then write / (step 1) at the end of the text line. \n Tap Render and enjoy your video. \n \n"},{frontmatter:{},regularPath:"/FIRST-STEPS.html",relativePath:"FIRST-STEPS.md",key:"v-d825f8e2",path:"/FIRST-STEPS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:""},{title:"Downloading a copy of Minecraft",frontmatter:{},regularPath:"/INSTALL-MC.html",relativePath:"INSTALL-MC.md",key:"v-de1236aa",path:"/INSTALL-MC.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Downloading a copy of Minecraft \n"},{title:"Installing the launcher",frontmatter:{},regularPath:"/INSTALL.html",relativePath:"INSTALL.md",key:"v-6b9f262f",path:"/INSTALL.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"},{level:3,title:"TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+)",slug:"trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}],lastUpdated:"8/8/2024, 1:52:46 PM",lastUpdatedTimestamp:1723125166e3,content:' Installing the launcher \n Android \n Instructions for installing PojavLauncher on Android devices. \n Google Play \n You can grab PojavLauncher from the Google Play Store here. \n \n GitHub Actions \n If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions. \n Using nightly.link: \n \n Download the Latest Artifact using this link. \n Install as any usual .apk \n \n Using Github (requires an account): \n \n Start off by heading to the PojavLauncher repository and switching to the "Actions" tab. \n \n \n \n Next, select "Android CI" in the workflow selection menu. \n \n \n \n Choose a build with a green or blue checkmark next to the branch you want to download.\n \n v3_openjdk will be the one for most people. \n \n \n \n \n \n Under "Artifacts", choose the build type you wish to download.\n \n app-debug will be the one for most people. \n \n \n \n \n \n Install as any usual .apk \n \n \n Source \n Instructions coming in a future revision to this website. \n iOS \n Instructions for installing PojavLauncher on Apple devices. \n Sideloading (TrollStore) \n We recommend TrollStore for all users if possible. This method allows for automatic JIT enabling, more memory allocation, and non-revoking installs. \n Note: Enable URL Schemes in TrollStore settings. \n TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+) \n For arm64, TrollStore is compatible with the following iOS versions: \n - 14.0 to 16.6.1\n- 17.0 \n- 16.7 to 16.7.8 (*)\n- 17.0.1 to 17.5.1 (*)\n- 18 b1 to 18 b4 (*)\n \n (*) - requires the palera1n jailbreak \n For arm64e, TrollStore is compatible with the following iOS versions: \n - 14.0 to 16.6.1\n- 17.0 (*)\n\n(*) - No installation method at the moment.\n \n \n \n Follow these steps to install TrollStore . \n \n \n Download the latest release from here . \n \n For a specific release, you can find its package on the Releases page \n \n \n \n Locate where the .ipa was downloaded, tap the Share icon, and choose TrollStore in the list of options available. \n \n \n You can now enjoy Minecraft: Java Edition on your iDevice! \n \n Sideloading (Jailed) \n Requires an active Apple ID, that has signed into the Apple Developer Program . \n PojavLauncher supports being sideloaded with AltStore, Sideloadly, and Xcode. Instructions to use AltStore are below--for other options, refer to their documentation. \n \n \n Follow the official guide on installing AltStore itself: \n \n Instructions for Mac and Windows \n \n \n \n Install the latest release using this Install with AltStore button. \n \n For a specific release, you can find its button on the Releases page \n \n \n \n Installing PojavLauncher is not the end for iOS devices. In order to play Minecraft itself, you will need to enable JIT . \n \n Sideloading (Jailbroken) \n Currently, AppSync Unified is not supported. There is an issue regarding the data directory when installed with AppSync. \n You can follow the Sideloading (TrollStore) or Sideloading (Jailed) steps to sideload on a jailbroken iDevice. Regardless of the method, you will benefit from automatic JIT enabling and more memory allocation. \n \n GitHub Actions \n Requires a GitHub account in order to download. \n If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions. \n \n Start off by heading to the PojavLauncher iOS repository and switching to the "Actions" tab. \n \n \n \n Next, select "Development Build" in the workflow selection menu. \n \n \n \n Choose a build with a green or blue checkmark next to the branch you want to download.\n \n main will be the one for most people. \n \n \n \n \n \n Under "Artifacts", choose net.kdt.pojavlauncher.ipa \n \n \n Once you have an Actions build downloaded, you can now unzip the file and use this .ipa for TrollStore or sideloading. \n \n Source \n Instructions coming in a future revision to this website. \n \n'},{title:"System support in future versions of PojavLauncher iOS",frontmatter:{},regularPath:"/IOS-SUPPORT.html",relativePath:"IOS-SUPPORT.md",key:"v-d168dba2",path:"/IOS-SUPPORT.html",headers:[{level:2,title:"But why?",slug:"but-why"},{level:2,title:"So what happens now?",slug:"so-what-happens-now"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" System support in future versions of PojavLauncher iOS \n This announcement will be covering the next 3 releases of PojavLauncher iOS. \n We've made some great strides with the iOS port of PojavLauncher: fixing 1.17 and newer , bringing OpenJDK 8 to iOS , and now unveiling an jailed variant . However, all of the advancements we're making also stirred up old conversations, and we've come to a final conclusion: \n A future release of PojavLauncher will require iOS 14.0 and later. \n But why? \n Supporting iOS 12.0 and newer was a feat of engineering. However, it created multiple issues with feature support and user experience. We need to verify that our code works on iOS 12 before going ahead and compiling--if it does not, this complicates our development as we are faced with two options: dropping the feature on older versions, or importing external libraries. This causes slower development times, or lack of the feature entirely for our users. \n We also observed the userbase currently playing on PojavLauncher. Most of the users asking for support in our Discord server (which is many times more active than the Issues tab on the GitHub repository) are already running iOS 14.0 or newer, and a few cases of users on iOS 13. We barely see users running iOS 12 anymore, and now that PojavLauncher works jailed, users can update to a newer release of iOS while still retaining Java Edition. \n This decision also comes after we understood that we don't really have the ability to test on these older versions anymore. Our devices are already running iOS 14.0+, and so are most of our testers. \n So what happens now? \n Things are going to get somewhat complex, but this document will sort these things out. \n PojavLauncher 2.1 - Recap \n PojavLauncher 2.1 was largely unchanged from its original plans. Just to recap, its key features: \n \n New split user interface to allow switching menus with ease \n Rewritten preferences menu \n Transitioned code to Objective-C from Java \n First release with compatibility unjailbroken \n Final release with jailbreak-specific packages \n \n This release will also begin to warn users with 1GB of memory about the incoming end-of-life. \n \n PojavLauncher 2.2 - 1GB EOL \n PojavLauncher 2.2 was already planned to drop the Apple A7-equipped devices from support, due to performance and stability issues. This has been extended all devices with less than 1 gigabyte of total memory: \n \n iPhone 5s \n iPhone 6 \n iPhone 6 Plus \n iPad mini (2nd generation) \n iPad mini (3rd generation) \n iPad Air (1st generation) \n iPod touch (6th generation) \n \n The a7_allow boolean in the preferences file has been replaced with force_unsupported_launch to reflect the change. As stated before, support for these devices will end 3 weeks after 2.2 releases, or immediately, for you, if this boolean is toggled. \n This release will also begin to warn users on iOS 12 or 13 about the incoming end-of-life. If you are using a device that is capable of running iOS 14 or later, the warning will additionally tell you to upgrade to a newer version of iOS. \n \n PojavLauncher 2.3 - iOS 14.0+ begins \n PojavLauncher 2.3 will begin the end-of-life process for iOS 12/13 users. Taking a similar approach to 2.2, the force_unsupported_launch boolean can be toggled to override the behaviour of the launcher not opening. Support for these versions will end 3 weeks after 2.3 releases, or immediately, for you, if this boolean is toggled. \n As part of this deprecation, beta builds of PojavLauncher 2.4 will move to iOS 14.0 and newer APIs. Moving to these APIs may break the boolean's ability to continue launching the application. \n \n PojavLauncher 2.4 - iOS 14.0+ completed \n PojavLauncher 2.4 will complete the transition to iOS 14.0 APIs and be incompatible with iOS 12/13 without modification to the source code. \n \n"},{title:"Adding custom Java arguments",frontmatter:{},regularPath:"/JAVA-ARGS.html",relativePath:"JAVA-ARGS.md",key:"v-beda3462",path:"/JAVA-ARGS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Adding custom Java arguments \n"},{title:"Is PojavLauncher legal and safe to use?",frontmatter:{},regularPath:"/LEGAL.html",relativePath:"LEGAL.md",key:"v-003c2faf",path:"/LEGAL.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Is PojavLauncher legal and safe to use? \n Although in the past it may have not been the case, PojavLauncher is now legal in Microsoft's perspective. This is due to our objective to prevent piracy with our launcher, and reject offering support by any means for those who do not own the game. \n PojavLauncher also abides by the Minecraft EULA, providing a free and open-source launcher that does not redistribute game files on any other server asides Mojang's. \n Authentication and downloads are performed directly with Mojang's servers--PojavLauncher never collects any of your personal information such as credentials or data, as your information is only stored on-device where only you can access it. \n PojavLauncher does not cause harm to your device, and does not distribute harmful programs and executables. \n \n This cannot be verified if you acquire PojavLauncher from a source that is not official(e.g. pgyer.com, ipaomtk.com, etc.). \n For jailbroken iOS users: jailbreaking can be considered a security risk (which is the reason why Apple is against it) so be cautious when jailbroken. \n Other Minecraft: Java Edition on Android/iOS apps highly likely steals assets and/or code from PojavLauncher. They are not owned nor managed by PojavLauncherTeam. \n \n"},{title:'iOS and "JIT"',frontmatter:{},regularPath:"/JIT.html",relativePath:"JIT.md",key:"v-ab47dc22",path:"/JIT.html",headers:[{level:2,title:"What is JIT and why do I care?",slug:"what-is-jit-and-why-do-i-care"},{level:2,title:"What does this mean for PojavLauncher?",slug:"what-does-this-mean-for-pojavlauncher"},{level:3,title:"Jailbroken devices",slug:"jailbroken-devices"},{level:3,title:"Unjailbroken devices",slug:"unjailbroken-devices"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" iOS and \"JIT\" \n What is JIT and why do I care? \n JIT stands for just-in-time compilation , and (although not specific to Java), it serves as a method of executing Java code quicker then its alternatives, by compiling essential instructions at runtime, rather than its slower alternatives that compile all code at runtime repeatedly or writing in a less portable, hardware-level format. It is the fastest™ method to running Minecraft: Java Edition on mobile devices, essentially required for a more pleasant gaming experience. \n On Apple's mobile platforms (iOS, iPadOS, tvOS, in our case), a security feature known as code-signing is deeply rooted in the operating system. It serves to verify that applications haven't been tampered with after they were installed by a user, done so that malicious payload cannot be installed after-the-fact by a malicious user(e.g. hackers). However, due to the process in which code-signing works, this prevents JIT from functioning properly as it mainly requires reading code, modifying it, and then executing it in some fashion (whether that be by copying the code to a new location in memory, executing directly, or mirroring it). \n What does this mean for PojavLauncher? \n Jailbroken devices \n Users with Jailbroken devices don't need to worry about JIT requirements, as PojavLauncher is specially built to detect jailbreaks and automatically enable new features. \n Unjailbroken devices \n Users with Unjailbroken devices can see two different outcomes, based on what they used to sideload PojavLauncher. \n TrollStore \n If you used TrollStore to sideload PojavLauncher, good news: PojavLauncher takes advantage of the extended entitlements with TrollStore and automatically enables JIT when launched. \n Normal sideload \n If you sideload normally, you will need to enable JIT in some way. The most common method is to attach a debug server to the application while it's running - AltStore, SideStore, SideJITServer, and Jitterbug all of these use this method to enable JIT. \n The only downside to this method is that you are required to be connected to a WiFi network in order to enable JIT. (*) \n (*) - Enabling JIT on iOS 17.x & iOS 18 betas (at the moment) can only be enabled through AltJIT (macOS only) or SideJITServer, which requires a computer (Windows, MacOS and Linux only). This is because these methods utilize pymobiledevice3 to enable JIT due to changes in iOS. \n Methods to enable JIT: \n \n \n AltStore AltJIT (*) \n \n \n Jitterbug (^) \n \n \n SideStore SideJIT (^) \n \n \n SideStore Anisette (^) \n \n \n SideJITServer (!) \n \n \n (*) - AltJIT for iOS 17.x & iOS 18 betas only works on macOS. Requires pymobiledevice3. \n (^) - Does not work for iOS 17.x & iOS 18 betas, as enabling JIT will be done with pymobiledevice3. \n (!) - Does not work for iOS 16.x or below, use the other methods listed above to enable JIT. This method is meant for iOS 17.x & iOS 18 betas. \n Methods not listed here are not confirmed or recommended by us for use with PojavLauncher. \n"},{title:"Offline mode is going places.",frontmatter:{},regularPath:"/LOCAL-MODE.html",relativePath:"LOCAL-MODE.md",key:"v-7a85af9e",path:"/LOCAL-MODE.html",lastUpdated:"3/9/2023, 5:28:16 AM",lastUpdatedTimestamp:1678339696e3,content:" Offline mode is going places. \n Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased) \n PojavLauncher does NOT , and will NEVER support piracy acts . You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft.\nTo purchase Minecraft click this . \n"},{title:"Supported Minecraft versions",frontmatter:{},regularPath:"/MCVERS.html",relativePath:"MCVERS.md",key:"v-f8efcd22",path:"/MCVERS.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Supported Minecraft versions \n With each new Minecraft release comes the question: Will it play nice with PojavLauncher? \n Thanks to the hard work from PojavLauncherTeam, both the Android and the iOS port now cover most Minecraft versions... \n ...with some small exceptions that will be listed below. \n Android \n Current issues, as of the Foxglove update: \n iOS \n Current issues, as of the v2.2 Deepslate update: \n \n v2.2 Deepslate will not open versions of minecraft past 1.20 (*) \n v2.2 Deepslate does not have Java 21. (*) \n \n (*) - To fix these issues, please use the most recent github actions developer build . \n"},{title:"Unsupported Mods and Clients (+ Workarounds/Fixes)",frontmatter:{},regularPath:"/MODS-UNSUPPORTED.html",relativePath:"MODS-UNSUPPORTED.md",key:"v-3eadfe49",path:"/MODS-UNSUPPORTED.html",headers:[{level:2,title:"Performance Mods + Shaders",slug:"performance-mods-shaders"},{level:2,title:"Skyblock Mods",slug:"skyblock-mods"},{level:2,title:"Input-related Mods",slug:"input-related-mods"},{level:2,title:"Other Mods",slug:"other-mods"},{level:2,title:"Unsupported Clients",slug:"unsupported-clients"}],lastUpdated:"6/28/2024, 5:23:15 AM",lastUpdatedTimestamp:1719552195e3,content:" Unsupported Mods and Clients (+ Workarounds/Fixes) \n Not everything that works on PC works on PojavLauncher. Below is a non-exhaustive list of mods that may not work, along with fixes or workarounds. \n Performance Mods + Shaders \n \n Sodium \n \n GL4ES Patch \n 0.5.x and later does not work without disabling the terrain optimization mixins. It's not recommended and therefore isn't faster than Vanilla/Optifine \n \n \n Embeddium \n \n Same problem as Sodium \n \n \n Rubidium \n \n Gl4ES Patch for GL4ES, otherwise same as the previous two \n \n \n Chlorine \n ShadersMod (GLSL Shaders) \n Iris , Iris Installer \n OptiFine \n \n Render Regions don't work \n \n \n Optifine Shaders: The only supported shaders are Open4ES for GL4ES. It works best with Adreno graphics (found in Qualcomm Snapdragon SoCs) and PowerVR graphics, with required patches (found in several low-end MediaTek SoCs). Mali GPUs are not supported. Below is a list of smartphones that are tested and works with Open4ES:\n \n Xiaomi Poco F3 (Snapdragon 870) \n Xiaomi Poco X5 Pro (Snapdragon 778G) \n Xiaomi Redmi Note 8 (Snapdragon 665) \n Oppo A53 (Snapdragon 460) \n Skyblock Mods \n \n Essential \n Skytils \n \n 1.3.0-pre5 works \n \n \n Patcher \n \n 1.6.1 works \n \n \n NotEnoughUpdates \n \n 2.1.1-pre-1 works \n \n \n Skyblock Extras \n Input-related Mods \n \n MidnightControls \n Controllable \n MouseTweaks \n \n Almost all of them don't work because they aren't made with Android's inputs in mind \n Other Mods \n \n Legacy4J \n \n Set selectedControllerHandler in options.txt to 0 \n \n \n Create \n \n Disable Flywheel. \n \n \n Flywheel \n Physics Mod \n Scannable \n \n Works on 1.12 \n \n \n Colormatic \n ItemPhysic \n \n Lite works \n \n \n RandomPatches (Forge) (Fabric) \n Smooth Font \n MrCrayfish's Gun Mod \n \n 1.16.5 is broken \n \n \n Applied Energistics , Applied Energistics 2 \n Zombe \n ReplayMod \n \n FFMPEG is wrongly placed \n \n \n Dynamic Surroundings \n \n White textures on 1.12 \n \n \n Sex mod (thanks @Adiixyz ) \n Immersive Vehicles \n \n Only broken on Forge \n \n \n Immersive Engineering \n \n Works on 1.12 \n \n \n Immersive Portals \n Immersive Railroading \n Immersive Engineering \n DiscordRPC \n \n If your PvP/Hack Client crashes because of this, contact their developers for a fix. \n Unsupported Clients \n \n BatMod \n LabyMod \n MysteryMod \n Lunar Client \n \n \".exe\" \n \n \n Badlion Client \n \n \".exe\" \n \n \n Salwyrr Client \n \n You can't use a launcher in a launcher \n \n \n Meteor Client \n Pizza Client \n Cheeto Client \n 3arthh4ck \n \n Patched version \n \n \n Ares Client \n Credits \n \n https://github.com/Mathias-Boulay/ and all the people in issue #1948 \n https://github.com/ZenZenXDz \n https://github.com/revoscode \n https://github.com/GaucovyAero \n \n"},{frontmatter:{},regularPath:"/NOTCHFIX.html",relativePath:"NOTCHFIX.md",key:"v-2a5ebdfe",path:"/NOTCHFIX.html",lastUpdated:"2/22/2023, 12:51:27 PM",lastUpdatedTimestamp:1677070287e3,content:""},{title:"Installing custom versions of Minecraft",frontmatter:{},regularPath:"/MODDED-MC.html",relativePath:"MODDED-MC.md",key:"v-010d50e2",path:"/MODDED-MC.html",headers:[{level:3,title:"Installation:",slug:"installation"},{level:3,title:"Notes:",slug:"notes"}],lastUpdated:"3/10/2023, 12:57:25 PM",lastUpdatedTimestamp:1678453045e3,content:' Installing custom versions of Minecraft \n If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers! \n Installation: \n \n If you are on Android, install MiXplorer and MiX Archive \n Make a copy of the Minecraft version you want to modify \n Rename the custom version folder , .jar and .json to your desired custom version name (for example, foo , foo.jar , foo.json ) \n Open the custom version\'s .json with MiX\'s Text Editor \n Remove "downloads:{"client"...} as shown in the screenshot \n \n \n \n Change "id": "1.2.4" to "id": "(your custom version name)" \n Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft" \n Save the .json \n Modify your .jar as desired, make sure to delete the META-INF folder afterwards. \n Start up your custom version! \n Notes: \n \n If your game is stuck at the Mojang screen afterwards, try deleting options.txt \n This guide is NOT for Babric or Cursed Fabric! \n \n'},{title:"Optimizing the game",frontmatter:{},regularPath:"/OPTIMIZATION.html",relativePath:"OPTIMIZATION.md",key:"v-e815d23e",path:"/OPTIMIZATION.html",headers:[{level:2,title:"OptiFine",slug:"optifine"},{level:3,title:"Getting (and installing) OptiFine",slug:"getting-and-installing-optifine"},{level:2,title:"Sodium",slug:"sodium"},{level:2,title:'"Optimizing" ModPacks',slug:"optimizing-modpacks"},{level:2,title:"JVM Arguments",slug:"jvm-arguments"}],lastUpdated:"10/28/2022, 9:17:13 AM",lastUpdatedTimestamp:1666948633e3,content:" Optimizing the game \n There are lots of ways to optimize your Java Edition experience if it's being slow for you; or your device is just bad in general. From mods like OptiFine and Sodium to more complex stuff like JVM arguments, we'll cover all of them here. \n OptiFine \n OptiFine, previously known as Optimine and OptiFog; is a Minecraft modification created by sp614x, Insecs, Payton147 and lacuravivid in which the development began on December 22, 2010; was a modification originally created about pushing the fog away but also other features; like FPS Boost, Occlussion Culling, Hidden Geometry removal, Texture Mipmaping and Chunk Loading optimizations in the first development/beta versions of Minecraft \n Getting (and installing) OptiFine \n \n \n Go to the official OptiFine website; optifine.net .\n \n \n \n Depending on what Minecraft version you mainly use, get the specific OptiFine for it. Let's say; I play 1.12.2, so I'll get the latest 1.12.2 OptiFine available.\n Sodium \n \"Optimizing\" ModPacks \n JVM Arguments \n"},{title:"Modpacks",frontmatter:{},regularPath:"/MODPACKS.html",relativePath:"MODPACKS.md",key:"v-d732ddea",path:"/MODPACKS.html",headers:[{level:2,title:"Official Modpacks from PojavLauncherTeam",slug:"official-modpacks-from-pojavlauncherteam"},{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"8/29/2024, 12:40:33 AM",lastUpdatedTimestamp:1724892033e3,content:' Modpacks \n Modpacks, usually archived in a .zip form containing mod metadatas, are mods usually "duct taped" together to bring modded Minecraft in a more convenient way rather than handpicking mods one by one. \n Popular examples of these can be found on both the Modrinth and the CurseForge website. \n Official Modpacks from PojavLauncherTeam \n \n PojavOptimize (crystall1nedev, Chuck_Norris_) - A collection of mods to improve the performance and user experience. \n PojavOptimize (GaucovyAero) - For maximum FPS, this modpack ships with the lowest settings possible. \n \n These modpacks are specially made for PojavLauncher, but it doesn\'t mean you can\'t try them on PC too! \n Installing Modpacks \n Android \n \n Click on the profile section at top of the play button. \n \n \n \n Press on the "create new profile" button. \n \n \n \n Click on "create modpack profile". \n \n \n \n Pick your desired modpack, enjoy! \n iOS \n \n Go to profiles from the sidebar. \n \n \n \n Press the "+" button \n \n \n \n Once a prompt appears, press the "Modpack" option. \n \n \n \n Pick your desired modpack, enjoy! \n \n \n'},{title:"PojavLauncher",frontmatter:{home:!0,icon:"home",title:"PojavLauncher",heroImage:"/logo.png",heroText:"PojavLauncher",tagline:"A flexible, fast and open-source Minecraft Java Edition launcher for Android and iOS",actionText:"Get Started →",actionLink:"/INSTALL.md",copyright:!1,footer:"GPLv3 Licensed | Copyright © 2022, PojavLauncherTeam"},regularPath:"/",relativePath:"README.md",key:"v-b555e268",path:"/",lastUpdated:"10/30/2022, 11:13:14 PM",lastUpdatedTimestamp:1667171594e3,content:""},{title:'"There was a problem while parsing the package" error while installing',frontmatter:{},regularPath:"/PARSINGERROR.html",relativePath:"PARSINGERROR.md",key:"v-c6805a6a",path:"/PARSINGERROR.html",lastUpdated:"3/9/2023, 5:28:16 AM",lastUpdatedTimestamp:1678339696e3,content:' "There was a problem while parsing the package" error while installing \n Google Chrome may corrupt the installation of PojavLauncher. Instead of Chrome, use Firefox or Brave . \n Alternatively, you can use Split APKs Installer (SAI) if you would like to check the error message. (Most default installers do not show the installation error message) \n'},{title:"Renderers",frontmatter:{},regularPath:"/RENDERERS.html",relativePath:"RENDERERS.md",key:"v-fc8dde62",path:"/RENDERERS.html",headers:[{level:2,title:"Holy GL4ES",slug:"holy-gl4es"},{level:3,title:"A screenshot of Holy GL4ES running Minecraft 1.19.4",slug:"a-screenshot-of-holy-gl4es-running-minecraft-1-19-4"},{level:2,title:"ANGLE",slug:"angle"},{level:3,title:"A screenshot of ANGLE running Minecraft 1.19.4",slug:"a-screenshot-of-angle-running-minecraft-1-19-4"},{level:2,title:"virglrenderer",slug:"virglrenderer"},{level:3,title:"A screenshot of virglrenderer running Minecraft 1.12.2",slug:"a-screenshot-of-virglrenderer-running-minecraft-1-12-2"}],lastUpdated:"10/29/2023, 4:25:09 PM",lastUpdatedTimestamp:1698596709e3,content:" Renderers \n Minecraft runs on OpenGL, and mobile devices generally only support OpenGL ES (GLES). And since Minecraft won't run on GLES, we have to use renderers as compatibility layers between OpenGL ES and OpenGL. \n Holy GL4ES \n \n Designed for performance, Holy GL4ES is the default renderer in PojavLauncher and should be used in almost all scenrarios. \n Supports OpenGL 2.1 and has shader converting capabilities, thus makes up for about 1/8 of the OpenGL 3.x standard. \n Works on all versions of vanilla Minecraft. \n A screenshot of Holy GL4ES running Minecraft 1.19.4 \n ANGLE \n \n A bit slower than Holy GL4ES, runs on Vulkan. Should be used only in specific cases, where one can't load a server resource pack or a mod does not run because of missing OpenGL extensions. \n Supports OpenGL 3.2 only. \n Only works on Minecraft 1.17+ \n A screenshot of ANGLE running Minecraft 1.19.4 \n virglrenderer \n \n Very slow, will soon be removed. It's only use cases are mods that don't run because of missing OpenGL extensions and running shaders. \n Supports OpenGL 4.3. \n Works on Minecraft 1.7+, can be extremely buggy. \n A screenshot of virglrenderer running Minecraft 1.12.2 \n \n"},{title:'"App not installed"',frontmatter:{},regularPath:"/REFUSALOFINSTALL.html",relativePath:"REFUSALOFINSTALL.md",key:"v-9b08b72a",path:"/REFUSALOFINSTALL.html",headers:[{level:2,title:"Install with PC/Laptop",slug:"install-with-pc-laptop"},{level:2,title:"Install without PC/Laptop (Android 11 and newer only)",slug:"install-without-pc-laptop-android-11-and-newer-only"}],lastUpdated:"3/16/2023, 9:32:48 PM",lastUpdatedTimestamp:1679002368e3,content:" \"App not installed\" \n The error message looks like this: \n \n Not sure why this happens, but it only happened to one dev build for VenomousSteam81. \n Install with PC/Laptop \n To fix, simply grab your PC/Laptop (unless you have Android 11 and above, continue to the next session), install ADB for your OS. Then, search up how to use adb for your OS. After figuring that out, go ahead and connect your phone to your PC. \n Now, download the PojavLauncher build you downloaded on your phone (or copy the one off of your phone), do adb pm install path/to/pojavlauncher/apk.apk (if that doesn't work and gives an error, use adb shell pm install path/to/pojavlauncher/apk.apk ), and it should install. If not, please make an issue on the wiki github , making sure to mention VenomousSteam81. \n Install without PC/Laptop (Android 11 and newer only) \n First, go to settings and enable developer options (not telling you how to do so), turn on wireless ADB, accept all the ADB stuff, then either download and build it yourself with termux, buy the app from the play store , or go find some apk on the internet. \n Next, download PojavLauncher from GitHub Actions . Open LADB, accept the ADB connection, then type (or copy paste) pm install path/to/pojavlauncher/apk.apk . If that also doesn't work, please make an issue on the wiki github , making sure to mention VenomousSteam81. \n Thank you for your time! \n"},{title:"The road ahead for PojavLauncher",frontmatter:{},regularPath:"/ROADMAP.html",relativePath:"ROADMAP.md",key:"v-a4d8fe62",path:"/ROADMAP.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" The road ahead for PojavLauncher \n"},{title:"Signing in",frontmatter:{},regularPath:"/SIGN-IN.html",relativePath:"SIGN-IN.md",key:"v-a6521322",path:"/SIGN-IN.html",lastUpdated:"12/14/2023, 7:15:25 PM",lastUpdatedTimestamp:1702581325e3,content:" Signing in \n PojavLauncher supports multiple types of accounts to sign in: \n \n Microsoft Accounts(*) \n Local Accounts(^) \n \n (*) Microsoft Accounts only work if the Microsoft Account has Minecraft: Java Edition purchased. \n (^) Local Accounts only work if you have already logged into a Microsoft Account with Minecraft: Java Edition purchased. \n"},{title:"Bringing PojavLauncher to unjailbroken iOS",frontmatter:{},regularPath:"/UNJAIL.html",relativePath:"UNJAIL.md",key:"v-5ed8efd6",path:"/UNJAIL.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Bringing PojavLauncher to unjailbroken iOS \n After many months working on PojavLauncher for unjailbroken devices, we're so excited to announce PojavLauncher 2.1--the first official build of PojavLauncher to support unjailbroken iDevices! This means that you can enjoy PojavLauncher while still keeping your device secure and on the latest versions of iOS! \n"},{frontmatter:{},regularPath:"/ZINK.html",relativePath:"ZINK.md",key:"v-751f9e23",path:"/ZINK.html",lastUpdated:"2/22/2023, 12:51:27 PM",lastUpdatedTimestamp:1677070287e3,content:""},{title:"Shaders",frontmatter:{},regularPath:"/SHADERS.html",relativePath:"SHADERS.md",key:"v-1b47640f",path:"/SHADERS.html",headers:[{level:3,title:"Open4ES",slug:"open4es"},{level:3,title:"Screenshot of Open4ES-Chocapic on Minecraft 1.8.9",slug:"screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}],lastUpdated:"10/29/2023, 4:25:09 PM",lastUpdatedTimestamp:1698596709e3,content:" Shaders \n Open4ES \n \n Famous shaders (e.g. SEUS), which are converted to work with GL4ES. \n Open4ES GitHub repository here . \n Open4ES Old Versions Archive here . \n Screenshot of Open4ES-Chocapic on Minecraft 1.8.9 \n \n"},{title:"Supported Devices",frontmatter:{},regularPath:"/archived_pages/DEVICES_LINUX_INCL.html",relativePath:"archived_pages/DEVICES_LINUX_INCL.md",key:"v-051fd6ef",path:"/archived_pages/DEVICES_LINUX_INCL.html",headers:[{level:2,title:"Android",slug:"android"},{level:3,title:"ChromeOS",slug:"chromeos"},{level:3,title:"Linux",slug:"linux"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"10/29/2022, 1:35:25 PM",lastUpdatedTimestamp:1667050525e3,content:" Supported Devices \n Android \n Minimum requirements: \n \n 32-bit (aarch32 or 32-bit/i386) CPU \n Android 5.0 \n 1 gigabyte of RAM \n \n Recommended requirements: \n \n 64-bit (aarch64 or 64-bit/x86_64) CPU \n Android 8.0 \n 4 gigabytes of RAM \n GPU with \"Vulkan\" API (support for vulkanmod and/or v3_zink ) \n ChromeOS \n Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps. \n Linux \n It is not recommended to run PojavLauncher on Linux. Though, you can try sideloading the app on your distribution by using Anbox or Waydroid. We won't provide support for it though. \n \n Installing Anbox\n \n on Ubuntu ( snap is required); \n \n snap install --devmode --beta anbox\n \n You'll have to install necessary kernel modules though, so check the official Anbox wiki about it.\n \n \n on Arch-based (Manjaro, Endeavor, Garuda) distributions; \n Check the official Arch wiki about it, as it is a loooong tutorial to be included here. \n iOS \n Minimum requirements: \n \n Apple A8 SoC\n \n The Apple A7 SoC is losing support in PojavLauncher 2.2. \n \n \n iOS 12 \n 1 gigabyte of RAM \n \n Recommended requirements: \n \n Apple A10/A10X Fusion SoC \n iOS 14 \n 2 gigabytes of RAM \n \n"},{title:"OpenJDK 8, coming to iOS",frontmatter:{},regularPath:"/archived_pages/JDK8.html",relativePath:"archived_pages/JDK8.md",key:"v-687695a2",path:"/archived_pages/JDK8.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" OpenJDK 8, coming to iOS \n"},{title:"Interacting with our fellow developers",frontmatter:{},regularPath:"/archived_pages/PARTNERSHIPS.html",relativePath:"archived_pages/PARTNERSHIPS.md",key:"v-72831da2",path:"/archived_pages/PARTNERSHIPS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Interacting with our fellow developers \n"},{title:"Supporting 1.17 and beyond",frontmatter:{},regularPath:"/archived_pages/OGL32.html",relativePath:"archived_pages/OGL32.md",key:"v-98819f36",path:"/archived_pages/OGL32.html",headers:[{level:2,title:"Known issues",slug:"known-issues"},{level:2,title:"Platform-specific instruction",slug:"platform-specific-instruction"},{level:3,title:"Android:",slug:"android"},{level:3,title:"iOS:",slug:"ios"},{level:2,title:"Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04)",slug:"note-for-minecraft-21w37a-on-android-thanks-to-notahero04"},{level:2,title:"Does OptiFine or Sodium works?",slug:"does-optifine-or-sodium-works"},{level:3,title:"OptiFine",slug:"optifine"},{level:3,title:"Sodium",slug:"sodium"}],lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:' Supporting 1.17 and beyond \n After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we\'ve gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots. \n Here\'s how to get it to work. You need to have a GitHub account in order to download the builds and JRE. Regardless of your platform, you\'ll need to download this resource pack . The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell\'s patch for 1.17 on gl4es. \n Known issues \n \n [Android only] Crosshair icon and Block outline don\'t render. \n You can tell us in our Discord server or open an issue if you found one. \n UPDATE: 32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution. We finally found a gold bar under the sea! Although this JRE17 is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.) \n Platform-specific instruction \n Android: \n \n Download latest build: here . \n Download JRE17: here . You need to download the artifact that matches your device architecture: jre17- , don’t pick jdk17 or debuginfo. \n When you install the APK, it will be displayed as second app if you have one installed before. \n Go to launcher settings. \n Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there. \n Switch renderer to gl4es 1.1.5 - OpenGL ES 3. \n On 32-bit, you need to add -Xss1m to JVM arguments, otherwise Java will crash. \n Now launch Minecraft 1.17 and enjoy! \n iOS: \n \n Install package openjdk-16-jre or openjdk-17-jre (if you have Procursus bootstrap) \n Get latest build from the GitHub or Doregon\'s Repo . \n After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences. \n Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem. \n Change Renderer to tinygl4angle . \n Now launch Minecraft 1.17 and enjoy! \n Since iOS uses tinygl4angle renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+. \n Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04 ) \n \n Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. This is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go! \n A small note: When the popup about 1.17 appears, tap Play Anyway . Tapping OK will overwrite the patch . \n Another small note: 1.17.1 or below will simply not work with this patch. I recommend using per-version config feature with it. If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction: \n \n \n \n Download the new assets-v0 on the PojavLauncher Discord server, or here. \n \n \n Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below). \n \n \n Modify the options.txt file.\nWith the file names above, change the resourcePacks key to:\nresourcePacks:["assets-v0.zip"," new_patch_name .zip"]. \n \n \n Now enjoy your game. Be sure to choose Play Anyway when the popup shows. \n \n \n Until we get a more permenant solution to fix 1.17 and newer, this is what we have. It\'s not perfect, but it works. We hope to see a version of gl4es that translates OpenGL 3 to OpenGL ES, or continue to work on Zink as a backup method if all else fails.* \n Does OptiFine or Sodium works? \n OptiFine \n \n \n OptiFine seems to not working on Android, as the patch resource pack gets ignored. However, it works by putting patched shader files into the client. \n \n Download this patcher . Since OptiFine preloads some shader files, the assets-v0 resource pack trick could not be applied. \n Navigate to Options -> Launch a mod installer (the first option). Pick the downloaded patcher. \n Select the installed OptiFine version that you want to patch. \n Press "OK" to start the patch process. \n The alert "Patched version " will be displayed once the patching process finished, otherwise, an alert will display with some error description. Report this to us if this happens. \n Now go back to the launcher and press Play. When an alert displays about "install additional resources”, press “Play anyway”. \n Enjoy OptiFine moment. \n \n Known issue: Render Regions crashes the game. \n \n \n OptiFine works on iOS. Render Regions works. \n Sodium \n \n Sodium is currently not working on both platforms. \n \n'},{title:"PojavLauncher Website Archives",frontmatter:{},regularPath:"/archived_pages/",relativePath:"archived_pages/README.md",key:"v-66a0075c",path:"/archived_pages/",lastUpdated:"10/29/2022, 1:35:25 PM",lastUpdatedTimestamp:1667050525e3,content:" PojavLauncher Website Archives \n To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding /archived_pages to the end of the domain name. \n Pages currently in the archive: \n Deprecating support for the Apple A7 chip (RIP-A7) \n Supporting 1.17 and beyond (OGL32) \n Interacting with our fellow developers (PARTNERSHIPS) \n OpenJDK 8, coming to iOS (JDK8) \n Installing PojavLauncher (ft. Linux) \n"},{title:"Deprecating support for the Apple A7 chip",frontmatter:{},regularPath:"/archived_pages/RIP-A7.html",relativePath:"archived_pages/RIP-A7.md",key:"v-1e60c8e2",path:"/archived_pages/RIP-A7.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Deprecating support for the Apple A7 chip \n The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already. \n Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2. \n This means the following: \n \n \n PojavLauncher 2.1 will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the a7_allow preference to YES . \n \n \n PojavLauncher 2.1's code will be archived and moved to the 2.1-legacy branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported. \n \n \n PojavLauncher 2.2 will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the a7_allow preference to YES , however support will not be provided for issues encountered while using an A7 device. \n \n If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available. \n \n \n \n"},{frontmatter:{},regularPath:"/changelogs/ANDROID.html",relativePath:"changelogs/ANDROID.md",key:"v-cb4c1c86",path:"/changelogs/ANDROID.html",lastUpdated:"10/29/2023, 4:25:09 PM",lastUpdatedTimestamp:1698596709e3,content:" \n"},{title:"PojavLauncher Wiki Images",frontmatter:{},regularPath:"/images/",relativePath:"images/README.md",key:"v-7e90673c",path:"/images/",headers:[{level:2,title:"Directory Structure",slug:"directory-structure"},{level:2,title:"Contributing to this directory",slug:"contributing-to-this-directory"}],lastUpdated:"10/29/2022, 1:13:25 PM",lastUpdatedTimestamp:1667049205e3,content:" PojavLauncher Wiki Images \n This directory is pretty self explanatory; it contains images used for the Wiki \n Directory Structure \n images\n├── Actions\n│ ├── android\n│ │ └── Android-Actions-1.png\n│ │ Android-Actions-2.png\n│ │ Android-Actions-3.png\n│ │ Android-Actions-4.png\n│ └── ios\n│ └── iOS-Actions-1.png\n│ iOS-Actions-1.png\n│ iOS-Actions-1.png \n│ iOS-Actions-1.png\n├── Screenshots\n│ ├── Controls\n│ │\n│ └── OptiFine\n│ └── OptiFine.png\n│ OptiFine-1.png\n│ OptiFine-2.png\n│ \n└── EOF (END OF DIRECTORY) \n Contributing to this directory \n You can: \n \n Change images \n Replace image with a better quality\n \n Add missing images that you think is required \n \n \n \n Submit/Open a pull request on this repository! \n \n ^ w ^ -NeveuXon/Nev \n"},{title:"PojavLauncher iOS",frontmatter:{},regularPath:"/changelogs/IOS.html",relativePath:"changelogs/IOS.md",key:"v-7fc82f01",path:"/changelogs/IOS.html",headers:[{level:2,title:'2.2 "Deepslate"',slug:"_2-2-deepslate"},{level:2,title:'2.1 "Sculk Catalyst"',slug:"_2-1-sculk-catalyst"},{level:3,title:"Jailbreak requirement",slug:"jailbreak-requirement"},{level:3,title:"New features",slug:"new-features"},{level:3,title:"Security",slug:"security"},{level:3,title:"User interface",slug:"user-interface"},{level:3,title:"Fixes",slug:"fixes"},{level:3,title:"Issues",slug:"issues"},{level:2,title:"2.0.1",slug:"_2-0-1"},{level:2,title:'2.0 "Raw Iron"',slug:"_2-0-raw-iron"},{level:3,title:"Changes",slug:"changes"},{level:3,title:"Fixes",slug:"fixes-2"},{level:3,title:"Issues",slug:"issues-2"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices"},{level:2,title:"1.2",slug:"_1-2"},{level:3,title:"Changes",slug:"changes-2"},{level:3,title:"Fixes",slug:"fixes-3"},{level:3,title:"Known issues",slug:"known-issues"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices-2"},{level:2,title:"1.1",slug:"_1-1"},{level:3,title:"Changes",slug:"changes-3"},{level:3,title:"Fixes",slug:"fixes-4"},{level:3,title:"Known issues",slug:"known-issues-2"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices-3"},{level:2,title:"1.0",slug:"_1-0"},{level:3,title:"Features",slug:"features"},{level:3,title:"Limitations",slug:"limitations"},{level:3,title:"Crashes",slug:"crashes"}],lastUpdated:"5/6/2023, 8:49:07 PM",lastUpdatedTimestamp:1683406147e3,content:' PojavLauncher iOS \n 2.2 "Deepslate" \n With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show: \n \n Implemented a controller configurator \n Increased reliability in various places \n Added haptics to the on-screen controls \n Switched to new input methods to speed up control times \n Secured demo mode \n Added new preferences to control more of the app \n Resolve various issues with windowing in older versions \n and many, many more! \n \n This is the last major release of PojavLauncher that will support iOS 12 and 13. Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547. \n A full commit changelog is available here . \n 2.1 "Sculk Catalyst" \n Minor release, major changes! \n Jailbreak requirement \n PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited: \n \n You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task. \n Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround. \n RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks. \n \n If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken. \n New features \n \n Added Demo mode support \n Automatic Java version and Renderer selection \n Cosmetica custom capes integration \n Complete Controller support \n Fullscreen AirPlay display support \n Keyboard and mouse support deepened \n Many settings that were missing from Android are added \n (iPadOS 16) Stage Manager support \n Security \n \n Patch log4shell exploit in client \n User interface \n \n Added vertical UI \n Redesigned Launcher UI to match Android \n The current login state will be shown in the title \n Play button is greyed out when launching \n Back button is hidden when launching \n Custom controls UI completed \n The control button editor is now a movable window \n When game crash occurs, Log Output will be shown for user to determine the problem in place \n Multilingual support: you can contribute your translation through Crowdin \n New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example) \n Fixes \n \n Slight changes to error messages \n Fix Makefile errors in deploy and ipa \n Fix NullPointerException when launching ≤1.6.4 \n Fix NullPointerException when setting inherited fields \n Fix “Share your logs” not working \n Fix Forge, Fabric 1.17+ not launching \n Fix postinst issue on Procursus \n Issues \n \n Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0 \n Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later \n Old (pre-2.0) custom control .json files no longer work, remove to fix \n This is the last release that will support Apple devices with the A7 chip \n Mojang login has been removed with this release due to the March 10th deadline \n 2.0.1 \n This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction. \n 2.0 "Raw Iron" \n Changes \n \n The Login view has been simplified to three easy buttons \n The Offline Account has been replaced with Local Account . Installing Minecraft now requires a Mojang or Microsoft account logged in. \n New FAQ page to show quick answers to questions \n New About view to show quick details, links, and update history \n Ability to send logs from within the launcher \n The Select Account screen is now a pop-up window \n New picker view to switch versions without typing them manually \n Support to show your locally installed clients \n New settings page to manage preferences \n OpenJDK 8 support, to allow older versions of modded Minecraft \n New mod installer, built into the launcher \n Unfinished in-launcher custom controls (#292) \n Move to /usr/share , for better rootFS compatibility \n New packaging format (#291)\n \n release, for iOS 14 and lower (full root access jailbreaks) \n release-rootless, for iOS 15 (Procursus rootless jailbreak) \n Fixes \n \n WIP fix for typing on 1.12.2 and older \n The hotbar now works across GUI scales \n (With JDK 8) Forge 1.8.9 - 1.15.2 now work \n (With JDK 8) Vanilla 1.5.2 and under now work \n Buttons now scale correctly according to screen size \n Crash if login to Microsoft fails. \n Issues \n \n Old custom control .json files no longer work, remove to fix \n Custom controls settings page is not complete, there may be some issues! \n An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the Java arguments preference and overb0ard), but you may need to close all apps and remove some tweaks in order to free up enough. \n 1.2 \n Changes \n \n Use new method for Microsoft login \n Added gl4es 1.1.5 as an option \n WIP custom controls (can be changed by placing at /var/mobile/Documents/.pojavlauncher/controlmap/default.json ). Note that some functions may not work properly. \n WIP external mouse support \n Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt \n Reduction of file size with removal of unused binaries \n Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher \n Fixes \n \n Fix file permission issues during install of package \n Hide home bar like Bedrock Edition \n Properly hide iPad status bar \n Known issues \n \n Crash if login to Microsoft fails. \n Control buttons notch offset seems doubled. \n Several Forge versions won’t work due to removed deprecated classes (see #67 and #68). \n Text input will not work on 1.12.2 and below. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the overrideargs.txt file and jetsamctl), but we are unsure if iOS 12 will give enough free RAM. \n 1.1 \n Changes \n \n Added a place to customize JVM Flags, by create and edit minecraft/overrideargs.txt file. \n Changed button offset for avoiding notch cutout on iPhone X and newer. \n Forge 1.13+ (not all) and Fabric API are now supported. \n launcher_profiles.json is now automatically created. \n Minecraft 1.6.1 to 1.13.2 are now playable. \n Mojang authentication was re-written, so it should work now. \n Fixes \n \n Fixed random crashes occur while Minecraft is initializing. \n Known issues \n \n Crash if login to Microsoft fails. \n Several Forge versions won’t work due to removed deprecated classes (see #67 and #68). \n Text input will not work on 1.12.2 and below. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds due to too few RAM. Higher RAM can be set, but I\'m unsure if iOS 12 will gives enough free RAM. \n 1.0 \n Features \n \n Login with Mojang (might not work), Microsoft (not tested) or offline. \n Minecraft 1.14+ are playable. \n Multiplayer and joining servers works. \n Audio works (need enable ringer). \n Fabric and OptiFine works. \n Bedrock-like gestures: click to hotbar item; click to place block (trigger right mouse); hold and move to destroy blocks (trigger hold left mouse), but attacking entites is left mouse, so not same as Bedrock. \n Hold screen on UI will hold the left mouse, so it can also used for moving the scroll bar. \n On-screen control buttons. \n Limitations \n \n Jailbreak is required in order to install OpenJDK and PojavLauncher. \n Forge won\'t work. \n Fabric API won\'t work. \n Tell us . \n Crashes \n \n I\'ve got some reports that JVM was crashing after press “Play” button. \n Also, it seems that checkra1n jailbroken devices will get crashed at entering Minecraft (?) \n They were all random crashes and will be fixed in next release. \n \n'}],themeConfig:{lastUpdated:!0,repo:"https://github.com/PojavLauncherTeam/PojavLauncherTeam.github.io/",docsDir:"",docsBranch:"lunaveux-patch-1",editLinks:!0,editLinkText:"Help us improve this page!",logo:"logo.png",sidebar:[{title:"Wiki",collapsable:!1,children:[{title:"Getting Started",collapsable:!1,sidebarDepth:1,children:["INSTALL","BUILD-FROM-SOURCE","SIGN-IN","INSTALL-MC","CUSTOM-CONTROLS","DISCORD"]},{title:"Frequently Asked Questions",collapsable:!0,sidebarDepth:1,children:[{title:"iOS-specific",collapsable:!0,sidebarDepth:1,children:["JIT","APPSTORE"]},{title:"Android-specific",collapsable:!0,sidebarDepth:1,children:["PARSINGERROR","REFUSALOFINSTALL","32BIT","NOTCHFIX","FFMPEG","ZINK","SHADERS","RENDERERS"]}]},{title:"Going further",collapsable:!0,sidebarDepth:1,children:["OPTIMIZATION","CUSTOM-MC","MODPACKS","ENV-VARS","JAVA-ARGS"]}]},{title:"About PojavLauncher",collapsable:!1,sidebarDepth:1,children:["LEGAL","DEVICES","MCVERS","MODS-UNSUPPORTED","ROADMAP"]},{title:"Contributing",collapsable:!1,sidebarDepth:1,children:["CONT-WEBSITE","CONT-TRANSLATIONS"]},{title:"Recent Updates",collapsable:!1,sidebarDepth:1,children:["UNJAIL","IOS-SUPPORT","LOCAL-MODE"]}]}};n(243);Wn.component("Badge",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,329))),Wn.component("ThemeManager",()=>n.e(7).then(n.bind(null,327))),Wn.component("Badge",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,374))),Wn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,323))),Wn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,324)));n(244),n(245);Wn.component("CodeSwitcher",()=>n.e(25).then(n.bind(null,328)));var Zs={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",Os()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},Qs=(n(246),Object(Cs.a)(Zs,(function(){var e=this._self._c;return e("transition",{attrs:{name:"fade"}},[this.show?e("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[e("g",{attrs:{transform:"translate(-229 -126.358)"}},[e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports);function el(e){const t=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{x:n.left-t.left,y:n.top-t.top}}var tl=[{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e})=>{e.component("CodeCopy",js)},{},{},({Vue:e})=>{e.component("BackToTop",Qs)},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,n,o)=>{if(o)return window.scrollTo({top:o.y,behavior:"smooth"});if(!t.hash)return window.scrollTo({top:0,behavior:"smooth"});{if(e.$vuepress.$get("disableScrollBehavior"))return;const n=t.hash.slice(1),o=document.getElementById(n)||document.querySelector(`[name='${n}']`);if(o)return window.scrollTo({top:el(o).y,behavior:"smooth"})}}}],nl=n(46);class ol extends class{constructor(){this.store=new Wn({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){Wn.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(ol.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:ls,getAsyncComponent:cs,getVueComponent:us});var rl={install(e){const t=new ol;e.$vuepress=t,e.prototype.$vuepress=t}};function il(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var al={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return fs("pageKey",t),Wn.component(t)||Wn.component(t,ss(t)),Wn.component(t)?e(t):e("")}},sl={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},ll={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},cl=(n(247),n(248),Object(Cs.a)(ll,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),ul={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};Wn.config.productionTip=!1,Wn.use(Ha),Wn.use(rl),Wn.mixin(function(e,t,n=Wn){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const o=new(e(n.$vuepress.$get("siteData"))),r=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(o)),i={};return Object.keys(r).reduce((e,t)=>(t.startsWith("$")&&(e[t]=r[t].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const o in e)"/"===o?n=e[o]:0===this.$page.path.indexOf(o)&&(t=e[o]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,o=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?o?o+" | "+n:n:o||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!Wn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,o)=>{if(il(e,t.path))o();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";il(e,n)?o(n):o()}else o();else{const n=t.path+"/",r=t.path+".html";il(e,r)?o(r):il(e,n)?o(n):o()}})}(n);const o={};try{await Promise.all(tl.filter(e=>"function"==typeof e).map(t=>t({Vue:Wn,options:o,router:n,siteData:Ys,isServer:e})))}catch(e){console.error(e)}return{app:new Wn(Object.assign(o,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},nl.a.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})}]); \ No newline at end of file diff --git a/assets/js/app.7e07c911.js b/assets/js/app.7e07c911.js new file mode 100644 index 00000000..20d5c97a --- /dev/null +++ b/assets/js/app.7e07c911.js @@ -0,0 +1,16 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var o,a,s=t[0],l=t[1],c=t[2],d=0,h=[];d=t||n<0||v&&e-c>=i}function S(){var e=f();if(w(e))return O(e);s=setTimeout(S,function(e){var n=t-(e-l);return v?h(n,i-(e-c)):n}(e))}function O(e){return s=void 0,g&&o?y(e):(o=r=void 0,a)}function _(){var e=f(),n=w(e);if(o=arguments,r=this,l=e,n){if(void 0===s)return b(l);if(v)return s=setTimeout(S,t),y(l)}return void 0===s&&(s=setTimeout(S,t)),a}return t=m(t)||0,p(n)&&(u=!!n.leading,i=(v="maxWait"in n)?d(m(n.maxWait)||0,t):i,g="trailing"in n?!!n.trailing:g),_.cancel=function(){void 0!==s&&clearTimeout(s),c=0,o=l=r=s=void 0},_.flush=function(){return void 0===s?a:O(f())},_}},function(e,t,n){var o,r; +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */void 0===(r="function"==typeof(o=function(){var e,t,n={version:"0.2.0"},o=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(o[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,o.minimum,1),n.status=1===e?null:e;var l=n.render(!t),c=l.querySelector(o.barSelector),u=o.speed,d=o.easing;return l.offsetWidth,a((function(t){""===o.positionUsing&&(o.positionUsing=n.getPositioningCSS()),s(c,function(e,t,n){var r;return(r="translate3d"===o.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,r}(e,u,d)),1===e?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){s(l,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),o.trickleSpeed)};return o.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*o.trickleRate)},e=0,t=0,n.promise=function(o){return o&&"resolved"!==o.state()?(0===t&&n.start(),e++,t++,o.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=o.template;var r,a=t.querySelector(o.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(o.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),o.showSpinner||(r=t.querySelector(o.spinnerSelector))&&h(r),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(o.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&h(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var o,r=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((o=e[r]+i)in n)return o;return t}(n))}function o(e,t,o){t=n(t),e.style[t]=o}return function(e,t){var n,r,i=arguments;if(2==i.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,i[1],i[2])}}();function l(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),o=n+t;l(n,t)||(e.className=o.substring(1))}function u(e,t){var n,o=d(e);l(e,t)&&(n=o.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function h(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?o.call(t,n,t,e):o)||(e.exports=r)},function(e,t,n){"use strict";var o=n(0),r=n(48).f,i=n(13),a=n(96),s=n(34),l=n(64),c=n(122);e.exports=function(e,t){var n,u,d,h,f,p=e.target,m=e.global,v=e.stat;if(n=m?o:v?o[p]||s(p,{}):o[p]&&o[p].prototype)for(u in t){if(h=t[u],d=e.dontCallGetSet?(f=r(n,u))&&f.value:n[u],!c(m?u:p+(v?".":"#")+u,e.forced)&&void 0!==d){if(typeof h==typeof d)continue;l(h,d)}(e.sham||d&&d.sham)&&i(h,"sham",!0),a(n,u,h,e)}}},function(e,t,n){"use strict";var o=n(26),r=Function.prototype.call;e.exports=o?r.bind(r):function(){return r.apply(r,arguments)}},function(e,t,n){"use strict";var o=n(3);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(49),r=n(29);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(50),r=TypeError;e.exports=function(e){if(o(e))throw new r("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(0),r=n(1),i=function(e){return r(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(o[e]):o[e]&&o[e][t]}},function(e,t,n){"use strict";var o=n(1),r=n(104),i=TypeError;e.exports=function(e){if(o(e))return e;throw new i(r(e)+" is not a function")}},function(e,t,n){"use strict";var o=n(0),r=n(58),i=n(9),a=n(60),s=n(55),l=n(54),c=o.Symbol,u=r("wks"),d=l?c.for||c:c&&c.withoutSetter||a;e.exports=function(e){return i(u,e)||(u[e]=s&&i(c,e)?c[e]:d("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var o=n(59),r=n(0),i=n(34),a=e.exports=r["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.38.1",mode:o?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(e,t,n){"use strict";var o=n(0),r=Object.defineProperty;e.exports=function(e,t){try{r(o,e,{value:t,configurable:!0,writable:!0})}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(29),r=Object;e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var o=n(119);e.exports=function(e){return o(e.length)}},function(e,t,n){var o=n(147),r=n(11),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,l=o(function(){return arguments}())?o:function(e){return r(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,t,n){var o=n(10)(n(7),"Map");e.exports=o},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var o=n(167),r=n(174),i=n(176),a=n(177),s=n(178);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){var o=n(4),r=n(44),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(o(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t,n){var o=n(12),r=n(11);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==o(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";t.a=["ThemeManager","BackToTop"]},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";var o=n(5),r=n(25),i=n(101),a=n(27),s=n(28),l=n(51),c=n(9),u=n(61),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=s(e),t=l(t),u)try{return d(e,t)}catch(e){}if(c(e,t))return a(!r(i.f,e,t),e[t])}},function(e,t,n){"use strict";var o=n(2),r=n(3),i=n(16),a=Object,s=o("".split);e.exports=r((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?s(e,""):a(e)}:a},function(e,t,n){"use strict";e.exports=function(e){return null==e}},function(e,t,n){"use strict";var o=n(102),r=n(52);e.exports=function(e){var t=o(e,"string");return r(t)?t:t+""}},function(e,t,n){"use strict";var o=n(30),r=n(1),i=n(53),a=n(54),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return r(t)&&i(t.prototype,s(e))}},function(e,t,n){"use strict";var o=n(2);e.exports=o({}.isPrototypeOf)},function(e,t,n){"use strict";var o=n(55);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(56),r=n(3),i=n(0).String;e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},function(e,t,n){"use strict";var o,r,i=n(0),a=n(57),s=i.process,l=i.Deno,c=s&&s.versions||l&&l.version,u=c&&c.v8;u&&(r=(o=u.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(r=+o[1]),e.exports=r},function(e,t,n){"use strict";var o=n(0).navigator,r=o&&o.userAgent;e.exports=r?String(r):""},function(e,t,n){"use strict";var o=n(33);e.exports=function(e,t){return o[e]||(o[e]=t||{})}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(2),r=0,i=Math.random(),a=o(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++r+i,36)}},function(e,t,n){"use strict";var o=n(5),r=n(3),i=n(106);e.exports=!o&&!r((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(6),r=String,i=TypeError;e.exports=function(e){if(o(e))return e;throw new i(r(e)+" is not an object")}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(9),r=n(113),i=n(48),a=n(15);e.exports=function(e,t,n){for(var s=r(t),l=a.f,c=i.f,u=0;uu))return!1;var h=l.get(e),f=l.get(t);if(h&&f)return h==t&&f==e;var p=-1,m=!0,v=2&n?new o:void 0;for(l.set(e,t),l.set(t,e);++p-1&&e%1==0&&e]/;e.exports=function(e){var t,n=""+e,r=o.exec(n);if(!r)return n;var i="",a=0,s=0;for(a=r.index;a1?1:s,n=.5*(1-Math.cos(Math.PI*a)),o=t.startX+(t.x-t.startX)*n,r=t.startY+(t.y-t.startY)*n,t.method.call(t.scrollable,o,r),o===t.x&&r===t.y||e.requestAnimationFrame(f.bind(e,t))}function p(n,o,a){var l,c,u,d,h=i();n===t.body?(l=e,c=e.scrollX||e.pageXOffset,u=e.scrollY||e.pageYOffset,d=r.scroll):(l=n,c=n.scrollLeft,u=n.scrollTop,d=s),f({scrollable:l,method:d,startTime:h,startX:c,startY:u,x:o,y:a})}}}}()},function(e,t,n){"use strict";var o=n(24),r=n(35),i=n(36),a=n(142),s=n(144);o({target:"Array",proto:!0,arity:1,forced:n(3)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=r(this),n=i(t),o=arguments.length;s(n+o);for(var l=0;l79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return r(this,e,t,t>1?arguments[1]:void 0)}})},function(e,t,n){"use strict";var o={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!o.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:o},function(e,t,n){"use strict";var o=n(25),r=n(6),i=n(52),a=n(103),s=n(105),l=n(32),c=TypeError,u=l("toPrimitive");e.exports=function(e,t){if(!r(e)||i(e))return e;var n,l=a(e,u);if(l){if(void 0===t&&(t="default"),n=o(l,e,t),!r(n)||i(n))return n;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},function(e,t,n){"use strict";var o=n(31),r=n(50);e.exports=function(e,t){var n=e[t];return r(n)?void 0:o(n)}},function(e,t,n){"use strict";var o=String;e.exports=function(e){try{return o(e)}catch(e){return"Object"}}},function(e,t,n){"use strict";var o=n(25),r=n(1),i=n(6),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&r(n=e.toString)&&!i(s=o(n,e)))return s;if(r(n=e.valueOf)&&!i(s=o(n,e)))return s;if("string"!==t&&r(n=e.toString)&&!i(s=o(n,e)))return s;throw new a("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o=n(0),r=n(6),i=o.document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(3);e.exports=o&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(e,t,n){"use strict";var o=n(5),r=n(9),i=Function.prototype,a=o&&Object.getOwnPropertyDescriptor,s=r(i,"name"),l=s&&"something"===function(){}.name,c=s&&(!o||o&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:l,CONFIGURABLE:c}},function(e,t,n){"use strict";var o=n(2),r=n(1),i=n(33),a=o(Function.toString);r(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},function(e,t,n){"use strict";var o,r,i,a=n(111),s=n(0),l=n(6),c=n(13),u=n(9),d=n(33),h=n(112),f=n(63),p=s.TypeError,m=s.WeakMap;if(a||d.state){var v=d.state||(d.state=new m);v.get=v.get,v.has=v.has,v.set=v.set,o=function(e,t){if(v.has(e))throw new p("Object already initialized");return t.facade=e,v.set(e,t),t},r=function(e){return v.get(e)||{}},i=function(e){return v.has(e)}}else{var g=h("state");f[g]=!0,o=function(e,t){if(u(e,g))throw new p("Object already initialized");return t.facade=e,c(e,g,t),t},r=function(e){return u(e,g)?e[g]:{}},i=function(e){return u(e,g)}}e.exports={set:o,get:r,has:i,enforce:function(e){return i(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw new p("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(0),r=n(1),i=o.WeakMap;e.exports=r(i)&&/native code/.test(String(i))},function(e,t,n){"use strict";var o=n(58),r=n(60),i=o("keys");e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t,n){"use strict";var o=n(30),r=n(2),i=n(114),a=n(121),s=n(62),l=r([].concat);e.exports=o("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?l(t,n(e)):t}},function(e,t,n){"use strict";var o=n(115),r=n(120).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(2),r=n(9),i=n(28),a=n(116).indexOf,s=n(63),l=o([].push);e.exports=function(e,t){var n,o=i(e),c=0,u=[];for(n in o)!r(s,n)&&r(o,n)&&l(u,n);for(;t.length>c;)r(o,n=t[c++])&&(~a(u,n)||l(u,n));return u}},function(e,t,n){"use strict";var o=n(28),r=n(117),i=n(36),a=function(e){return function(t,n,a){var s=o(t),l=i(s);if(0===l)return!e&&-1;var c,u=r(a,l);if(e&&n!=n){for(;l>u;)if((c=s[u++])!=c)return!0}else for(;l>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var o=n(65),r=Math.max,i=Math.min;e.exports=function(e,t){var n=o(e);return n<0?r(n+t,0):i(n,t)}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var t=+e;return(t>0?r:o)(t)}},function(e,t,n){"use strict";var o=n(65),r=Math.min;e.exports=function(e){var t=o(e);return t>0?r(t,9007199254740991):0}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(3),r=n(1),i=/#|\.prototype\./,a=function(e,t){var n=l[s(e)];return n===u||n!==c&&(r(t)?o(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},l=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(31),r=n(35),i=n(49),a=n(36),s=TypeError,l="Reduce of empty array with no initial value",c=function(e){return function(t,n,c,u){var d=r(t),h=i(d),f=a(d);if(o(n),0===f&&c<2)throw new s(l);var p=e?f-1:0,m=e?-1:1;if(c<2)for(;;){if(p in h){u=h[p],p+=m;break}if(p+=m,e?p<0:f<=p)throw new s(l)}for(;e?p>=0:f>p;p+=m)p in h&&(u=n(u,h[p],p,d));return u}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(3);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){return 1},1)}))}},function(e,t,n){"use strict";var o=n(126);e.exports="NODE"===o},function(e,t,n){"use strict";var o=n(0),r=n(57),i=n(16),a=function(e){return r.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":o.Bun&&"string"==typeof Bun.version?"BUN":o.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(o.process)?"NODE":o.window&&o.document?"BROWSER":"REST"},function(e,t,n){"use strict";var o=n(24),r=n(0),i=n(128),a=n(129),s=r.WebAssembly,l=7!==new Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,l),o({global:!0,constructor:!0,arity:1,forced:l},n)},u=function(e,t){if(s&&s[e]){var n={};n[e]=a("WebAssembly."+e,t,l),o({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:l},n)}};c("Error",(function(e){return function(t){return i(e,this,arguments)}})),c("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),c("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),c("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),c("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),c("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),c("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},function(e,t,n){"use strict";var o=n(26),r=Function.prototype,i=r.apply,a=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(o?a.bind(i):function(){return a.apply(i,arguments)})},function(e,t,n){"use strict";var o=n(30),r=n(9),i=n(13),a=n(53),s=n(66),l=n(64),c=n(133),u=n(134),d=n(135),h=n(138),f=n(139),p=n(5),m=n(59);e.exports=function(e,t,n,v){var g=v?2:1,y=e.split("."),b=y[y.length-1],w=o.apply(null,y);if(w){var S=w.prototype;if(!m&&r(S,"cause")&&delete S.cause,!n)return w;var O=o("Error"),_=t((function(e,t){var n=d(v?t:e,void 0),o=v?new w(e):new w;return void 0!==n&&i(o,"message",n),f(o,_,o.stack,2),this&&a(S,this)&&u(o,this,_),arguments.length>g&&h(o,arguments[g]),o}));if(_.prototype=S,"Error"!==b?s?s(_,O):l(_,O,{name:!0}):p&&"stackTraceLimit"in w&&(c(_,w,"stackTraceLimit"),c(_,w,"prepareStackTrace")),l(_,w),!m)try{S.name!==b&&i(S,"name",b),S.constructor=_}catch(e){}return _}}},function(e,t,n){"use strict";var o=n(2),r=n(31);e.exports=function(e,t,n){try{return o(r(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(e){}}},function(e,t,n){"use strict";var o=n(132),r=String,i=TypeError;e.exports=function(e){if(o(e))return e;throw new i("Can't set "+r(e)+" as a prototype")}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){return o(e)||null===e}},function(e,t,n){"use strict";var o=n(15).f;e.exports=function(e,t,n){n in e||o(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},function(e,t,n){"use strict";var o=n(1),r=n(6),i=n(66);e.exports=function(e,t,n){var a,s;return i&&o(a=t.constructor)&&a!==n&&r(s=a.prototype)&&s!==n.prototype&&i(e,s),e}},function(e,t,n){"use strict";var o=n(97);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:o(e)}},function(e,t,n){"use strict";var o=n(137),r=n(1),i=n(16),a=n(32)("toStringTag"),s=Object,l="Arguments"===i(function(){return arguments}());e.exports=o?i:function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),a))?n:l?i(t):"Object"===(o=i(t))&&r(t.callee)?"Arguments":o}},function(e,t,n){"use strict";var o={};o[n(32)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(6),r=n(13);e.exports=function(e,t){o(t)&&"cause"in t&&r(e,"cause",t.cause)}},function(e,t,n){"use strict";var o=n(13),r=n(140),i=n(141),a=Error.captureStackTrace;e.exports=function(e,t,n,s){i&&(a?a(e,t):o(e,"stack",r(n,s)))}},function(e,t,n){"use strict";var o=n(2),r=Error,i=o("".replace),a=String(new r("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=i(e,s,"");return e}},function(e,t,n){"use strict";var o=n(3),r=n(27);e.exports=!o((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},function(e,t,n){"use strict";var o=n(5),r=n(143),i=TypeError,a=Object.getOwnPropertyDescriptor,s=o&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(r(e)&&!a(e,"length").writable)throw new i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},function(e,t,n){"use strict";var o=n(16);e.exports=Array.isArray||function(e){return"Array"===o(e)}},function(e,t,n){"use strict";var o=TypeError;e.exports=function(e){if(e>9007199254740991)throw o("Maximum allowed index exceeded");return e}},function(e,t,n){var o=n(67),r=n(146);e.exports=function e(t,n,i,a,s){var l=-1,c=t.length;for(i||(i=r),s||(s=[]);++l0&&i(u)?n>1?e(u,n-1,i,a,s):o(s,u):a||(s[s.length]=u)}return s}},function(e,t,n){var o=n(14),r=n(37),i=n(4),a=o?o.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||r(e)||!!(a&&e&&e[a])}},function(e,t,n){var o=n(12),r=n(11);e.exports=function(e){return r(e)&&"[object Arguments]"==o(e)}},function(e,t,n){var o=n(14),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,s=o?o.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var o=!0}catch(e){}var r=a.call(e);return o&&(t?e[s]=n:delete e[s]),r}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var o=n(151),r=n(207),i=n(45),a=n(4),s=n(218);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?r(e[0],e[1]):o(e):s(e)}},function(e,t,n){var o=n(152),r=n(206),i=n(84);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||o(n,e,t)}}},function(e,t,n){var o=n(69),r=n(73);e.exports=function(e,t,n,i){var a=n.length,s=a,l=!i;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a-1}},function(e,t,n){var o=n(18);e.exports=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},function(e,t,n){var o=n(17);e.exports=function(){this.__data__=new o,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var o=n(17),r=n(38),i=n(40);e.exports=function(e,t){var n=this.__data__;if(n instanceof o){var a=n.__data__;if(!r||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var o=n(71),r=n(164),i=n(39),a=n(72),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,h=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||r(e))&&(o(e)?h:s).test(a(e))}},function(e,t,n){var o,r=n(165),i=(o=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+o:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var o=n(7)["__core-js_shared__"];e.exports=o},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var o=n(168),r=n(17),i=n(38);e.exports=function(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}},function(e,t,n){var o=n(169),r=n(170),i=n(171),a=n(172),s=n(173);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var o=n(75),r=n(230),i=n(235),a=n(76),s=n(236),l=n(41);e.exports=function(e,t,n){var c=-1,u=r,d=e.length,h=!0,f=[],p=f;if(n)h=!1,u=i;else if(d>=200){var m=t?null:s(e);if(m)return l(m);h=!1,u=a,p=new o}else p=t?[]:f;e:for(;++c-1}},function(e,t,n){var o=n(232),r=n(233),i=n(234);e.exports=function(e,t,n){return t==t?i(e,t,n):o(e,r,n)}},function(e,t){e.exports=function(e,t,n,o){for(var r=e.length,i=n+(o?1:-1);o?i--:++i=0&&Math.floor(t)===t&&isFinite(e)}function m(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function v(e){return null==e?"":Array.isArray(e)||h(e)&&e.toString===d?JSON.stringify(e,g,2):String(e)}function g(e,t){return t&&t.__v_isRef?t.value:t}function y(e){var t=parseFloat(e);return isNaN(t)?e:t}function b(e,t){for(var n=Object.create(null),o=e.split(","),r=0;r-1)return e.splice(o,1)}}var O=Object.prototype.hasOwnProperty;function _(e,t){return O.call(e,t)}function k(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var A=/-(\w)/g,x=k((function(e){return e.replace(A,(function(e,t){return t?t.toUpperCase():""}))})),P=k((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),T=/\B([A-Z])/g,C=k((function(e){return e.replace(T,"-$1").toLowerCase()}));var E=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var o=arguments.length;return o?o>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function j(e,t){t=t||0;for(var n=e.length-t,o=new Array(n);n--;)o[n]=e[n+t];return o}function L(e,t){for(var n in t)e[n]=t[n];return e}function I(e){for(var t={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var ee=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var te,ne=X&&X.match(/firefox\/(\d+)/),oe={}.watch,re=!1;if(K)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){re=!0}}),window.addEventListener("test-passive",null,ie)}catch(e){}var ae=function(){return void 0===te&&(te=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),te},se=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function le(e){return"function"==typeof e&&/native code/.test(e.toString())}var ce,ue="undefined"!=typeof Symbol&&le(Symbol)&&"undefined"!=typeof Reflect&&le(Reflect.ownKeys);ce="undefined"!=typeof Set&&le(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var de=null;function he(e){void 0===e&&(e=null),e||de&&de._scope.off(),de=e,e&&e._scope.on()}var fe=function(){function e(e,t,n,o,r,i,a,s){this.tag=e,this.data=t,this.children=n,this.text=o,this.elm=r,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),pe=function(e){void 0===e&&(e="");var t=new fe;return t.text=e,t.isComment=!0,t};function me(e){return new fe(void 0,void 0,void 0,String(e))}function ve(e){var t=new fe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}"function"==typeof SuppressedError&&SuppressedError;var ge=0,ye=[],be=function(){function e(){this._pending=!1,this.id=ge++,this.subs=[]}return e.prototype.addSub=function(e){this.subs.push(e)},e.prototype.removeSub=function(e){this.subs[this.subs.indexOf(e)]=null,this._pending||(this._pending=!0,ye.push(this))},e.prototype.depend=function(t){e.target&&e.target.addDep(this)},e.prototype.notify=function(e){var t=this.subs.filter((function(e){return e}));for(var n=0,o=t.length;n0&&(Xe((c=e(c,"".concat(n||"","_").concat(o)))[0])&&Xe(d)&&(h[u]=me(d.text+c[0].text),c.shift()),h.push.apply(h,c)):l(c)?Xe(d)?h[u]=me(d.text+c):""!==c&&h.push(me(c)):Xe(c)&&Xe(d)?h[u]=me(d.text+c.text):(s(t._isVList)&&a(c.tag)&&i(c.key)&&a(n)&&(c.key="__vlist".concat(n,"_").concat(o,"__")),h.push(c)));return h}(e):void 0}function Xe(e){return a(e)&&a(e.text)&&!1===e.isComment}function Ye(e,t){var n,o,i,s,l=null;if(r(e)||"string"==typeof e)for(l=new Array(e.length),n=0,o=e.length;n0,s=t?!!t.$stable:!a,l=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&r&&r!==o&&l===r.$key&&!a&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=vt(e,n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=gt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),W(i,"$stable",s),W(i,"$key",l),W(i,"$hasNormal",a),i}function vt(e,t,n,o){var i=function(){var t=de;he(e);var n=arguments.length?o.apply(null,arguments):o({}),i=(n=n&&"object"==typeof n&&!r(n)?[n]:Ke(n))&&n[0];return he(t),n&&(!i||1===n.length&&i.isComment&&!pt(i))?void 0:n};return o.proxy&&Object.defineProperty(t,n,{get:i,enumerable:!0,configurable:!0}),i}function gt(e,t){return function(){return e[t]}}function yt(e){return{get attrs(){if(!e._attrsProxy){var t=e._attrsProxy={};W(t,"_v_attr_proxy",!0),bt(t,e.$attrs,o,e,"$attrs")}return e._attrsProxy},get listeners(){e._listenersProxy||bt(e._listenersProxy={},e.$listeners,o,e,"$listeners");return e._listenersProxy},get slots(){return function(e){e._slotsProxy||St(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(e)},emit:E(e.$emit,e),expose:function(t){t&&Object.keys(t).forEach((function(n){return Fe(e,t,n)}))}}}function bt(e,t,n,o,r){var i=!1;for(var a in t)a in e?t[a]!==n[a]&&(i=!0):(i=!0,wt(e,a,o,r));for(var a in e)a in t||(i=!0,delete e[a]);return i}function wt(e,t,n,o){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){return n[o][t]}})}function St(e,t){for(var n in t)e[n]=t[n];for(var n in e)n in t||delete e[n]}var Ot=null;function _t(e,t){return(e.__esModule||ue&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?t.extend(e):e}function kt(e){if(r(e))for(var t=0;tdocument.createEvent("Event").timeStamp&&(cn=function(){return un.now()})}var dn=function(e,t){if(e.post){if(!t.post)return 1}else if(t.post)return-1;return e.id-t.id};function hn(){var e,t;for(ln=cn(),an=!0,tn.sort(dn),sn=0;snsn&&tn[n].id>e.id;)n--;tn.splice(n+1,0,e)}else tn.push(e);rn||(rn=!0,Ut(hn))}}function pn(e,t){if(e){for(var n=Object.create(null),o=ue?Reflect.ownKeys(e):Object.keys(e),r=0;r-1)if(i&&!_(r,"default"))a=!1;else if(""===a||a===C(e)){var l=Nn(String,r.type);(l<0||s-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!f(e)&&e.test(t)}function Yn(e,t){var n=e.cache,o=e.keys,r=e._vnode,i=e.$vnode;for(var a in n){var s=n[a];if(s){var l=s.name;l&&!t(l)&&Zn(n,a,o,r)}}i.componentOptions.children=void 0}function Zn(e,t,n,o){var r=e[t];!r||o&&r.tag===o.tag||r.componentInstance.$destroy(),e[t]=null,S(n,t)}Vn.prototype._init=function(e){var t=this;t._uid=Hn++,t._isVue=!0,t.__v_skip=!0,t._scope=new Be(!0),t._scope.parent=void 0,t._scope._vm=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),o=t._parentVnode;n.parent=t.parent,n._parentVnode=o;var r=o.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=En(Wn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Kt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=ht(t._renderChildren,r),e.$scopedSlots=n?mt(e.$parent,n.data.scopedSlots,e.$slots):o,e._c=function(t,n,o,r){return At(e,t,n,o,r,!1)},e.$createElement=function(t,n,o,r){return At(e,t,n,o,r,!0)};var i=n&&n.data;Le(e,"$attrs",i&&i.attrs||o,null,!0),Le(e,"$listeners",t._parentListeners||o,null,!0)}(t),en(t,"beforeCreate",void 0,!1),function(e){var t=pn(e.$options.inject,e);t&&(Te(!1),Object.keys(t).forEach((function(n){Le(e,n,t[n])})),Te(!0))}(t),Un(t),function(e){var t=e.$options.provide;if(t){var n=c(t)?t.call(e):t;if(!u(n))return;for(var o=Ge(e),r=ue?Reflect.ownKeys(n):Object.keys(n),i=0;i1?j(n):n;for(var o=j(arguments,1),r='event handler for "'.concat(e,'"'),i=0,a=n.length;iparseInt(this.max)&&Zn(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Zn(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){Yn(e,(function(e){return Xn(t,e)}))})),this.$watch("exclude",(function(t){Yn(e,(function(e){return!Xn(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=kt(e),n=t&&t.componentOptions;if(n){var o=Kn(n),r=this.include,i=this.exclude;if(r&&(!o||!Xn(r,o))||i&&o&&Xn(i,o))return t;var a=this.cache,s=this.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):t.key;a[l]?(t.componentInstance=a[l].componentInstance,S(s,l),s.push(l)):(this.vnodeToCache=t,this.keyToCache=l),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return G}};Object.defineProperty(e,"config",t),e.util={warn:_n,extend:L,mergeOptions:En,defineReactive:Le},e.set=Ie,e.delete=Me,e.nextTick=Ut,e.observable=function(e){return je(e),e},e.options=Object.create(null),z.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,L(e.options.components,eo),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=j(arguments,1);return n.unshift(this),c(e.install)?e.install.apply(e,n):c(e)&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=En(this.options,e),this}}(e),qn(e),function(e){z.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&h(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&c(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Vn),Object.defineProperty(Vn.prototype,"$isServer",{get:ae}),Object.defineProperty(Vn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Vn,"FunctionalRenderContext",{value:mn}),Vn.version="2.7.16";var to=b("style,class"),no=b("input,textarea,option,select,progress"),oo=b("contenteditable,draggable,spellcheck"),ro=b("events,caret,typing,plaintext-only"),io=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ao="http://www.w3.org/1999/xlink",so=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},lo=function(e){return so(e)?e.slice(6,e.length):""},co=function(e){return null==e||!1===e};function uo(e){for(var t=e.data,n=e,o=e;a(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(t=ho(o.data,t));for(;a(n=n.parent);)n&&n.data&&(t=ho(t,n.data));return function(e,t){if(a(e)||a(t))return fo(e,po(t));return""}(t.staticClass,t.class)}function ho(e,t){return{staticClass:fo(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function fo(e,t){return e?t?e+" "+t:e:t||""}function po(e){return Array.isArray(e)?function(e){for(var t,n="",o=0,r=e.length;o-1?$o(e,t,n):io(t)?co(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):oo(t)?e.setAttribute(t,function(e,t){return co(t)||"false"===t?"false":"contenteditable"===e&&ro(t)?t:"true"}(t,n)):so(t)?co(n)?e.removeAttributeNS(ao,lo(t)):e.setAttributeNS(ao,t,n):$o(e,t,n)}function $o(e,t,n){if(co(n))e.removeAttribute(t);else{if(Y&&!Z&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var o=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",o)};e.addEventListener("input",o),e.__ieph=!0}e.setAttribute(t,n)}}var Uo={create:No,update:No};function Fo(e,t){var n=t.elm,o=t.data,r=e.data;if(!(i(o.staticClass)&&i(o.class)&&(i(r)||i(r.staticClass)&&i(r.class)))){var s=uo(t),l=n._transitionClasses;a(l)&&(s=fo(s,po(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var zo,Bo={create:Fo,update:Fo};function Go(e,t,n){var o=zo;return function r(){var i=t.apply(null,arguments);null!==i&&Wo(e,r,n,o)}}var Jo=jt&&!(ne&&Number(ne[1])<=53);function Ho(e,t,n,o){if(Jo){var r=ln,i=t;t=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=r||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}zo.addEventListener(e,t,re?{capture:n,passive:o}:n)}function Wo(e,t,n,o){(o||zo).removeEventListener(e,t._wrapper||t,n)}function Vo(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},o=e.data.on||{};zo=t.elm||e.elm,function(e){if(a(e.__r)){var t=Y?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),We(n,o,Ho,Wo,Go,t.context),zo=void 0}}var qo,Ko={create:Vo,update:Vo,destroy:function(e){return Vo(e,Ao)}};function Xo(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,o,r=t.elm,l=e.data.domProps||{},c=t.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=t.data.domProps=L({},c)),l)n in c||(r[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),o===l[n])continue;1===r.childNodes.length&&r.removeChild(r.childNodes[0])}if("value"===n&&"PROGRESS"!==r.tagName){r._value=o;var u=i(o)?"":String(o);Yo(r,u)&&(r.value=u)}else if("innerHTML"===n&&go(r.tagName)&&i(r.innerHTML)){(qo=qo||document.createElement("div")).innerHTML="".concat(o,"");for(var d=qo.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;d.firstChild;)r.appendChild(d.firstChild)}else if(o!==l[n])try{r[n]=o}catch(e){}}}}function Yo(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,o=e._vModifiers;if(a(o)){if(o.number)return y(n)!==y(t);if(o.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Zo={create:Xo,update:Xo},Qo=k((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var o=e.split(n);o.length>1&&(t[o[0].trim()]=o[1].trim())}})),t}));function er(e){var t=tr(e.style);return e.staticStyle?L(e.staticStyle,t):t}function tr(e){return Array.isArray(e)?I(e):"string"==typeof e?Qo(e):e}var nr,or=/^--/,rr=/\s*!important$/,ir=function(e,t,n){if(or.test(t))e.style.setProperty(t,n);else if(rr.test(n))e.style.setProperty(C(t),n.replace(rr,""),"important");else{var o=sr(t);if(Array.isArray(n))for(var r=0,i=n.length;r-1?t.split(ur).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function hr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(ur).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),o=" "+t+" ";n.indexOf(o)>=0;)n=n.replace(o," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function fr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&L(t,pr(e.name||"v")),L(t,e),t}return"string"==typeof e?pr(e):void 0}}var pr=k((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),mr=K&&!Z,vr="transition",gr="transitionend",yr="animation",br="animationend";mr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(vr="WebkitTransition",gr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yr="WebkitAnimation",br="webkitAnimationEnd"));var wr=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Sr(e){wr((function(){wr(e)}))}function Or(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),dr(e,t))}function _r(e,t){e._transitionClasses&&S(e._transitionClasses,t),hr(e,t)}function kr(e,t,n){var o=xr(e,t),r=o.type,i=o.timeout,a=o.propCount;if(!r)return n();var s="transition"===r?gr:br,l=0,c=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++l>=a&&c()};setTimeout((function(){l0&&(n="transition",u=a,d=i.length):"animation"===t?c>0&&(n="animation",u=c,d=l.length):d=(n=(u=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:l.length:0,{type:n,timeout:u,propCount:d,hasTransform:"transition"===n&&Ar.test(o[vr+"Property"])}}function Pr(e,t){for(;e.length1}function Ir(e,t){!0!==t.data.show&&Cr(t)}var Mr=function(e){var t,n,o={},c=e.modules,u=e.nodeOps;for(t=0;tp?w(e,i(n[g+1])?null:n[g+1].elm,n,f,g,o):f>g&&O(t,d,p)}(d,m,g,n,c):a(g)?(a(e.text)&&u.setTextContent(d,""),w(d,null,g,0,g.length-1,n)):a(m)?O(m,0,m.length-1):a(e.text)&&u.setTextContent(d,""):e.text!==t.text&&u.setTextContent(d,t.text),a(p)&&a(f=p.hook)&&a(f=f.postpatch)&&f(e,t)}}}function x(e,t,n){if(s(n)&&a(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o-1,a.selected!==i&&(a.selected=i);else if(D(Ur(a),o))return void(e.selectedIndex!==s&&(e.selectedIndex=s));r||(e.selectedIndex=-1)}}function $r(e,t){return t.every((function(t){return!D(t,e)}))}function Ur(e){return"_value"in e?e._value:e.value}function Fr(e){e.target.composing=!0}function zr(e){e.target.composing&&(e.target.composing=!1,Br(e.target,"input"))}function Br(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Gr(e){return!e.componentInstance||e.data&&e.data.transition?e:Gr(e.componentInstance._vnode)}var Jr={model:Rr,show:{bind:function(e,t,n){var o=t.value,r=(n=Gr(n)).data&&n.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;o&&r?(n.data.show=!0,Cr(n,(function(){e.style.display=i}))):e.style.display=o?i:"none"},update:function(e,t,n){var o=t.value;!o!=!t.oldValue&&((n=Gr(n)).data&&n.data.transition?(n.data.show=!0,o?Cr(n,(function(){e.style.display=e.__vOriginalDisplay})):Er(n,(function(){e.style.display="none"}))):e.style.display=o?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,o,r){r||(e.style.display=e.__vOriginalDisplay)}}},Hr={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Wr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Wr(kt(t.children)):e}function Vr(e){var t={},n=e.$options;for(var o in n.propsData)t[o]=e[o];var r=n._parentListeners;for(var o in r)t[x(o)]=r[o];return t}function qr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Kr=function(e){return e.tag||pt(e)},Xr=function(e){return"show"===e.name},Yr={name:"transition",props:Hr,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Kr)).length){0;var o=this.mode;0;var r=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var i=Wr(r);if(!i)return r;if(this._leaving)return qr(e,r);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:l(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Vr(this),c=this._vnode,u=Wr(c);if(i.data.directives&&i.data.directives.some(Xr)&&(i.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(i,u)&&!pt(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var d=u.data.transition=L({},s);if("out-in"===o)return this._leaving=!0,Ve(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),qr(e,r);if("in-out"===o){if(pt(i))return c;var h,f=function(){h()};Ve(s,"afterEnter",f),Ve(s,"enterCancelled",f),Ve(d,"delayLeave",(function(e){h=e}))}}return r}}},Zr=L({tag:String,moveClass:String},Hr);function Qr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ei(e){e.data.newPos=e.elm.getBoundingClientRect()}function ti(e){var t=e.data.pos,n=e.data.newPos,o=t.left-n.left,r=t.top-n.top;if(o||r){e.data.moved=!0;var i=e.elm.style;i.transform=i.WebkitTransform="translate(".concat(o,"px,").concat(r,"px)"),i.transitionDuration="0s"}}delete Zr.mode;var ni={Transition:Yr,TransitionGroup:{props:Zr,beforeMount:function(){var e=this,t=this._update;this._update=function(n,o){var r=Yt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,r(),t.call(e,n,o)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),o=this.prevChildren=this.children,r=this.$slots.default||[],i=this.children=[],a=Vr(this),s=0;s-1?bo[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:bo[e]=/HTMLUnknownElement/.test(t.toString())},L(Vn.options.directives,Jr),L(Vn.options.components,ni),Vn.prototype.__patch__=K?Mr:M,Vn.prototype.$mount=function(e,t){return function(e,t,n){var o;e.$el=t,e.$options.render||(e.$options.render=pe),en(e,"beforeMount"),o=function(){e._update(e._render(),n)},new Ht(e,o,M,{before:function(){e._isMounted&&!e._isDestroyed&&en(e,"beforeUpdate")}},!0),n=!1;var r=e._preWatchers;if(r)for(var i=0;i=0&&(t=e.slice(o),e=e.slice(0,o));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(r.path||""),c=t&&t.path||"/",u=l.path?_i(l.path,c,n||r.append):c,d=function(e,t,n){void 0===t&&(t={});var o,r=n||ui;try{o=r(e||"")}catch(e){o={}}for(var i in t){var a=t[i];o[i]=Array.isArray(a)?a.map(ci):ci(a)}return o}(l.query,r.query,o&&o.options.parseQuery),h=r.hash||l.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:u,query:d,hash:h}}var Ji,Hi=function(){},Wi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,o=this.$route,r=n.resolve(this.to,o,this.append),i=r.location,a=r.route,s=r.href,l={},c=n.options.linkActiveClass,u=n.options.linkExactActiveClass,d=null==c?"router-link-active":c,h=null==u?"router-link-exact-active":u,f=null==this.activeClass?d:this.activeClass,p=null==this.exactActiveClass?h:this.exactActiveClass,m=a.redirectedFrom?fi(null,Gi(a.redirectedFrom),null,n):a;l[p]=yi(o,m,this.exactPath),l[f]=this.exact||this.exactPath?l[p]:function(e,t){return 0===e.path.replace(hi,"/").indexOf(t.path.replace(hi,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(o,m);var v=l[p]?this.ariaCurrentValue:null,g=function(e){Vi(e)&&(t.replace?n.replace(i,Hi):n.push(i,Hi))},y={click:Vi};Array.isArray(this.event)?this.event.forEach((function(e){y[e]=g})):y[this.event]=g;var b={class:l},w=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:l[f],isExactActive:l[p]});if(w){if(1===w.length)return w[0];if(w.length>1||!w.length)return 0===w.length?e():e("span",{},w)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":v};else{var S=function e(t){var n;if(t)for(var o=0;o-1&&(s.params[h]=n.params[h]);return s.path=Bi(u.path,s.params),l(u,s,a)}if(s.path){s.params={};for(var f=0;f-1}function ka(e,t){return _a(e)&&e._isRouter&&(null==t||e.type===t)}function Aa(e,t,n){var o=function(r){r>=e.length?n():e[r]?t(e[r],(function(){o(r+1)})):o(r+1)};o(0)}function xa(e){return function(t,n,o){var r=!1,i=0,a=null;Pa(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){r=!0,i++;var l,c=Ea((function(t){var r;((r=t).__esModule||Ca&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:Ji.extend(t),n.components[s]=t,--i<=0&&o()})),u=Ea((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=_a(e)?e:new Error(t),o(a))}));try{l=e(c,u)}catch(e){u(e)}if(l)if("function"==typeof l.then)l.then(c,u);else{var d=l.component;d&&"function"==typeof d.then&&d.then(c,u)}}})),r||o()}}function Pa(e,t){return Ta(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Ta(e){return Array.prototype.concat.apply([],e)}var Ca="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ea(e){var t=!1;return function(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];if(!t)return t=!0,e.apply(this,n)}}var ja=function(e,t){this.router=e,this.base=function(e){if(!e)if(qi){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=mi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function La(e,t,n,o){var r=Pa(e,(function(e,o,r,i){var a=function(e,t){"function"!=typeof e&&(e=Ji.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,o,r,i)})):n(a,o,r,i)}));return Ta(o?r.reverse():r)}function Ia(e,t){if(t)return function(){return e.apply(t,arguments)}}ja.prototype.listen=function(e){this.cb=e},ja.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},ja.prototype.onError=function(e){this.errorCbs.push(e)},ja.prototype.transitionTo=function(e,t,n){var o,r=this;try{o=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var i=this.current;this.confirmTransition(o,(function(){r.updateRoute(o),t&&t(o),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(o,i)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(o)})))}),(function(e){n&&n(e),e&&!r.ready&&(ka(e,ya.redirected)&&i===mi||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},ja.prototype.confirmTransition=function(e,t,n){var o=this,r=this.current;this.pending=e;var i,a,s=function(e){!ka(e)&&_a(e)&&(o.errorCbs.length?o.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,c=r.matched.length-1;if(yi(e,r)&&l===c&&e.matched[l]===r.matched[c])return this.ensureURL(),e.hash&&aa(this.router,r,e,!1),s(((a=Sa(i=r,e,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var u=function(e,t){var n,o=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,o=ma&&n;o&&this.listeners.push(ia());var r=function(){var n=e.current,r=Ra(e.base);e.current===mi&&r===e._startLocation||e.transitionTo(r,(function(e){o&&aa(t,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){va(ki(o.base+e.fullPath)),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){ga(ki(o.base+e.fullPath)),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Ra(this.base)!==this.current.fullPath){var t=ki(this.base+this.current.fullPath);e?va(t):ga(t)}},t.prototype.getCurrentLocation=function(){return Ra(this.base)},t}(ja);function Ra(e){var t=window.location.pathname,n=t.toLowerCase(),o=e.toLowerCase();return!e||n!==o&&0!==n.indexOf(ki(o+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Na=function(e){function t(t,n,o){e.call(this,t,n),o&&function(e){var t=Ra(e);if(!/^\/#/.test(t))return window.location.replace(ki(e+"/#"+t)),!0}(this.base)||Da()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=ma&&t;n&&this.listeners.push(ia());var o=function(){var t=e.current;Da()&&e.transitionTo($a(),(function(o){n&&aa(e.router,o,t,!0),ma||za(o.fullPath)}))},r=ma?"popstate":"hashchange";window.addEventListener(r,o),this.listeners.push((function(){window.removeEventListener(r,o)}))}},t.prototype.push=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){Fa(e.fullPath),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this,r=this.current;this.transitionTo(e,(function(e){za(e.fullPath),aa(o.router,e,r,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;$a()!==t&&(e?Fa(t):za(t))},t.prototype.getCurrentLocation=function(){return $a()},t}(ja);function Da(){var e=$a();return"/"===e.charAt(0)||(za("/"+e),!1)}function $a(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Ua(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Fa(e){ma?va(Ua(e)):window.location.hash=e}function za(e){ma?ga(Ua(e)):window.location.replace(Ua(e))}var Ba=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var o=this;this.transitionTo(e,(function(e){o.stack=o.stack.slice(0,o.index+1).concat(e),o.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var o=this;this.transitionTo(e,(function(e){o.stack=o.stack.slice(0,o.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var o=this.stack[n];this.confirmTransition(o,(function(){var e=t.current;t.index=n,t.updateRoute(o),t.router.afterHooks.forEach((function(t){t&&t(o,e)}))}),(function(e){ka(e,ya.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(ja),Ga=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Yi(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ma&&!1!==e.fallback,this.fallback&&(t="hash"),qi||(t="abstract"),this.mode=t,t){case"history":this.history=new Ma(this,e.base);break;case"hash":this.history=new Na(this,e.base,this.fallback);break;case"abstract":this.history=new Ba(this,e.base);break;default:0}},Ja={currentRoute:{configurable:!0}};Ga.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Ja.currentRoute.get=function(){return this.history&&this.history.current},Ga.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ma||n instanceof Na){var o=function(e){n.setupListeners(),function(e){var o=n.current,r=t.options.scrollBehavior;ma&&r&&"fullPath"in e&&aa(t,e,o,!1)}(e)};n.transitionTo(n.getCurrentLocation(),o,o)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},Ga.prototype.beforeEach=function(e){return Wa(this.beforeHooks,e)},Ga.prototype.beforeResolve=function(e){return Wa(this.resolveHooks,e)},Ga.prototype.afterEach=function(e){return Wa(this.afterHooks,e)},Ga.prototype.onReady=function(e,t){this.history.onReady(e,t)},Ga.prototype.onError=function(e){this.history.onError(e)},Ga.prototype.push=function(e,t,n){var o=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){o.history.push(e,t,n)}));this.history.push(e,t,n)},Ga.prototype.replace=function(e,t,n){var o=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){o.history.replace(e,t,n)}));this.history.replace(e,t,n)},Ga.prototype.go=function(e){this.history.go(e)},Ga.prototype.back=function(){this.go(-1)},Ga.prototype.forward=function(){this.go(1)},Ga.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},Ga.prototype.resolve=function(e,t,n){var o=Gi(e,t=t||this.history.current,n,this),r=this.match(o,t),i=r.redirectedFrom||r.fullPath;return{location:o,route:r,href:function(e,t,n){var o="hash"===n?"#"+t:t;return e?ki(e+"/"+o):o}(this.history.base,i,this.mode),normalizedTo:o,resolved:r}},Ga.prototype.getRoutes=function(){return this.matcher.getRoutes()},Ga.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==mi&&this.history.transitionTo(this.history.getCurrentLocation())},Ga.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==mi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Ga.prototype,Ja);var Ha=Ga;function Wa(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}Ga.install=function e(t){if(!e.installed||Ji!==t){e.installed=!0,Ji=t;var n=function(e){return void 0!==e},o=function(e,t){var o=e.$options._parentVnode;n(o)&&n(o=o.data)&&n(o=o.registerRouteInstance)&&o(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,o(this,this)},destroyed:function(){o(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",Si),t.component("RouterLink",Wi);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},Ga.version="3.6.5",Ga.isNavigationFailure=ka,Ga.NavigationFailureType=ya,Ga.START_LOCATION=mi,qi&&window.Vue&&window.Vue.use(Ga);n(100);n(127),n(94);var Va={"components/AlgoliaSearchBox":()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,322)),"components/DropdownLink":()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,265)),"components/DropdownTransition":()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,253)),"components/Home":()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,293)),"components/NavLink":()=>n.e(24).then(n.bind(null,252)),"components/NavLinks":()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,277)),"components/Navbar":()=>Promise.all([n.e(0),n.e(1)]).then(n.bind(null,319)),"components/Page":()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,294)),"components/PageEdit":()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,279)),"components/PageNav":()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,280)),"components/Sidebar":()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,295)),"components/SidebarButton":()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,296)),"components/SidebarGroup":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,278)),"components/SidebarLink":()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,267)),"components/SidebarLinks":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,264)),"global-components/Badge":()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,329)),"global-components/CodeBlock":()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,323)),"global-components/CodeGroup":()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,324)),"layouts/404":()=>n.e(8).then(n.bind(null,325)),"layouts/Layout":()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,326)),NotFound:()=>n.e(8).then(n.bind(null,325)),Layout:()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,326)),"components/ThemeSwitcher":()=>n.e(26).then(n.bind(null,266)),"global-components/ThemeManager":()=>n.e(7).then(n.bind(null,327))},qa={"v-7be33f55":()=>n.e(28).then(n.bind(null,330)),"v-6d103c0f":()=>n.e(27).then(n.bind(null,331)),"v-592ee76f":()=>n.e(30).then(n.bind(null,332)),"v-01d39fbb":()=>n.e(29).then(n.bind(null,333)),"v-d3a4c5a2":()=>n.e(31).then(n.bind(null,334)),"v-0c6972cf":()=>n.e(32).then(n.bind(null,335)),"v-773b46af":()=>n.e(33).then(n.bind(null,336)),"v-225394af":()=>n.e(34).then(n.bind(null,337)),"v-4e22b48a":()=>n.e(35).then(n.bind(null,338)),"v-81274ae2":()=>n.e(37).then(n.bind(null,339)),"v-4742fe6f":()=>n.e(36).then(n.bind(null,340)),"v-345a158f":()=>n.e(38).then(n.bind(null,341)),"v-64989b6f":()=>n.e(39).then(n.bind(null,342)),"v-424cf6cf":()=>n.e(40).then(n.bind(null,343)),"v-f522bdba":()=>n.e(41).then(n.bind(null,344)),"v-9676641e":()=>n.e(42).then(n.bind(null,345)),"v-de1236aa":()=>n.e(44).then(n.bind(null,346)),"v-d825f8e2":()=>n.e(43).then(n.bind(null,347)),"v-6b9f262f":()=>n.e(14).then(n.bind(null,348)),"v-d168dba2":()=>n.e(45).then(n.bind(null,349)),"v-05d0c7e5":()=>n.e(46).then(n.bind(null,350)),"v-064d9641":()=>n.e(48).then(n.bind(null,351)),"v-beda3462":()=>n.e(47).then(n.bind(null,352)),"v-72d5050f":()=>n.e(49).then(n.bind(null,353)),"v-ab47dc22":()=>n.e(50).then(n.bind(null,354)),"v-7a85af9e":()=>n.e(52).then(n.bind(null,355)),"v-003c2faf":()=>n.e(51).then(n.bind(null,356)),"v-8c309662":()=>n.e(54).then(n.bind(null,357)),"v-061053ef":()=>n.e(55).then(n.bind(null,358)),"v-f8efcd22":()=>n.e(53).then(n.bind(null,359)),"v-010d50e2":()=>n.e(56).then(n.bind(null,360)),"v-23fd29af":()=>n.e(57).then(n.bind(null,361)),"v-d732ddea":()=>n.e(58).then(n.bind(null,362)),"v-3eadfe49":()=>n.e(59).then(n.bind(null,363)),"v-2a5ebdfe":()=>n.e(60).then(n.bind(null,364)),"v-e815d23e":()=>n.e(61).then(n.bind(null,365)),"v-b555e268":()=>n.e(64).then(n.bind(null,366)),"v-9b08b72a":()=>n.e(65).then(n.bind(null,367)),"v-c6805a6a":()=>n.e(62).then(n.bind(null,368)),"v-4d748362":()=>n.e(63).then(n.bind(null,369)),"v-fc8dde62":()=>n.e(66).then(n.bind(null,370)),"v-39f2556f":()=>n.e(67).then(n.bind(null,371)),"v-a6521322":()=>n.e(69).then(n.bind(null,372)),"v-5ed8efd6":()=>n.e(70).then(n.bind(null,373)),"v-1b47640f":()=>n.e(68).then(n.bind(null,374)),"v-751f9e23":()=>n.e(71).then(n.bind(null,375)),"v-1a4f98a7":()=>n.e(72).then(n.bind(null,376)),"v-051fd6ef":()=>n.e(73).then(n.bind(null,377)),"v-687695a2":()=>n.e(74).then(n.bind(null,378)),"v-98819f36":()=>n.e(75).then(n.bind(null,379)),"v-72831da2":()=>n.e(76).then(n.bind(null,380)),"v-66a0075c":()=>n.e(77).then(n.bind(null,381)),"v-7fc82f01":()=>n.e(80).then(n.bind(null,382)),"v-cb4c1c86":()=>n.e(79).then(n.bind(null,383)),"v-7e90673c":()=>n.e(81).then(n.bind(null,384)),"v-1e60c8e2":()=>n.e(78).then(n.bind(null,385))};function Ka(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Xa=/-(\w)/g,Ya=Ka(e=>e.replace(Xa,(e,t)=>t?t.toUpperCase():"")),Za=/\B([A-Z])/g,Qa=Ka(e=>e.replace(Za,"-$1").toLowerCase()),es=Ka(e=>e.charAt(0).toUpperCase()+e.slice(1));function ts(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(es(Ya(t))):e(es(t))||e(Qa(t))}const ns=Object.assign({},Va,qa),os=e=>ns[e],rs=e=>qa[e],is=e=>Va[e],as=e=>Vn.component(e);function ss(e){return ts(rs,e)}function ls(e){return ts(is,e)}function cs(e){return ts(os,e)}function us(e){return ts(as,e)}function ds(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!us(e)&&cs(e)){const t=await cs(e)();Vn.component(e,t.default)}}))}function hs(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}var fs=n(91),ps=n.n(fs),ms=n(92),vs=n.n(ms),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${vs()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=ws(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return ps()([{name:"description",content:this.$description}],e,this.siteMeta,Ss)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){ws(null,this.currentMetaTags),ys()}};function ys(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function bs(e=""){return e?``:""}function ws(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function Ss(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var Os=n(22),_s=n.n(Os),ks={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:_s()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),t=[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(e=>e.hash===t.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),o=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),r=window.innerHeight+n;for(let e=0;e=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},As=n(23),xs=n.n(As),Ps={mounted(){xs.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,n)=>{e.path===t.path||Vn.component(e.name)||xs.a.start(),n()}),this.$router.afterEach(()=>{xs.a.done(),this.isSidebarOpen=!1})}},Ts={props:{parent:Object,code:String,options:{align:String,color:String,backgroundTransition:Boolean,backgroundColor:String,successText:String,staticIcon:Boolean}},data:()=>({success:!1,originalBackground:null,originalTransition:null}),computed:{alignStyle(){let e={};return e[this.options.align]="7.5px",e},iconClass(){return this.options.staticIcon?"":"hover"}},mounted(){this.originalTransition=this.parent.style.transition,this.originalBackground=this.parent.style.background},beforeDestroy(){this.parent.style.transition=this.originalTransition,this.parent.style.background=this.originalBackground},methods:{hexToRgb(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},copyToClipboard(e){if(navigator.clipboard)navigator.clipboard.writeText(this.code).then(()=>{this.setSuccessTransitions()},()=>{});else{let e=document.createElement("textarea");document.body.appendChild(e),e.value=this.code,e.select(),document.execCommand("Copy"),e.remove(),this.setSuccessTransitions()}},setSuccessTransitions(){if(clearTimeout(this.successTimeout),this.options.backgroundTransition){this.parent.style.transition="background 350ms";let e=this.hexToRgb(this.options.backgroundColor);this.parent.style.background=`rgba(${e.r}, ${e.g}, ${e.b}, 0.1)`}this.success=!0,this.successTimeout=setTimeout(()=>{this.options.backgroundTransition&&(this.parent.style.background=this.originalBackground,this.parent.style.transition=this.originalTransition),this.success=!1},500)}}},Cs=(n(239),n(8)),Es=Object(Cs.a)(Ts,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"code-copy"},[t("svg",{class:e.iconClass,style:e.alignStyle,attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},on:{click:e.copyToClipboard}},[t("path",{attrs:{fill:"none",d:"M0 0h24v24H0z"}}),e._v(" "),t("path",{attrs:{fill:e.options.color,d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"}})]),e._v(" "),t("span",{class:e.success?"success":"",style:e.alignStyle},[e._v("\n "+e._s(e.options.successText)+"\n ")])])}),[],!1,null,"49140617",null).exports,js=(n(240),{updated(){this.update()},methods:{update(){setTimeout(()=>{document.querySelectorAll('div[class*="language-"] pre').forEach(e=>{if(e.classList.contains("code-copy-added"))return;let t=new(Vn.extend(Es));t.options={align:"bottom",color:"#27b1ff",backgroundTransition:!0,backgroundColor:"#0075b8",successText:"Copied!",staticIcon:!1},t.code=e.innerText,t.parent=e,t.$mount(),e.classList.add("code-copy-added"),e.appendChild(t.$el)})},100)}}}),Ls=n(93),Is=n.n(Ls),Ms=(n(241),{mounted(){Is.a.polyfill()}}),Rs=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},o=window.Promise||function(e){function t(){}e(t,t)},r=function(e){var t=e.target;t!==A?-1!==b.indexOf(t)&&m({target:t}):p()},i=function(){if(!S&&k.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(O-e)>_.scrollOffset&&setTimeout(p,150)}},a=function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||p()},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(A.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=Rs({},_.container,e.container)),e.template){var n=Ds(e.template)?e.template:document.querySelector(e.template);t.template=n}return _=Rs({},_,t),b.forEach((function(e){e.dispatchEvent(Bs("medium-zoom:update",{detail:{zoom:x}}))})),x},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(Rs({},_,t))},c=function(){for(var e=arguments.length,t=Array(e),n=0;n0?t.reduce((function(e,t){return[].concat(e,Us(t))}),[]):b;return o.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(Bs("medium-zoom:detach",{detail:{zoom:x}}))})),b=b.filter((function(e){return-1===o.indexOf(e)})),x},d=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(o){o.addEventListener("medium-zoom:"+e,t,n)})),w.push({type:"medium-zoom:"+e,listener:t,options:n}),x},h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return b.forEach((function(o){o.removeEventListener("medium-zoom:"+e,t,n)})),w=w.filter((function(n){return!(n.type==="medium-zoom:"+e&&n.listener.toString()===t.toString())})),x},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,n=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,n=void 0;if(_.container)if(_.container instanceof Object)t=(e=Rs({},e,_.container)).width-e.left-e.right-2*_.margin,n=e.height-e.top-e.bottom-2*_.margin;else{var o=(Ds(_.container)?_.container:document.querySelector(_.container)).getBoundingClientRect(),r=o.width,i=o.height,a=o.left,s=o.top;e=Rs({},e,{width:r,height:i,left:a,top:s})}t=t||e.width-2*_.margin,n=n||e.height-2*_.margin;var l=k.zoomedHd||k.original,c=$s(l)?t:l.naturalWidth||t,u=$s(l)?n:l.naturalHeight||n,d=l.getBoundingClientRect(),h=d.top,f=d.left,p=d.width,m=d.height,v=Math.min(Math.max(p,c),t)/p,g=Math.min(Math.max(m,u),n)/m,y=Math.min(v,g),b="scale("+y+") translate3d("+((t-p)/2-f+_.margin+e.left)/y+"px, "+((n-m)/2-h+_.margin+e.top)/y+"px, 0)";k.zoomed.style.transform=b,k.zoomedHd&&(k.zoomedHd.style.transform=b)};return new o((function(e){if(t&&-1===b.indexOf(t))e(x);else{if(k.zoomed)e(x);else{if(t)k.original=t;else{if(!(b.length>0))return void e(x);var o=b;k.original=o[0]}if(k.original.dispatchEvent(Bs("medium-zoom:open",{detail:{zoom:x}})),O=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,S=!0,k.zoomed=zs(k.original),document.body.appendChild(A),_.template){var r=Ds(_.template)?_.template:document.querySelector(_.template);k.template=document.createElement("div"),k.template.appendChild(r.content.cloneNode(!0)),document.body.appendChild(k.template)}if(k.original.parentElement&&"PICTURE"===k.original.parentElement.tagName&&k.original.currentSrc&&(k.zoomed.src=k.original.currentSrc),document.body.appendChild(k.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),k.original.classList.add("medium-zoom-image--hidden"),k.zoomed.classList.add("medium-zoom-image--opened"),k.zoomed.addEventListener("click",p),k.zoomed.addEventListener("transitionend",(function t(){S=!1,k.zoomed.removeEventListener("transitionend",t),k.original.dispatchEvent(Bs("medium-zoom:opened",{detail:{zoom:x}})),e(x)})),k.original.getAttribute("data-zoom-src")){k.zoomedHd=k.zoomed.cloneNode(),k.zoomedHd.removeAttribute("srcset"),k.zoomedHd.removeAttribute("sizes"),k.zoomedHd.removeAttribute("loading"),k.zoomedHd.src=k.zoomed.getAttribute("data-zoom-src"),k.zoomedHd.onerror=function(){clearInterval(i),console.warn("Unable to reach the zoom image target "+k.zoomedHd.src),k.zoomedHd=null,n()};var i=setInterval((function(){k.zoomedHd.complete&&(clearInterval(i),k.zoomedHd.classList.add("medium-zoom-image--opened"),k.zoomedHd.addEventListener("click",p),document.body.appendChild(k.zoomedHd),n())}),10)}else if(k.original.hasAttribute("srcset")){k.zoomedHd=k.zoomed.cloneNode(),k.zoomedHd.removeAttribute("sizes"),k.zoomedHd.removeAttribute("loading");var a=k.zoomedHd.addEventListener("load",(function(){k.zoomedHd.removeEventListener("load",a),k.zoomedHd.classList.add("medium-zoom-image--opened"),k.zoomedHd.addEventListener("click",p),document.body.appendChild(k.zoomedHd),n()}))}else n()}}}))},p=function(){return new o((function(e){if(!S&&k.original){S=!0,document.body.classList.remove("medium-zoom--opened"),k.zoomed.style.transform="",k.zoomedHd&&(k.zoomedHd.style.transform=""),k.template&&(k.template.style.transition="opacity 150ms",k.template.style.opacity=0),k.original.dispatchEvent(Bs("medium-zoom:close",{detail:{zoom:x}})),k.zoomed.addEventListener("transitionend",(function t(){k.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(k.zoomed),k.zoomedHd&&document.body.removeChild(k.zoomedHd),document.body.removeChild(A),k.zoomed.classList.remove("medium-zoom-image--opened"),k.template&&document.body.removeChild(k.template),S=!1,k.zoomed.removeEventListener("transitionend",t),k.original.dispatchEvent(Bs("medium-zoom:closed",{detail:{zoom:x}})),k.original=null,k.zoomed=null,k.zoomedHd=null,k.template=null,e(x)}))}else e(x)}))},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target;return k.original?p():f({target:t})},v=function(){return _},g=function(){return b},y=function(){return k.original},b=[],w=[],S=!1,O=0,_=n,k={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?_=t:(t||"string"==typeof t)&&c(t),_=Rs({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},_);var A=Fs(_.background);document.addEventListener("click",r),document.addEventListener("keyup",a),document.addEventListener("scroll",i),window.addEventListener("resize",p);var x={open:f,close:p,toggle:m,update:s,clone:l,attach:c,detach:u,on:d,off:h,getOptions:v,getImages:g,getZoomedImage:y};return x};const Js=JSON.parse('{"background":"var(--bodyBgColor)"}'),Hs=Number("500");class Ws{constructor(){this.instance=null}update(e="img"){"undefined"!=typeof window&&(null===this.instance?this.instance=Gs(e,Js):(this.instance.detach(),this.instance.attach(e)))}updateDelay(e="img",t=Hs){setTimeout(()=>this.update(e),t)}}n(242);var Vs=[gs,ks,Ps,js,Ms,{watch:{"$page.path"(){void 0!==this.$vuepress.mediumZoom&&this.$vuepress.mediumZoom.updateDelay()}},mounted(){this.$vuepress.mediumZoom=new Ws,this.$vuepress.mediumZoom.updateDelay()}}],qs={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return hs("layout",e),Vn.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Ks=Object(Cs.a)(qs,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(Ks,"mixins",Vs);const Xs=[{name:"v-7be33f55",path:"/ABOUTPOJAV.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7be33f55").then(n)}},{name:"v-6d103c0f",path:"/32BIT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-6d103c0f").then(n)}},{name:"v-592ee76f",path:"/BUILD-FROM-SOURCE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-592ee76f").then(n)}},{name:"v-01d39fbb",path:"/APPSTORE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-01d39fbb").then(n)}},{name:"v-d3a4c5a2",path:"/CANTFINDLOG.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d3a4c5a2").then(n)}},{name:"v-0c6972cf",path:"/CANTFINDMINECRAFT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-0c6972cf").then(n)}},{name:"v-773b46af",path:"/CANTLOGIN.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-773b46af").then(n)}},{name:"v-225394af",path:"/CONT-TRANSLATIONS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-225394af").then(n)}},{name:"v-4e22b48a",path:"/CONT-WEBSITE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-4e22b48a").then(n)}},{name:"v-81274ae2",path:"/CUSTOM-CONTROLS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-81274ae2").then(n)}},{name:"v-4742fe6f",path:"/CRASHES.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-4742fe6f").then(n)}},{name:"v-345a158f",path:"/CUSTOM-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-345a158f").then(n)}},{name:"v-64989b6f",path:"/DEVICES.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-64989b6f").then(n)}},{name:"v-424cf6cf",path:"/DISCORD.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-424cf6cf").then(n)}},{name:"v-f522bdba",path:"/ENV-VARS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-f522bdba").then(n)}},{name:"v-9676641e",path:"/FFMPEG.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-9676641e").then(n)}},{name:"v-de1236aa",path:"/INSTALL-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-de1236aa").then(n)}},{name:"v-d825f8e2",path:"/FIRST-STEPS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d825f8e2").then(n)}},{name:"v-6b9f262f",path:"/INSTALL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-6b9f262f").then(n)}},{name:"v-d168dba2",path:"/IOS-SUPPORT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d168dba2").then(n)}},{name:"v-05d0c7e5",path:"/JARCRASHED.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-05d0c7e5").then(n)}},{name:"v-064d9641",path:"/JAVARUNTIMES.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-064d9641").then(n)}},{name:"v-beda3462",path:"/JAVA-ARGS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-beda3462").then(n)}},{name:"v-72d5050f",path:"/JAVAVERSION.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-72d5050f").then(n)}},{name:"v-ab47dc22",path:"/JIT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-ab47dc22").then(n)}},{name:"v-7a85af9e",path:"/LOCAL-MODE.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7a85af9e").then(n)}},{name:"v-003c2faf",path:"/LEGAL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-003c2faf").then(n)}},{name:"v-8c309662",path:"/MODCONFLICT.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-8c309662").then(n)}},{name:"v-061053ef",path:"/MODCRASHING.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-061053ef").then(n)}},{name:"v-f8efcd22",path:"/MCVERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-f8efcd22").then(n)}},{name:"v-010d50e2",path:"/MODDED-MC.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-010d50e2").then(n)}},{name:"v-23fd29af",path:"/MODNOTSHOWINGUP.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-23fd29af").then(n)}},{name:"v-d732ddea",path:"/MODPACKS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-d732ddea").then(n)}},{name:"v-3eadfe49",path:"/MODS-UNSUPPORTED.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-3eadfe49").then(n)}},{name:"v-2a5ebdfe",path:"/NOTCHFIX.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-2a5ebdfe").then(n)}},{name:"v-e815d23e",path:"/OPTIMIZATION.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-e815d23e").then(n)}},{name:"v-b555e268",path:"/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-b555e268").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-9b08b72a",path:"/REFUSALOFINSTALL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-9b08b72a").then(n)}},{name:"v-c6805a6a",path:"/PARSINGERROR.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-c6805a6a").then(n)}},{name:"v-4d748362",path:"/PROBLEMATIC-MODS-COMMON-FIXES.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-4d748362").then(n)}},{name:"v-fc8dde62",path:"/RENDERERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-fc8dde62").then(n)}},{name:"v-39f2556f",path:"/RPWORLDNOTSHOWINGUP.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-39f2556f").then(n)}},{name:"v-a6521322",path:"/SIGN-IN.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-a6521322").then(n)}},{name:"v-5ed8efd6",path:"/UNJAIL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-5ed8efd6").then(n)}},{name:"v-1b47640f",path:"/SHADERS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-1b47640f").then(n)}},{name:"v-751f9e23",path:"/ZINK.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-751f9e23").then(n)}},{name:"v-1a4f98a7",path:"/ZINKNOTWORKING.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-1a4f98a7").then(n)}},{name:"v-051fd6ef",path:"/archived_pages/DEVICES_LINUX_INCL.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-051fd6ef").then(n)}},{name:"v-687695a2",path:"/archived_pages/JDK8.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-687695a2").then(n)}},{name:"v-98819f36",path:"/archived_pages/OGL32.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-98819f36").then(n)}},{name:"v-72831da2",path:"/archived_pages/PARTNERSHIPS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-72831da2").then(n)}},{name:"v-66a0075c",path:"/archived_pages/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-66a0075c").then(n)}},{path:"/archived_pages/index.html",redirect:"/archived_pages/"},{name:"v-7fc82f01",path:"/changelogs/IOS.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7fc82f01").then(n)}},{name:"v-cb4c1c86",path:"/changelogs/ANDROID.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-cb4c1c86").then(n)}},{name:"v-7e90673c",path:"/images/",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-7e90673c").then(n)}},{path:"/images/index.html",redirect:"/images/"},{name:"v-1e60c8e2",path:"/archived_pages/RIP-A7.html",component:Ks,beforeEnter:(e,t,n)=>{ds("Layout","v-1e60c8e2").then(n)}},{path:"*",component:Ks}],Ys={title:"PojavLauncher",description:"A flexible, fast and open-source Minecraft Java Edition launcher for Android and iOS",base:"/",headTags:[["meta",{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"}],["meta",{name:"theme-color",content:"#25262b",media:"(prefers-color-scheme: dark)"}],["meta",{name:"apple-mobile-web-app-capable",content:"yes"}],["meta",{name:"apple-mobile-web-app-status-bar-style",content:"black"}],["link",{rel:"'stylesheet",href:"/styles/website.css"}]],pages:[{title:"PojavLauncher",frontmatter:{},regularPath:"/ABOUTPOJAV.html",relativePath:"ABOUTPOJAV.md",key:"v-7be33f55",path:"/ABOUTPOJAV.html",headers:[{level:3,title:"From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS.",slug:"from-the-ashes-of-zhouwei-s-boardwalk-project-comes-pojavlauncher-a-capable-fast-and-open-source-minecraft-java-edition-launcher-for-android-and-ios"},{level:2,title:"Credits",slug:"credits"},{level:2,title:"Special thanks to these guys",slug:"special-thanks-to-these-guys"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" PojavLauncher \n From the ashes of zhouwei's Boardwalk project comes PojavLauncher, a capable, fast, and open-source Minecraft: Java Edition launcher for Android and iOS. \n PojavLauncher is based off of zhouwei's Boardwalk project, which brought Minecraft 1.13 to Android. Improved upon and revived by the team, PojavLauncher brings Boardwalk to new heights with more versions, more devices, and even iOS support. \n Right now, you're looking at the PojavLauncher website, with information regarding the launcher and various guides on how to navigate, operate, and get to playing. Take a look around, there's more in store! \n Credits \n PojavLauncher didn't just appear out of thin air, but was made possible by the following people! \n @PojavLauncherTeam , which includes \n \n @DuyKhanhTran \n @artdeell \n @Mathias Bouley \n @crystall1nedev \n \n ...and many more contributors to the Android and iOS repositories. \n PojavLauncher also uses the following third-party components: \n \n Boardwalk (JVM Launcher): Unknown License/ Apache License 2.0 or GNU GPLv2. \n Caciocavallo : GNU GPLv2 License . \n Android Support Libraries: Apache License 2.0 . \n GL4ES : MIT License . \n OpenJDK : GNU GPLv2 License . On iOS, it was ported by @Diatrus \n LWJGL3 : BSD-3 License . \n LWJGLX (LWJGL2 API compatibility layer for LWJGL3): unknown license. \n Mesa 3D Graphics Library : MIT License . \n pro-grade (Java sandboxing security manager): Apache License 2.0 . \n xHook (Used for exit code trapping): MIT and BSD-style licenses . \n libepoxy : MIT License . \n Zink : MIT License. \n Apache Commons : Apache License 2.0 . \n jsr305 : 3-Clause BSD License . \n org.json : The JSON License . \n MetalANGLE by @kakashidinho and ANGLE team: BSD License 2.0 . \n MoltenVK : Apache 2.0 License . \n Alderis (color picker for iOS < 14): Apache 2.0 License . \n DBNumberedSlider : Apache 2.0 License \n fishhook (jailed environment usage only): BSD-3 License . \n Java Native Access : Apache 2.0 License . \n shaderc (used by mods that uses Vulkan for rendering): Apache 2.0 License . \n TOInsetGroupedTableView : MIT License . \n Special thanks to these guys \n \n Thanks to MCHeads for providing Minecraft avatars. \n Thanks to @Diatrus for helping make this a reality in the beginning. \n Thanks to MacStadium for providing the hardware needed to help PojavLauncher iOS go further. \n \n \n"},{title:"PojavLauncher's 32-bit support",frontmatter:{},regularPath:"/32BIT.html",relativePath:"32BIT.md",key:"v-6d103c0f",path:"/32BIT.html",headers:[{level:2,title:"RAM Allocation",slug:"ram-allocation"},{level:2,title:"Performance",slug:"performance"},{level:2,title:"Compatibility",slug:"compatibility"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" PojavLauncher's 32-bit support \n Most of you, Android users, who are reading this now, won't be bothered by this documentation, but for the poor souls who have a 32-bit device, let's press L F to pay respects to them. \n ARM transitioned into the modern arm64/aarch64 architecture, which significantly improved utilization and stability compared to its widely used predecessor, arm/aarch32 , while also maintaining compatibility using code blocks for parity between both architectures. \n We won't get into much detail regarding it, but if you'd like to learn more about it have a read of this documentary about the ARM platform. \n You may encounter issues while using PojavLauncher on 32-bit devices. Here's a list of things that are known to be problematic: \n RAM Allocation \n Real 32-bit devices (32-bit hardware and firmware), can't allocate more than 768MB of RAM to PojavLauncher. This CAN'T be changed even if the device has extra RAM to spare. \n \n Examples of real 32-bit SoCs: Qualcomm Snapdragon 801, 800, 600, 400, S4, S3, S2, S1, etc. \n \n 64-bit devices limited to 32-bit firmware can't allocate more than ~1000MB of RAM. As said earlier, this CAN'T be changed. \n \n Examples of 64-bit SoCs limited to 32-bit firmware: MediaTek Helio G37, G35, G25, P35, P25, P23, P22, etc. \n Performance \n Due to 32-bit's processing speed limit, Minecraft's performance is always compromised. Even with optimization mods installed, you may receive big stutters even on the lowest settings. Decreasing RAM Allocation may help performance in some scenarios. \n Compatibility \n As of snapshot 24w14a , Minecraft has officially dropped support for the 32-Bit architecture, ultimately meaning if you own a 32-Bit device you will NOT be able to run Minecraft 1.20.5+ on said device. \n"},{title:"Building from source",frontmatter:{},regularPath:"/BUILD-FROM-SOURCE.html",relativePath:"BUILD-FROM-SOURCE.md",key:"v-592ee76f",path:"/BUILD-FROM-SOURCE.html",headers:[{level:2,title:"Setting up JRE",slug:"setting-up-jre"},{level:3,title:"Android",slug:"android"},{level:3,title:"iOS",slug:"ios"},{level:2,title:"LWJGL",slug:"lwjgl"},{level:2,title:"Building the Launcher",slug:"building-the-launcher"},{level:3,title:"Updating translations",slug:"updating-translations"},{level:3,title:"Build GLFW Stub",slug:"build-glfw-stub"},{level:3,title:"Build the Launcher",slug:"build-the-launcher"}],lastUpdated:"11/4/2022, 4:16:58 PM",lastUpdatedTimestamp:1667578618e3,content:" Building from source \n \n \n Even though it is well-explained, building from source requires skill, internet and time. \n \n \n You can try building on Android with Termux , but no support will be included for it. \n \n \n It is recommended to clone the PojavLauncher repository before starting Setting Up JRE \n \n \n git clone https://github.com/PojavLauncherTeam/PojavLauncher \n Setting up JRE \n \n \n You can download it from CI Auto Builds if you don't want to/can't build. \n \n \n Source: PojavLauncherTeam/android-openjdk-build-multiarch \n Android \n \n Clone the git repository of PojavLauncherTeam/android-openjdk-build-multiarch \n \n git clone https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch\n \n \n Change the directory to the cloned repository \n \n cd android-openjdk-build-multiarch\n \n \n Download Android NDK r10e from here and place it in this directory with a file explorer. (Can't automatically download because of EULA) \n \n WARNING \n Do not attempt to build using a newer or older NDK, it will lead to compilation errors. \n iOS \n \n Get the latest Xcode (tested with Xcode 12). \n Platform and architecture specific environment variables \n \n \n \n Platform \n Architecture \n Target \n Target_JDK \n \n \n \n \n Android \n armv8/aarch64 \n aarch64-linux-android \n aarch64 \n \n \n Android \n armv7/aarch32 \n arm-linux-androideabi \n arm \n \n \n Android \n x86/i686 \n i686-linux-android \n x86 \n \n \n Android \n x86_64/amd64 \n x86_64-linux-android \n x86_64 \n \n \n iOS/iPadOS \n armv8/aarch64 \n aarch64-macos-ios \n aarch64 \n Building JRE (Java Runtime Environment) \n \n \n export BUILD_IOS=0\n \n \n \n export BUILD_IOS=1\n \n \n \n export BUILD_FREETYPE_VERSION=[2.10.4] \n TIP \n You can use versions between 2.6.2 and 2.10.4 but 2.10.4 is preferred. \n \n export JDK_DEBUG_LEVEL=[release] \n TIP \n You can use release , fastdebug and debug , but release is preferred \n \n export JVM_VARIANTS=[client] \n TIP \n You can use client and server variants, Client is for aarch32 and server is for other architectures \n \n (Android only) \n ./extractndk.sh \n ./maketoolchain.sh \n Get CUPS, Freetype and build Freetype \n ./getlibs.sh \n ./buildlibs.sh \n Clone JDK, run once \n ./clonejdk.sh \n Configure JDK and build \n ./buildjdk.sh \n TIP \n If no configuration is changed, run sh makejdkwithoutconfigure.sh instead \n Pack the built JDK \n ./removejdkdebuginfo.sh \n ./tarjdk.sh \n LWJGL \n \n Coming soon \n Building the Launcher \n Updating translations \n \n \n Updating translations is easier thanks to language list updater scripts \n \n \n Just run this command and it'll be automatically updated from Crowdin. \n \n \n \n \n scripts\\languagelist_updater.bat\n \n \n \n chmod +x scripts/languagelist_updater.sh\nbash scripts/languagelist_updater.sh\n Build GLFW Stub \n \n \n ./gradlew :jre_lwjgl3glfw:build\n \n \n \n gradle :jre_lwjgl3glfw:build\n Build the Launcher \n \n \n ./gradlew.bat :app_pojavlauncher:assembleDebug\n \n \n \n ./gradlew :app_pojavlauncher:assembleDebug\n \n \n \n"},{title:"Will PojavLauncher ever come to App Store for iOS?",frontmatter:{},regularPath:"/APPSTORE.html",relativePath:"APPSTORE.md",key:"v-01d39fbb",path:"/APPSTORE.html",headers:[{level:3,title:"From the App Store review guidelines:",slug:"from-the-app-store-review-guidelines"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Will PojavLauncher ever come to App Store for iOS? \n From the App Store review guidelines: \n 2.5.2 : Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user. \n Apple Developer Documentation Referenced: Section 2.5.2 \n Additionally, $99 per year is required for pushing updates. \n If PojavLauncher is ever pushed to the App Store, you will know! \n"},{title:"Can't find the log file (non-root)",frontmatter:{},regularPath:"/CANTFINDLOG.html",relativePath:"CANTFINDLOG.md",key:"v-d3a4c5a2",path:"/CANTFINDLOG.html",headers:[{level:2,title:"Android 10 and newer",slug:"android-10-and-newer"},{level:2,title:"Android 9 and older",slug:"android-9-and-older"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Can't find the log file (non-root) \n There are mutiple ways to do this. Usually, pressing the Share log file button is enough. \n Android 10 and newer \n /storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/latestlog.txt \n \n Install Files by Marc apps & software from Play Store. \n Press the 3 lines in the top left corner → PojavLauncher → latestlog.txt \n \n If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone.\nYou can also use ZArchiver (or MiXplorer ) with Shizuku to access it. \n Android 9 and older \n /storage/emulated/0/games/PojavLauncher/latestlog.txt \n All file managers can access this directory. ZArchiver and MiXplorer are recommended. \n"},{title:"Can't find .minecraft (non-root)",frontmatter:{},regularPath:"/CANTFINDMINECRAFT.html",relativePath:"CANTFINDMINECRAFT.md",key:"v-0c6972cf",path:"/CANTFINDMINECRAFT.html",headers:[{level:2,title:"Android 10 and newer",slug:"android-10-and-newer"},{level:2,title:"Android 9 and older",slug:"android-9-and-older"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Can't find .minecraft (non-root) \n As with the log file, there are mutiple ways to do this. \n Android 10 and newer \n /storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/.minecraft \n \n Install Files by Marc apps & software from Play Store. \n Press the 3 dots in the top right corner → Show hidden files \n Press the 3 lines in the top left corner → PojavLauncher → .minecraft \n \n If PojavLauncher does not appear in the 3 lines menu, try closing (or opening) Pojav. If that doesn't work, try restarting your phone.\nYou can also use ZArchiver (or MiXplorer ) with Shizuku to access it. \n Android 9 and older \n /storage/emulated/0/games/PojavLauncher/.minecraft \n All file managers can access this directory. ZArchiver and MiXplorer are recommended. \n"},{title:"Can't log in",frontmatter:{},regularPath:"/CANTLOGIN.html",relativePath:"CANTLOGIN.md",key:"v-773b46af",path:"/CANTLOGIN.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Can't log in \n To fix your issues with login, try logging into minecraft.net first, sometimes just logging into the site fixes the issue. If that does not fix it, check these things: \n a) you must own Minecraft: Java Edition\nb) you must have a username set (check this if you are using Xbox Game Pass)\nc) your account should not be a child member of a family, playing Minecraft like this only works on the official Minecraft Launcher for PC.\nd) if the error is different and links you somewhere, try following any steps on the site it links you to \n"},{title:"Contributing to the translation of PojavLauncher",frontmatter:{},regularPath:"/CONT-TRANSLATIONS.html",relativePath:"CONT-TRANSLATIONS.md",key:"v-225394af",path:"/CONT-TRANSLATIONS.html",headers:[{level:2,title:"Getting started for newcomers on Crowdin",slug:"getting-started-for-newcomers-on-crowdin"},{level:2,title:"What to translate and what not to translate?",slug:"what-to-translate-and-what-not-to-translate"},{level:2,title:"Proofreading",slug:"proofreading"}],lastUpdated:"10/27/2022, 9:21:34 PM",lastUpdatedTimestamp:1666905694e3,content:' Contributing to the translation of PojavLauncher \n \n \n For the convenience of translators, we use Crowdin . \n \n \n Anyone can join the project on Crowdin and start translating right now. \n \n \n Join the project \n Getting started for newcomers on Crowdin \n \n \n After you sign up on Crowdin and join the project, you can start translating the strings. \n \n \n First, on the project page, you should select the language you want to translate PojavLauncher into. \n \n \n Then, you will see the files to be translated. After the name of each file, you can see the translation progress of that file. The blue bar represents the progress of translated strings, and the green bar represents the progress of approved strings. \n \n \n Now you can click on the "Translate all" button and you will be moved to the translation editor. But first, Crowdin will suggest you to read useful tips for using the translation editor. \n What to translate and what not to translate? \n WARNING \n Things not to translate: PojavLauncher, codes like <1>, , \\n, %s, %.2f, %1$s, %@ , arrows like ◀, \n \n \n Except for the list above, you can translate anything else. \n Proofreading \n \n Proofreading of the strings is made by the language proofreader. Proofreaders are appointed by @Syjalo. Please don\'t ask him to approve the strings or appoint somebody as a proofreader. He will choose a suitable candidate in his opinion. Approved or most voted translation suggestions will be added to the launcher. \n \n'},{title:"Contributing to this website",frontmatter:{},regularPath:"/CONT-WEBSITE.html",relativePath:"CONT-WEBSITE.md",key:"v-4e22b48a",path:"/CONT-WEBSITE.html",headers:[{level:2,title:"What is Vuepress?",slug:"what-is-vuepress"},{level:2,title:"How do I contribute?",slug:"how-do-i-contribute"},{level:2,title:"What to do and what not to do?",slug:"what-to-do-and-what-not-to-do"}],lastUpdated:"10/27/2022, 9:21:34 PM",lastUpdatedTimestamp:1666905694e3,content:" Contributing to this website \n We're always happy to accept help from our beloved community, and this website is no different. However, we want to cover some ground rules before you get started. \n What is Vuepress? \n Vuepress is a static website generator, although it looks really good. It takes three things: a config file, markdown (.md) documents, and resources for images and such, and then compiles them into HTML for browser-friendly access. \n How do I contribute? \n Simple: \n \n \n Fork this repository . \n \n \n Click on \"Edit this page\" on any page, then edit the markdown file with your properly tuned syntax (using Discord? You already know Markdown), then save and commit. It's that easy. \n \n \n If you want to see your changes on your fork, you'll have to either \n \n \n 1- Rename the repo to .github.io \n \n Set the Pages settings to build from the root of gh-pages \n \n 2- (if you have node installed), run npm install && npm run build && npm run start . \n What to do and what not to do? \n You're allowed to pretty much change anything, as long as it follows all of these rules: \n \n Do not make any promises unless you were given permission from the developers. \n Do not spread misinformation and inaccurate content. \n Although you can change everything else, do not touch .vuepress/config.js . If you need to change something in it, let Crystall1nedev or CriticalRange know. \n Never, never ever ever merge gh-pages and main into each other. gh-pages is the result , main is the rough draft . \n Do not delete any dot files (.nvmrc, .gitattributes, etc) \n \n With all of these in mind, you're free to help us out with our website! \n"},{title:"Customizing the on-screen controls",frontmatter:{},regularPath:"/CUSTOM-CONTROLS.html",relativePath:"CUSTOM-CONTROLS.md",key:"v-81274ae2",path:"/CUSTOM-CONTROLS.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:' Customizing the on-screen controls \n Android \n There is "Custom controls" button in the main menu, by clicking that you will be able to change you custom controls. \n \n You can access the options by clicking the cogwheel at the top of the screen. \n \n After clicking the cogwheel, you get a drawer with the following options: \n \n 1- Adds a button of your liking. \n 2- Adds a button drawer, if you press it, your buttons that you assigned will show up. \n 3- Adds a joystick. \n 4- Loads custom controls. \n 5- Saves current custom controls. \n 6- Option to select default custom controls. \n 7- Exports current controls. \n iOS \n To start editing your controlmap in iOS, head to top-left and press the sidebar. (shown in image) \n \n Press the custom controls button. \n \n After that, long press anywhere for more options. \n \n Now you will get a pop-up with the following options: \n \n 1- Exits the controlmap editor. \n 2- Saves the current layout/edited controlmap. \n 3- Loads an existing .json (controlmap) from the controlmap folder. \n 4- Adds a safe area where buttons are restricted from getting outside of the safe area, whilst not registering touches nor gestures outside the safe area. \n 5- Adds a button to your liking. \n 6- Adds a button drawer, has a function of adding a sub-button binded to its drawer. When pressed, buttons binded to it will show up, configurable to make it hold button instead of toggling. \n 7- Adds a joystick. \n'},{title:"Random crashes during gameplay",frontmatter:{},regularPath:"/CRASHES.html",relativePath:"CRASHES.md",key:"v-4742fe6f",path:"/CRASHES.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Random crashes during gameplay \n Make sure you aren't getting the warning due to too much allocated RAM. Even if you are close to the limit but not breaking it, RAM allocation might still be the cause of the crash. Try allocating 100-250MB less than the maximum, depending on your device. Keep in mind that when using big modpacks, you might also be crashing because you don't have enough allocated memory (that's if you see java.lang.OutOfMemoryError in your log file). \n Highest RAM allocation doesn't mean highest performance. Your might usually gain tens of FPS by figuring out which RAM allocation setting runs Pojav the best on your device. \n"},{title:"Installing custom versions of Minecraft",frontmatter:{},regularPath:"/CUSTOM-MC.html",relativePath:"CUSTOM-MC.md",key:"v-345a158f",path:"/CUSTOM-MC.html",headers:[{level:3,title:"Installation:",slug:"installation"},{level:3,title:"Notes:",slug:"notes"}],lastUpdated:"4/10/2023, 12:22:28 PM",lastUpdatedTimestamp:1681129348e3,content:' Installing custom versions of Minecraft \n If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers! \n Installation: \n \n If you are on Android, install MiXplorer and MiX Archive \n Make a copy of the Minecraft version you want to modify \n Rename the custom version folder , .jar and .json to your desired custom version name (for example, foo , foo.jar , foo.json ) \n Open the custom version\'s .json with MiX\'s Text Editor \n Remove "downloads:{"client"...} as shown in the screenshot \n \n \n \n Change "id": "1.2.4" to "id": "(your custom version name)" \n Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft" \n Save the .json \n Modify your .jar as desired, make sure to delete the META-INF folder afterwards. \n Start up your custom version! \n Notes: \n \n If your game is stuck at the Mojang screen afterwards, try deleting options.txt \n This guide is NOT for Babric or Cursed Fabric! \n \n'},{title:"Device requirements",frontmatter:{},regularPath:"/DEVICES.html",relativePath:"DEVICES.md",key:"v-64989b6f",path:"/DEVICES.html",headers:[{level:2,title:"Android",slug:"android"},{level:3,title:"Minimum requirements:",slug:"minimum-requirements"},{level:3,title:"Recommended requirements:",slug:"recommended-requirements"},{level:3,title:"ChromeOS",slug:"chromeos"},{level:2,title:"iOS",slug:"ios"},{level:3,title:"Minimum requirements:",slug:"minimum-requirements-2"},{level:3,title:"Recommended requirements:",slug:"recommended-requirements-2"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Device requirements \n \n Minimum means 60 or more average FPS on 1.12.2 with OptiFine installed at lowest settings. \n Recommended means 60 or more average FPS on 1.21.1 with OptiFine installed with the following settings: \n 10 Render Distance \n Smooth Lighting \n All animations \n 75% Resolution \n Android \n Minimum requirements: \n \n Qualcomm Snapdragon 460 (or equivalent) \n Android 5.0 \n 1GB RAM \n Recommended requirements: \n \n Qualcomm Snapdragon 855 (or equivalent) \n Android 8.0 and newer \n 6GB RAM or higher \n ChromeOS \n \n Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps. \n iOS \n Minimum requirements: \n \n Apple A8/A8X SoC \n iOS 14/iPadOS 14 or higher\n \n iOS/iPadOS 12 & 13 is losing support in PojavLauncher 2.3. \n \n \n 2GB RAM \n Recommended requirements: \n \n Apple A14/A12X Bionic SoC \n iOS/iPadOS 14 or higher \n 6GB RAM or higher \n \n"},{title:"Official PojavLauncher Discord server",frontmatter:{},regularPath:"/DISCORD.html",relativePath:"DISCORD.md",key:"v-424cf6cf",path:"/DISCORD.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Official PojavLauncher Discord server \n The only official invite for the PojavLauncher server, beware of invites created by other users.\n invite link \n NOTE: A Minecraft account is REQUIRED in order for you to be able to seek PojavLauncher-based support in the server. \n"},{title:"Using environment variables",frontmatter:{},regularPath:"/ENV-VARS.html",relativePath:"ENV-VARS.md",key:"v-f522bdba",path:"/ENV-VARS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Using environment variables \n"},{title:"Exporting videos with Replay Mod",frontmatter:{},regularPath:"/FFMPEG.html",relativePath:"FFMPEG.md",key:"v-9676641e",path:"/FFMPEG.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Exporting videos with Replay Mod \n \n Download the ffmpeg binary here . Choose one based on your device’s architecture.\n \n (For GitHub builds) Due to the limit of Replay’s command window, you'll need to rename the executable to a short name, like -> :fr: . Let’s call it . \n \n \n Install an APK Editor from Google Play or anywhere else (Make sure to use safe sources such as APKPure). \n Follow the instructions of the app to add the executable to /lib/ folder of the APK. Then build the APK and install it.\n \n (Required for a clean install) Install required mods (Forge, Replay Mod). \n \n \n Now launch Minecraft. We're not done yet, so force close it after launching. \n Find latestlog.txt.\n \n Open it and find this line: Added custom env: POJAV_NATIVEDIR= . \n Copy the part. \n \n \n Launch the game again, go to Replay Viewer and load the replay you want to export. \n Follow Replay’s instructions to add keyframes, then (press T show mouse cursor and) click at Render Camera Path . \n Scroll to the bottom, paste the text you copied in step 5 into the first command line window, then write / (step 1) at the end of the text line. \n Tap Render and enjoy your video. \n \n"},{title:"Downloading a copy of Minecraft",frontmatter:{},regularPath:"/INSTALL-MC.html",relativePath:"INSTALL-MC.md",key:"v-de1236aa",path:"/INSTALL-MC.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Downloading a copy of Minecraft \n"},{frontmatter:{},regularPath:"/FIRST-STEPS.html",relativePath:"FIRST-STEPS.md",key:"v-d825f8e2",path:"/FIRST-STEPS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:""},{title:"Installing the launcher",frontmatter:{},regularPath:"/INSTALL.html",relativePath:"INSTALL.md",key:"v-6b9f262f",path:"/INSTALL.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"},{level:3,title:"TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+)",slug:"trollstore-compatibility-depends-on-whether-your-idevice-is-arm64-a8-a11-or-arm64e-a12-m1"}],lastUpdated:"8/8/2024, 1:52:46 PM",lastUpdatedTimestamp:1723125166e3,content:' Installing the launcher \n Android \n Instructions for installing PojavLauncher on Android devices. \n Google Play \n You can grab PojavLauncher from the Google Play Store here. \n \n GitHub Actions \n If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions. \n Using nightly.link: \n \n Download the Latest Artifact using this link. \n Install as any usual .apk \n \n Using Github (requires an account): \n \n Start off by heading to the PojavLauncher repository and switching to the "Actions" tab. \n \n \n \n Next, select "Android CI" in the workflow selection menu. \n \n \n \n Choose a build with a green or blue checkmark next to the branch you want to download.\n \n v3_openjdk will be the one for most people. \n \n \n \n \n \n Under "Artifacts", choose the build type you wish to download.\n \n app-debug will be the one for most people. \n \n \n \n \n \n Install as any usual .apk \n \n \n Source \n Instructions coming in a future revision to this website. \n iOS \n Instructions for installing PojavLauncher on Apple devices. \n Sideloading (TrollStore) \n We recommend TrollStore for all users if possible. This method allows for automatic JIT enabling, more memory allocation, and non-revoking installs. \n Note: Enable URL Schemes in TrollStore settings. \n TrollStore compatibility depends on whether your iDevice is arm64 (A8-A11) or arm64e (A12+/M1+) \n For arm64, TrollStore is compatible with the following iOS versions: \n - 14.0 to 16.6.1\n- 17.0 \n- 16.7 to 16.7.8 (*)\n- 17.0.1 to 17.5.1 (*)\n- 18 b1 to 18 b4 (*)\n \n (*) - requires the palera1n jailbreak \n For arm64e, TrollStore is compatible with the following iOS versions: \n - 14.0 to 16.6.1\n- 17.0 (*)\n\n(*) - No installation method at the moment.\n \n \n \n Follow these steps to install TrollStore . \n \n \n Download the latest release from here . \n \n For a specific release, you can find its package on the Releases page \n \n \n \n Locate where the .ipa was downloaded, tap the Share icon, and choose TrollStore in the list of options available. \n \n \n You can now enjoy Minecraft: Java Edition on your iDevice! \n \n Sideloading (Jailed) \n Requires an active Apple ID, that has signed into the Apple Developer Program . \n PojavLauncher supports being sideloaded with AltStore, Sideloadly, and Xcode. Instructions to use AltStore are below--for other options, refer to their documentation. \n \n \n Follow the official guide on installing AltStore itself: \n \n Instructions for Mac and Windows \n \n \n \n Install the latest release using this Install with AltStore button. \n \n For a specific release, you can find its button on the Releases page \n \n \n \n Installing PojavLauncher is not the end for iOS devices. In order to play Minecraft itself, you will need to enable JIT . \n \n Sideloading (Jailbroken) \n Currently, AppSync Unified is not supported. There is an issue regarding the data directory when installed with AppSync. \n You can follow the Sideloading (TrollStore) or Sideloading (Jailed) steps to sideload on a jailbroken iDevice. Regardless of the method, you will benefit from automatic JIT enabling and more memory allocation. \n \n GitHub Actions \n Requires a GitHub account in order to download. \n If you want the latest and greatest to test before the official release, you can grab a copy from GitHub Actions. \n \n Start off by heading to the PojavLauncher iOS repository and switching to the "Actions" tab. \n \n \n \n Next, select "Development Build" in the workflow selection menu. \n \n \n \n Choose a build with a green or blue checkmark next to the branch you want to download.\n \n main will be the one for most people. \n \n \n \n \n \n Under "Artifacts", choose net.kdt.pojavlauncher.ipa \n \n \n Once you have an Actions build downloaded, you can now unzip the file and use this .ipa for TrollStore or sideloading. \n \n Source \n Instructions coming in a future revision to this website. \n \n'},{title:"System support in future versions of PojavLauncher iOS",frontmatter:{},regularPath:"/IOS-SUPPORT.html",relativePath:"IOS-SUPPORT.md",key:"v-d168dba2",path:"/IOS-SUPPORT.html",headers:[{level:2,title:"But why?",slug:"but-why"},{level:2,title:"So what happens now?",slug:"so-what-happens-now"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" System support in future versions of PojavLauncher iOS \n This announcement will be covering the next 3 releases of PojavLauncher iOS. \n We've made some great strides with the iOS port of PojavLauncher: fixing 1.17 and newer , bringing OpenJDK 8 to iOS , and now unveiling an jailed variant . However, all of the advancements we're making also stirred up old conversations, and we've come to a final conclusion: \n A future release of PojavLauncher will require iOS 14.0 and later. \n But why? \n Supporting iOS 12.0 and newer was a feat of engineering. However, it created multiple issues with feature support and user experience. We need to verify that our code works on iOS 12 before going ahead and compiling--if it does not, this complicates our development as we are faced with two options: dropping the feature on older versions, or importing external libraries. This causes slower development times, or lack of the feature entirely for our users. \n We also observed the userbase currently playing on PojavLauncher. Most of the users asking for support in our Discord server (which is many times more active than the Issues tab on the GitHub repository) are already running iOS 14.0 or newer, and a few cases of users on iOS 13. We barely see users running iOS 12 anymore, and now that PojavLauncher works jailed, users can update to a newer release of iOS while still retaining Java Edition. \n This decision also comes after we understood that we don't really have the ability to test on these older versions anymore. Our devices are already running iOS 14.0+, and so are most of our testers. \n So what happens now? \n Things are going to get somewhat complex, but this document will sort these things out. \n PojavLauncher 2.1 - Recap \n PojavLauncher 2.1 was largely unchanged from its original plans. Just to recap, its key features: \n \n New split user interface to allow switching menus with ease \n Rewritten preferences menu \n Transitioned code to Objective-C from Java \n First release with compatibility unjailbroken \n Final release with jailbreak-specific packages \n \n This release will also begin to warn users with 1GB of memory about the incoming end-of-life. \n \n PojavLauncher 2.2 - 1GB EOL \n PojavLauncher 2.2 was already planned to drop the Apple A7-equipped devices from support, due to performance and stability issues. This has been extended all devices with less than 1 gigabyte of total memory: \n \n iPhone 5s \n iPhone 6 \n iPhone 6 Plus \n iPad mini (2nd generation) \n iPad mini (3rd generation) \n iPad Air (1st generation) \n iPod touch (6th generation) \n \n The a7_allow boolean in the preferences file has been replaced with force_unsupported_launch to reflect the change. As stated before, support for these devices will end 3 weeks after 2.2 releases, or immediately, for you, if this boolean is toggled. \n This release will also begin to warn users on iOS 12 or 13 about the incoming end-of-life. If you are using a device that is capable of running iOS 14 or later, the warning will additionally tell you to upgrade to a newer version of iOS. \n \n PojavLauncher 2.3 - iOS 14.0+ begins \n PojavLauncher 2.3 will begin the end-of-life process for iOS 12/13 users. Taking a similar approach to 2.2, the force_unsupported_launch boolean can be toggled to override the behaviour of the launcher not opening. Support for these versions will end 3 weeks after 2.3 releases, or immediately, for you, if this boolean is toggled. \n As part of this deprecation, beta builds of PojavLauncher 2.4 will move to iOS 14.0 and newer APIs. Moving to these APIs may break the boolean's ability to continue launching the application. \n \n PojavLauncher 2.4 - iOS 14.0+ completed \n PojavLauncher 2.4 will complete the transition to iOS 14.0 APIs and be incompatible with iOS 12/13 without modification to the source code. \n \n"},{title:"Crash when executing a jar",frontmatter:{},regularPath:"/JARCRASHED.html",relativePath:"JARCRASHED.md",key:"v-05d0c7e5",path:"/JARCRASHED.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Crash when executing a jar \n This is not how it works, mods have to be installed into the .minecraft/mods directory. Mod loaders (e. g. Forge and Fabric) and some mods like OptiFine and Iris have an integrated installer, this is not the case for the absolute majority of mods, meaning they don't have any GUI that would run when opening them with the Execute .jar button in the launcher. If you don't know how to get into the .minecraft directory, please read the article on how to access it. \n"},{title:"Installing Java runtimes manually",frontmatter:{},regularPath:"/JAVARUNTIMES.html",relativePath:"JAVARUNTIMES.md",key:"v-064d9641",path:"/JAVARUNTIMES.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Installing Java runtimes manually \n If you for whatever reason decided to install app-debug-noruntime or you want to update for whatever reason, here's how you do it. \n \n Go to the android-openjdk-build-multiarch repo on GitHub, pick the branch you want (e. g. buildjre8 or buildjre17-21.) \n Log into GitHub, else you won't be able to download the runtime. \n Click on the name of the action, then download the pojav version of the runtime (e. g. jre17-pojav ). Do not download jdk, your game might crash with it. \n Extract the zip with your file manager. ZArchiver and MiXplorer are recommended. \n Open Pojav and go to Settings → Java Tweaks → Runtime Manager → Add new, then select the .tar.xz file you just extracted from the zip. \n \n"},{title:"Adding custom Java arguments",frontmatter:{},regularPath:"/JAVA-ARGS.html",relativePath:"JAVA-ARGS.md",key:"v-beda3462",path:"/JAVA-ARGS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Adding custom Java arguments \n"},{title:"Which Java version to use?",frontmatter:{},regularPath:"/JAVAVERSION.html",relativePath:"JAVAVERSION.md",key:"v-72d5050f",path:"/JAVAVERSION.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Which Java version to use? \n Generally, this is what you want to know:\n- Minecraft 1.17 and newer: Java 21\n- Minecraft 1.16.5 and older: Java 8 \n Note: some modded Minecraft versions require a different Java runtime than normal (e. g. Cursed Fabric or Babric for Minecraft b1.7.3). Others might work even when using a different runtime (e. g. Fabric for Minecraft 1.16.5 allows using Java 17). However, some mods, notably OptiFabric, might stop working altogether. \n"},{title:'iOS and "JIT"',frontmatter:{},regularPath:"/JIT.html",relativePath:"JIT.md",key:"v-ab47dc22",path:"/JIT.html",headers:[{level:2,title:"What is JIT and why do I care?",slug:"what-is-jit-and-why-do-i-care"},{level:2,title:"What does this mean for PojavLauncher?",slug:"what-does-this-mean-for-pojavlauncher"},{level:3,title:"Jailbroken devices",slug:"jailbroken-devices"},{level:3,title:"Unjailbroken devices",slug:"unjailbroken-devices"},{level:2,title:"What are the methods to enable JIT?",slug:"what-are-the-methods-to-enable-jit"},{level:2,title:"So how do I enable JIT?",slug:"so-how-do-i-enable-jit"},{level:2,title:"Methods coming Soon:",slug:"methods-coming-soon"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" iOS and \"JIT\" \n What is JIT and why do I care? \n JIT stands for just-in-time compilation , and (although not specific to Java), it serves as a method of executing Java code quicker then its alternatives, by compiling essential instructions at runtime, rather than its slower alternatives that compile all code at runtime repeatedly or writing in a less portable, hardware-level format. It is the fastest™ method to running Minecraft: Java Edition on mobile devices, essentially required for a more pleasant gaming experience. \n On Apple's mobile platforms (iOS, iPadOS, tvOS, in our case), a security feature known as code-signing is deeply rooted in the operating system. It serves to verify that applications haven't been tampered with after they were installed by a user, done so that malicious payload cannot be installed after-the-fact by a malicious user(e.g. hackers). However, due to the process in which code-signing works, this prevents JIT from functioning properly as it mainly requires reading code, modifying it, and then executing it in some fashion (whether that be by copying the code to a new location in memory, executing directly, or mirroring it). \n What does this mean for PojavLauncher? \n Jailbroken devices \n Users with Jailbroken devices don't need to worry about JIT requirements, as PojavLauncher is specially built to detect jailbreaks and automatically enable new features. \n Unjailbroken devices \n Users with Unjailbroken devices can see two different outcomes, based on what they used to sideload PojavLauncher. \n TrollStore \n If you used TrollStore to sideload PojavLauncher, good news: PojavLauncher takes advantage of the extended entitlements with TrollStore and automatically enables JIT when launched. \n Normal sideload \n If you sideload normally, you will need to enable JIT in some way. The most common method is to attach a debug server to the application while it's running - AltStore, SideStore, SideJITServer, and Jitterbug all of these use this method to enable JIT. \n The only downside to this method is that you are required to be connected to a WiFi network in order to enable JIT. (*) \n (*) - Enabling JIT on iOS 17.0.1+ & iOS 18 betas (at the moment) can only be enabled through AltJIT (macOS only) or SideJITServer, which requires a computer (Windows, MacOS and Linux only). This is because these methods utilize pymobiledevice3 to enable JIT due to changes in iOS. \n What are the methods to enable JIT? \n The methods to enable JIT can be found here . \n Methods not listed here are not confirmed or recommended by us for use with PojavLauncher. \n So how do I enable JIT? \n \n \n TrollStore Lite (!) \n \n \n TrollStore (@) \n \n \n AltStore AltJIT (#) \n \n \n Jitterbug ($) \n \n \n SideStore ($) \n \n \n SideJITServer (%) \n \n \n (!) - Limited to Jailbroken devices only. (JIT is granted by the Jailbreak itself) \n (@) - Limited to devices with the CoreTrust bug. (iOS 14.0 - iOS 16.6.1 & iOS 17.0) \n (#) - AltJIT for iOS 17.x & iOS 18 betas only works on macOS. Requires pymobiledevice3. \n ($) - Does not work for iOS 17.x & iOS 18 betas, as enabling JIT will be done with pymobiledevice3. \n (%) - Does not work for iOS 16.x or below, use the other methods listed above to enable JIT. This method is meant for iOS 17.x & iOS 18 betas. \n Methods coming Soon: \n \n \n JITStreamer 2.0 (^) \n \n \n UTM SE (^) \n \n \n (^) - iOS 17.4+ Only \n"},{title:"Offline mode is going places.",frontmatter:{},regularPath:"/LOCAL-MODE.html",relativePath:"LOCAL-MODE.md",key:"v-7a85af9e",path:"/LOCAL-MODE.html",lastUpdated:"3/9/2023, 5:28:16 AM",lastUpdatedTimestamp:1678339696e3,content:" Offline mode is going places. \n Offline mode has been replaced by local accounts, which still allows you to play Minecraft offline but does not allow you to download Minecraft. In order to download Minecraft, you will have to sign in to the launcher using a online account (Microsoft/Mojang account with Minecraft purchased) \n PojavLauncher does NOT , and will NEVER support piracy acts . You MUST purchase Minecraft legally and follow Mojang's Terms of Service to download Minecraft.\nTo purchase Minecraft click this . \n"},{title:"Is PojavLauncher legal and safe to use?",frontmatter:{},regularPath:"/LEGAL.html",relativePath:"LEGAL.md",key:"v-003c2faf",path:"/LEGAL.html",lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Is PojavLauncher legal and safe to use? \n Although in the past it may have not been the case, PojavLauncher is now legal in Microsoft's perspective. This is due to our objective to prevent piracy with our launcher, and reject offering support by any means for those who do not own the game. \n PojavLauncher also abides by the Minecraft EULA, providing a free and open-source launcher that does not redistribute game files on any other server asides Mojang's. \n Authentication and downloads are performed directly with Mojang's servers--PojavLauncher never collects any of your personal information such as credentials or data, as your information is only stored on-device where only you can access it. \n PojavLauncher does not cause harm to your device, and does not distribute harmful programs and executables. \n \n This cannot be verified if you acquire PojavLauncher from a source that is not official(e.g. pgyer.com, ipaomtk.com, etc.). \n For jailbroken iOS users: jailbreaking can be considered a security risk (which is the reason why Apple is against it) so be cautious when jailbroken. \n Other Minecraft: Java Edition on Android/iOS apps highly likely steals assets and/or code from PojavLauncher. They are not owned nor managed by PojavLauncherTeam. \n \n"},{title:"I have a mod conflict",frontmatter:{},regularPath:"/MODCONFLICT.html",relativePath:"MODCONFLICT.md",key:"v-8c309662",path:"/MODCONFLICT.html",headers:[{level:2,title:"We don't know what doesn't work means",slug:"we-don-t-know-what-doesn-t-work-means"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" I have a mod conflict \n Try removing the mods by half: \n \n Remove half of the mods (including mods that depend on other mods from the first half) \n If you don't crash, put in half of the mods you just removed, then continue adding up. If you do crash, remove half of the mods you have now. \n Figure out which mod is causing the issue. \n We don't know what doesn't work means \n \"Doesn't work\" does not actually mean anything, explain more thoroughly. For example: \n Wrong: My game crashes please help!11!1\n Correct: After I installed OptiFine, my game crashes, here's the latestlog.txt. Please tell me which mod it's conflicting with. \n Wrong: My resource pack doesn't show up!11!1\n Correct: I installed a resource pack from (link) and I have no idea how to properly install it, it doesn't show up in-game. Do I leave it as a zip, extract it or what do I do? Here's a video of how it looks. \n If you don't really know what you are doing, the best you can do is just send the log file (latestlog.txt), you don't have to say anything about it. \n"},{title:"Installing any mod results in a crash",frontmatter:{},regularPath:"/MODCRASHING.html",relativePath:"MODCRASHING.md",key:"v-061053ef",path:"/MODCRASHING.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:' Installing any mod results in a crash \n Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead. \n'},{title:"Supported Minecraft versions",frontmatter:{},regularPath:"/MCVERS.html",relativePath:"MCVERS.md",key:"v-f8efcd22",path:"/MCVERS.html",headers:[{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"7/31/2024, 2:36:33 PM",lastUpdatedTimestamp:1722436593e3,content:" Supported Minecraft versions \n With each new Minecraft release comes the question: Will it play nice with PojavLauncher? \n Thanks to the hard work from PojavLauncherTeam, both the Android and the iOS port now cover most Minecraft versions... \n ...with some small exceptions that will be listed below. \n Android \n Current issues, as of the Foxglove update: \n iOS \n Current issues, as of the v2.2 Deepslate update: \n \n v2.2 Deepslate will not open versions of minecraft past 1.20 (*) \n v2.2 Deepslate does not have Java 21. (*) \n \n (*) - To fix these issues, please use the most recent github actions developer build . \n"},{title:"Installing custom versions of Minecraft",frontmatter:{},regularPath:"/MODDED-MC.html",relativePath:"MODDED-MC.md",key:"v-010d50e2",path:"/MODDED-MC.html",headers:[{level:3,title:"Installation:",slug:"installation"},{level:3,title:"Notes:",slug:"notes"}],lastUpdated:"3/10/2023, 12:57:25 PM",lastUpdatedTimestamp:1678453045e3,content:' Installing custom versions of Minecraft \n If you want an old mod or modpack to run (Minecraft 1.2.4 and older), this is for you. Warning, not for newcomers! \n Installation: \n \n If you are on Android, install MiXplorer and MiX Archive \n Make a copy of the Minecraft version you want to modify \n Rename the custom version folder , .jar and .json to your desired custom version name (for example, foo , foo.jar , foo.json ) \n Open the custom version\'s .json with MiX\'s Text Editor \n Remove "downloads:{"client"...} as shown in the screenshot \n \n \n \n Change "id": "1.2.4" to "id": "(your custom version name)" \n Change "mainClass": "net.minecraft.launchwrapper.Launch" to "mainClass": "net.minecraft.client.Minecraft" \n Save the .json \n Modify your .jar as desired, make sure to delete the META-INF folder afterwards. \n Start up your custom version! \n Notes: \n \n If your game is stuck at the Mojang screen afterwards, try deleting options.txt \n This guide is NOT for Babric or Cursed Fabric! \n \n'},{title:"My mods don't show up in-game",frontmatter:{},regularPath:"/MODNOTSHOWINGUP.html",relativePath:"MODNOTSHOWINGUP.md",key:"v-23fd29af",path:"/MODNOTSHOWINGUP.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:' My mods don\'t show up in-game \n \n Please check the log file. In case you find yourself getting "Permission denied" on all of your files, please do not cut the mods, copy them instead. \n If a custom path is set in Profile options (pencil button), make sure your mods are in your custom path. \n \n'},{title:"Modpacks",frontmatter:{},regularPath:"/MODPACKS.html",relativePath:"MODPACKS.md",key:"v-d732ddea",path:"/MODPACKS.html",headers:[{level:2,title:"Official Modpacks from PojavLauncherTeam",slug:"official-modpacks-from-pojavlauncherteam"},{level:2,title:"Android",slug:"android"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"8/29/2024, 12:40:33 AM",lastUpdatedTimestamp:1724892033e3,content:' Modpacks \n Modpacks, usually archived in a .zip form containing mod metadatas, are mods usually "duct taped" together to bring modded Minecraft in a more convenient way rather than handpicking mods one by one. \n Popular examples of these can be found on both the Modrinth and the CurseForge website. \n Official Modpacks from PojavLauncherTeam \n \n PojavOptimize (crystall1nedev, Chuck_Norris_) - A collection of mods to improve the performance and user experience. \n PojavOptimize (GaucovyAero) - For maximum FPS, this modpack ships with the lowest settings possible. \n \n These modpacks are specially made for PojavLauncher, but it doesn\'t mean you can\'t try them on PC too! \n Installing Modpacks \n Android \n \n Click on the profile section at top of the play button. \n \n \n \n Press on the "create new profile" button. \n \n \n \n Click on "create modpack profile". \n \n \n \n Pick your desired modpack, enjoy! \n iOS \n \n Go to profiles from the sidebar. \n \n \n \n Press the "+" button \n \n \n \n Once a prompt appears, press the "Modpack" option. \n \n \n \n Pick your desired modpack, enjoy! \n \n \n'},{title:"Unsupported Mods and Clients (+ Workarounds/Fixes)",frontmatter:{},regularPath:"/MODS-UNSUPPORTED.html",relativePath:"MODS-UNSUPPORTED.md",key:"v-3eadfe49",path:"/MODS-UNSUPPORTED.html",headers:[{level:2,title:"Performance Mods + Shaders",slug:"performance-mods-shaders"},{level:2,title:"Skyblock Mods",slug:"skyblock-mods"},{level:2,title:"Input-related Mods",slug:"input-related-mods"},{level:2,title:"Other Mods",slug:"other-mods"},{level:2,title:"Unsupported Clients",slug:"unsupported-clients"}],lastUpdated:"6/28/2024, 5:23:15 AM",lastUpdatedTimestamp:1719552195e3,content:" Unsupported Mods and Clients (+ Workarounds/Fixes) \n Not everything that works on PC works on PojavLauncher. Below is a non-exhaustive list of mods that may not work, along with fixes or workarounds. \n Performance Mods + Shaders \n \n Sodium \n \n GL4ES Patch \n 0.5.x and later does not work without disabling the terrain optimization mixins. It's not recommended and therefore isn't faster than Vanilla/Optifine \n \n \n Embeddium \n \n Same problem as Sodium \n \n \n Rubidium \n \n Gl4ES Patch for GL4ES, otherwise same as the previous two \n \n \n Chlorine \n ShadersMod (GLSL Shaders) \n Iris , Iris Installer \n OptiFine \n \n Render Regions don't work \n \n \n Optifine Shaders: The only supported shaders are Open4ES for GL4ES. It works best with Adreno graphics (found in Qualcomm Snapdragon SoCs) and PowerVR graphics, with required patches (found in several low-end MediaTek SoCs). Mali GPUs are not supported. Below is a list of smartphones that are tested and works with Open4ES:\n \n Xiaomi Poco F3 (Snapdragon 870) \n Xiaomi Poco X5 Pro (Snapdragon 778G) \n Xiaomi Redmi Note 8 (Snapdragon 665) \n Oppo A53 (Snapdragon 460) \n Skyblock Mods \n \n Essential \n Skytils \n \n 1.3.0-pre5 works \n \n \n Patcher \n \n 1.6.1 works \n \n \n NotEnoughUpdates \n \n 2.1.1-pre-1 works \n \n \n Skyblock Extras \n Input-related Mods \n \n MidnightControls \n Controllable \n MouseTweaks \n \n Almost all of them don't work because they aren't made with Android's inputs in mind \n Other Mods \n \n Legacy4J \n \n Set selectedControllerHandler in options.txt to 0 \n \n \n Create \n \n Disable Flywheel. \n \n \n Flywheel \n Physics Mod \n Scannable \n \n Works on 1.12 \n \n \n Colormatic \n ItemPhysic \n \n Lite works \n \n \n RandomPatches (Forge) (Fabric) \n Smooth Font \n MrCrayfish's Gun Mod \n \n 1.16.5 is broken \n \n \n Applied Energistics , Applied Energistics 2 \n Zombe \n ReplayMod \n \n FFMPEG is wrongly placed \n \n \n Dynamic Surroundings \n \n White textures on 1.12 \n \n \n Sex mod (thanks @Adiixyz ) \n Immersive Vehicles \n \n Only broken on Forge \n \n \n Immersive Engineering \n \n Works on 1.12 \n \n \n Immersive Portals \n Immersive Railroading \n Immersive Engineering \n DiscordRPC \n \n If your PvP/Hack Client crashes because of this, contact their developers for a fix. \n Unsupported Clients \n \n BatMod \n LabyMod \n MysteryMod \n Lunar Client \n \n \".exe\" \n \n \n Badlion Client \n \n \".exe\" \n \n \n Salwyrr Client \n \n You can't use a launcher in a launcher \n \n \n Meteor Client \n Pizza Client \n Cheeto Client \n 3arthh4ck \n \n Patched version \n \n \n Ares Client \n Credits \n \n https://github.com/Mathias-Boulay/ and all the people in issue #1948 \n https://github.com/ZenZenXDz \n https://github.com/revoscode \n https://github.com/GaucovyAero \n \n"},{frontmatter:{},regularPath:"/NOTCHFIX.html",relativePath:"NOTCHFIX.md",key:"v-2a5ebdfe",path:"/NOTCHFIX.html",lastUpdated:"2/22/2023, 12:51:27 PM",lastUpdatedTimestamp:1677070287e3,content:""},{title:"Optimizing the game",frontmatter:{},regularPath:"/OPTIMIZATION.html",relativePath:"OPTIMIZATION.md",key:"v-e815d23e",path:"/OPTIMIZATION.html",headers:[{level:2,title:"OptiFine",slug:"optifine"},{level:3,title:"Getting (and installing) OptiFine",slug:"getting-and-installing-optifine"},{level:2,title:"Sodium",slug:"sodium"},{level:2,title:'"Optimizing" ModPacks',slug:"optimizing-modpacks"},{level:2,title:"JVM Arguments",slug:"jvm-arguments"}],lastUpdated:"10/28/2022, 9:17:13 AM",lastUpdatedTimestamp:1666948633e3,content:" Optimizing the game \n There are lots of ways to optimize your Java Edition experience if it's being slow for you; or your device is just bad in general. From mods like OptiFine and Sodium to more complex stuff like JVM arguments, we'll cover all of them here. \n OptiFine \n OptiFine, previously known as Optimine and OptiFog; is a Minecraft modification created by sp614x, Insecs, Payton147 and lacuravivid in which the development began on December 22, 2010; was a modification originally created about pushing the fog away but also other features; like FPS Boost, Occlussion Culling, Hidden Geometry removal, Texture Mipmaping and Chunk Loading optimizations in the first development/beta versions of Minecraft \n Getting (and installing) OptiFine \n \n \n Go to the official OptiFine website; optifine.net .\n \n \n \n Depending on what Minecraft version you mainly use, get the specific OptiFine for it. Let's say; I play 1.12.2, so I'll get the latest 1.12.2 OptiFine available.\n Sodium \n \"Optimizing\" ModPacks \n JVM Arguments \n"},{title:"PojavLauncher",frontmatter:{home:!0,icon:"home",title:"PojavLauncher",heroImage:"/logo.png",heroText:"PojavLauncher",tagline:"A flexible, fast and open-source Minecraft Java Edition launcher for Android and iOS",actionText:"Get Started →",actionLink:"/INSTALL.md",copyright:!1,footer:"GPLv3 Licensed | Copyright © 2022, PojavLauncherTeam"},regularPath:"/",relativePath:"README.md",key:"v-b555e268",path:"/",lastUpdated:"10/30/2022, 11:13:14 PM",lastUpdatedTimestamp:1667171594e3,content:""},{title:'"App not installed"',frontmatter:{},regularPath:"/REFUSALOFINSTALL.html",relativePath:"REFUSALOFINSTALL.md",key:"v-9b08b72a",path:"/REFUSALOFINSTALL.html",headers:[{level:2,title:"Install with PC/Laptop",slug:"install-with-pc-laptop"},{level:2,title:"Install without PC/Laptop (Android 11 and newer only)",slug:"install-without-pc-laptop-android-11-and-newer-only"}],lastUpdated:"3/16/2023, 9:32:48 PM",lastUpdatedTimestamp:1679002368e3,content:" \"App not installed\" \n The error message looks like this: \n \n Not sure why this happens, but it only happened to one dev build for VenomousSteam81. \n Install with PC/Laptop \n To fix, simply grab your PC/Laptop (unless you have Android 11 and above, continue to the next session), install ADB for your OS. Then, search up how to use adb for your OS. After figuring that out, go ahead and connect your phone to your PC. \n Now, download the PojavLauncher build you downloaded on your phone (or copy the one off of your phone), do adb pm install path/to/pojavlauncher/apk.apk (if that doesn't work and gives an error, use adb shell pm install path/to/pojavlauncher/apk.apk ), and it should install. If not, please make an issue on the wiki github , making sure to mention VenomousSteam81. \n Install without PC/Laptop (Android 11 and newer only) \n First, go to settings and enable developer options (not telling you how to do so), turn on wireless ADB, accept all the ADB stuff, then either download and build it yourself with termux, buy the app from the play store , or go find some apk on the internet. \n Next, download PojavLauncher from GitHub Actions . Open LADB, accept the ADB connection, then type (or copy paste) pm install path/to/pojavlauncher/apk.apk . If that also doesn't work, please make an issue on the wiki github , making sure to mention VenomousSteam81. \n Thank you for your time! \n"},{title:'"There was a problem while parsing the package" error while installing',frontmatter:{},regularPath:"/PARSINGERROR.html",relativePath:"PARSINGERROR.md",key:"v-c6805a6a",path:"/PARSINGERROR.html",lastUpdated:"3/9/2023, 5:28:16 AM",lastUpdatedTimestamp:1678339696e3,content:' "There was a problem while parsing the package" error while installing \n Google Chrome may corrupt the installation of PojavLauncher. Instead of Chrome, use Firefox or Brave . \n Alternatively, you can use Split APKs Installer (SAI) if you would like to check the error message. (Most default installers do not show the installation error message) \n'},{title:"RLCraft",frontmatter:{},regularPath:"/PROBLEMATIC-MODS-COMMON-FIXES.html",relativePath:"PROBLEMATIC-MODS-COMMON-FIXES.md",key:"v-4d748362",path:"/PROBLEMATIC-MODS-COMMON-FIXES.html",headers:[{level:3,title:"In order to run RLCraft you have to remove these mods:",slug:"in-order-to-run-rlcraft-you-have-to-remove-these-mods"},{level:2,title:"Android",slug:"android"},{level:3,title:"WARNING: This is the short version of the guide. It is recommended to use the full version.",slug:"warning-this-is-the-short-version-of-the-guide-it-is-recommended-to-use-the-full-version"},{level:2,title:"Android",slug:"android-2"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:' RLCraft \n In order to run RLCraft you have to remove these mods: \n \n \n Custom Main Menu \n \n \n Fancy Block Particles \n \n \n Dynamic Surroundings \n \n \n Sound Filters \n \n \n credits to kasrarouhi \n Better Than Wolves (BTW) \n Android \n WARNING: This is the short version of the guide. It is recommended to use the full version. \n \n \n Download Acode Editor, ZArchiver and RAR from the Google Play Store if you haven’t already. \n \n \n Download the BTW Installer . \n \n \n Go into PojavLauncher, execute the .jar and install it. \n \n \n Launch the game (should crash that’s normal). \n \n \n Check the .jar in "***.minecraft/versions/cursed-fabric-btw-version-name***". If it doesn’t have 5MB, it is corrupted. You must replace it with the vanilla 1.5.2 .jar and name it " cursed-fabric-btw-version-name.jar ". \n \n \n The long guide explains it better (with screenshots). \n Create a new 1.5.2-custom version by copying the vanilla version and renaming the files inside that directory, then remove client downloads, change the id to 1.5.2-custom, change mainClass from net.minecraft.launchwrapper.Launch to net.minecraft.client.Minecraft , then remove the asm-all dependency downloads. \n \n \n The long guide explains it better (with screenshots). \n To fix your username, add "minecraftArguments": "--assetsDir ${assets_root} --username $ {auth_player_name} --session ${auth_session}", to your cursed-fabric-loader-btw-version-name.json . \n \n \n Download the BTW Mod .jar and put the .jar in the mods folder. \n \n \n Now we have to patch a Cursed Fabric .jar that\'s located in "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***". \n Download this file: AppletMain not running into your downloads folder, then grab the patched AppletMain file from here and copy it into this location: "***/net/fabricmc/loader/entrypoint/applet/AppletMain.class***" (inside of the unpatched .jar file using RAR). \n \n \n Grab the patched .jar file and replace the old one inside of "***/.minecraft/libraries/com/github/minecraft-cursed-legacy/cursed-fabric-loader/btw-version-name/cursed-fabric-loader-btw-version-name.jar***". Please be sure that it has the same name as the original .jar file. \n \n \n Done, launch the game. \n \n \n credits to GaucovyAero and ItAnthon \n Valkyrien Skies 2 \n Android \n As of 2024/09/09, there is no way to run VS2 on Android in Singleplayer, so your only option is to join a VS2 server. You can host a server capable of running VS2 on Android inside Termux, but it\'s not very easy to setup. \n There\'s a script created by sa1672ndo that automates this entire process to make the installation easier. \n The script can be found here . \n credits to sa1672ndo \n'},{title:"Renderers",frontmatter:{},regularPath:"/RENDERERS.html",relativePath:"RENDERERS.md",key:"v-fc8dde62",path:"/RENDERERS.html",headers:[{level:2,title:"Holy GL4ES",slug:"holy-gl4es"},{level:3,title:"A screenshot of Holy GL4ES running Minecraft 1.21.1",slug:"a-screenshot-of-holy-gl4es-running-minecraft-1-21-1"},{level:2,title:"ANGLE",slug:"angle"},{level:3,title:"A screenshot of ANGLE running Minecraft 1.21.1",slug:"a-screenshot-of-angle-running-minecraft-1-21-1"},{level:2,title:"Zink",slug:"zink"},{level:3,title:"A screenshot of Zink running Minecraft 1.21.1",slug:"a-screenshot-of-zink-running-minecraft-1-21-1"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Renderers \n Minecraft runs on OpenGL, and mobile devices generally only support OpenGL ES (GLES). And since Minecraft won't run on GLES, we have to use renderers as compatibility layers between OpenGL ES and OpenGL. \n \n All of the following renderers were tested using the same environment; Minecraft 1.21.1 with Optifine, 8 chunks, running on a Snapdragon 778g at 80% resolution scale, with Fast graphics and smooth lighting. \n Holy GL4ES \n \n Optimized for performance, Holy GL4ES is the default renderer in PojavLauncher and should be used in almost all scenrarios. \n Supports OpenGL 2.1 and has shader converting capabilities, thus makes up for about 1/8 of the OpenGL 3.x standard. \n Works on all versions of vanilla Minecraft. \n A screenshot of Holy GL4ES running Minecraft 1.21.1 \n ANGLE \n \n Slower than Holy GL4ES(*), runs on Vulkan. Should be used only in specific cases, where a server resource pack or a mod fails to run due to missing OpenGL extensions. \n Supports OpenGL 3.2 only. \n Only works on Minecraft 1.17+ \n \n \n On iOS devices, ANGLE can provide faster performance than Holy GL4ES. \n A screenshot of ANGLE running Minecraft 1.21.1 \n Zink \n \n Slow. It's only useful for mods that don't run due to missing OpenGL extensions and for running shaders. \n Supports OpenGL 4.5 on Adreno GPUs with Turnip, and OpenGL 3.3 on Mali GPUs. Adreno GPUs without Turnip will experience significant bugs or crashes when using Zink. \n Works on all vanilla versions of Minecraft. \n A screenshot of Zink running Minecraft 1.21.1 \n \n"},{title:"Resource pack or world doesn't show up",frontmatter:{},regularPath:"/RPWORLDNOTSHOWINGUP.html",relativePath:"RPWORLDNOTSHOWINGUP.md",key:"v-39f2556f",path:"/RPWORLDNOTSHOWINGUP.html",headers:[{level:2,title:"Resource pack",slug:"resource-pack"},{level:2,title:"World",slug:"world"}],lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Resource pack or world doesn't show up \n Read carefully and check the structure of the archives (zips) or folders (directories), make sure there are no additional ones. \n Resource pack \n Wrong: \npack.zip → pack (folder) → pack.mcmeta\npack (folder) → pack (folder) → pack.mcmeta \n Correct: \npack.zip → pack.mcmeta\npack (folder) → pack.mcmeta \n World \n The world cannot be zipped inside the saves folder. \n Wrong: \nworld.zip → level.dat\nworld.zip → world (directory) → level.dat \n Correct: \nworld (directory) → level.dat \n"},{title:"Signing in",frontmatter:{},regularPath:"/SIGN-IN.html",relativePath:"SIGN-IN.md",key:"v-a6521322",path:"/SIGN-IN.html",lastUpdated:"12/14/2023, 7:15:25 PM",lastUpdatedTimestamp:1702581325e3,content:" Signing in \n PojavLauncher supports multiple types of accounts to sign in: \n \n Microsoft Accounts(*) \n Local Accounts(^) \n \n (*) Microsoft Accounts only work if the Microsoft Account has Minecraft: Java Edition purchased. \n (^) Local Accounts only work if you have already logged into a Microsoft Account with Minecraft: Java Edition purchased. \n"},{title:"Bringing PojavLauncher to unjailbroken iOS",frontmatter:{},regularPath:"/UNJAIL.html",relativePath:"UNJAIL.md",key:"v-5ed8efd6",path:"/UNJAIL.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Bringing PojavLauncher to unjailbroken iOS \n After many months working on PojavLauncher for unjailbroken devices, we're so excited to announce PojavLauncher 2.1--the first official build of PojavLauncher to support unjailbroken iDevices! This means that you can enjoy PojavLauncher while still keeping your device secure and on the latest versions of iOS! \n"},{title:"Shaders",frontmatter:{},regularPath:"/SHADERS.html",relativePath:"SHADERS.md",key:"v-1b47640f",path:"/SHADERS.html",headers:[{level:3,title:"Open4ES",slug:"open4es"},{level:3,title:"Screenshot of Open4ES-Chocapic on Minecraft 1.8.9",slug:"screenshot-of-open4es-chocapic-on-minecraft-1-8-9"}],lastUpdated:"10/29/2023, 4:25:09 PM",lastUpdatedTimestamp:1698596709e3,content:" Shaders \n Open4ES \n \n Famous shaders (e.g. SEUS), which are converted to work with GL4ES. \n Open4ES GitHub repository here . \n Open4ES Old Versions Archive here . \n Screenshot of Open4ES-Chocapic on Minecraft 1.8.9 \n \n"},{frontmatter:{},regularPath:"/ZINK.html",relativePath:"ZINK.md",key:"v-751f9e23",path:"/ZINK.html",lastUpdated:"2/22/2023, 12:51:27 PM",lastUpdatedTimestamp:1677070287e3,content:""},{title:"Zink doesn't work",frontmatter:{},regularPath:"/ZINKNOTWORKING.html",relativePath:"ZINKNOTWORKING.md",key:"v-1a4f98a7",path:"/ZINKNOTWORKING.html",lastUpdated:"9/25/2024, 1:15:04 PM",lastUpdatedTimestamp:1727270104e3,content:" Zink doesn't work \n If Zink worked for you before the foxglove update, this might get it running on your device. It doesn't help on devices which don't fulfill the base Zink requirements. \n **/storage/emulated/0/Android/data/net.kdt.pojavlaunch/files/custom_env.txt** \n(if this file does not exist, create it)\n \n MESA_GL_VERSION_OVERRIDE=4.6\nMESA_GLSL_VERSION_OVERRIDE=460\n \n "},{title:"Supported Devices",frontmatter:{},regularPath:"/archived_pages/DEVICES_LINUX_INCL.html",relativePath:"archived_pages/DEVICES_LINUX_INCL.md",key:"v-051fd6ef",path:"/archived_pages/DEVICES_LINUX_INCL.html",headers:[{level:2,title:"Android",slug:"android"},{level:3,title:"ChromeOS",slug:"chromeos"},{level:3,title:"Linux",slug:"linux"},{level:2,title:"iOS",slug:"ios"}],lastUpdated:"10/29/2022, 1:35:25 PM",lastUpdatedTimestamp:1667050525e3,content:" Supported Devices \n Android \n Minimum requirements: \n \n 32-bit (aarch32 or 32-bit/i386) CPU \n Android 5.0 \n 1 gigabyte of RAM \n \n Recommended requirements: \n \n 64-bit (aarch64 or 64-bit/x86_64) CPU \n Android 8.0 \n 4 gigabytes of RAM \n GPU with \"Vulkan\" API (support for vulkanmod and/or v3_zink ) \n ChromeOS \n Chromebooks have very similar system requirements, however Android version does not matter, as long as you can install Android apps. \n Linux \n It is not recommended to run PojavLauncher on Linux. Though, you can try sideloading the app on your distribution by using Anbox or Waydroid. We won't provide support for it though. \n \n Installing Anbox\n \n on Ubuntu ( snap is required); \n \n snap install --devmode --beta anbox\n \n You'll have to install necessary kernel modules though, so check the official Anbox wiki about it.\n \n \n on Arch-based (Manjaro, Endeavor, Garuda) distributions; \n Check the official Arch wiki about it, as it is a loooong tutorial to be included here. \n iOS \n Minimum requirements: \n \n Apple A8 SoC\n \n The Apple A7 SoC is losing support in PojavLauncher 2.2. \n \n \n iOS 12 \n 1 gigabyte of RAM \n \n Recommended requirements: \n \n Apple A10/A10X Fusion SoC \n iOS 14 \n 2 gigabytes of RAM \n \n"},{title:"OpenJDK 8, coming to iOS",frontmatter:{},regularPath:"/archived_pages/JDK8.html",relativePath:"archived_pages/JDK8.md",key:"v-687695a2",path:"/archived_pages/JDK8.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" OpenJDK 8, coming to iOS \n"},{title:"Supporting 1.17 and beyond",frontmatter:{},regularPath:"/archived_pages/OGL32.html",relativePath:"archived_pages/OGL32.md",key:"v-98819f36",path:"/archived_pages/OGL32.html",headers:[{level:2,title:"Known issues",slug:"known-issues"},{level:2,title:"Platform-specific instruction",slug:"platform-specific-instruction"},{level:3,title:"Android:",slug:"android"},{level:3,title:"iOS:",slug:"ios"},{level:2,title:"Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04)",slug:"note-for-minecraft-21w37a-on-android-thanks-to-notahero04"},{level:2,title:"Does OptiFine or Sodium works?",slug:"does-optifine-or-sodium-works"},{level:3,title:"OptiFine",slug:"optifine"},{level:3,title:"Sodium",slug:"sodium"}],lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:' Supporting 1.17 and beyond \n After many days and nights spent working on a temporary solution (and trust me, this is definitely temporary), we\'ve gotten something done: support for 1.17 is here. With backporting work done by artdeell and Java 17 ported by DuyKhanhTran, 1.17 is usable and playable with gl4es. This also applies with 1.17.1 and 1.18 experimental snapshots. \n Here\'s how to get it to work. You need to have a GitHub account in order to download the builds and JRE. Regardless of your platform, you\'ll need to download this resource pack . The resource pack seems to be no longer required as it is automated in newer builds. This is artdeell\'s patch for 1.17 on gl4es. \n Known issues \n \n [Android only] Crosshair icon and Block outline don\'t render. \n You can tell us in our Discord server or open an issue if you found one. \n UPDATE: 32-bit platforms (ARMv7 and i386) are currently broken for various reasons. We are looking for a solution. We finally found a gold bar under the sea! Although this JRE17 is not initially made for PojavLauncher, it works magically. Now you can use this JRE17 build to play 1.17.1 until we stabilize it and bring it to PojavLauncher. (Very soon.) \n Platform-specific instruction \n Android: \n \n Download latest build: here . \n Download JRE17: here . You need to download the artifact that matches your device architecture: jre17- , don’t pick jdk17 or debuginfo. \n When you install the APK, it will be displayed as second app if you have one installed before. \n Go to launcher settings. \n Choose Manage runtime -> Add new. Pick the downloaded JRE17 runtime there. \n Switch renderer to gl4es 1.1.5 - OpenGL ES 3. \n On 32-bit, you need to add -Xss1m to JVM arguments, otherwise Java will crash. \n Now launch Minecraft 1.17 and enjoy! \n iOS: \n \n Install package openjdk-16-jre or openjdk-17-jre (if you have Procursus bootstrap) \n Get latest build from the GitHub or Doregon\'s Repo . \n After install, go into PojavLauncher, sign in and choose the more icon to enter Preferences. \n Change Java version to 16 or 17, then restart the launcher in order to take effect. For 1.18 snapshots, Java 17 is recommended as Java 16 seems to cause a weird problem. \n Change Renderer to tinygl4angle . \n Now launch Minecraft 1.17 and enjoy! \n Since iOS uses tinygl4angle renderer which supports (most?) GLSL 1.50 functionally, this can also be applied to 21w37a+. \n Note for Minecraft 21w37a+ on Android (thanks to @NotAHero04 ) \n \n Since 21w37a, Mojang bumped the resource pack version to 8, which rendered the current assets-v0 patch unusable. This is the patch for those versions. Simply replace it to the existing assets-v0, and you’re good to go! \n A small note: When the popup about 1.17 appears, tap Play Anyway . Tapping OK will overwrite the patch . \n Another small note: 1.17.1 or below will simply not work with this patch. I recommend using per-version config feature with it. If you still want to play 1.17.1 or below, keep the original assets-v0 and follow this instruction: \n \n \n \n Download the new assets-v0 on the PojavLauncher Discord server, or here. \n \n \n Give it another name then move it to /sdcard/Android/data/net.kdt.pojavlaunch[.debug]/files/.minecraft/resourcepacks (on Android 10 or later) or /sdcard/games/PojavLauncher/.minecraft/resourcepacks (on Android 9 or below). \n \n \n Modify the options.txt file.\nWith the file names above, change the resourcePacks key to:\nresourcePacks:["assets-v0.zip"," new_patch_name .zip"]. \n \n \n Now enjoy your game. Be sure to choose Play Anyway when the popup shows. \n \n \n Until we get a more permenant solution to fix 1.17 and newer, this is what we have. It\'s not perfect, but it works. We hope to see a version of gl4es that translates OpenGL 3 to OpenGL ES, or continue to work on Zink as a backup method if all else fails.* \n Does OptiFine or Sodium works? \n OptiFine \n \n \n OptiFine seems to not working on Android, as the patch resource pack gets ignored. However, it works by putting patched shader files into the client. \n \n Download this patcher . Since OptiFine preloads some shader files, the assets-v0 resource pack trick could not be applied. \n Navigate to Options -> Launch a mod installer (the first option). Pick the downloaded patcher. \n Select the installed OptiFine version that you want to patch. \n Press "OK" to start the patch process. \n The alert "Patched version " will be displayed once the patching process finished, otherwise, an alert will display with some error description. Report this to us if this happens. \n Now go back to the launcher and press Play. When an alert displays about "install additional resources”, press “Play anyway”. \n Enjoy OptiFine moment. \n \n Known issue: Render Regions crashes the game. \n \n \n OptiFine works on iOS. Render Regions works. \n Sodium \n \n Sodium is currently not working on both platforms. \n \n'},{title:"Interacting with our fellow developers",frontmatter:{},regularPath:"/archived_pages/PARTNERSHIPS.html",relativePath:"archived_pages/PARTNERSHIPS.md",key:"v-72831da2",path:"/archived_pages/PARTNERSHIPS.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Interacting with our fellow developers \n"},{title:"PojavLauncher Website Archives",frontmatter:{},regularPath:"/archived_pages/",relativePath:"archived_pages/README.md",key:"v-66a0075c",path:"/archived_pages/",lastUpdated:"10/29/2022, 1:35:25 PM",lastUpdatedTimestamp:1667050525e3,content:" PojavLauncher Website Archives \n To keep up with changes in PojavLauncher's lifecycle, various pages will be archived if they are no longer updated and no longer relevant. These pages can be accessed by adding /archived_pages to the end of the domain name. \n Pages currently in the archive: \n Deprecating support for the Apple A7 chip (RIP-A7) \n Supporting 1.17 and beyond (OGL32) \n Interacting with our fellow developers (PARTNERSHIPS) \n OpenJDK 8, coming to iOS (JDK8) \n Installing PojavLauncher (ft. Linux) \n"},{title:"PojavLauncher iOS",frontmatter:{},regularPath:"/changelogs/IOS.html",relativePath:"changelogs/IOS.md",key:"v-7fc82f01",path:"/changelogs/IOS.html",headers:[{level:2,title:'2.2 "Deepslate"',slug:"_2-2-deepslate"},{level:2,title:'2.1 "Sculk Catalyst"',slug:"_2-1-sculk-catalyst"},{level:3,title:"Jailbreak requirement",slug:"jailbreak-requirement"},{level:3,title:"New features",slug:"new-features"},{level:3,title:"Security",slug:"security"},{level:3,title:"User interface",slug:"user-interface"},{level:3,title:"Fixes",slug:"fixes"},{level:3,title:"Issues",slug:"issues"},{level:2,title:"2.0.1",slug:"_2-0-1"},{level:2,title:'2.0 "Raw Iron"',slug:"_2-0-raw-iron"},{level:3,title:"Changes",slug:"changes"},{level:3,title:"Fixes",slug:"fixes-2"},{level:3,title:"Issues",slug:"issues-2"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices"},{level:2,title:"1.2",slug:"_1-2"},{level:3,title:"Changes",slug:"changes-2"},{level:3,title:"Fixes",slug:"fixes-3"},{level:3,title:"Known issues",slug:"known-issues"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices-2"},{level:2,title:"1.1",slug:"_1-1"},{level:3,title:"Changes",slug:"changes-3"},{level:3,title:"Fixes",slug:"fixes-4"},{level:3,title:"Known issues",slug:"known-issues-2"},{level:3,title:"A note for old iDevices",slug:"a-note-for-old-idevices-3"},{level:2,title:"1.0",slug:"_1-0"},{level:3,title:"Features",slug:"features"},{level:3,title:"Limitations",slug:"limitations"},{level:3,title:"Crashes",slug:"crashes"}],lastUpdated:"5/6/2023, 8:49:07 PM",lastUpdatedTimestamp:1683406147e3,content:' PojavLauncher iOS \n 2.2 "Deepslate" \n With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show: \n \n Implemented a controller configurator \n Increased reliability in various places \n Added haptics to the on-screen controls \n Switched to new input methods to speed up control times \n Secured demo mode \n Added new preferences to control more of the app \n Resolve various issues with windowing in older versions \n and many, many more! \n \n This is the last major release of PojavLauncher that will support iOS 12 and 13. Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547. \n A full commit changelog is available here . \n 2.1 "Sculk Catalyst" \n Minor release, major changes! \n Jailbreak requirement \n PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited: \n \n You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task. \n Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround. \n RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks. \n \n If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken. \n New features \n \n Added Demo mode support \n Automatic Java version and Renderer selection \n Cosmetica custom capes integration \n Complete Controller support \n Fullscreen AirPlay display support \n Keyboard and mouse support deepened \n Many settings that were missing from Android are added \n (iPadOS 16) Stage Manager support \n Security \n \n Patch log4shell exploit in client \n User interface \n \n Added vertical UI \n Redesigned Launcher UI to match Android \n The current login state will be shown in the title \n Play button is greyed out when launching \n Back button is hidden when launching \n Custom controls UI completed \n The control button editor is now a movable window \n When game crash occurs, Log Output will be shown for user to determine the problem in place \n Multilingual support: you can contribute your translation through Crowdin \n New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example) \n Fixes \n \n Slight changes to error messages \n Fix Makefile errors in deploy and ipa \n Fix NullPointerException when launching ≤1.6.4 \n Fix NullPointerException when setting inherited fields \n Fix “Share your logs” not working \n Fix Forge, Fabric 1.17+ not launching \n Fix postinst issue on Procursus \n Issues \n \n Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0 \n Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later \n Old (pre-2.0) custom control .json files no longer work, remove to fix \n This is the last release that will support Apple devices with the A7 chip \n Mojang login has been removed with this release due to the March 10th deadline \n 2.0.1 \n This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction. \n 2.0 "Raw Iron" \n Changes \n \n The Login view has been simplified to three easy buttons \n The Offline Account has been replaced with Local Account . Installing Minecraft now requires a Mojang or Microsoft account logged in. \n New FAQ page to show quick answers to questions \n New About view to show quick details, links, and update history \n Ability to send logs from within the launcher \n The Select Account screen is now a pop-up window \n New picker view to switch versions without typing them manually \n Support to show your locally installed clients \n New settings page to manage preferences \n OpenJDK 8 support, to allow older versions of modded Minecraft \n New mod installer, built into the launcher \n Unfinished in-launcher custom controls (#292) \n Move to /usr/share , for better rootFS compatibility \n New packaging format (#291)\n \n release, for iOS 14 and lower (full root access jailbreaks) \n release-rootless, for iOS 15 (Procursus rootless jailbreak) \n Fixes \n \n WIP fix for typing on 1.12.2 and older \n The hotbar now works across GUI scales \n (With JDK 8) Forge 1.8.9 - 1.15.2 now work \n (With JDK 8) Vanilla 1.5.2 and under now work \n Buttons now scale correctly according to screen size \n Crash if login to Microsoft fails. \n Issues \n \n Old custom control .json files no longer work, remove to fix \n Custom controls settings page is not complete, there may be some issues! \n An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the Java arguments preference and overb0ard), but you may need to close all apps and remove some tweaks in order to free up enough. \n 1.2 \n Changes \n \n Use new method for Microsoft login \n Added gl4es 1.1.5 as an option \n WIP custom controls (can be changed by placing at /var/mobile/Documents/.pojavlauncher/controlmap/default.json ). Note that some functions may not work properly. \n WIP external mouse support \n Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt \n Reduction of file size with removal of unused binaries \n Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher \n Fixes \n \n Fix file permission issues during install of package \n Hide home bar like Bedrock Edition \n Properly hide iPad status bar \n Known issues \n \n Crash if login to Microsoft fails. \n Control buttons notch offset seems doubled. \n Several Forge versions won’t work due to removed deprecated classes (see #67 and #68). \n Text input will not work on 1.12.2 and below. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the overrideargs.txt file and jetsamctl), but we are unsure if iOS 12 will give enough free RAM. \n 1.1 \n Changes \n \n Added a place to customize JVM Flags, by create and edit minecraft/overrideargs.txt file. \n Changed button offset for avoiding notch cutout on iPhone X and newer. \n Forge 1.13+ (not all) and Fabric API are now supported. \n launcher_profiles.json is now automatically created. \n Minecraft 1.6.1 to 1.13.2 are now playable. \n Mojang authentication was re-written, so it should work now. \n Fixes \n \n Fixed random crashes occur while Minecraft is initializing. \n Known issues \n \n Crash if login to Microsoft fails. \n Several Forge versions won’t work due to removed deprecated classes (see #67 and #68). \n Text input will not work on 1.12.2 and below. \n A note for old iDevices \n \n If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds due to too few RAM. Higher RAM can be set, but I\'m unsure if iOS 12 will gives enough free RAM. \n 1.0 \n Features \n \n Login with Mojang (might not work), Microsoft (not tested) or offline. \n Minecraft 1.14+ are playable. \n Multiplayer and joining servers works. \n Audio works (need enable ringer). \n Fabric and OptiFine works. \n Bedrock-like gestures: click to hotbar item; click to place block (trigger right mouse); hold and move to destroy blocks (trigger hold left mouse), but attacking entites is left mouse, so not same as Bedrock. \n Hold screen on UI will hold the left mouse, so it can also used for moving the scroll bar. \n On-screen control buttons. \n Limitations \n \n Jailbreak is required in order to install OpenJDK and PojavLauncher. \n Forge won\'t work. \n Fabric API won\'t work. \n Tell us . \n Crashes \n \n I\'ve got some reports that JVM was crashing after press “Play” button. \n Also, it seems that checkra1n jailbroken devices will get crashed at entering Minecraft (?) \n They were all random crashes and will be fixed in next release. \n \n'},{frontmatter:{},regularPath:"/changelogs/ANDROID.html",relativePath:"changelogs/ANDROID.md",key:"v-cb4c1c86",path:"/changelogs/ANDROID.html",lastUpdated:"10/29/2023, 4:25:09 PM",lastUpdatedTimestamp:1698596709e3,content:" \n"},{title:"PojavLauncher Wiki Images",frontmatter:{},regularPath:"/images/",relativePath:"images/README.md",key:"v-7e90673c",path:"/images/",headers:[{level:2,title:"Directory Structure",slug:"directory-structure"},{level:2,title:"Contributing to this directory",slug:"contributing-to-this-directory"}],lastUpdated:"10/29/2022, 1:13:25 PM",lastUpdatedTimestamp:1667049205e3,content:" PojavLauncher Wiki Images \n This directory is pretty self explanatory; it contains images used for the Wiki \n Directory Structure \n images\n├── Actions\n│ ├── android\n│ │ └── Android-Actions-1.png\n│ │ Android-Actions-2.png\n│ │ Android-Actions-3.png\n│ │ Android-Actions-4.png\n│ └── ios\n│ └── iOS-Actions-1.png\n│ iOS-Actions-1.png\n│ iOS-Actions-1.png \n│ iOS-Actions-1.png\n├── Screenshots\n│ ├── Controls\n│ │\n│ └── OptiFine\n│ └── OptiFine.png\n│ OptiFine-1.png\n│ OptiFine-2.png\n│ \n└── EOF (END OF DIRECTORY) \n Contributing to this directory \n You can: \n \n Change images \n Replace image with a better quality\n \n Add missing images that you think is required \n \n \n \n Submit/Open a pull request on this repository! \n \n ^ w ^ -NeveuXon/Nev \n"},{title:"Deprecating support for the Apple A7 chip",frontmatter:{},regularPath:"/archived_pages/RIP-A7.html",relativePath:"archived_pages/RIP-A7.md",key:"v-1e60c8e2",path:"/archived_pages/RIP-A7.html",lastUpdated:"10/24/2022, 1:21:10 PM",lastUpdatedTimestamp:166661767e4,content:" Deprecating support for the Apple A7 chip \n The Apple A7 chip was legendary for its technological advances in 2013. However, it's almost a decade since the introduction of the first device with this processor. Apple no longer supports these devices on the latest versions of iOS, and iOS 12 performs with noticeable performance issues already. \n Due to these technical limitations imposed by the hardware and software on these devices, we're ending support for them with the release of PojavLauncher 2.2. \n This means the following: \n \n \n PojavLauncher 2.1 will warn A7 users about the upcoming deprecation, once upon every 30 launches of the app. This can be disabled by flipping the a7_allow preference to YES . \n \n \n PojavLauncher 2.1's code will be archived and moved to the 2.1-legacy branch. Security fixes will be applied in 2.1 as needed, but no new features will be added to these releases. Third-party users can choose to continue support for A7-related issues, however unofficial forks of PojavLauncher will not be supported. \n \n \n PojavLauncher 2.2 will disable support for A7 users on launch, requesting users to return to 2.1 or move to an A8+ device. This can also be overriden by flipping the a7_allow preference to YES , however support will not be provided for issues encountered while using an A7 device. \n \n If the issue affects other devices as well, the issue will be deemed valid if logs from a supported device are available. \n \n \n \n"}],themeConfig:{lastUpdated:!0,repo:"https://github.com/PojavLauncherTeam/PojavLauncherTeam.github.io/",docsDir:"",docsBranch:"lunaveux-patch-1",editLinks:!0,editLinkText:"Help us improve this page!",logo:"logo.png",sidebar:[{title:"Wiki",collapsable:!1,children:[{title:"Getting Started",collapsable:!1,sidebarDepth:1,children:["INSTALL","BUILD-FROM-SOURCE","SIGN-IN","INSTALL-MC","CUSTOM-CONTROLS","DISCORD"]},{title:"Frequently Asked Questions",collapsable:!0,sidebarDepth:1,children:[{title:"iOS-specific",collapsable:!0,sidebarDepth:1,children:["JIT","APPSTORE"]},{title:"Android-specific",collapsable:!0,sidebarDepth:1,children:["PARSINGERROR","REFUSALOFINSTALL","CANTFINDLOG","CANTFINDMINECRAFT","ZINKNOTWORKING","MODCRASHING","MODNOTSHOWINGUP","JAVARUNTIMES","JARCRASHED","32BIT","NOTCHFIX","FFMPEG","ZINK","SHADERS","RENDERERS"]},"RPWORLDNOTSHOWINGUP","CRASHES","MODCONFLICT","JAVAVERSION","CANTLOGIN"]},{title:"Going further",collapsable:!0,sidebarDepth:1,children:["OPTIMIZATION","CUSTOM-MC","MODPACKS","PROBLEMATIC-MODS-COMMON-FIXES","ENV-VARS","JAVA-ARGS"]}]},{title:"About PojavLauncher",collapsable:!1,sidebarDepth:1,children:["LEGAL","DEVICES","MCVERS","MODS-UNSUPPORTED"]},{title:"Contributing",collapsable:!1,sidebarDepth:1,children:["CONT-WEBSITE","CONT-TRANSLATIONS"]},{title:"Recent Updates",collapsable:!1,sidebarDepth:1,children:["UNJAIL","IOS-SUPPORT","LOCAL-MODE"]}]}};n(243);Vn.component("Badge",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,329))),Vn.component("ThemeManager",()=>n.e(7).then(n.bind(null,327))),Vn.component("Badge",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,386))),Vn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,323))),Vn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,324)));n(244),n(245);Vn.component("CodeSwitcher",()=>n.e(25).then(n.bind(null,328)));var Zs={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",_s()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},Qs=(n(246),Object(Cs.a)(Zs,(function(){var e=this._self._c;return e("transition",{attrs:{name:"fade"}},[this.show?e("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[e("g",{attrs:{transform:"translate(-229 -126.358)"}},[e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),e("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports);function el(e){const t=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{x:n.left-t.left,y:n.top-t.top}}var tl=[{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:e})=>{e.component("CodeCopy",Es)},{},{},({Vue:e})=>{e.component("BackToTop",Qs)},({Vue:e,router:t})=>{t.options.scrollBehavior=(t,n,o)=>{if(o)return window.scrollTo({top:o.y,behavior:"smooth"});if(!t.hash)return window.scrollTo({top:0,behavior:"smooth"});{if(e.$vuepress.$get("disableScrollBehavior"))return;const n=t.hash.slice(1),o=document.getElementById(n)||document.querySelector(`[name='${n}']`);if(o)return window.scrollTo({top:el(o).y,behavior:"smooth"})}}}],nl=n(46);class ol extends class{constructor(){this.store=new Vn({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){Vn.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(ol.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:ls,getAsyncComponent:cs,getVueComponent:us});var rl={install(e){const t=new ol;e.$vuepress=t,e.prototype.$vuepress=t}};function il(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var al={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return hs("pageKey",t),Vn.component(t)||Vn.component(t,ss(t)),Vn.component(t)?e(t):e("")}},sl={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},ll={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},cl=(n(247),n(248),Object(Cs.a)(ll,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),ul={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};Vn.config.productionTip=!1,Vn.use(Ha),Vn.use(rl),Vn.mixin(function(e,t,n=Vn){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const o=new(e(n.$vuepress.$get("siteData"))),r=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(o)),i={};return Object.keys(r).reduce((e,t)=>(t.startsWith("$")&&(e[t]=r[t].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const o in e)"/"===o?n=e[o]:0===this.$page.path.indexOf(o)&&(t=e[o]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,o=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?o?o+" | "+n:n:o||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!Vn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,o)=>{if(il(e,t.path))o();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";il(e,n)?o(n):o()}else o();else{const n=t.path+"/",r=t.path+".html";il(e,r)?o(r):il(e,n)?o(n):o()}})}(n);const o={};try{await Promise.all(tl.filter(e=>"function"==typeof e).map(t=>t({Vue:Vn,options:o,router:n,siteData:Ys,isServer:e})))}catch(e){console.error(e)}return{app:new Vn(Object.assign(o,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},nl.a.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})}]); \ No newline at end of file diff --git a/changelogs/ANDROID.html b/changelogs/ANDROID.html index 622584ec..a6db1e69 100644 --- a/changelogs/ANDROID.html +++ b/changelogs/ANDROID.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

.

- + (opens new window)

.

+ diff --git a/changelogs/IOS.html b/changelogs/IOS.html index 35b9e722..bbbd91b5 100644 --- a/changelogs/IOS.html +++ b/changelogs/IOS.html @@ -11,7 +11,7 @@ - + @@ -19,8 +19,8 @@ GitHub (opens new window)

# PojavLauncher iOS

# 2.2 "Deepslate"

With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show:

  • Implemented a controller configurator
  • Increased reliability in various places
  • Added haptics to the on-screen controls
  • Switched to new input methods to speed up control times
  • Secured demo mode
  • Added new preferences to control more of the app
  • Resolve various issues with windowing in older versions
  • and many, many more!

This is the last major release of PojavLauncher that will support iOS 12 and 13. Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547.

A full commit changelog is available here (opens new window).

# 2.1 "Sculk Catalyst"

Minor release, major changes!

# Jailbreak requirement

PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited:

  • You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task.
  • Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround.
  • RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks.

If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken.

# New features

  • Added Demo mode support
  • Automatic Java version and Renderer selection
  • Cosmetica custom capes integration
  • Complete Controller support
  • Fullscreen AirPlay display support
  • Keyboard and mouse support deepened
  • Many settings that were missing from Android are added
  • (iPadOS 16) Stage Manager support

# Security

  • Patch log4shell exploit in client

# User interface

  • Added vertical UI
  • Redesigned Launcher UI to match Android
  • The current login state will be shown in the title
  • Play button is greyed out when launching
  • Back button is hidden when launching
  • Custom controls UI completed
  • The control button editor is now a movable window
  • When game crash occurs, Log Output will be shown for user to determine the problem in place
  • Multilingual support: you can contribute your translation through Crowdin
  • New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example)

# Fixes

  • Slight changes to error messages
  • Fix Makefile errors in deploy and ipa
  • Fix NullPointerException when launching ≤1.6.4
  • Fix NullPointerException when setting inherited fields
  • Fix “Share your logs” not working
  • Fix Forge, Fabric 1.17+ not launching
  • Fix postinst issue on Procursus

# Issues

  • Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0
  • Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later
  • Old (pre-2.0) custom control .json files no longer work, remove to fix
  • This is the last release that will support Apple devices with the A7 chip
  • Mojang login has been removed with this release due to the March 10th deadline

# 2.0.1

This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction.

# 2.0 "Raw Iron"

# Changes

  • The Login view has been simplified to three easy buttons
  • The Offline Account has been replaced with Local Account (opens new window). Installing Minecraft now requires a Mojang or Microsoft account logged in.
  • New FAQ page to show quick answers to questions
  • New About view to show quick details, links, and update history
  • Ability to send logs from within the launcher
  • The Select Account screen is now a pop-up window
  • New picker view to switch versions without typing them manually
  • Support to show your locally installed clients
  • New settings page to manage preferences
  • OpenJDK 8 support, to allow older versions of modded Minecraft
  • New mod installer, built into the launcher
  • Unfinished in-launcher custom controls (#292)
  • Move to /usr/share, for better rootFS compatibility
  • New packaging format (#291) + (opens new window)

    # PojavLauncher iOS

    # 2.2 "Deepslate"

    With this release of PojavLauncher, we refined features, fixed bugs, and implemented small additions to existing ones to buff user experience. While there are not many notable changes to discuss here, there are some we can show:

    • Implemented a controller configurator
    • Increased reliability in various places
    • Added haptics to the on-screen controls
    • Switched to new input methods to speed up control times
    • Secured demo mode
    • Added new preferences to control more of the app
    • Resolve various issues with windowing in older versions
    • and many, many more!

    This is the last major release of PojavLauncher that will support iOS 12 and 13. Important security patches and bug fixes will be applied when required for a limited time, however take note that issues encountered will not be considered high priority. See more information in #547.

    A full commit changelog is available here (opens new window).

    # 2.1 "Sculk Catalyst"

    Minor release, major changes!

    # Jailbreak requirement

    PojavLauncher no longer requires a jailbreak to work, so it will also work on the latest iOS version. While it works, certain features are limited:

    • You will need a support app to launch with JIT enabled. JitStreamer integration is done to automate this task.
    • Initial Wi-Fi connection is required to enable JIT. Cellular data isn’t supported, Wi-Fi hotspot might be a workaround.
    • RAM allocation is limited. Attempt to go beyond the limit will result in random crashes while loading world chunks.

    If installed with TrollStore, these limitations aren’t applied, as it has sandbox exceptions to bypass, so it works like when jailbroken.

    # New features

    • Added Demo mode support
    • Automatic Java version and Renderer selection
    • Cosmetica custom capes integration
    • Complete Controller support
    • Fullscreen AirPlay display support
    • Keyboard and mouse support deepened
    • Many settings that were missing from Android are added
    • (iPadOS 16) Stage Manager support

    # Security

    • Patch log4shell exploit in client

    # User interface

    • Added vertical UI
    • Redesigned Launcher UI to match Android
    • The current login state will be shown in the title
    • Play button is greyed out when launching
    • Back button is hidden when launching
    • Custom controls UI completed
    • The control button editor is now a movable window
    • When game crash occurs, Log Output will be shown for user to determine the problem in place
    • Multilingual support: you can contribute your translation through Crowdin
    • New switch to unlock iPadOS UI, allows iPhone users to unlock certain features that are only available on iPad (floating keyboard for example)

    # Fixes

    • Slight changes to error messages
    • Fix Makefile errors in deploy and ipa
    • Fix NullPointerException when launching ≤1.6.4
    • Fix NullPointerException when setting inherited fields
    • Fix “Share your logs” not working
    • Fix Forge, Fabric 1.17+ not launching
    • Fix postinst issue on Procursus

    # Issues

    • Nintendo Switch Joy-Con controllers are only officially supported since iOS 16.0
    • Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later
    • Old (pre-2.0) custom control .json files no longer work, remove to fix
    • This is the last release that will support Apple devices with the A7 chip
    • Mojang login has been removed with this release due to the March 10th deadline

    # 2.0.1

    This release is identical to v2.0, except with a fix for issues installing on Procursus jailbreak, and fixes for the depiction.

    # 2.0 "Raw Iron"

    # Changes

    • The Login view has been simplified to three easy buttons
    • The Offline Account has been replaced with Local Account (opens new window). Installing Minecraft now requires a Mojang or Microsoft account logged in.
    • New FAQ page to show quick answers to questions
    • New About view to show quick details, links, and update history
    • Ability to send logs from within the launcher
    • The Select Account screen is now a pop-up window
    • New picker view to switch versions without typing them manually
    • Support to show your locally installed clients
    • New settings page to manage preferences
    • OpenJDK 8 support, to allow older versions of modded Minecraft
    • New mod installer, built into the launcher
    • Unfinished in-launcher custom controls (#292)
    • Move to /usr/share, for better rootFS compatibility
    • New packaging format (#291)
      • release, for iOS 14 and lower (full root access jailbreaks)
      • release-rootless, for iOS 15 (Procursus rootless jailbreak)

    # Fixes

    • WIP fix for typing on 1.12.2 and older
    • The hotbar now works across GUI scales
    • (With JDK 8) Forge 1.8.9 - 1.15.2 now work
    • (With JDK 8) Vanilla 1.5.2 and under now work
    • Buttons now scale correctly according to screen size
    • Crash if login to Microsoft fails.

    # Issues

    • Old custom control .json files no longer work, remove to fix
    • Custom controls settings page is not complete, there may be some issues!
    • An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch.

    # A note for old iDevices

    • If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the Java arguments preference and overb0ard), but you may need to close all apps and remove some tweaks in order to free up enough.

    # 1.2

    # Changes

    • Use new method for Microsoft login
    • Added gl4es 1.1.5 as an option
    • WIP custom controls (can be changed by placing at /var/mobile/Documents/.pojavlauncher/controlmap/default.json). Note that some functions may not work properly.
    • WIP external mouse support
    • Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt
    • Reduction of file size with removal of unused binaries
    • Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher

    # Fixes

    • Fix file permission issues during install of package
    • Hide home bar like Bedrock Edition
    • Properly hide iPad status bar

    # Known issues

    • Crash if login to Microsoft fails.
    • Control buttons notch offset seems doubled.
    • Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).
    • Text input will not work on 1.12.2 and below.

    # A note for old iDevices

    • If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds or servers due to too little RAM. Higher RAM can be set (using the overrideargs.txt file and jetsamctl), but we are unsure if iOS 12 will give enough free RAM.

    # 1.1

    # Changes

    • Added a place to customize JVM Flags, by create and edit minecraft/overrideargs.txt file.
    • Changed button offset for avoiding notch cutout on iPhone X and newer.
    • Forge 1.13+ (not all) and Fabric API are now supported.
    • launcher_profiles.json is now automatically created.
    • Minecraft 1.6.1 to 1.13.2 are now playable.
    • Mojang authentication was re-written, so it should work now.

    # Fixes

    • Fixed random crashes occur while Minecraft is initializing.

    # Known issues

    • Crash if login to Microsoft fails.
    • Several Forge versions won’t work due to removed deprecated classes (see #67 and #68).
    • Text input will not work on 1.12.2 and below.

    # A note for old iDevices

    • If your device has only 1GB RAM (total), it might able to boot Minecraft to main screen, but might not able to join worlds due to too few RAM. Higher RAM can be set, but I'm unsure if iOS 12 will gives enough free RAM.

    # 1.0

    # Features

    • Login with Mojang (might not work), Microsoft (not tested) or offline.
    • Minecraft 1.14+ are playable.
    • Multiplayer and joining servers works.
    • Audio works (need enable ringer).
    • Fabric and OptiFine works.
    • Bedrock-like gestures: click to hotbar item; click to place block (trigger right mouse); hold and move to destroy blocks (trigger hold left mouse), but attacking entites is left mouse, so not same as Bedrock.
    • Hold screen on UI will hold the left mouse, so it can also used for moving the scroll bar.
    • On-screen control buttons.

    # Limitations

    • Jailbreak is required in order to install OpenJDK and PojavLauncher.
    • Forge won't work.
    • Fabric API won't work.
    • Tell us (opens new window).

    # Crashes

    • I've got some reports that JVM was crashing after press “Play” button.
    • Also, it seems that checkra1n jailbroken devices will get crashed at entering Minecraft (?)
    • They were all random crashes and will be fixed in next release.
- + diff --git a/images/index.html b/images/index.html index 25dc1dd0..85edf1be 100644 --- a/images/index.html +++ b/images/index.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)

# PojavLauncher Wiki Images

This directory is pretty self explanatory; it contains images used for the Wiki

# Directory Structure

images
+     (opens new window)    

# PojavLauncher Wiki Images

This directory is pretty self explanatory; it contains images used for the Wiki

# Directory Structure

images
 ├── Actions
 │   ├── android
 │   │   └── Android-Actions-1.png
@@ -42,6 +42,6 @@
 └── EOF (END OF DIRECTORY)          
 

# Contributing to this directory

You can:

  • Change images
  • Replace image with a better quality
    • Add missing images that you think is required

Submit/Open a pull request on this repository!

^ w ^ -NeveuXon/Nev

- + diff --git a/index.html b/index.html index e2af0d6b..88f59d1a 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,7 @@ - + @@ -19,7 +19,7 @@ GitHub (opens new window)
hero

+ (opens new window)
hero

PojavLauncher

A flexible, fast and open-source Minecraft Java Edition launcher for Android and iOS @@ -28,6 +28,6 @@

- +