mirror of
https://github.com/GeyserMC/Floodgate.git
synced 2025-12-28 02:59:16 +00:00
Not longer returning null and updated the global linking api url
This commit is contained in:
@@ -27,10 +27,12 @@ package org.geysermc.floodgate.link;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import org.geysermc.floodgate.api.link.LinkRequestResult;
|
||||
import org.geysermc.floodgate.api.link.PlayerLink;
|
||||
import org.geysermc.floodgate.util.LinkedPlayer;
|
||||
import org.geysermc.floodgate.util.Utils;
|
||||
|
||||
/**
|
||||
* Simple class used when PlayerLinking is disabled. This class has been made because Floodgate
|
||||
@@ -42,45 +44,50 @@ final class DisabledPlayerLink implements PlayerLink {
|
||||
public void load() {
|
||||
}
|
||||
|
||||
//todo don't return null
|
||||
|
||||
@Override
|
||||
public CompletableFuture<LinkedPlayer> getLinkedPlayer(UUID bedrockId) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<LinkedPlayer> getLinkedPlayer(@NonNull UUID bedrockId) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Boolean> isLinkedPlayer(UUID bedrockId) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<Boolean> isLinkedPlayer(@NonNull UUID bedrockId) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> linkPlayer(UUID bedrockId, UUID javaId, String username) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<Void> linkPlayer(
|
||||
@NonNull UUID bedrockId,
|
||||
@NonNull UUID javaId,
|
||||
@NonNull String username) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> unlinkPlayer(UUID javaId) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<Void> unlinkPlayer(@NonNull UUID javaId) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public CompletableFuture<?> createLinkRequest(
|
||||
UUID javaId,
|
||||
String javaUsername,
|
||||
String bedrockUsername
|
||||
) {
|
||||
return null;
|
||||
@NonNull UUID javaId,
|
||||
@NonNull String javaUsername,
|
||||
@NonNull String bedrockUsername) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public CompletableFuture<LinkRequestResult> verifyLinkRequest(
|
||||
UUID bedrockId,
|
||||
String javaUsername,
|
||||
String bedrockUsername,
|
||||
String code
|
||||
) {
|
||||
return null;
|
||||
@NonNull UUID bedrockId,
|
||||
@NonNull String javaUsername,
|
||||
@NonNull String bedrockUsername,
|
||||
@NonNull String code) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,4 +108,9 @@ final class DisabledPlayerLink implements PlayerLink {
|
||||
@Override
|
||||
public void stop() {
|
||||
}
|
||||
|
||||
private <U> CompletableFuture<U> failedFuture() {
|
||||
return Utils.failedFuture(new IllegalStateException(
|
||||
"Cannot perform this action when PlayerLinking is disabled"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ package org.geysermc.floodgate.link;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.geysermc.floodgate.api.link.LinkRequestResult;
|
||||
import org.geysermc.floodgate.util.HttpUtils;
|
||||
import org.geysermc.floodgate.util.HttpUtils.HttpResponse;
|
||||
@@ -35,14 +36,15 @@ import org.geysermc.floodgate.util.LinkedPlayer;
|
||||
import org.geysermc.floodgate.util.Utils;
|
||||
|
||||
public class GlobalPlayerLinking extends CommonPlayerLink {
|
||||
private static final String GET_BEDROCK_LINK = "http://localhost:4000/api/link/bedrock?xuid=";
|
||||
private static final String GET_BEDROCK_LINK = "https://api.geysermc.org/v1/link/bedrock?xuid=";
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<LinkedPlayer> getLinkedPlayer(UUID bedrockId) {
|
||||
@NonNull
|
||||
public CompletableFuture<LinkedPlayer> getLinkedPlayer(@NonNull UUID bedrockId) {
|
||||
return CompletableFuture.supplyAsync(
|
||||
() -> {
|
||||
HttpResponse response =
|
||||
@@ -73,7 +75,8 @@ public class GlobalPlayerLinking extends CommonPlayerLink {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Boolean> isLinkedPlayer(UUID bedrockId) {
|
||||
@NonNull
|
||||
public CompletableFuture<Boolean> isLinkedPlayer(@NonNull UUID bedrockId) {
|
||||
return CompletableFuture.supplyAsync(
|
||||
() -> {
|
||||
HttpResponse response =
|
||||
@@ -99,32 +102,42 @@ public class GlobalPlayerLinking extends CommonPlayerLink {
|
||||
// player linking and unlinking now goes through the global player linking server.
|
||||
// so individual servers can't register nor unlink players.
|
||||
|
||||
//todo don't return null
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> linkPlayer(UUID bedrockId, UUID javaId, String username) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<Void> linkPlayer(
|
||||
@NonNull UUID bedrockId,
|
||||
@NonNull UUID javaId,
|
||||
@NonNull String username) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> unlinkPlayer(UUID javaId) {
|
||||
return null;
|
||||
@NonNull
|
||||
public CompletableFuture<Void> unlinkPlayer(@NonNull UUID javaId) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public CompletableFuture<?> createLinkRequest(
|
||||
UUID javaId,
|
||||
String javaUsername,
|
||||
String bedrockUsername) {
|
||||
return null;
|
||||
@NonNull UUID javaId,
|
||||
@NonNull String javaUsername,
|
||||
@NonNull String bedrockUsername) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public CompletableFuture<LinkRequestResult> verifyLinkRequest(
|
||||
UUID bedrockId,
|
||||
String javaUsername,
|
||||
String bedrockUsername,
|
||||
String code) {
|
||||
return null;
|
||||
@NonNull UUID bedrockId,
|
||||
@NonNull String javaUsername,
|
||||
@NonNull String bedrockUsername,
|
||||
@NonNull String code) {
|
||||
return failedFuture();
|
||||
}
|
||||
|
||||
private <U> CompletableFuture<U> failedFuture() {
|
||||
return Utils.failedFuture(new IllegalStateException(
|
||||
"Cannot perform this action when Global Linking is enabled"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Utils {
|
||||
@@ -101,4 +102,18 @@ public class Utils {
|
||||
public static boolean isValidDatabaseName(String databaseName) {
|
||||
return DATABASE_NAME.matcher(databaseName).matches();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new CompletableFuture that is already completed exceptionally with the given
|
||||
* exception.
|
||||
*
|
||||
* @param ex the exception
|
||||
* @param <U> the type of the value
|
||||
* @return the exceptionally completed CompletableFuture
|
||||
*/
|
||||
public static <U> CompletableFuture<U> failedFuture(Throwable ex) {
|
||||
CompletableFuture<U> future = new CompletableFuture<>();
|
||||
future.completeExceptionally(ex);
|
||||
return future;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user