[REFRACTOR] Чистка Request от кода старого протокола

This commit is contained in:
Gravit 2019-04-04 18:56:34 +07:00
parent dbb07dee79
commit c1903428eb
No known key found for this signature in database
GPG key ID: 061981E1E85D3216
20 changed files with 44 additions and 343 deletions

View file

@ -5,7 +5,8 @@
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launchserver.LaunchServer;
import ru.gravit.launchserver.response.update.*;
import ru.gravit.launchserver.response.update.LauncherResponse;
import ru.gravit.launchserver.response.update.LegacyLauncherResponse;
import ru.gravit.launchserver.socket.Client;
import ru.gravit.utils.helper.LogHelper;

View file

@ -12,7 +12,6 @@
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.auth.RestoreSessionRequest;
import ru.gravit.launcher.request.update.LegacyLauncherRequest;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;

View file

@ -11,7 +11,6 @@
import ru.gravit.launcher.managers.HasherManager;
import ru.gravit.launcher.managers.HasherStore;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.update.LegacyLauncherRequest;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.signed.SignedObjectHolder;
@ -44,21 +43,6 @@ public static HashedDirRunnable offlineUpdateRequest(String dirName, Path dir, S
};
}
@LauncherAPI
public static LegacyLauncherRequest.Result offlineLauncherRequest() throws IOException {
if (settings.lastDigest == null || settings.lastProfiles.isEmpty()) {
Request.requestError("Запуск в оффлайн-режиме невозможен");
}
// Verify launcher signature
//TODO: TO DIGEST
//SecurityHelper.verifySign(LegacyLauncherRequest.BINARY_PATH,
// settings.lastDigest, Launcher.getConfig().publicKey);
// Return last sign and profiles
return new LegacyLauncherRequest.Result(null, settings.lastDigest, settings.lastProfiles);
}
@LauncherAPI
public static void makeJsonRequest(RequestInterface request, Runnable callback) {

View file

@ -13,7 +13,10 @@
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.profiles.Texture;
import ru.gravit.launcher.profiles.optional.OptionalFile;
import ru.gravit.launcher.request.*;
import ru.gravit.launcher.request.PingRequest;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestException;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.auth.AuthRequest;
import ru.gravit.launcher.request.auth.CheckServerRequest;
import ru.gravit.launcher.request.auth.JoinServerRequest;

View file

@ -1,22 +1,10 @@
package ru.gravit.launcher.request;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import java.io.IOException;
public final class PingRequest extends Request<Void> {
@LauncherAPI
public PingRequest() {
this(null);
@Override
protected Void requestDo() throws Exception {
return null;
}
@LauncherAPI
public PingRequest(LauncherConfig config) {
super(config);
}
}

View file

@ -1,15 +1,8 @@
package ru.gravit.launcher.request;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.SecurityHelper;
import java.io.IOException;
import java.net.Socket;
import java.util.concurrent.atomic.AtomicBoolean;
public abstract class Request<R> {
@ -28,37 +21,15 @@ public static void requestError(String message) throws RequestException {
throw new RequestException(message);
}
@LauncherAPI
protected transient final LauncherConfig config;
private transient final AtomicBoolean started = new AtomicBoolean(false);
@LauncherAPI
protected Request() {
this(null);
}
@LauncherAPI
protected Request(LauncherConfig config) {
this.config = config == null ? Launcher.getConfig() : config;
}
@LauncherAPI
protected final void readError(HInput input) throws IOException {
String error = input.readString(0);
if (!error.isEmpty())
requestError(error);
}
@LauncherAPI
public R request() throws Exception {
if (!started.compareAndSet(false, true))
throw new IllegalStateException("Request already started");
return requestWebSockets();
return requestDo();
}
protected R requestWebSockets() throws Exception {
return null;
}
protected abstract R requestDo() throws Exception;
}

View file

@ -1,20 +1,14 @@
package ru.gravit.launcher.request.auth;
import ru.gravit.launcher.*;
import ru.gravit.launcher.HWID;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.AuthRequestEvent;
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.utils.helper.SecurityHelper;
import ru.gravit.utils.helper.VerifyHelper;
import java.io.IOException;
public final class AuthRequest extends Request<AuthRequestEvent> implements RequestInterface {
@LauncherNetworkAPI
private final String login;
@ -36,8 +30,7 @@ public enum ConnectTypes {
}
@LauncherAPI
public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hwid) {
super(config);
public AuthRequest(String login, byte[] password, HWID hwid) {
this.login = VerifyHelper.verify(login, VerifyHelper.NOT_EMPTY, "Login can't be empty");
this.encryptedPassword = password.clone();
this.hwid = hwid;
@ -48,8 +41,7 @@ public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hw
}
@LauncherAPI
public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hwid, String auth_id) {
super(config);
public AuthRequest(String login, byte[] password, HWID hwid, String auth_id) {
this.login = VerifyHelper.verify(login, VerifyHelper.NOT_EMPTY, "Login can't be empty");
this.encryptedPassword = password.clone();
this.hwid = hwid;
@ -60,8 +52,7 @@ public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hw
}
@LauncherAPI
public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hwid, String customText, String auth_id) {
super(config);
public AuthRequest(String login, byte[] password, HWID hwid, String customText, String auth_id) {
this.login = VerifyHelper.verify(login, VerifyHelper.NOT_EMPTY, "Login can't be empty");
this.encryptedPassword = password.clone();
this.hwid = hwid;
@ -71,11 +62,6 @@ public AuthRequest(LauncherConfig config, String login, byte[] password, HWID hw
authType = ConnectTypes.CLIENT;
}
@LauncherAPI
public AuthRequest(String login, byte[] password, HWID hwid) {
this(null, login, password, hwid);
}
public AuthRequest(String login, byte[] encryptedPassword, String auth_id, ConnectTypes authType) {
this.login = login;
this.encryptedPassword = encryptedPassword;
@ -87,15 +73,10 @@ public AuthRequest(String login, byte[] encryptedPassword, String auth_id, Conne
}
@Override
public AuthRequestEvent requestWebSockets() throws Exception {
public AuthRequestEvent requestDo() throws Exception {
return (AuthRequestEvent) LegacyRequestBridge.sendRequest(this);
}
@LauncherAPI
public AuthRequest(String login, byte[] password, HWID hwid, String auth_id) {
this(null, login, password, hwid, auth_id);
}
@Override
public String getType() {
return "auth";

View file

@ -1,24 +1,13 @@
package ru.gravit.launcher.request.auth;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.CheckServerRequestEvent;
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.ResultInterface;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.VerifyHelper;
import java.io.IOException;
public final class CheckServerRequest extends Request<CheckServerRequestEvent> implements RequestInterface {
@LauncherNetworkAPI
private final String username;
@ -26,19 +15,13 @@ public final class CheckServerRequest extends Request<CheckServerRequestEvent> i
private final String serverID;
@LauncherAPI
public CheckServerRequest(LauncherConfig config, String username, String serverID) {
super(config);
public CheckServerRequest(String username, String serverID) {
this.username = VerifyHelper.verifyUsername(username);
this.serverID = VerifyHelper.verifyServerID(serverID);
}
@LauncherAPI
public CheckServerRequest(String username, String serverID) {
this(null, username, serverID);
}
@Override
public CheckServerRequestEvent requestWebSockets() throws Exception
public CheckServerRequestEvent requestDo() throws Exception
{
return (CheckServerRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -1,16 +1,11 @@
package ru.gravit.launcher.request.auth;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.JoinServerRequestEvent;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.utils.helper.SecurityHelper;
import ru.gravit.utils.helper.VerifyHelper;
@ -27,22 +22,17 @@ public final class JoinServerRequest extends Request<JoinServerRequestEvent> imp
private final String serverID;
@LauncherAPI
public JoinServerRequest(LauncherConfig config, String username, String accessToken, String serverID) {
super(config);
public JoinServerRequest(String username, String accessToken, String serverID) {
this.username = VerifyHelper.verifyUsername(username);
this.accessToken = SecurityHelper.verifyToken(accessToken);
this.serverID = VerifyHelper.verifyServerID(serverID);
}
@Override
public JoinServerRequestEvent requestWebSockets() throws IOException, InterruptedException {
public JoinServerRequestEvent requestDo() throws IOException, InterruptedException {
return (JoinServerRequestEvent) LegacyRequestBridge.sendRequest(this);
}
@LauncherAPI
public JoinServerRequest(String username, String accessToken, String serverID) {
this(null, username, accessToken, serverID);
}
@Override
public String getType() {
return "joinServer";

View file

@ -1,13 +1,10 @@
package ru.gravit.launcher.request.auth;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.AuthRequestEvent;
import ru.gravit.launcher.events.request.RestoreSessionRequestEvent;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import java.io.IOException;
@ -19,7 +16,7 @@ public RestoreSessionRequest(long session) {
this.session = session;
}
@Override
public RestoreSessionRequestEvent requestWebSockets() throws IOException, InterruptedException {
public RestoreSessionRequestEvent requestDo() throws IOException, InterruptedException {
return (RestoreSessionRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -1,30 +1,24 @@
package ru.gravit.launcher.request.auth;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.SetProfileRequestEvent;
import ru.gravit.launcher.profiles.ClientProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
public class SetProfileRequest extends Request<SetProfileRequestEvent> implements RequestInterface {
private transient ClientProfile profile;
@LauncherNetworkAPI
public String client;
public SetProfileRequest(LauncherConfig config, ClientProfile profile) {
super(config);
public SetProfileRequest(ClientProfile profile) {
this.profile = profile;
this.client = profile.getTitle();
}
@Override
public SetProfileRequestEvent requestWebSockets() throws Exception {
public SetProfileRequestEvent requestDo() throws Exception {
return (SetProfileRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -2,23 +2,18 @@
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.downloader.ListDownloader;
import ru.gravit.launcher.events.request.LauncherRequestEvent;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.JVMHelper;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.SecurityHelper;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
@ -35,7 +30,7 @@ public final class LauncherRequest extends Request<LauncherRequestEvent> impleme
public static final boolean EXE_BINARY = IOHelper.hasExtension(BINARY_PATH, "exe");
@LauncherAPI
public static void update(LauncherConfig config, LauncherRequestEvent result) throws IOException {
public static void update(LauncherRequestEvent result) throws IOException {
List<String> args = new ArrayList<>(8);
args.add(IOHelper.resolveJavaBin(null).toString());
if (LogHelper.isDebugEnabled())
@ -70,21 +65,15 @@ public static void update(LauncherConfig config, LauncherRequestEvent result) th
throw new AssertionError("Why Launcher wasn't restarted?!");
}
@LauncherAPI
public LauncherRequest() {
this(null);
}
@Override
public LauncherRequestEvent requestWebSockets() throws Exception {
public LauncherRequestEvent requestDo() throws Exception {
LauncherRequestEvent result = (LauncherRequestEvent) LegacyRequestBridge.sendRequest(this);
if (result.needUpdate) update(config, result);
if (result.needUpdate) update(result);
return result;
}
@LauncherAPI
public LauncherRequest(LauncherConfig config) {
super(config);
public LauncherRequest() {
Path launcherPath = IOHelper.getCodeSource(LauncherRequest.class);
try {
digest = SecurityHelper.digest(SecurityHelper.DigestAlgorithm.SHA512, launcherPath);

View file

@ -1,87 +0,0 @@
package ru.gravit.launcher.request.update;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.profiles.ClientProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.update.LegacyLauncherRequest.Result;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.JVMHelper;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.SecurityHelper;
import java.io.IOException;
import java.nio.file.Path;
import java.security.SignatureException;
import java.security.interfaces.RSAPublicKey;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public final class LegacyLauncherRequest extends Request<Result> {
public static final class Result {
@LauncherAPI
public final List<ClientProfile> profiles;
private final byte[] binary;
private final byte[] sign;
public Result(byte[] binary, byte[] sign, List<ClientProfile> profiles) {
this.binary = binary == null ? null : binary.clone();
this.sign = sign.clone();
this.profiles = Collections.unmodifiableList(profiles);
}
@LauncherAPI
public byte[] getBinary() {
return binary == null ? null : binary.clone();
}
@LauncherAPI
public byte[] getSign() {
return sign.clone();
}
}
@LauncherAPI
public static final Path BINARY_PATH = IOHelper.getCodeSource(Launcher.class);
@LauncherAPI
public static final boolean EXE_BINARY = IOHelper.hasExtension(BINARY_PATH, "exe");
@LauncherAPI
public static void update(LauncherConfig config, Result result) throws SignatureException, IOException {
SecurityHelper.verifySign(result.binary, result.sign, config.publicKey);
// Prepare process builder to start new instance (java -jar works for Launch4J's EXE too)
List<String> args = new ArrayList<>(8);
args.add(IOHelper.resolveJavaBin(null).toString());
if (LogHelper.isDebugEnabled())
args.add(JVMHelper.jvmProperty(LogHelper.DEBUG_PROPERTY, Boolean.toString(LogHelper.isDebugEnabled())));
args.add("-jar");
args.add(BINARY_PATH.toString());
ProcessBuilder builder = new ProcessBuilder(args.toArray(new String[0]));
builder.inheritIO();
// Rewrite and start new instance
IOHelper.write(BINARY_PATH, result.binary);
builder.start();
// Kill current instance
JVMHelper.RUNTIME.exit(255);
throw new AssertionError("Why Launcher wasn't restarted?!");
}
@LauncherAPI
public LegacyLauncherRequest() {
this(null);
}
@LauncherAPI
public LegacyLauncherRequest(LauncherConfig config) {
super(config);
}
}

View file

@ -1,34 +1,14 @@
package ru.gravit.launcher.request.update;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.events.request.ProfilesRequestEvent;
import ru.gravit.launcher.profiles.ClientProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import java.util.ArrayList;
import java.util.List;
public final class ProfilesRequest extends Request<ProfilesRequestEvent> implements RequestInterface {
@LauncherAPI
public ProfilesRequest() {
this(null);
}
@LauncherAPI
public ProfilesRequest(LauncherConfig config) {
super(config);
}
@Override
public ProfilesRequestEvent requestWebSockets() throws Exception {
public ProfilesRequestEvent requestDo() throws Exception {
return (ProfilesRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -1,32 +1,14 @@
package ru.gravit.launcher.request.update;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.events.request.UpdateListRequestEvent;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.utils.helper.IOHelper;
import java.io.IOException;
import java.util.HashSet;
public final class UpdateListRequest extends Request<UpdateListRequestEvent> implements RequestInterface {
@LauncherAPI
public UpdateListRequest() {
this(null);
}
@LauncherAPI
public UpdateListRequest(LauncherConfig config) {
super(config);
}
@Override
public UpdateListRequestEvent requestWebSockets() throws Exception {
public UpdateListRequestEvent requestDo() throws Exception {
return (UpdateListRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -2,7 +2,6 @@
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.downloader.ListDownloader;
import ru.gravit.launcher.events.request.UpdateRequestEvent;
@ -11,33 +10,23 @@
import ru.gravit.launcher.hasher.HashedEntry;
import ru.gravit.launcher.hasher.HashedFile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.UpdateAction;
import ru.gravit.launcher.request.update.UpdateRequest.State.Callback;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.launcher.serialize.signed.SignedObjectHolder;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.SecurityHelper;
import ru.gravit.utils.helper.SecurityHelper.DigestAlgorithm;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.security.MessageDigest;
import java.security.SignatureException;
import java.time.Duration;
import java.time.Instant;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import java.util.zip.InflaterInputStream;
import java.util.Objects;
import java.util.Queue;
public final class UpdateRequest extends Request<UpdateRequestEvent> implements RequestInterface {
@ -200,7 +189,7 @@ private static void fillActionsQueue(Queue<UpdateAction> queue, HashedDir mismat
}
@Override
public UpdateRequestEvent requestWebSockets() throws Exception {
public UpdateRequestEvent requestDo() throws Exception {
LogHelper.debug("Start update request");
UpdateRequestEvent e = (UpdateRequestEvent) LegacyRequestBridge.sendRequest(this);
LogHelper.debug("Start update");
@ -243,19 +232,13 @@ public UpdateRequestEvent requestWebSockets() throws Exception {
private transient Instant startTime;
@LauncherAPI
public UpdateRequest(LauncherConfig config, String dirName, Path dir, FileNameMatcher matcher, boolean digest) {
super(config);
public UpdateRequest(String dirName, Path dir, FileNameMatcher matcher, boolean digest) {
this.dirName = IOHelper.verifyFileName(dirName);
this.dir = Objects.requireNonNull(dir, "dir");
this.matcher = matcher;
this.digest = digest;
}
@LauncherAPI
public UpdateRequest(String dirName, Path dir, FileNameMatcher matcher, boolean digest) {
this(null, dirName, dir, matcher, digest);
}
private void deleteExtraDir(Path subDir, HashedDir subHDir, boolean flag) throws IOException {
for (Entry<String, HashedEntry> mapEntry : subHDir.map().entrySet()) {
String name = mapEntry.getKey();

View file

@ -1,16 +1,11 @@
package ru.gravit.launcher.request.uuid;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.BatchProfileByUsernameRequestEvent;
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.VerifyHelper;
@ -28,8 +23,7 @@ class Entry {
private final Entry[] list;
@LauncherAPI
public BatchProfileByUsernameRequest(LauncherConfig config, String... usernames) throws IOException {
super(config);
public BatchProfileByUsernameRequest(String... usernames) throws IOException {
this.list = new Entry[usernames.length];
for(int i=0;i<usernames.length;++i)
{
@ -40,13 +34,8 @@ public BatchProfileByUsernameRequest(LauncherConfig config, String... usernames)
for (String username : usernames)
VerifyHelper.verifyUsername(username);
}
@LauncherAPI
public BatchProfileByUsernameRequest(String... usernames) throws IOException {
this(null, usernames);
}
@Override
public BatchProfileByUsernameRequestEvent requestWebSockets() throws IOException, InterruptedException {
public BatchProfileByUsernameRequestEvent requestDo() throws IOException, InterruptedException {
return (BatchProfileByUsernameRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -1,18 +1,11 @@
package ru.gravit.launcher.request.uuid;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.ProfileByUUIDRequestEvent;
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import java.io.IOException;
import java.util.Objects;
@ -23,18 +16,12 @@ public final class ProfileByUUIDRequest extends Request<ProfileByUUIDRequestEven
private final UUID uuid;
@LauncherAPI
public ProfileByUUIDRequest(LauncherConfig config, UUID uuid) {
super(config);
public ProfileByUUIDRequest(UUID uuid) {
this.uuid = Objects.requireNonNull(uuid, "uuid");
}
@LauncherAPI
public ProfileByUUIDRequest(UUID uuid) {
this(null, uuid);
}
@Override
public ProfileByUUIDRequestEvent requestWebSockets() throws IOException, InterruptedException {
public ProfileByUUIDRequestEvent requestDo() throws IOException, InterruptedException {
return (ProfileByUUIDRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -1,18 +1,11 @@
package ru.gravit.launcher.request.uuid;
import ru.gravit.launcher.Launcher;
import ru.gravit.launcher.LauncherAPI;
import ru.gravit.launcher.LauncherConfig;
import ru.gravit.launcher.LauncherNetworkAPI;
import ru.gravit.launcher.events.request.ProfileByUsernameRequestEvent;
import ru.gravit.launcher.profiles.PlayerProfile;
import ru.gravit.launcher.request.Request;
import ru.gravit.launcher.request.RequestType;
import ru.gravit.launcher.request.websockets.LegacyRequestBridge;
import ru.gravit.launcher.request.websockets.RequestInterface;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import ru.gravit.launcher.serialize.SerializeLimits;
import ru.gravit.utils.helper.VerifyHelper;
import java.io.IOException;
@ -22,18 +15,12 @@ public final class ProfileByUsernameRequest extends Request<ProfileByUsernameReq
private final String username;
@LauncherAPI
public ProfileByUsernameRequest(LauncherConfig config, String username) {
super(config);
public ProfileByUsernameRequest(String username) {
this.username = VerifyHelper.verifyUsername(username);
}
@LauncherAPI
public ProfileByUsernameRequest(String username) {
this(null, username);
}
@Override
public ProfileByUsernameRequestEvent requestWebSockets() throws IOException, InterruptedException {
public ProfileByUsernameRequestEvent requestDo() throws IOException, InterruptedException {
return (ProfileByUsernameRequestEvent) LegacyRequestBridge.sendRequest(this);
}

View file

@ -54,7 +54,7 @@ public boolean auth() {
LauncherConfig cfg = Launcher.getConfig();
AuthRequest request = new AuthRequest(config.login, SecurityHelper.newRSAEncryptCipher(cfg.publicKey).doFinal(IOHelper.encode(config.password)), config.auth_id, AuthRequest.ConnectTypes.SERVER);
permissions = request.request().permissions;
ProfilesRequestEvent result = new ProfilesRequest(cfg).request();
ProfilesRequestEvent result = new ProfilesRequest().request();
for (ClientProfile p : result.profiles) {
LogHelper.debug("Get profile: %s", p.getTitle());
if (p.getTitle().equals(config.title)) {