Add user-agent to hytale papi

This commit is contained in:
PiggyPiglet
2026-02-14 18:09:15 +08:00
parent b1e163b397
commit 4230595618
2 changed files with 31 additions and 8 deletions

View File

@@ -26,10 +26,7 @@ import com.google.gson.reflect.TypeToken;
import java.io.*; import java.io.*;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.net.URI; import java.net.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;
import java.nio.channels.Channels; import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel; import java.nio.channels.ReadableByteChannel;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@@ -50,11 +47,31 @@ import java.util.stream.Collectors;
import at.helpch.placeholderapi.expansion.PlaceholderExpansion; import at.helpch.placeholderapi.expansion.PlaceholderExpansion;
import at.helpch.placeholderapi.expansion.cloud.CloudExpansion; import at.helpch.placeholderapi.expansion.cloud.CloudExpansion;
import com.hypixel.hytale.common.plugin.PluginIdentifier;
import com.hypixel.hytale.logger.HytaleLogger; import com.hypixel.hytale.logger.HytaleLogger;
import com.hypixel.hytale.server.core.HytaleServer;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Unmodifiable; import org.jetbrains.annotations.Unmodifiable;
public final class CloudExpansionManager { public final class CloudExpansionManager {
public static final String USER_AGENT;
static {
String userAgent;
try (final InputStream in = PlaceholderAPIPlugin.class.getResourceAsStream("/user-agent.txt")) {
if (in == null) {
userAgent = "PlaceholderAPI-Bukkit-null";
} else {
userAgent = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)).readLine();
}
} catch (IOException e) {
userAgent = "PlaceholderAPI-Bukkit-null";
}
USER_AGENT = userAgent;
}
@NotNull @NotNull
private static final String API_URL = "https://ecloud.placeholderapi.com/api/v3/?platform=hytale"; private static final String API_URL = "https://ecloud.placeholderapi.com/api/v3/?platform=hytale";
@@ -182,6 +199,7 @@ public final class CloudExpansionManager {
try { try {
final URI uri = new URI(API_URL); final URI uri = new URI(API_URL);
final URLConnection connection = uri.toURL().openConnection(); final URLConnection connection = uri.toURL().openConnection();
connection.setRequestProperty("User-Agent", USER_AGENT);
final String json; final String json;
try (final InputStream input = connection.getInputStream()) { try (final InputStream input = connection.getInputStream()) {
@@ -262,10 +280,14 @@ public final class CloudExpansionManager {
"Expansion-" + toIndexName(expansion) + ".jar"); "Expansion-" + toIndexName(expansion) + ".jar");
final CompletableFuture<File> download = CompletableFuture.supplyAsync(() -> { final CompletableFuture<File> download = CompletableFuture.supplyAsync(() -> {
try (final ReadableByteChannel source = Channels.newChannel(new URL(version.getUrl()) try {
.openStream()); final FileOutputStream target = new FileOutputStream(file)) { final URLConnection connection = new URI(version.getUrl()).toURL().openConnection();
target.getChannel().transferFrom(source, 0, Long.MAX_VALUE); connection.setRequestProperty("User-Agent", USER_AGENT);
} catch (final IOException ex) {
try (final ReadableByteChannel source = Channels.newChannel(connection.getInputStream()); final FileOutputStream target = new FileOutputStream(file)) {
target.getChannel().transferFrom(source, 0, Long.MAX_VALUE);
}
} catch (final IOException | URISyntaxException ex) {
throw new CompletionException(ex); throw new CompletionException(ex);
} }
return file; return file;

View File

@@ -0,0 +1 @@
PlaceholderAPI-Hytale-${version}