Giter VIP home page Giter VIP logo

minecraft-vortex-launcher's People

Contributors

kron4ek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minecraft-vortex-launcher's Issues

Firefox blocks download, saying Vlauncher is a malware

Latest Firefox (109) by default began blocking downloads of this launcher, saying it contains a malware or a virus.
Not an issue, but maybe it can be fixed by Mozilla developers, whitelisting this app, new folks who have found this launcher - would just trust firefox and skip download :c
firefox_triggered

undefined symbol: gdk_wayland_display_get_type

Gentoo x64, Openbox, флаг wayland отключен глобально.
При запуске вылетает с такой ошибкой:
./VLauncher_1.1.19_largewindow_x64_Linux: symbol lookup error: ./VLauncher_1.1.19_largewindow_x64_Linux: undefined symbol: gdk_wayland_display_get_type

Обычная версия также.

can't run game even installed Java

LOGS:
Unrecognized VM option 'UseConcMarkSweepGC' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. [minecraft_linux] ❱❱❱ openjdk version "18.0.1.1" 2022-04-22 OpenJDK Runtime Environment (build 18.0.1.1+2) OpenJDK 64-Bit Server VM (build 18.0.1.1+2, mixed mode)
can some one help me

Where are saves folder?

Hello! Suddenly my world doesnt show in single player worlds, I want to revive it from last save, but can't find saves folder. Where does it located in this launcher?

Add support for Aarch64

Hi @Kron4ek ,

Can you add release for arm64 / aarch64.
That would be great for use minecraft java on Linux ARM.
Have build the arm64 version if you want.
The only issue is hard too download files is crashing.

[1] 18169 segmentation fault (core dumped) ./VLauncher_1.1.19_arm64_Linux

After 2000 files have :

(VLauncher_1.1.19_arm64_Linux:26563): Pango-WARNING **: 17:54:11.708: Invalid UTF-8 string passed to pango_layout_set_text()

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.711: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.711: pango_layout_get_extents: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-WARNING **: 17:54:11.711: Invalid UTF-8 string passed to pango_layout_set_text()

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): GLib-GObject-CRITICAL **: 17:54:11.712: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_extents: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): GLib-GObject-CRITICAL **: 17:54:11.712: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_extents: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): GLib-GObject-CRITICAL **: 17:54:11.712: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): GLib-GObject-CRITICAL **: 17:54:11.712: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_width: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_extents_internal: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_extents_internal: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): GLib-GObject-CRITICAL **: 17:54:11.712: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_line_count: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_get_pixel_extents: assertion 'PANGO_IS_LAYOUT (layout)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_attributes: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_alignment: assertion 'layout != NULL' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_ellipsize: assertion 'PANGO_IS_LAYOUT (layout)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_wrap: assertion 'PANGO_IS_LAYOUT (layout)' failed

(VLauncher_1.1.19_arm64_Linux:26563): Pango-CRITICAL **: 17:54:11.712: pango_layout_set_single_paragraph_mode: assertion 'PANGO_IS_LAYOUT (layout)' failed
**
Gtk:ERROR:../gtk/gtk/gtklabel.c:3397:gtk_label_update_layout_width: assertion failed: (priv->layout)
Bail out! Gtk:ERROR:../gtk/gtk/gtklabel.c:3397:gtk_label_update_layout_width: assertion failed: (priv->layout)
[1]    26563 IOT instruction (core dumped)  ./VLauncher_1.1.19_arm64_Linux

Have change memory allocated to 3000 for download files.

Now have all files in 1.19.3 but i can run minecraft :

OpenJDK Runtime Environment (build 19.0.2+7)
OpenJDK 64-Bit Server VM (build 19.0.2+7, mixed mode)
  <log4j:Event logger="ape" timestamp="1675789935018" level="INFO" thread="main">
    <log4j:Message><![CDATA[Building optimized datafixer]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789935968" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: [LWJGL] Platform/architecture mismatch detected for module: org.lwjgl]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789935969" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   JVM platform:]]></log4j:Message>
  </log4j:Event>
                Linux aarch64 19.0.2
                OpenJDK 64-Bit Server VM v19.0.2+7 by Oracle Corporation
        Platform available on classpath:
                linux/x64
  <log4j:Event logger="acm" timestamp="1675789935970" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: [LWJGL] Failed to load a library. Possible solutions:
        a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
        b) Add the JAR that contains the shared library to the classpath.]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789935970" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: [LWJGL] Enable debug mode with -Dorg.lwjgl.util.Debug=true for better diagnostics.]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789935970" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: [LWJGL] Enable the SharedLibraryLoader debug mode with -Dorg.lwjgl.util.DebugLoader=true for better diagnostics.]]></log4j:Message>
  </log4j:Event>
