▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/JavaProgArgOverride

JavaProgArgOverride

Enable you to override the target main class's Java Program arguments with arbitrary arguments using Mixin (by SpongePowered). And without changing cmdlines(in Task Manager or Htop)!

1.2K
5

Before Running This Mod

This mod is designed for advanced Minecraft users / mod developers. If you do not know how Java handles Program arguments, don't run it.
WARN: ANY COMMAND CAN BE EXECUTED THROUGH THIS MOD LOADING, INCLUDING WHICH ARE MALICIOUS. THE AUTHOR WILL NOT BE RESPONSIBLE FOR ANYTHING CAUSED BY RUNNING THIS MOD.

Mod Synopsis

This mod is a simple but powerful tool for overriding Java Program arguments.

How to Use This Mod

This mod uses 2 Java Properties: rege.rege.misc.javaprogargoverride.Util.overridingArgs (called overridingArgs below for convenience) and rege.rege.misc.javaprogargoverride.Util.overridingArgsType (called overridingArgsType below for convenience).
This is a simple example that works (for client-side):
1. Create overrideargs.py at the root directory of the Minecraft instance with following content:

#!/usr/bin/env python

from sys import stdin, stdout
stdout.write(stdin.read())
stdout.write(" --fullscreen")

2. Edit the content of Java Properties arguments (e.g. “Settings/Java arguments” in Prism Launcher), add these: -Drege.rege.misc.javaprogargoverride.Util.overridingArgs="python overrideargs.py" -Drege.rege.misc.javaprogargoverride.Util.overridingArgsType=exec.
3. Launch the game, and you will find that the Minecraft windows is created in a fullscreen state.
Explanation of the example:

  1. This mod will first check whether Property overridingArgs is present. If no, this mod will do nothing.
  2. There are 2 types available for Property overridingArgsType: plain and exec. The default is plain. If it is plain, then the arguments specified by overridingArgs will be directly used as the overriding arguments, in UNIX-Shell-styled format. If it is exec, then the arguments specified by overridingArgs will be executed as a command (like Batch / Shell commands), the arguments to be overridden will be passed into STDIN in UNIX-Shell-styled format. The STDOUT of the command will be used as the overriding arguments, in UNIX-Shell-styled format.
    1. For example, raw argument string arg1 'arg2' "arg3" \a\r\g\4 will be resolved as 4 arguments arg1, arg2, arg3 and arg4; raw argument string arg\\1 'arg\\2' "arg\\3" 'a'"r"g\''4' "" will be resolved as 5 arguments arg\1, arg\\2, arg\3, arg'4 and ``(empty string); raw argument string "arg\"1" 'arg'\'"2" "arg\\\\3" arg\ \\4 will be resolved as 4 arguments arg"1, arg'2, arg\\3 and arg \4.
    2. For example, arguments --width, 1800, --height and 1200 will be passed to STDIN as --width 1800 --height 1200; arguments --version, ``(empty string), --gameDir and /home/this/is/a/path/with/"doubles"/'singles'/and/s p a c e s/and/even/\backslashes\ will be passed to STDIN as --version '' --gamedir /home/this/is/a/path/with/\"doubles\"/\'singles\'/and/s\ p\ a\ c\ e\ s/and/even/\\backslashes\\.
  3. Appending arguments only is recommended (output the original arguments by using e.g. sys.stdout.write(sys.stdin.read()) in Python, System.out.write(System.in.readAllBytes()) in Java and cat - in Shell Script). But if you want, you can even make full use of the arguments!

Notice

This mod is “Client-side optional, Server-side optional”, and client-side and server-side version of this mod work independently, and they have nothing to do with each other.
The client-side mod JAR will not be run on the server-side and vice versa. Please ensure you are running the correct version of the mod JAR on the correct side.
If the argument format (by overridingArgs or the STDOUT when overridingArgsType is exec) is incorrect, Minecraft will crash:

  • Quote not close, for example: If the raw argument string is python "overrideargs.py, java.lang.IllegalArgumentException: quote at index 7 not closed will be thrown.
  • Unexpected escape character(\) at the end of the raw argument string, for example: If the raw argument string is python overrideargs.py\, java.lang.IllegalArgumentException: unexpected escape at the end will be thrown.
  • Command not found, for example: If the raw argument string is pyhon overrideargs.py, java.io.IOException: Cannot run program "pyhon": error=2, No such file or directory (may vary by operating system) will be thrown.

Report Issues

Please leave a comment about your issue under the gist.

Совместимость

Minecraft: Java Edition

b1.8.126.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x1.12.x1.11.x1.10.x1.9.x1.8.x1.7.x1.6.x1.5.x1.4.x1.3.x1.2.x1.1.x1.0.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:CC0-1.0
Опубликован:1 год назад
Обновлён:1 год назад
Главная