2
0
mirror of https://github.com/proxiodev/RedisBungee.git synced 2024-12-26 20:15:29 +00:00

update okhttp

This commit is contained in:
Mohammed Alteneiji 2024-12-23 15:04:25 +04:00
parent 1443f54947
commit 87947bb2b1
Signed by: ham1255
GPG Key ID: EF343502046229F4
10 changed files with 23 additions and 81 deletions

View File

@ -17,7 +17,7 @@ public class Constants {
public final static String GIT_COMMIT = "@git_commit@"; public final static String GIT_COMMIT = "@git_commit@";
public static String getGithubCommitLink() { public static String getGithubCommitLink() {
return "https://github.com/ProxioDev/RedisBungee/commit/" + GIT_COMMIT; return "https://github.com/ProxioDev/ValioBungee/commit/" + GIT_COMMIT;
} }
} }

View File

@ -13,28 +13,7 @@ package com.imaginarycode.minecraft.redisbungee.api.util.uuid;
import java.util.Calendar; import java.util.Calendar;
import java.util.UUID; import java.util.UUID;
public class CachedUUIDEntry { public record CachedUUIDEntry(String name, UUID uuid, Calendar expiry) {
private final String name;
private final UUID uuid;
private final Calendar expiry;
public CachedUUIDEntry(String name, UUID uuid, Calendar expiry) {
this.name = name;
this.uuid = uuid;
this.expiry = expiry;
}
public String getName() {
return name;
}
public UUID getUuid() {
return uuid;
}
public Calendar getExpiry() {
return expiry;
}
public boolean expired() { public boolean expired() {
return Calendar.getInstance().after(expiry); return Calendar.getInstance().after(expiry);

View File

@ -12,9 +12,9 @@ package com.imaginarycode.minecraft.redisbungee.api.util.uuid;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.squareup.okhttp.OkHttpClient; import okhttp3.OkHttpClient;
import com.squareup.okhttp.Request; import okhttp3.Request;
import com.squareup.okhttp.ResponseBody; import okhttp3.ResponseBody;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
@ -22,13 +22,9 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
public class NameFetcher { public class NameFetcher {
private static OkHttpClient httpClient; private static final OkHttpClient httpClient = new OkHttpClient();
private static final Gson gson = new Gson(); private static final Gson gson = new Gson();
public static void setHttpClient(OkHttpClient httpClient) {
NameFetcher.httpClient = httpClient;
}
public static List<String> nameHistoryFromUuid(UUID uuid) throws IOException { public static List<String> nameHistoryFromUuid(UUID uuid) throws IOException {
String name = getName(uuid); String name = getName(uuid);
if (name == null) return Collections.emptyList(); if (name == null) return Collections.emptyList();

View File

@ -12,7 +12,7 @@ package com.imaginarycode.minecraft.redisbungee.api.util.uuid;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.squareup.okhttp.*; import okhttp3.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -28,13 +28,7 @@ public class UUIDFetcher implements Callable<Map<String, UUID>> {
private final List<String> names; private final List<String> names;
private final boolean rateLimiting; private final boolean rateLimiting;
private static final Gson gson = new Gson(); private static final Gson gson = new Gson();
private static final OkHttpClient httpClient = new OkHttpClient();
public static void setHttpClient(OkHttpClient httpClient) {
UUIDFetcher.httpClient = httpClient;
}
private static OkHttpClient httpClient;
private UUIDFetcher(List<String> names, boolean rateLimiting) { private UUIDFetcher(List<String> names, boolean rateLimiting) {
this.names = ImmutableList.copyOf(names); this.names = ImmutableList.copyOf(names);

View File

@ -61,7 +61,7 @@ public final class UUIDTranslator {
CachedUUIDEntry cachedUUIDEntry = nameToUuidMap.get(player.toLowerCase()); CachedUUIDEntry cachedUUIDEntry = nameToUuidMap.get(player.toLowerCase());
if (cachedUUIDEntry != null) { if (cachedUUIDEntry != null) {
if (!cachedUUIDEntry.expired()) if (!cachedUUIDEntry.expired())
return cachedUUIDEntry.getUuid(); return cachedUUIDEntry.uuid();
else else
nameToUuidMap.remove(player); nameToUuidMap.remove(player);
} }
@ -93,11 +93,11 @@ public final class UUIDTranslator {
if (entry.expired()) { if (entry.expired()) {
unifiedJedis.hdel("uuid-cache", player.toLowerCase()); unifiedJedis.hdel("uuid-cache", player.toLowerCase());
// Doesn't hurt to also remove the UUID entry as well. // Doesn't hurt to also remove the UUID entry as well.
unifiedJedis.hdel("uuid-cache", entry.getUuid().toString()); unifiedJedis.hdel("uuid-cache", entry.uuid().toString());
} else { } else {
nameToUuidMap.put(player.toLowerCase(), entry); nameToUuidMap.put(player.toLowerCase(), entry);
uuidToNameMap.put(entry.getUuid(), entry); uuidToNameMap.put(entry.uuid(), entry);
return entry.getUuid(); return entry.uuid();
} }
} }
@ -141,7 +141,7 @@ public final class UUIDTranslator {
CachedUUIDEntry cachedUUIDEntry = uuidToNameMap.get(player); CachedUUIDEntry cachedUUIDEntry = uuidToNameMap.get(player);
if (cachedUUIDEntry != null) { if (cachedUUIDEntry != null) {
if (!cachedUUIDEntry.expired()) if (!cachedUUIDEntry.expired())
return cachedUUIDEntry.getName(); return cachedUUIDEntry.name();
else else
uuidToNameMap.remove(player); uuidToNameMap.remove(player);
} }
@ -159,11 +159,11 @@ public final class UUIDTranslator {
unifiedJedis.hdel("uuid-cache", player.toString()); unifiedJedis.hdel("uuid-cache", player.toString());
// Doesn't hurt to also remove the named entry as well. // Doesn't hurt to also remove the named entry as well.
// TODO: Since UUIDs are fixed, we could look up the name and see if the UUID matches. // TODO: Since UUIDs are fixed, we could look up the name and see if the UUID matches.
unifiedJedis.hdel("uuid-cache", entry.getName()); unifiedJedis.hdel("uuid-cache", entry.name());
} else { } else {
nameToUuidMap.put(entry.getName().toLowerCase(), entry); nameToUuidMap.put(entry.name().toLowerCase(), entry);
uuidToNameMap.put(player, entry); uuidToNameMap.put(player, entry);
return entry.getName(); return entry.name();
} }
} }

View File

@ -1,7 +1,7 @@
[versions] [versions]
guava = "31.1-jre" guava = "31.1-jre"
jedis = "5.2.0" jedis = "5.2.0"
okhttp = "2.7.5" okhttp = "4.12.0"
configurateV3 = "3.7.3" configurateV3 = "3.7.3"
caffeine = "3.1.8" caffeine = "3.1.8"
adventure = "4.18.0" adventure = "4.18.0"
@ -12,13 +12,13 @@ velocity = "3.4.0-SNAPSHOT"
[plugins] [plugins]
blossom = { id = "net.kyori.blossom", version = "1.2.0" } blossom = { id = "net.kyori.blossom", version = "1.2.0" }
shadow = { id = "com.github.johnrengelman.shadow", version = "8.1.1" } shadow = { id = "com.gradleup.shadow", version = "8.3.5" }
run-velocity = { id = "xyz.jpenilla.run-velocity", version = "2.0.0" } run-velocity = { id = "xyz.jpenilla.run-velocity", version = "2.3.1" }
[libraries] [libraries]
guava = { module = "com.google.guava:guava", version.ref = "guava" } guava = { module = "com.google.guava:guava", version.ref = "guava" }
jedis = { module = "redis.clients:jedis", version.ref = "jedis" } jedis = { module = "redis.clients:jedis", version.ref = "jedis" }
okhttp = { module = "com.squareup.okhttp:okhttp", version.ref = "okhttp" } okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
configurateV3 = { module = "org.spongepowered:configurate-yaml", version.ref = "configurateV3" } configurateV3 = { module = "org.spongepowered:configurate-yaml", version.ref = "configurateV3" }
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" } caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }

View File

@ -46,7 +46,7 @@ tasks {
relocate("redis.clients.jedis", "com.imaginarycode.minecraft.redisbungee.internal.jedis") relocate("redis.clients.jedis", "com.imaginarycode.minecraft.redisbungee.internal.jedis")
relocate("redis.clients.util", "com.imaginarycode.minecraft.redisbungee.internal.jedisutil") relocate("redis.clients.util", "com.imaginarycode.minecraft.redisbungee.internal.jedisutil")
relocate("org.apache.commons.pool", "com.imaginarycode.minecraft.redisbungee.internal.commonspool") relocate("org.apache.commons.pool", "com.imaginarycode.minecraft.redisbungee.internal.commonspool")
relocate("com.squareup.okhttp", "com.imaginarycode.minecraft.redisbungee.internal.okhttp") relocate("com.squareup.okhttp3", "com.imaginarycode.minecraft.redisbungee.internal.okhttp3")
relocate("okio", "com.imaginarycode.minecraft.redisbungee.internal.okio") relocate("okio", "com.imaginarycode.minecraft.redisbungee.internal.okio")
relocate("org.json", "com.imaginarycode.minecraft.redisbungee.internal.json") relocate("org.json", "com.imaginarycode.minecraft.redisbungee.internal.json")
// configurate shade // configurate shade

View File

@ -25,8 +25,6 @@ import com.imaginarycode.minecraft.redisbungee.api.events.IPlayerLeftNetworkEven
import com.imaginarycode.minecraft.redisbungee.api.events.IPubSubMessageEvent; import com.imaginarycode.minecraft.redisbungee.api.events.IPubSubMessageEvent;
import com.imaginarycode.minecraft.redisbungee.api.summoners.Summoner; import com.imaginarycode.minecraft.redisbungee.api.summoners.Summoner;
import com.imaginarycode.minecraft.redisbungee.api.util.InitialUtils; import com.imaginarycode.minecraft.redisbungee.api.util.InitialUtils;
import com.imaginarycode.minecraft.redisbungee.api.util.uuid.NameFetcher;
import com.imaginarycode.minecraft.redisbungee.api.util.uuid.UUIDFetcher;
import com.imaginarycode.minecraft.redisbungee.api.util.uuid.UUIDTranslator; import com.imaginarycode.minecraft.redisbungee.api.util.uuid.UUIDTranslator;
import com.imaginarycode.minecraft.redisbungee.commands.CommandLoader; import com.imaginarycode.minecraft.redisbungee.commands.CommandLoader;
import com.imaginarycode.minecraft.redisbungee.commands.utils.CommandPlatformHelper; import com.imaginarycode.minecraft.redisbungee.commands.utils.CommandPlatformHelper;
@ -34,8 +32,6 @@ import com.imaginarycode.minecraft.redisbungee.events.PlayerChangedServerNetwork
import com.imaginarycode.minecraft.redisbungee.events.PlayerJoinedNetworkEvent; import com.imaginarycode.minecraft.redisbungee.events.PlayerJoinedNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.events.PlayerLeftNetworkEvent; import com.imaginarycode.minecraft.redisbungee.events.PlayerLeftNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.events.PubSubMessageEvent; import com.imaginarycode.minecraft.redisbungee.events.PubSubMessageEvent;
import com.squareup.okhttp.Dispatcher;
import com.squareup.okhttp.OkHttpClient;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer; import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
@ -72,7 +68,6 @@ public class RedisBungee extends Plugin implements RedisBungeePlugin<ProxiedPlay
private UUIDTranslator uuidTranslator; private UUIDTranslator uuidTranslator;
private RedisBungeeConfiguration configuration; private RedisBungeeConfiguration configuration;
private LangConfiguration langConfiguration; private LangConfiguration langConfiguration;
private OkHttpClient httpClient;
private BungeeCommandManager commandManager; private BungeeCommandManager commandManager;
private final Logger logger = LoggerFactory.getLogger("RedisBungee"); private final Logger logger = LoggerFactory.getLogger("RedisBungee");
@ -241,11 +236,6 @@ public class RedisBungee extends Plugin implements RedisBungeePlugin<ProxiedPlay
// cleanup // cleanup
this.cleanupTask = getProxy().getScheduler().schedule(this, () -> this.proxyDataManager.correctionTask(), 0, 60, TimeUnit.SECONDS); this.cleanupTask = getProxy().getScheduler().schedule(this, () -> this.proxyDataManager.correctionTask(), 0, 60, TimeUnit.SECONDS);
// init the http lib // init the http lib
httpClient = new OkHttpClient();
Dispatcher dispatcher = new Dispatcher(getExecutorService());
httpClient.setDispatcher(dispatcher);
NameFetcher.setHttpClient(httpClient);
UUIDFetcher.setHttpClient(httpClient);
InitialUtils.checkRedisVersion(this); InitialUtils.checkRedisVersion(this);
uuidTranslator = new UUIDTranslator(this); uuidTranslator = new UUIDTranslator(this);

View File

@ -21,7 +21,7 @@ java {
tasks { tasks {
runVelocity { runVelocity {
velocityVersion("3.4.0-SNAPSHOT") velocityVersion(libs.versions.velocity.get())
environment["REDISBUNGEE_PROXY_ID"] = "velocity-1" environment["REDISBUNGEE_PROXY_ID"] = "velocity-1"
environment["REDISBUNGEE_NETWORK_ID"] = "dev" environment["REDISBUNGEE_NETWORK_ID"] = "dev"
} }
@ -36,7 +36,7 @@ tasks {
relocate("redis.clients.jedis", "com.imaginarycode.minecraft.redisbungee.internal.jedis") relocate("redis.clients.jedis", "com.imaginarycode.minecraft.redisbungee.internal.jedis")
relocate("redis.clients.util", "com.imaginarycode.minecraft.redisbungee.internal.jedisutil") relocate("redis.clients.util", "com.imaginarycode.minecraft.redisbungee.internal.jedisutil")
relocate("org.apache.commons.pool", "com.imaginarycode.minecraft.redisbungee.internal.commonspool") relocate("org.apache.commons.pool", "com.imaginarycode.minecraft.redisbungee.internal.commonspool")
relocate("com.squareup.okhttp", "com.imaginarycode.minecraft.redisbungee.internal.okhttp") relocate("com.squareup.okhttp3", "com.imaginarycode.minecraft.redisbungee.internal.okhttp3")
relocate("okio", "com.imaginarycode.minecraft.redisbungee.internal.okio") relocate("okio", "com.imaginarycode.minecraft.redisbungee.internal.okio")
relocate("org.json", "com.imaginarycode.minecraft.redisbungee.internal.json") relocate("org.json", "com.imaginarycode.minecraft.redisbungee.internal.json")
// acf shade // acf shade

View File

@ -35,8 +35,6 @@ import com.imaginarycode.minecraft.redisbungee.events.PlayerChangedServerNetwork
import com.imaginarycode.minecraft.redisbungee.events.PlayerJoinedNetworkEvent; import com.imaginarycode.minecraft.redisbungee.events.PlayerJoinedNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.events.PlayerLeftNetworkEvent; import com.imaginarycode.minecraft.redisbungee.events.PlayerLeftNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.events.PubSubMessageEvent; import com.imaginarycode.minecraft.redisbungee.events.PubSubMessageEvent;
import com.squareup.okhttp.Dispatcher;
import com.squareup.okhttp.OkHttpClient;
import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
@ -78,7 +76,6 @@ public class RedisBungeeVelocityPlugin implements RedisBungeePlugin<Player>, Con
private final UUIDTranslator uuidTranslator; private final UUIDTranslator uuidTranslator;
private RedisBungeeConfiguration configuration; private RedisBungeeConfiguration configuration;
private LangConfiguration langConfiguration; private LangConfiguration langConfiguration;
private final OkHttpClient httpClient;
private final ProxyDataManager proxyDataManager; private final ProxyDataManager proxyDataManager;
@ -127,11 +124,6 @@ public class RedisBungeeVelocityPlugin implements RedisBungeePlugin<Player>, Con
}; };
this.playerDataManager = new VelocityPlayerDataManager(this); this.playerDataManager = new VelocityPlayerDataManager(this);
uuidTranslator = new UUIDTranslator(this); uuidTranslator = new UUIDTranslator(this);
this.httpClient = new OkHttpClient();
Dispatcher dispatcher = new Dispatcher(Executors.newFixedThreadPool(6));
this.httpClient.setDispatcher(dispatcher);
NameFetcher.setHttpClient(httpClient);
UUIDFetcher.setHttpClient(httpClient);
} }
@ -300,8 +292,6 @@ public class RedisBungeeVelocityPlugin implements RedisBungeePlugin<Player>, Con
if (heartbeatTask != null) { if (heartbeatTask != null) {
heartbeatTask.cancel(); heartbeatTask.cancel();
} }
try { try {
this.proxyDataManager.close(); this.proxyDataManager.close();
this.jedisSummoner.close(); this.jedisSummoner.close();
@ -309,13 +299,6 @@ public class RedisBungeeVelocityPlugin implements RedisBungeePlugin<Player>, Con
throw new RuntimeException(e); throw new RuntimeException(e);
} }
this.httpClient.getDispatcher().getExecutorService().shutdown();
try {
logInfo("waiting for httpclient thread-pool termination.....");
this.httpClient.getDispatcher().getExecutorService().awaitTermination(20, TimeUnit.SECONDS);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (commandManager != null) commandManager.unregisterCommands(); if (commandManager != null) commandManager.unregisterCommands();
logInfo("RedisBungee shutdown complete"); logInfo("RedisBungee shutdown complete");
} }