Exception in thread "Render thread"   <log4j:Event logger="acm" timestamp="1675789936106" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: java.lang.NoClassDefFoundError: Could not initialize class com.mojang.blaze3d.systems.RenderSystem]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936106" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at z.a(SourceFile:66)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936106" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at ejf.a(SourceFile:2408)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936106" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at ejf.a(SourceFile:2403)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936106" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at net.minecraft.client.main.Main.a(SourceFile:214)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936107" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at net.minecraft.client.main.Main.main(SourceFile:51)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936120" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]: Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so [in thread "Render thread"]]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at org.lwjgl.system.Library.loadSystem(Library.java:164)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at org.lwjgl.system.Library.loadSystem(Library.java:63)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at org.lwjgl.system.Library.<clinit>(Library.java:51)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:100)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at edb.<clinit>(SourceFile:8)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at edy.<init>(SourceFile:51)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at eef.<init>(SourceFile:19)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at eef.<init>(SourceFile:23)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at eef.<clinit>(SourceFile:11)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at com.mojang.blaze3d.systems.RenderSystem.<clinit>(SourceFile:46)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   at net.minecraft.client.main.Main.a(SourceFile:202)]]></log4j:Message>
  </log4j:Event>
  <log4j:Event logger="acm" timestamp="1675789936121" level="INFO" thread="Render thread">
    <log4j:Message><![CDATA[[STDERR]:   ... 1 more]]></log4j:Message>
  </log4j:Event>

Best Regards

mods not loading with 1.7.10

Ok, a bit more testing helped. Mods are loading fine with 1.12.., but not with 1.7.10, will check that forge is installed correctly etc, but I was sure that it is o_O

Kinds Regards,

LAN issues

What would be the best way to play LAN with friends over this one?
I've managed to make a pretty decent modpack running:
1.18.2
Forge 40.1.76
OptiFine HD U H9 pre1

Would ZeroTear server with Lan Server Properties be enough?

I have been trying to make it run the whole day but nothing really worked.

Is this still developed?

I really hope so. This is so helpful to replace the bloated default launcher. If you still do want to develop this, can you work on authentication, so we can use our Microsoft accounts?

Any progress on macOS?

Is there any possibility to be able to open Vortex Launcher in macOS? Thanks in advance.

Wont work with 1.18 fabric loader

OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
Error: Could not find or load main class net.fabricmc.loader.impl.launch.knot.KnotClient
Caused by: java.lang.ClassNotFoundException: net.fabricmc.loader.impl.launch.knot.KnotClient

Огромная разница в потреблении памяти между версиями 1.1.12 и любой после неё

При запуске майнкрафта 1.16.5 на linux x64 с jre8 через лаунчер 1.1.12 и fabric 0.11.7 (без модов) она потребляет примерно 810 мегабайт памяти.

Это последние версии, при которых игра требовала так мало памяти. Если я обновляю что угодно из перечисленного: лаунчер, майнкрафт, fabric или джаву, то игра со старта потребляет около 2 гб и больше, при всех абсолютно тех же настройках.

Не могу понять точно в чём причина, как будто во всём одновременно.

Can't join servers.

I don't know if this has already been answered, but I can't join servers. I know I could, because of the Log4J issue, but I can't for some reason.

It says that it's an invalid session.

Thank you, RJG.

[Suggestion] Addition of a second button in the launcher settings window

When I opened the launcher settings window for the first time, changed several options, and tried to discard them, I became a little confused. This launcher had only "Save and apply" button in the settings window, and since a lot of Windows and Linux programs have "Save" (or "OK") and "Cancel" buttons, and often also "Apply", I got used to the fact that when I want to discard changes, the best way to do so is to click "Cancel" (or similar) button, so at first I didn't know what to do to discard the changes made by me in the options. After a longer while I thought I can use the "X" button in the title bar. But even after clicking it I wasn't sure whether the changed options became discarded or not, so I opened the settings window again to check it out.

