mirror of
https://github.com/ViaVersion/ViaProxy.git
synced 2024-11-26 12:35:11 +01:00
Added the ability to use microsoft accounts in CLI
This commit is contained in:
parent
85ddaf877a
commit
f890fd0c79
@ -154,21 +154,20 @@ public class ViaProxy {
|
|||||||
}
|
}
|
||||||
ViaProxyUI.EVENT_MANAGER.call(new UIInitEvent());
|
ViaProxyUI.EVENT_MANAGER.call(new UIInitEvent());
|
||||||
Logger.LOGGER.info("ViaProxy started successfully!");
|
Logger.LOGGER.info("ViaProxy started successfully!");
|
||||||
return;
|
} else {
|
||||||
}
|
Options.parse(args);
|
||||||
|
|
||||||
Options.parse(args);
|
if (System.getProperty("skipUpdateCheck") == null) {
|
||||||
|
updateCheckThread.start();
|
||||||
|
}
|
||||||
|
loaderThread.start();
|
||||||
|
loaderThread.join();
|
||||||
|
Logger.LOGGER.info("ViaProxy started successfully!");
|
||||||
|
startProxy();
|
||||||
|
|
||||||
if (System.getProperty("skipUpdateCheck") == null) {
|
while (true) {
|
||||||
updateCheckThread.start();
|
Thread.sleep(Integer.MAX_VALUE);
|
||||||
}
|
}
|
||||||
loaderThread.start();
|
|
||||||
loaderThread.join();
|
|
||||||
Logger.LOGGER.info("ViaProxy started successfully!");
|
|
||||||
startProxy();
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
Thread.sleep(Integer.MAX_VALUE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ import joptsimple.OptionParser;
|
|||||||
import joptsimple.OptionSet;
|
import joptsimple.OptionSet;
|
||||||
import joptsimple.OptionSpec;
|
import joptsimple.OptionSpec;
|
||||||
import net.raphimc.vialoader.util.VersionEnum;
|
import net.raphimc.vialoader.util.VersionEnum;
|
||||||
|
import net.raphimc.viaproxy.ViaProxy;
|
||||||
import net.raphimc.viaproxy.plugins.PluginManager;
|
import net.raphimc.viaproxy.plugins.PluginManager;
|
||||||
import net.raphimc.viaproxy.plugins.events.GetDefaultPortEvent;
|
import net.raphimc.viaproxy.plugins.events.GetDefaultPortEvent;
|
||||||
import net.raphimc.viaproxy.plugins.events.PostOptionsParseEvent;
|
import net.raphimc.viaproxy.plugins.events.PostOptionsParseEvent;
|
||||||
@ -32,6 +33,7 @@ import net.raphimc.viaproxy.util.logging.Logger;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static java.util.Arrays.asList;
|
import static java.util.Arrays.asList;
|
||||||
|
|
||||||
@ -45,10 +47,10 @@ public class Options {
|
|||||||
public static boolean ONLINE_MODE;
|
public static boolean ONLINE_MODE;
|
||||||
public static boolean OPENAUTHMOD_AUTH;
|
public static boolean OPENAUTHMOD_AUTH;
|
||||||
public static boolean BETACRAFT_AUTH;
|
public static boolean BETACRAFT_AUTH;
|
||||||
|
public static Account MC_ACCOUNT;
|
||||||
public static URI PROXY_URL; // Example: type://address:port or type://username:password@address:port
|
public static URI PROXY_URL; // Example: type://address:port or type://username:password@address:port
|
||||||
|
|
||||||
// GUI only config options
|
// GUI only config options
|
||||||
public static Account MC_ACCOUNT;
|
|
||||||
public static String CLASSIC_MP_PASS;
|
public static String CLASSIC_MP_PASS;
|
||||||
public static Boolean LEGACY_SKIN_LOADING;
|
public static Boolean LEGACY_SKIN_LOADING;
|
||||||
public static boolean CHAT_SIGNING;
|
public static boolean CHAT_SIGNING;
|
||||||
@ -71,12 +73,13 @@ public class Options {
|
|||||||
final OptionSpec<Integer> bindPort = parser.acceptsAll(asList("bind_port", "bp"), "The port the proxy should bind to").withRequiredArg().ofType(Integer.class).defaultsTo(BIND_PORT);
|
final OptionSpec<Integer> bindPort = parser.acceptsAll(asList("bind_port", "bp"), "The port the proxy should bind to").withRequiredArg().ofType(Integer.class).defaultsTo(BIND_PORT);
|
||||||
final OptionSpec<Void> srvMode = parser.acceptsAll(asList("srv_mode", "srv", "s"), "Enable srv mode");
|
final OptionSpec<Void> srvMode = parser.acceptsAll(asList("srv_mode", "srv", "s"), "Enable srv mode");
|
||||||
final OptionSpec<Void> iSrvMode = parser.acceptsAll(asList("internal_srv_mode", "isrv"), "Enable internal srv mode").availableUnless(srvMode);
|
final OptionSpec<Void> iSrvMode = parser.acceptsAll(asList("internal_srv_mode", "isrv"), "Enable internal srv mode").availableUnless(srvMode);
|
||||||
final OptionSpec<Void> onlineMode = parser.acceptsAll(asList("online_mode", "om", "o"), "Enable online mode");
|
final OptionSpec<Void> proxyOnlineMode = parser.acceptsAll(asList("online_mode", "om", "o"), "Enable proxy online mode");
|
||||||
final OptionSpec<Integer> compressionThreshold = parser.acceptsAll(asList("compression_threshold", "ct", "c"), "The threshold for packet compression").withRequiredArg().ofType(Integer.class).defaultsTo(COMPRESSION_THRESHOLD);
|
final OptionSpec<Integer> compressionThreshold = parser.acceptsAll(asList("compression_threshold", "ct", "c"), "The threshold for packet compression").withRequiredArg().ofType(Integer.class).defaultsTo(COMPRESSION_THRESHOLD);
|
||||||
final OptionSpec<String> connectAddress = parser.acceptsAll(asList("connect_address", "target_ip", "ca", "a"), "The address of the target server").withRequiredArg().ofType(String.class).required();
|
final OptionSpec<String> connectAddress = parser.acceptsAll(asList("connect_address", "target_ip", "ca", "a"), "The address of the target server").withRequiredArg().ofType(String.class).required();
|
||||||
final OptionSpec<Integer> connectPort = parser.acceptsAll(asList("connect_port", "target_port", "cp", "p"), "The port of the target server").withRequiredArg().ofType(Integer.class);
|
final OptionSpec<Integer> connectPort = parser.acceptsAll(asList("connect_port", "target_port", "cp", "p"), "The port of the target server").withRequiredArg().ofType(Integer.class);
|
||||||
final OptionSpec<VersionEnum> version = parser.acceptsAll(asList("version", "v"), "The version of the target server").withRequiredArg().withValuesConvertedBy(new VersionEnumConverter()).required();
|
final OptionSpec<VersionEnum> version = parser.acceptsAll(asList("version", "v"), "The version of the target server").withRequiredArg().withValuesConvertedBy(new VersionEnumConverter()).required();
|
||||||
final OptionSpec<Void> openAuthModAuth = parser.acceptsAll(asList("openauthmod_auth", "oam_auth"), "Enable OpenAuthMod authentication");
|
final OptionSpec<Void> openAuthModAuth = parser.acceptsAll(asList("openauthmod_auth", "oam_auth"), "Use OpenAuthMod for joining online mode servers");
|
||||||
|
final OptionSpec<Integer> guiAccountIndex = parser.acceptsAll(asList("gui_account_index", "gui_account"), "Use an account from the ViaProxy GUI for joining online mode servers (Specify -1 for instructions)").withRequiredArg().ofType(Integer.class);
|
||||||
final OptionSpec<Void> betaCraftAuth = parser.accepts("betacraft_auth", "Use BetaCraft authentication for classic servers");
|
final OptionSpec<Void> betaCraftAuth = parser.accepts("betacraft_auth", "Use BetaCraft authentication for classic servers");
|
||||||
final OptionSpec<String> resourcePackUrl = parser.acceptsAll(asList("resource_pack_url", "resource_pack", "rpu", "rp"), "URL of a resource pack which clients can optionally download").withRequiredArg().ofType(String.class);
|
final OptionSpec<String> resourcePackUrl = parser.acceptsAll(asList("resource_pack_url", "resource_pack", "rpu", "rp"), "URL of a resource pack which clients can optionally download").withRequiredArg().ofType(String.class);
|
||||||
final OptionSpec<String> proxyUrl = parser.acceptsAll(asList("proxy_url", "proxy"), "URL of a SOCKS(4/5)/HTTP(S) proxy which will be used for backend TCP connections").withRequiredArg().ofType(String.class);
|
final OptionSpec<String> proxyUrl = parser.acceptsAll(asList("proxy_url", "proxy"), "URL of a SOCKS(4/5)/HTTP(S) proxy which will be used for backend TCP connections").withRequiredArg().ofType(String.class);
|
||||||
@ -99,7 +102,7 @@ public class Options {
|
|||||||
BIND_PORT = options.valueOf(bindPort);
|
BIND_PORT = options.valueOf(bindPort);
|
||||||
SRV_MODE = options.has(srvMode);
|
SRV_MODE = options.has(srvMode);
|
||||||
INTERNAL_SRV_MODE = options.has(iSrvMode);
|
INTERNAL_SRV_MODE = options.has(iSrvMode);
|
||||||
ONLINE_MODE = options.has(onlineMode);
|
ONLINE_MODE = options.has(proxyOnlineMode);
|
||||||
CONNECT_ADDRESS = options.valueOf(connectAddress);
|
CONNECT_ADDRESS = options.valueOf(connectAddress);
|
||||||
PROTOCOL_VERSION = options.valueOf(version);
|
PROTOCOL_VERSION = options.valueOf(version);
|
||||||
if (options.has(connectPort)) {
|
if (options.has(connectPort)) {
|
||||||
@ -109,6 +112,26 @@ public class Options {
|
|||||||
}
|
}
|
||||||
COMPRESSION_THRESHOLD = options.valueOf(compressionThreshold);
|
COMPRESSION_THRESHOLD = options.valueOf(compressionThreshold);
|
||||||
OPENAUTHMOD_AUTH = options.has(openAuthModAuth);
|
OPENAUTHMOD_AUTH = options.has(openAuthModAuth);
|
||||||
|
if (options.has(guiAccountIndex)) {
|
||||||
|
final List<Account> accounts = ViaProxy.saveManager.accountsSave.getAccounts();
|
||||||
|
final int index = options.valueOf(guiAccountIndex);
|
||||||
|
if (index < 0 || index >= accounts.size()) {
|
||||||
|
Logger.LOGGER.error("Invalid account index: " + index);
|
||||||
|
Logger.LOGGER.info("To use this feature you have to:");
|
||||||
|
Logger.LOGGER.info("1. Launch the ViaProxy GUI on your computer and add an account in the GUI");
|
||||||
|
Logger.LOGGER.info("2. Copy the 'saves.json' file from the directory of your ViaProxy GUI jar to the directory of the current ViaProxy CLI jar");
|
||||||
|
Logger.LOGGER.info("3. Specify the index of the account (See list below)");
|
||||||
|
Logger.LOGGER.info("=== Account list ===");
|
||||||
|
for (int i = 0; i < accounts.size(); i++) {
|
||||||
|
Logger.LOGGER.info(i + ": " + accounts.get(i).getDisplayString());
|
||||||
|
}
|
||||||
|
Logger.LOGGER.info("====================");
|
||||||
|
System.exit(1);
|
||||||
|
} else {
|
||||||
|
MC_ACCOUNT = accounts.get(index);
|
||||||
|
Logger.LOGGER.info("Using account: " + MC_ACCOUNT.getDisplayString() + " to join online mode servers");
|
||||||
|
}
|
||||||
|
}
|
||||||
BETACRAFT_AUTH = options.has(betaCraftAuth);
|
BETACRAFT_AUTH = options.has(betaCraftAuth);
|
||||||
if (options.has(resourcePackUrl)) {
|
if (options.has(resourcePackUrl)) {
|
||||||
RESOURCE_PACK_URL = options.valueOf(resourcePackUrl);
|
RESOURCE_PACK_URL = options.valueOf(resourcePackUrl);
|
||||||
|
Loading…
Reference in New Issue
Block a user