I have 2 variants here (personally I like the variant B more, since it is probably easier to implement):

  • (A) Modification of the existing "Save and apply" (which could be renamed to simply "Save") button behavior – it will now save changes and close the launcher settings window – and addition of a second button (named e.g. "Cancel") next to the existing one, which will close the launcher settings window without saving changes.
  • (B) Addition of a second button (named e.g. "Cancel") next to the existing one, which will close the launcher settings window without saving changes. The existing "Save and apply" (which could be renamed to simply "Save", or "Apply", since it doesn't close the window) button behavior will become unchanged – it will still save changes without closing the launcher settings window.

I mean something like this:
Save-cancel-buttons

[Suggestion] Change of the default amount of RAM to allocate

To gather more information about the topic I'm gonna write about here, I did several simple tests. If you are interested about, you can see the results at the very bottom.

After seeing the results of these tests it seems to me that the current default amount of RAM to allocate, which is 700 MB, is a bit too little for Minecraft versions 1.13 and above. What do you think about increasing it to 1024 MB? Or maybe even to 2048 MB (but it depends on your preferences)?

For comparison the official Minecraft launcher was proposing by default 1 GB of RAM for years. Some time ago it changed the amount to 2 GB, probably due to the fact that Minecraft versions 1.13 and above need noticeably more RAM than version 1.12.2. Furthermore, most of "normal" computer users have 4 or 8 GB of RAM (data from here, I mostly take such data from there), so 1 or 2 GB for Minecraft doesn't seem to be too much (at least for a desktop application that utilizes JVM :p).


To find out how much of RAM individual versions take, I tested it on my PC with Windows 8.1 64-bit, 8 GB RAM, JRE 8u221 (64-bit), Vortex Launcher 1.1.9, and "-Xmx1024M" argument, among the 2 different default sets of JVM arguments being passed by this launcher. Every time I was downloading Minecraft files to an empty directory, after that I was launching the game, creating a new classic-type superflat world, changing the game difficulty to "peaceful", looking around to let all chunks load, opening F3 overlay and writing down min and max RAM usage, closing the game, deleting all files (except the launcher .exe file) from the directory, in which the launcher was located, and repeating this schema a dozen times (once for each version, except 1.6.4, 1.13.2, and 1.14.4).

Here are the results:

  • 1.6.4 – 220–320 MB (of RAM usage)
  • 1.7.10 – 90–190 MB
  • 1.8.9 – 130–230 MB
  • 1.9.4 – 100–200 MB
  • 1.10.2 – 100–200 MB
  • 1.11.2 – 100–200 MB
  • 1.12.2 – 110–210 MB
  • 1.13.2 – I tested it multiple times, and the largest range I got was 270–720 MB (with the new, default set of JVM arguments for versions 1.13 and above); I also noted 250–350 MB of RAM usage with the legacy, default set of JVM arguments for versions below 1.13
  • 1.14.4 – also in this case I tested it multiple times, and the largest range I got was 300–730 MB (with the new, default set of JVM arguments for versions 1.13 and above); I also noted 240–340 MB of RAM usage with the legacy, default set of JVM arguments for versions below 1.13

P.S. I wonder if I set "-Xmx2048M" argument instead of "-Xmx1024M", results above would change.

It is impossible to launch the new module-based Forge for 1.17 without some actions taken on every user's side

Description of the current situation and why the new module-based Forge for 1.17 no longer works out of the box with Vortex Launcher

As everyone probably knows, just a few days ago Forge for version 1.17 was released. One of the biggest changes was the separation of FML from Forge again (like it was several years and versions ago), and along with that Forge has been based on a custom implementation on the relatively new Java 9+ module system (for more information for general users, for example, you can read this official announcement).

While the modularity sounds like a good future-proof idea, it made the current launching method used over the years not sufficient to properly launch the new module-based Forge for both the client and the server. This issue has been addressed by the Forge team differently for both the client and the server. Since Vortex Launcher is not a server launcher, I will talk here about the client solution only.

So from now on, it seems that the JSON manifest file that comes with Forge will look like this:
Forge-117-manifest

Array game is known to everyone, it has been there for years, and Vortex Launcher already makes use of it, but jvm is brand new. It plays a very important role in version 1.17 and the new module-based Forge because without the parameters from there, it's impossible to properly launch the new module-based Forge for 1.17 at all. Vortex Launcher is not aware of the existence of the new jvm array, so every user has to do some workarounds on their own.

From what I have been able to determine and test:

  • ${classpath} here should be replaced with almost the same as the ${classpath} in the vanilla Minecraft JSON manifest file, except that in vanilla Minecraft at the end of the very long list of class paths there is a path to the main vanilla game JAR file (e.g. versions/1.17.1/1.17.1.jar), while in Forge there is a path to Forge JAR file (e.g. versions/1.17.1-forge-37.0.5/1.17.1-forge-37.0.5.jar).
  • ${library_directory} should just become libraries. There is no need to make it dynamic, similarly to how ${assets_root} is hardcoded to assets in the Vortex Launcher source code.
  • ${classpath_separator} should become either ; for Windows or : for Unix-like systems.
  • everything else in the jvm array should be treated exactly the same as game is already treated.

Description of a workaround I've found that makes the new module-based Forge for 1.17 work with Vortex Launcher again

If by any chance you're here because you're looking for help launching the new module-based Forge for 1.17 through Vortex Launcher, you've come to the right place.

What you can do as a workaround to make it work:

  1. Download the Forge installer, run it, and wait for it to finish (nothing changes here)
  2. Navigate to ~/.minecraft/versions/<Forge_version_string> (e.g. ~/.minecraft/versions/1.17.1-forge-37.0.5) and open the only JSON manifest file that should be there (e.g. 1.17.1-forge-37.0.5.json) using your favorite text editor.
  3. In the open file, look for the jvm array (it should look similar to the one shown above). From now on, only the contents of this array should interest you, nothing else, so whenever I talk about lines, I will always mean only these. Note: JSON array always begins with [ and ends with ], so the contents that should interest you should be between the first [ and ] after the word "jvm".
  4. In the first line, copy everything that is between the first and the last " in the line, paste it into a new text file (e.g. "I'm a sample text", should become I'm a sample text), and press Space to separate it from the next line you will deal with in the next step.
  5. Repeat step 4 above until all lines are copied from the JSON manifest file to the new text file. The end result should be something like this (it's provided by me for reference only, do not copy it as it's something that changes with every Forge release!):
-DlegacyClassPath=${classpath} -DignoreList=bootstraplauncher-0.1.15.jar,securejarhandler-0.9.46.jar,asm-commons-9.1.jar,asm-util-9.1.jar,asm-analysis-9.1.jar,asm-tree-9.1.jar,asm-9.1.jar,client-extra,fmlcore,javafmllanguage,mclanguage,forge-1.17.1-37.0.5,1.17.1-forge-37.0.5 -DmergeModules=jna-5.8.0.jar,jna-platform-58.0.jar,java-objc-bridge-1.0.0.jar -DlibraryDirectory=${library_directory} -p ${library_directory}/cpw/mods/bootstraplauncher/0.1.15/bootstraplauncher-0.1.15.jar${classpath_separator}${library_directory}/cpw/mods/securejarhandler/0.9.46/securejarhandler-0.9.46.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-util/9.1/asm-util-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm/9.1/asm-9.1.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming
  1. Now that you have everything important copied to the new text file, you can close the JSON manifest file. Then look for ${classpath}, ${library_directory}, and ${classpath_separator} in the new text file.
  2. Replace ${classpath} with the very long list of class paths that goes after -cp when you launch Minecraft 1.17 with Forge. Unfortunately, I don't know an easy and simple way to get this list. The only way I know is to launch Minecraft 1.17 with Forge first, then (quickly?) get all the arguments that have been passed to the running Java process (how to do this depends on the system you use, and as I don't have an experience with each of them, you will probably have to do some research on your own on the Internet), and then copy the needed part only (i.e. the very long list of class paths that goes after -cp). Now you can replace ${classpath} with what you just copied. The end result should be something like this (it's provided by me for reference only, do not copy it as it's something that changes with every Forge release!):
-DlegacyClassPath=libraries\cpw\mods\securejarhandler\0.9.46\securejarhandler-0.9.46.jar;libraries\org\ow2\asm\asm\9.1\asm-9.1.jar;libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar;libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar;libraries\org\ow2\asm\asm-util\9.1\asm-util-9.1.jar;libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar;libraries\net\minecraftforge\accesstransformers\8.0.4\accesstransformers-8.0.4.jar;libraries\org\antlr\antlr4-runtime\4.9.1\antlr4-runtime-4.9.1.jar;libraries\net\minecraftforge\eventbus\5.0.3\eventbus-5.0.3.jar;libraries\net\minecraftforge\forgespi\4.0.9\forgespi-4.0.9.jar;libraries\net\minecraftforge\coremods\5.0.1\coremods-5.0.1.jar;libraries\cpw\mods\modlauncher\9.0.7\modlauncher-9.0.7.jar;libraries\net\minecraftforge\unsafe\0.2.0\unsafe-0.2.0.jar;libraries\com\electronwill\night-config\core\3.6.3\core-3.6.3.jar;libraries\com\electronwill\night-config\toml\3.6.3\toml-3.6.3.jar;libraries\org\apache\maven\maven-artifact\3.6.3\maven-artifact-3.6.3.jar;libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;libraries\net\jodah\typetools\0.8.3\typetools-0.8.3.jar;libraries\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;libraries\org\apache\logging\log4j\log4j-core\2.14.1\log4j-core-2.14.1.jar;libraries\net\minecrell\terminalconsoleappender\1.2.0\terminalconsoleappender-1.2.0.jar;libraries\org\jline\jline-reader\3.12.1\jline-reader-3.12.1.jar;libraries\org\jline\jline-terminal\3.12.1\jline-terminal-3.12.1.jar;libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar;libraries\org\openjdk\nashorn\nashorn-core\15.1.1\nashorn-core-15.1.1.jar;libraries\com\google\guava\guava\21.0\guava-21.0.jar;libraries\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar;libraries\cpw\mods\bootstraplauncher\0.1.15\bootstraplauncher-0.1.15.jar;libraries\net\minecraftforge\fmlloader\1.17.1-37.0.5\fmlloader-1.17.1-37.0.5.jar;libraries\com\mojang\blocklist\1.0.5\blocklist-1.0.5.jar;libraries\com\mojang\patchy\2.1.6\patchy-2.1.6.jar;libraries\com\github\oshi\oshi-core\5.7.5\oshi-core-5.7.5.jar;libraries\net\java\dev\jna\jna\5.8.0\jna-5.8.0.jar;libraries\net\java\dev\jna\jna-platform\5.8.0\jna-platform-5.8.0.jar;libraries\org\slf4j\slf4j-api\1.8.0-beta4\slf4j-api-1.8.0-beta4.jar;libraries\org\apache\logging\log4j\log4j-slf4j18-impl\2.14.1\log4j-slf4j18-impl-2.14.1.jar;libraries\com\ibm\icu\icu4j\66.1\icu4j-66.1.jar;libraries\com\mojang\javabridge\1.1.23\javabridge-1.1.23.jar;libraries\io\netty\netty-all\4.1.25.Final\netty-all-4.1.25.Final.jar;libraries\commons-io\commons-io\2.5\commons-io-2.5.jar;libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;libraries\com\mojang\brigadier\1.0.18\brigadier-1.0.18.jar;libraries\com\mojang\datafixerupper\4.0.26\datafixerupper-4.0.26.jar;libraries\com\mojang\authlib\2.3.31\authlib-2.3.31.jar;libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar;libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar;libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;libraries\it\unimi\dsi\fastutil\8.2.1\fastutil-8.2.1.jar;libraries\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2.jar;libraries\org\lwjgl\lwjgl-jemalloc\3.2.2\lwjgl-jemalloc-3.2.2.jar;libraries\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2.jar;libraries\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2.jar;libraries\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2.jar;libraries\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2.jar;libraries\org\lwjgl\lwjgl-tinyfd\3.2.2\lwjgl-tinyfd-3.2.2.jar;libraries\com\mojang\text2speech\1.11.3\text2speech-1.11.3.jar;versions\1.17.1\1.17.1.jar
  1. Look at the end of the very long list of class paths that you just replaced ${classpath} with. There should be something like versions/<Minecraft_version_number>/<Minecraft_version_number>.jar. Replace it with versions/<Forge_version_string>/<Forge_version_string>.jar where <Forge_version_string> is exactly the same as in step 2 above (e.g. versions/1.17.1/1.17.1.jar could be replaced with versions/1.17.1-forge-37.0.5/1.17.1-forge-37.0.5.jar).
  2. Replace ${library_directory} with just libraries.
  3. Replace ${classpath_separator} with ; if you are on Windows, or with : if you are on Unix-like systems. The end result should be something like this (it's provided by me for reference only, do not copy it as it contains OS-dependent things that changes with every Forge release and may also be changed by Mojang with any Minecraft update!):
-DlegacyClassPath=libraries\cpw\mods\securejarhandler\0.9.46\securejarhandler-0.9.46.jar;libraries\org\ow2\asm\asm\9.1\asm-9.1.jar;libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar;libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar;libraries\org\ow2\asm\asm-util\9.1\asm-util-9.1.jar;libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar;libraries\net\minecraftforge\accesstransformers\8.0.4\accesstransformers-8.0.4.jar;libraries\org\antlr\antlr4-runtime\4.9.1\antlr4-runtime-4.9.1.jar;libraries\net\minecraftforge\eventbus\5.0.3\eventbus-5.0.3.jar;libraries\net\minecraftforge\forgespi\4.0.9\forgespi-4.0.9.jar;libraries\net\minecraftforge\coremods\5.0.1\coremods-5.0.1.jar;libraries\cpw\mods\modlauncher\9.0.7\modlauncher-9.0.7.jar;libraries\net\minecraftforge\unsafe\0.2.0\unsafe-0.2.0.jar;libraries\com\electronwill\night-config\core\3.6.3\core-3.6.3.jar;libraries\com\electronwill\night-config\toml\3.6.3\toml-3.6.3.jar;libraries\org\apache\maven\maven-artifact\3.6.3\maven-artifact-3.6.3.jar;libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;libraries\net\jodah\typetools\0.8.3\typetools-0.8.3.jar;libraries\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;libraries\org\apache\logging\log4j\log4j-core\2.14.1\log4j-core-2.14.1.jar;libraries\net\minecrell\terminalconsoleappender\1.2.0\terminalconsoleappender-1.2.0.jar;libraries\org\jline\jline-reader\3.12.1\jline-reader-3.12.1.jar;libraries\org\jline\jline-terminal\3.12.1\jline-terminal-3.12.1.jar;libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar;libraries\org\openjdk\nashorn\nashorn-core\15.1.1\nashorn-core-15.1.1.jar;libraries\com\google\guava\guava\21.0\guava-21.0.jar;libraries\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar;libraries\cpw\mods\bootstraplauncher\0.1.15\bootstraplauncher-0.1.15.jar;libraries\net\minecraftforge\fmlloader\1.17.1-37.0.5\fmlloader-1.17.1-37.0.5.jar;libraries\com\mojang\blocklist\1.0.5\blocklist-1.0.5.jar;libraries\com\mojang\patchy\2.1.6\patchy-2.1.6.jar;libraries\com\github\oshi\oshi-core\5.7.5\oshi-core-5.7.5.jar;libraries\net\java\dev\jna\jna\5.8.0\jna-5.8.0.jar;libraries\net\java\dev\jna\jna-platform\5.8.0\jna-platform-5.8.0.jar;libraries\org\slf4j\slf4j-api\1.8.0-beta4\slf4j-api-1.8.0-beta4.jar;libraries\org\apache\logging\log4j\log4j-slf4j18-impl\2.14.1\log4j-slf4j18-impl-2.14.1.jar;libraries\com\ibm\icu\icu4j\66.1\icu4j-66.1.jar;libraries\com\mojang\javabridge\1.1.23\javabridge-1.1.23.jar;libraries\io\netty\netty-all\4.1.25.Final\netty-all-4.1.25.Final.jar;libraries\commons-io\commons-io\2.5\commons-io-2.5.jar;libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;libraries\com\mojang\brigadier\1.0.18\brigadier-1.0.18.jar;libraries\com\mojang\datafixerupper\4.0.26\datafixerupper-4.0.26.jar;libraries\com\mojang\authlib\2.3.31\authlib-2.3.31.jar;libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar;libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar;libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;libraries\it\unimi\dsi\fastutil\8.2.1\fastutil-8.2.1.jar;libraries\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2.jar;libraries\org\lwjgl\lwjgl-jemalloc\3.2.2\lwjgl-jemalloc-3.2.2.jar;libraries\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2.jar;libraries\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2.jar;libraries\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2.jar;libraries\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2.jar;libraries\org\lwjgl\lwjgl-tinyfd\3.2.2\lwjgl-tinyfd-3.2.2.jar;libraries\com\mojang\text2speech\1.11.3\text2speech-1.11.3.jar;versions\1.17.1-forge-37.0.5\1.17.1-forge-37.0.5.jar -DignoreList=bootstraplauncher-0.1.15.jar,securejarhandler-0.9.46.jar,asm-commons-9.1.jar,asm-util-9.1.jar,asm-analysis-9.1.jar,asm-tree-9.1.jar,asm-9.1.jar,client-extra,fmlcore,javafmllanguage,mclanguage,forge-1.17.1-37.0.5,1.17.1-forge-37.0.5 -DmergeModules=jna-5.8.0.jar,jna-platform-58.0.jar,java-objc-bridge-1.0.0.jar -DlibraryDirectory=libraries -p libraries/cpw/mods/bootstraplauncher/0.1.15/bootstraplauncher-0.1.15.jar;libraries/cpw/mods/securejarhandler/0.9.46/securejarhandler-0.9.46.jar;libraries/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.jar;libraries/org/ow2/asm/asm-util/9.1/asm-util-9.1.jar;libraries/org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1.jar;libraries/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.jar;libraries/org/ow2/asm/asm/9.1/asm-9.1.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming
  1. Open Vortex Launcher, click "Settings", and tick the checkbox next to "Use custom launch parameters". Then copy the text from the new text file you worked with a while ago. Now click on the text box at the top of the Vortex Launcher settings window, do not delete any text that is already entered there, and instead move the caret to the end. Then press Space and paste the copied text here. Once done, click "Save and Apply" and close this window.
  2. Select Forge as the chosen version, click "Play", and enjoy playing with the new module-based Forge for 1.17 and with mods. You may or may not trust me, but it works, see:
    Proof

Note: The FML internals are not solid yet, and the Forge team is still figuring out how to make them as good as possible, so a breaking change may be introduced at some point and this workaround may stop working, so please keep it in mind.

1.1.17 windows xaero.minimap problem

Привет. Версия 1.1.17 не запускает майн без указания полного пути. (--gameDir .)

java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "java.nio.file.Path.resolve(String)" because "gameDir" is null
at xaero.minimap.XaeroMinimap.tryLoadLater(XaeroMinimap.java:207)
at net.minecraft.class_310.handler$zpp001$onTickStart(class_310.java:7556)
at net.minecraft.class_310.method_1574(class_310.java)
at net.minecraft.class_310.method_1523(class_310.java:1081)
at net.minecraft.class_310.method_1514(class_310.java:728)
at net.minecraft.client.main.Main.main(Main.java:217)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:602)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.lang.NullPointerException: Cannot invoke "java.nio.file.Path.resolve(String)" because "gameDir" is null
at xaero.minimap.XaeroMinimap.loadClient(XaeroMinimap.java:157)
at xaero.minimap.XaeroMinimap.onInitializeClient(XaeroMinimap.java:64)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:53)
at net.minecraft.class_310.(class_310.java:457)
at net.minecraft.client.main.Main.main(Main.java:179)
... 7 more

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at xaero.minimap.XaeroMinimap.tryLoadLater(XaeroMinimap.java:207)
at net.minecraft.class_310.handler$zpp001$onTickStart(class_310.java:7556)

Если сделать батник и прописать путь руками, как было раньше, то всё работает.
Пустой майнкрафт работает, и судя по логу, это ксаера не работает с точкой, но, сами понимаете, кто щас без карты играет?

Короче, всех благ автору проги. Надеюсь, он найдёт решение без костылей )

LWJGL error on all Minecraft versions since Snapshot_22w16a and up

According to Technical Changes in 22w16a in Patch notes from April 20:
Mojang updated LWJGL library to version 3.3.1.

Since then all next snapshots, pre-releases (and possibly releases too) stopped working.
22w15a and all previous versions are still launch and work just fine.

short first launch log file with error:
22w16a.log

1.1.17 Malware?

Newest version (1.1.17) gets blocked by Windows Defender SmartScreen.

Additionally the app gets flagged as malicious on VirusTotal 3 times:

  • MaxSecure - Trojan.Malware.300983.susgen
  • SecureAge APEX - Malicious
  • VBA32 - BScope.TrojanSpy.SpyEyes

Обрезается окно лаунчера

Только пересел на убунту и ничего не понимаю, судя по скринам после Play должны быть ещё две конпки, но у меня их нет:
Screenshot from 2021-08-30 08-01-37
Я дурак?

P.S Нашёл на Gitlab VLauncher_x64_Linux_test2 теперь всё работает, спасибо.

[Feature Request] An ability to enter the amount of RAM in both MB and GB

Currently this launcher only allows you to enter the amount of RAM in megabytes into the text box in the main launcher window, as the launcher always joins the entered value with "-Xmx" and "M" letter.

It would be nice to have e.g. a dropdown menu on the right side of the text box, which would let you select one of two options: "MB" or "GB". The selection will then direct whether the launcher should join the entered value with "M" letter (for MB), or with "G" letter (for GB), and "-Xmx".

The main purpose of this change is to let users allocate e.g. 8 GB of RAM without troubling to count 8 × 1024 = 8192.

I mean something like this:
MB-GB-dropdown-menu

[Feature Request] An ability to change the destination directory

The official Minecraft launcher stores by default Minecraft files in %APPDATA%\Roaming\.minecraft path on Windows (and probably in equivalent location on Linux and macOS), while this launcher always stores the files in the same directory, in which it is located.

Everything in this behavior is fine as long as you don't decide to install Forge, OptiFine, or Fabric via their official installers. The installers by default point to %APPDATA%\Roaming\.minecraft (on Windows), and I'm pretty sure most users are used to don't changing the default installer settings, so they will see an error just after they click "Install" (since the Minecraft files are not in the "right" place).

It would be nice to have a new option in the launcher settings window, which will give a user an ability to change the destination directory in which the launcher stores, downloads, updates, etc. Minecraft files.

Additionally, I think it could be a good decision to change the default destination directory to the same location the official Minecraft launcher uses, to resolve out of the box the problem I described in the previous paragraph.

Could not load icon

Hello,

try to run the minecraft 1.19.3 and getting the following crash report:

Time: 2022-12-19 09:04:21
Description: Initializing game

java.lang.IllegalStateException: Could not load icon: Image not of any known type, or corrupt
at edh.a(SourceFile:162)
at ejf.(SourceFile:497)
at net.minecraft.client.main.Main.a(SourceFile:205)
at net.minecraft.client.main.Main.main(SourceFile:51)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at edh.a(SourceFile:162)
at ejf.(SourceFile:497)

-- Initialization --
Details:
Modules:
Stacktrace:
at net.minecraft.client.main.Main.a(SourceFile:205)
at net.minecraft.client.main.Main.main(SourceFile:51)
What could be the problem?

[Feature Request] An ability to set Minecraft resolution

As written in the title, it would be great to have an ability to enter (in pixels) width into one text box, height into another, next to the first one, and the Minecraft will launch with the specified resolution.

Without that feature if you want to play in windowed mode, you have to manually resize the Minecraft window every time you launch the game.

If you look at the screenshot below, you can see that unfortunately Minecraft versions 1.13 and above have additional things in their JSON file, while versions 1.12.2 and below don't have them, so it's quite complicated. To make matters worse, even the official Minecraft launcher has problem to properly set Minecraft resolution in its newer versions (1.13+).

Screenshot showing pretty-printed JSON file for Minecraft 1.14.4:
The-JSON-file-for-Minecraft-1-14-4

Incorrect default Java path on Windows

When you look at the javaBinaryPathDefault variable, you can see that its initial state on Windows is C:\jre8\bin\javaw.exe, while the real default Java 8 path on Windows is C:\Program Files\Java\jre1.8.0_<e.g._221_for_Java_8u221>\bin\<chosen_Java_binary>.

If it is done on purpose, because e.g. you have Java in such path, feel free to close this issue. But if not, it would be nice if you could change the initial state of the variable to the real default path.

[Suggestion] Unification of args being passed by this launcher with these being passed by the official one

I ran a simple command, which I found on the Internet, in the Windows Command Prompt to check out what command line arguments were passed to the javaw.exe process after launching it via this launcher and the official one. I found out that the list of arguments being passed by this launcher significantly differs from those being passed by the official Minecraft launcher.

Using the official Minecraft launcher, I launched Minecraft version 1.14.4 with its default settings (except resolution options, because I wanted to check something additional), and then version 1.12.2, also with its default settings (and also except the resolution options).

Some time later using this launcher I launched Minecraft version 1.14.4 with mostly default settings (I had to change nick (to "Player") and max RAM (to 2048 MB) to match some of the official launcher options), and then version 1.12.2, also with mostly default settings (changed nick and max RAM).

The results can be seen below. To make differences more noticeable, I used text-compare.com website, which highlights them in blue.

Important note: I replaced several parts with texts between angle brackets (example: <a_text_between_angle_brackets>) to make all arguments look much more universally, and to remove redundant information such as e.g. the very long list of paths to bundled libraries. Furthermore, any characters like redundant quotation marks or the whitespace character in front of "--username" weren't added by me, so I suppose it's this launcher doing. I was replacing only one whitespace character by a newline character to make everything better and easier comparable.

Several most noticeable differences:

  • -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump – I have completely no idea what this argument does, but for some reason it is passed by the official Minecraft launcher, so maybe it is useful
  • -Dminecraft.launcher.brand=minecraft-launcher – unnecessary argument as long as its absence doesn't block Minecraft files from being downloaded
  • -Dminecraft.launcher.version=2.1.5964 – the same as above
  • -Dlog4j.configurationFile=C:\Users\<username>\AppData\Roaming\.minecraft\assets\log_configs\client-1.12.xml – looks like something important, but this launcher doesn't have a console module, so maybe it is not as useful as it could be?
  • --userType legacy – I don't know why there is "legacy" here instead of "mojang", but maybe it is better?
  • --versionType release – I think if you change text "release" to something other, it will be displayed next to the version number in the main menu and in the F3 overlay, so it seems to me that text other than "release" is unnecessary
  • --demo – completely redundant; its existence here is only due to the fact that I ran Minecraft using an account without bought the game
  • official Minecraft launcher passes arguments for the JVM (such as e.g. garbage collector) before the very long list of paths to bundled libraries, while this launcher passes them after the long list

Arguments being passed by the official Minecraft launcher (on the left) vs by this launcher for Minecraft version 1.14.4 (on the right):
Official-launcher-args-ver1444-vs-Vortex-launcher-args-ver1144

Arguments being passed by the official Minecraft launcher for Minecraft version 1.14.4 (on the left) vs for Minecraft version 1.12.2 (on the right):
Official-launcher-args-ver1144-vs-official-launcher-args-ver1122

Arguments being passed by this launcher for Minecraft version 1.14.4 (on the left) vs for Minecraft version 1.12.2 (on the right):
Vortex-launcher-args-ver1144-vs-Vortex-launcher-args-ver1122

No Java installed [OR] Custom Java Directory | Windows

Насколько я вижу, в функции findJava(), жава ищется в директории таким образом:

  • ExamineDirectory(#PB_Any, programFilesDir(i) + "Java", "*"), т.е. if "C:\Program Files (x86)\Java\*"
    но, у инстолятора жава (win) - есть опция: "выбрать кастомную директорию"

Так вот, лично я её пользую каждую установку, например можно закинуть java на 2й ссд, либо просто в другую директорию (пример ниже) как это сделал я, следовательно лаунчер напишет: жабы нет


Да, я прекрасно понимаю, что искать по всем папка жаву - не выход,
[и я догадываюсь, что @Kron4ek больше в линукс, чем в виндовс,]
но, у шинды(как и вроде у линуха) есть замечательные якоря/переменные среды/environment variables, например %appdata%...


В общем, я потестил GetEnvironmentVariable("Path") - работает нормально, выдает такую строку:

  • C:\Program Files (x86)\PureBasic\Compilers\;C:\Program Files\Java64bit\bin;C:\Program Files (x86)\Java32bit\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
  • аутпут выше - без_изменений/валидный == можно использовать для тестов
  • так же, строка может заканчиваться как на ...bin\;, так и на ...bin;, семиколон есть всегда

Отсюда уже - можно получить валидный путь к жаве 🙂

[Feature Request] Support for launcher translations

Currently this launcher uses hard-coded English strings, so it's impossible to have the GUI in other language without modifying the source code, and recompiling it on one's own.

It would be great if you could create on GitHub a directory for translation files, and add to it a reference, en-us.json (or en_us.json) or similar file. Then translators (I'm willing :) ) would be able to modify its name (to e.g. de-de.json (or de_de.json) and half of its content, and submit this file via pull request. You would then contain all the translation files (including the en-us.json file) into the launcher executable file (.exe on Windows, something other on Linux and macOS). At the end all users would have an ability to select their preferred language via e.g. dropdown menu in the launcher settings window.

I have seen a lot of Minecraft launchers do this in such a way, but I don't know whether it is possible or not in case of this launcher, since all source code is contained in only one file for every OS.

[Bug/Feature Request] Window position is not saved.

It's very frustrating to have the launcher open in the corner of the screen all the time.

The default position should be changed to the middle of the screen, or, the position should be saved once you move it.

The sub-windows should always open relative to it.

Since I've never had this problem before (or haven't noticed), it feels like very weird behavior to me, so I don't know if it's a bug or not.

remove it

аой, случайно отправил

moved to #50

Critical security vulnerability in Log4j

Recently a critical security vulnerability that allows remote code execution was discovered in the Log4j library (see CVE-2021-44228). Minecraft is affected since it uses this library.

Vortex Minecraft Launcher does not include a fix for this vulnerability yet (fixed in version 1.1.17), all Minecraft versions (including latest 1.18.1 i believe) that you run using it are affected.

To avoid being hacked, do not play multiplayer on any public Minecraft servers until i release a new launcher version. Or use a different launcher that is not affected (for example, MultiMC).

It is important to note that singleplayer is safe to play. Playing multiplayer on private servers that have limited access only to your friends is also safe (if you trust your friends, of course).

How to build it?

I know nothing about PureBasic and I only have little knowledge about the make, CMake, etc. How can I build it in other to make it work on Void Linux?

Forge not working

i tried install forge and it says that the installation is complete, but it just doesnt open

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.