From 3f5ee57068d8394b78e0908f316430bb76a76855 Mon Sep 17 00:00:00 2001 From: lax1dude Date: Sun, 19 Jan 2025 12:11:39 -0800 Subject: [PATCH] <1.1.6> Reduce lock contention in EaglerXVelocity --- .../EaglerXVelocity-Latest.jar | Bin 614043 -> 611441 bytes .../EaglerXVelocityVersion.java | 5 +- .../auth/AuthLoadingCache.java | 34 +- .../server/HttpWebSocketHandler.java | 32 +- .../GameProtocolMessageController.java | 7 +- .../server/web/HttpWebServer.java | 50 +-- .../gateway_velocity/shit/CompatWarning.java | 1 + .../skins/CapeServiceOffline.java | 34 +- .../gateway_velocity/skins/SkinService.java | 394 +++++++----------- .../skins/SkinServiceOffline.java | 70 +--- .../src/main/resources/velocity-plugin.json | 2 +- gateway_version_velocity | 2 +- 12 files changed, 257 insertions(+), 374 deletions(-) diff --git a/gateway/EaglercraftXVelocity/EaglerXVelocity-Latest.jar b/gateway/EaglercraftXVelocity/EaglerXVelocity-Latest.jar index c2f3cb0a06ffee58111b5c283dca5d9036458332..03b6f74d058c3e4d4ea65054e93ebf85f3564b97 100644 GIT binary patch delta 132055 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�>ou@x}Nt!Q0 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 TsZBfZ%vjn{?eR`XSd#w%I>j!P delta 134376 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�+3rwW1WRe2Q(X!@ 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 { boolean shouldEvict(K key, V value); } + private final ReadWriteLock cacheMapLock; private final Map> cacheMap; private final CacheLoader provider; private final long cacheTTL; @@ -51,6 +54,7 @@ public class AuthLoadingCache { private long cacheTimer; public AuthLoadingCache(CacheLoader provider, long cacheTTL) { + this.cacheMapLock = new ReentrantReadWriteLock(); this.cacheMap = new HashMap<>(); this.provider = provider; this.cacheTTL = cacheTTL; @@ -58,13 +62,19 @@ public class AuthLoadingCache { public V get(K key) { CacheEntry etr; - synchronized(cacheMap) { + cacheMapLock.readLock().lock(); + try { etr = cacheMap.get(key); + }finally { + cacheMapLock.readLock().unlock(); } if(etr == null) { + cacheMapLock.writeLock().lock(); V loaded = provider.load(key); - synchronized(cacheMap) { + try { cacheMap.put(key, new CacheEntry<>(loaded)); + }finally { + cacheMapLock.writeLock().unlock(); } return loaded; }else { @@ -74,13 +84,17 @@ public class AuthLoadingCache { } public void evict(K key) { - synchronized(cacheMap) { + cacheMapLock.writeLock().lock(); + try { cacheMap.remove(key); + }finally { + cacheMapLock.writeLock().unlock(); } } public void evictAll(CacheVisitor visitor) { - synchronized(cacheMap) { + cacheMapLock.writeLock().lock(); + try { Iterator>> itr = cacheMap.entrySet().iterator(); while(itr.hasNext()) { Entry> etr = itr.next(); @@ -88,6 +102,8 @@ public class AuthLoadingCache { itr.remove(); } } + }finally { + cacheMapLock.writeLock().unlock(); } } @@ -95,7 +111,8 @@ public class AuthLoadingCache { long millis = EaglerXVelocityAPIHelper.steadyTimeMillis(); if(millis - cacheTimer > (cacheTTL / 2L)) { cacheTimer = millis; - synchronized(cacheMap) { + cacheMapLock.writeLock().lock(); + try { Iterator> mapItr = cacheMap.values().iterator(); while(mapItr.hasNext()) { CacheEntry etr = mapItr.next(); @@ -103,13 +120,18 @@ public class AuthLoadingCache { mapItr.remove(); } } + }finally { + cacheMapLock.writeLock().unlock(); } } } public void flush() { - synchronized(cacheMap) { + cacheMapLock.writeLock().lock(); + try { cacheMap.clear(); + }finally { + cacheMapLock.writeLock().unlock(); } } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java index b40324b..38c1d0b 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java @@ -118,6 +118,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { private static final Method loginEventFiredMethod; private static final Constructor stupid3Constructor; private static final Constructor stupid3Constructor_new; + private static final Constructor stupid3Constructor_new_new; private static final Method setPermissionFunctionMethod; private static final Field defaultPermissionsField; private static final Constructor stupid4Constructor; @@ -137,16 +138,24 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { loginEventFiredMethod.setAccessible(true); Constructor c3 = null; Constructor c3_new = null; + Constructor c3_new_new = null; try { - c3_new = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, String.class, boolean.class, IdentifiedKey.class); - c3_new.setAccessible(true); + c3_new_new = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, String.class, boolean.class, HandshakeIntent.class, IdentifiedKey.class); + c3_new_new.setAccessible(true); } catch (NoSuchMethodException e) { - c3 = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, boolean.class, IdentifiedKey.class); - c3.setAccessible(true); - c3_new = null; + try { + c3_new_new = null; + c3_new = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, String.class, boolean.class, IdentifiedKey.class); + c3_new.setAccessible(true); + } catch (NoSuchMethodException ee) { + c3_new = null; + c3 = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, boolean.class, IdentifiedKey.class); + c3.setAccessible(true); + } } stupid3Constructor = c3; stupid3Constructor_new = c3_new; + stupid3Constructor_new_new = c3_new_new; setPermissionFunctionMethod = ConnectedPlayer.class.getDeclaredMethod("setPermissionFunction", PermissionFunction.class); setPermissionFunctionMethod.setAccessible(true); defaultPermissionsField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSIONS"); @@ -1080,7 +1089,13 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { } ConnectedPlayer player; - if(stupid3Constructor_new != null) { + if(stupid3Constructor_new_new != null) { + try { + player = stupid3Constructor_new_new.newInstance(bungee, gp, con, lic.getVirtualHost().orElse(null), lic.getRawVirtualHost().orElse(null), false, HandshakeIntent.LOGIN, lic.getIdentifiedKey()); + } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + }else if(stupid3Constructor_new != null) { try { player = stupid3Constructor_new.newInstance(bungee, gp, con, lic.getVirtualHost().orElse(null), lic.getRawVirtualHost().orElse(null), false, lic.getIdentifiedKey()); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { @@ -1309,14 +1324,11 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { pp.remove(HttpWebSocketHandler.this); - pp - .addLast("EaglerMinecraftByteBufDecoder", new EaglerMinecraftDecoder()) - .addLast(LEGACY_PING_DECODER, new LegacyPingDecoder()) + pp.addLast("EaglerMinecraftByteBufDecoder", new EaglerMinecraftDecoder()) .addLast(READ_TIMEOUT, new ReadTimeoutHandler(bungee.getConfiguration().getReadTimeout(), TimeUnit.MILLISECONDS)) .addLast("EaglerMinecraftByteBufEncoder", new EaglerMinecraftEncoder()) - .addLast(LEGACY_PING_ENCODER, LegacyPingEncoder.INSTANCE) .addLast(MINECRAFT_DECODER, new MinecraftDecoder(ProtocolUtils.Direction.SERVERBOUND)) .addLast(MINECRAFT_ENCODER, new MinecraftEncoder(ProtocolUtils.Direction.CLIENTBOUND)); diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/protocol/GameProtocolMessageController.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/protocol/GameProtocolMessageController.java index 96caab5..f027d19 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/protocol/GameProtocolMessageController.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/protocol/GameProtocolMessageController.java @@ -1,6 +1,7 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.server.protocol; import java.io.IOException; +import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.concurrent.Callable; @@ -241,10 +242,12 @@ public class GameProtocolMessageController { while(!sendQueueV4.isEmpty()) { sendCount = 0; totalLen = 0; + Iterator itr = sendQueueV4.iterator(); do { - i = sendQueueV4.get(sendCount++).length; + i = itr.next().length; totalLen += GamePacketOutputBuffer.getVarIntSize(i) + i; - }while(totalLen < 32760 && sendCount < sendQueueV4.size()); + ++sendCount; + }while(totalLen < 32760 && itr.hasNext()); if(totalLen >= 32760) { --sendCount; } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/web/HttpWebServer.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/web/HttpWebServer.java index 356937e..1edc972 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/web/HttpWebServer.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/web/HttpWebServer.java @@ -41,7 +41,6 @@ public class HttpWebServer { private final String page404; private static HttpMemoryCache default404Page; private static HttpMemoryCache default404UpgradePage; - private static final Object cacheClearLock = new Object(); public HttpWebServer(File directory, Map contentTypes, List index, String page404) { this.directory = directory; @@ -53,15 +52,13 @@ public class HttpWebServer { public void flushCache() { long millis = EaglerXVelocityAPIHelper.steadyTimeMillis(); - synchronized(cacheClearLock) { - synchronized(filesCache) { - Iterator itr = filesCache.values().iterator(); - while(itr.hasNext()) { - HttpMemoryCache i = itr.next(); - if(i.contentType.fileBrowserCacheTTL != Long.MAX_VALUE && millis - i.lastCacheHit > 900000l) { - i.fileData.release(); - itr.remove(); - } + synchronized(filesCache) { + Iterator itr = filesCache.values().iterator(); + while(itr.hasNext()) { + HttpMemoryCache i = itr.next(); + if(i.contentType.fileBrowserCacheTTL != Long.MAX_VALUE && millis - i.lastCacheHit > 900000l) { + i.fileData.release(); + itr.remove(); } } } @@ -94,20 +91,17 @@ public class HttpWebServer { } String joinedPath = String.join("/", pathList); - - synchronized(cacheClearLock) { - synchronized(filesCache) { - cached = filesCache.get(joinedPath); - } + + //TODO: Rewrite this to cause less lock contention + synchronized(filesCache) { + cached = filesCache.get(joinedPath); if(cached != null) { cached = validateCache(cached); if(cached != null) { return cached; }else { - synchronized(filesCache) { - filesCache.remove(joinedPath); - } + filesCache.remove(joinedPath); } } @@ -124,19 +118,13 @@ public class HttpWebServer { if(f.isDirectory()) { for(int i = 0, l = index.size(); i < l; ++i) { String p = joinedPath + "/" + index.get(i); - synchronized(filesCache) { - cached = filesCache.get(p); - } + cached = filesCache.get(p); if(cached != null) { cached = validateCache(cached); if(cached != null) { - synchronized(filesCache) { - filesCache.put(joinedPath, cached); - } + filesCache.put(joinedPath, cached); }else { - synchronized(filesCache) { - filesCache.remove(p); - } + filesCache.remove(p); if(page404 == null || path.equals(page404)) { return default404Page; }else { @@ -152,9 +140,7 @@ public class HttpWebServer { if(ff.isFile()) { HttpMemoryCache memCache = retrieveFile(ff, p); if(memCache != null) { - synchronized(filesCache) { - filesCache.put(joinedPath, memCache); - } + filesCache.put(joinedPath, memCache); return memCache; } } @@ -167,9 +153,7 @@ public class HttpWebServer { }else { HttpMemoryCache memCache = retrieveFile(f, joinedPath); if(memCache != null) { - synchronized(filesCache) { - filesCache.put(joinedPath, memCache); - } + filesCache.put(joinedPath, memCache); return memCache; }else { if(page404 == null || path.equals(page404)) { diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/shit/CompatWarning.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/shit/CompatWarning.java index e27b828..54b8102 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/shit/CompatWarning.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/shit/CompatWarning.java @@ -34,6 +34,7 @@ public class CompatWarning { ":> apart from the versions listed below:", ":> ", ":> - Velocity: " + EaglerXVelocityVersion.NATIVE_VELOCITY_BUILD, + ":> - " + EaglerXVelocityVersion.NATIVE_VELOCITY_BUILD_DL, ":> ", ":> This is not a Bukkit/Spigot plugin!", ":> ", diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/CapeServiceOffline.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/CapeServiceOffline.java index 6044c7d..0522bf5 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/CapeServiceOffline.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/CapeServiceOffline.java @@ -1,8 +1,8 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.skins; -import java.util.HashMap; -import java.util.Map; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.server.EaglerPlayerData; import net.lax1dude.eaglercraft.v1_8.socket.protocol.pkt.GameMessagePacket; @@ -12,7 +12,7 @@ import net.lax1dude.eaglercraft.v1_8.socket.protocol.pkt.server.SPacketOtherCape import net.lax1dude.eaglercraft.v1_8.socket.protocol.pkt.server.SPacketOtherCapePresetEAG; /** - * Copyright (c) 2024 lax1dude. All Rights Reserved. + * Copyright (c) 2024-2025 lax1dude. All Rights Reserved. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -30,20 +30,15 @@ public class CapeServiceOffline { public static final int masterRateLimitPerPlayer = 250; - private final Map capesCache = new HashMap<>(); + private final ConcurrentMap capesCache = new ConcurrentHashMap<>(); public void registerEaglercraftPlayer(UUID playerUUID, GameMessagePacket capePacket) { - synchronized(capesCache) { - capesCache.put(playerUUID, capePacket); - } + capesCache.put(playerUUID, capePacket); } public void processGetOtherCape(UUID searchUUID, EaglerPlayerData sender) { if(sender.skinLookupRateLimiter.rateLimit(masterRateLimitPerPlayer)) { - GameMessagePacket maybeCape; - synchronized(capesCache) { - maybeCape = capesCache.get(searchUUID); - } + GameMessagePacket maybeCape = capesCache.get(searchUUID); if(maybeCape != null) { sender.sendEaglerMessage(maybeCape); }else { @@ -54,10 +49,7 @@ public class CapeServiceOffline { } public void processForceCape(UUID clientUUID, EaglerPlayerData initialHandler) { - GameMessagePacket maybeCape; - synchronized(capesCache) { - maybeCape = capesCache.get(clientUUID); - } + GameMessagePacket maybeCape = capesCache.get(clientUUID); if(maybeCape != null) { if (maybeCape instanceof SPacketOtherCapePresetEAG) { initialHandler.sendEaglerMessage( @@ -70,15 +62,11 @@ public class CapeServiceOffline { } public void unregisterPlayer(UUID playerUUID) { - synchronized(capesCache) { - capesCache.remove(playerUUID); - } + capesCache.remove(playerUUID); } public GameMessagePacket getCape(UUID clientUUID) { - synchronized(capesCache) { - return capesCache.get(clientUUID); - } + return capesCache.get(clientUUID); } public byte[] getCapeHandshakeData(UUID clientUUID) { @@ -107,8 +95,6 @@ public class CapeServiceOffline { } public void shutdown() { - synchronized(capesCache) { - capesCache.clear(); - } + capesCache.clear(); } } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinService.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinService.java index b8bed99..615d790 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinService.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinService.java @@ -1,6 +1,7 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.skins; import java.net.URI; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -10,6 +11,10 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Consumer; import com.google.common.collect.Multimap; @@ -36,7 +41,7 @@ import net.lax1dude.eaglercraft.v1_8.socket.protocol.pkt.server.SPacketOtherSkin import net.lax1dude.eaglercraft.v1_8.socket.protocol.util.SkinPacketVersionCache; /** - * Copyright (c) 2022-2024 lax1dude. All Rights Reserved. + * Copyright (c) 2022-2025 lax1dude. All Rights Reserved. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -54,16 +59,20 @@ public class SkinService implements ISkinService { public static final int masterRateLimitPerPlayer = 250; - private final Map onlinePlayersCache = new HashMap<>(); + private final ConcurrentMap onlinePlayersCache = new ConcurrentHashMap<>(); + private final ConcurrentMap onlinePlayersToTexturesMap = new ConcurrentHashMap<>(); + private final ConcurrentMap foreignSkinCache = new ConcurrentHashMap<>(); + + private final ReadWriteLock onlinePlayersFromTexturesMapLock = new ReentrantReadWriteLock(); private final Multimap onlinePlayersFromTexturesMap = MultimapBuilder.hashKeys().hashSetValues().build(); - private final Map onlinePlayersToTexturesMap = new HashMap<>(); - private final Map foreignSkinCache = new HashMap<>(); private final Map pendingTextures = new HashMap<>(); private final Map pendingUUIDs = new HashMap<>(); private final Map pendingNameLookups = new HashMap<>(); + private final ReadWriteLock antagonistsLock = new ReentrantReadWriteLock(); private final Object2IntMap antagonists = new Object2IntOpenHashMap<>(); + private long antagonistCooldown = EaglerXVelocityAPIHelper.steadyTimeMillis(); private final Consumer> antagonistLogger = new Consumer>() { @@ -73,7 +82,8 @@ public class SkinService implements ISkinService { if(t.size() == 1) { int limit = EaglerXVelocity.getEagler().getConfig().getAntagonistsRateLimit() << 1; UUID offender = t.iterator().next(); - synchronized(antagonists) { + antagonistsLock.writeLock().lock(); + try { int v = antagonists.getInt(offender); if(v == antagonists.defaultReturnValue()) { antagonists.put(offender, 1); @@ -82,6 +92,8 @@ public class SkinService implements ISkinService { antagonists.put(offender, v + 1); } } + }finally { + antagonistsLock.writeLock().unlock(); } } } @@ -95,7 +107,7 @@ public class SkinService implements ISkinService { protected final UUID uuid; protected final SkinPacketVersionCache data; protected final int modelKnown; - protected long lastHit; + protected volatile long lastHit; protected CachedForeignSkin(UUID uuid, SkinPacketVersionCache data, int modelKnown) { this.uuid = uuid; @@ -130,7 +142,7 @@ public class SkinService implements ISkinService { protected final Consumer> antagonistsCallback; protected final long initializedTime; - protected boolean finalized; + protected volatile boolean finalized; protected PendingTextureDownload(UUID textureUUID, String textureURL, UUID caller, Consumer callback, Consumer> antagonistsCallback) { @@ -172,7 +184,7 @@ public class SkinService implements ISkinService { protected final Consumer> antagonistsCallback; protected final long initializedTime; - protected boolean finalized; + protected volatile boolean finalized; protected PendingProfileUUIDLookup(UUID profileUUID, UUID caller, Consumer callback, Consumer> antagonistsCallback) { @@ -213,7 +225,7 @@ public class SkinService implements ISkinService { protected final Consumer> antagonistsCallback; protected final long initializedTime; - protected boolean finalized; + protected volatile boolean finalized; protected PendingProfileNameLookup(String profileName, UUID caller, Consumer callback, Consumer> antagonistsCallback) { @@ -260,60 +272,46 @@ public class SkinService implements ISkinService { return; } - CachedPlayerSkin maybeCachedPacket; - synchronized(onlinePlayersCache) { - maybeCachedPacket = onlinePlayersCache.get(searchUUID); - } + CachedPlayerSkin maybeCachedPacket = onlinePlayersCache.get(searchUUID); if(maybeCachedPacket != null) { sender.sendEaglerMessage(maybeCachedPacket.data.get(sender.getEaglerProtocol())); }else { Player player = EaglerXVelocity.proxy().getPlayer(searchUUID).orElse(null); - UUID playerTexture; - synchronized(onlinePlayersToTexturesMap) { - playerTexture = onlinePlayersToTexturesMap.get(searchUUID); - } + UUID playerTexture = onlinePlayersToTexturesMap.get(searchUUID); if(playerTexture != null) { Collection possiblePlayers; - synchronized(onlinePlayersFromTexturesMap) { - possiblePlayers = onlinePlayersFromTexturesMap.get(playerTexture); + onlinePlayersFromTexturesMapLock.readLock().lock(); + try { + possiblePlayers = new ArrayList<>(onlinePlayersFromTexturesMap.get(playerTexture)); + }finally { + onlinePlayersFromTexturesMapLock.readLock().unlock(); } boolean playersExist = possiblePlayers.size() > 0; if(playersExist) { for(UUID uuid : possiblePlayers) { - synchronized(onlinePlayersCache) { - maybeCachedPacket = onlinePlayersCache.get(uuid); - } + maybeCachedPacket = onlinePlayersCache.get(uuid); if(maybeCachedPacket != null) { SkinPacketVersionCache rewritten = SkinPacketVersionCache.rewriteUUID( maybeCachedPacket.data, searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits()); if(player != null) { - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(searchUUID, new CachedPlayerSkin(rewritten, - maybeCachedPacket.textureUUID, maybeCachedPacket.modelId)); - } + onlinePlayersCache.put(searchUUID, new CachedPlayerSkin(rewritten, + maybeCachedPacket.textureUUID, maybeCachedPacket.modelId)); } sender.sendEaglerMessage(rewritten.get(sender.getEaglerProtocol())); return; } } } - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.get(playerTexture); - } + CachedForeignSkin foreignSkin = foreignSkinCache.get(playerTexture); if(foreignSkin != null && foreignSkin.modelKnown != -1) { if(player != null) { - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(searchUUID, - new CachedPlayerSkin(SkinPacketVersionCache.rewriteUUID(foreignSkin.data, - searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits()), - playerTexture, foreignSkin.modelKnown)); - } - synchronized(foreignSkinCache) { - foreignSkinCache.remove(playerTexture); - } + onlinePlayersCache.put(searchUUID, + new CachedPlayerSkin(SkinPacketVersionCache.rewriteUUID(foreignSkin.data, + searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits()), + playerTexture, foreignSkin.modelKnown)); + foreignSkinCache.remove(playerTexture); }else { foreignSkin.lastHit = EaglerXVelocityAPIHelper.steadyTimeMillis(); } @@ -336,7 +334,7 @@ public class SkinService implements ISkinService { if(skinObj != null) { JsonElement url = json.get("url"); if(url != null) { - String urlStr = SkinService.sanitizeTextureURL(url.getAsString()); + String urlStr = sanitizeTextureURL(url.getAsString()); if(urlStr == null) { break; } @@ -350,19 +348,14 @@ public class SkinService implements ISkinService { } UUID skinUUID = SkinPackets.createEaglerURLSkinUUID(urlStr); - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.remove(skinUUID); - } + CachedForeignSkin foreignSkin = foreignSkinCache.remove(skinUUID); if(foreignSkin != null) { registerTextureToPlayerAssociation(skinUUID, searchUUID); SkinPacketVersionCache rewrite = SkinPacketVersionCache .rewriteUUIDModel(foreignSkin.data, searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits(), model); - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(searchUUID, new CachedPlayerSkin(rewrite, skinUUID, model)); - } + onlinePlayersCache.put(searchUUID, new CachedPlayerSkin(rewrite, skinUUID, model)); sender.sendEaglerMessage(rewrite.get(sender.getEaglerProtocol())); return; } @@ -395,10 +388,7 @@ public class SkinService implements ISkinService { }); } }else { - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.get(searchUUID); - } + CachedForeignSkin foreignSkin = foreignSkinCache.get(searchUUID); if(foreignSkin != null) { foreignSkin.lastHit = EaglerXVelocityAPIHelper.steadyTimeMillis(); sender.sendEaglerMessage(foreignSkin.data.get(sender.getEaglerProtocol())); @@ -426,25 +416,22 @@ public class SkinService implements ISkinService { if(!sender.skinLookupRateLimiter.rateLimit(masterRateLimitPerPlayer)) { return; } - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.get(searchUUID); - } + CachedForeignSkin foreignSkin = foreignSkinCache.get(searchUUID); if(foreignSkin != null) { foreignSkin.lastHit = EaglerXVelocityAPIHelper.steadyTimeMillis(); sender.sendEaglerMessage(foreignSkin.data.get(sender.getEaglerProtocol())); }else { Collection possiblePlayers; - synchronized(onlinePlayersFromTexturesMap) { - possiblePlayers = onlinePlayersFromTexturesMap.get(searchUUID); + onlinePlayersFromTexturesMapLock.readLock().lock(); + try { + possiblePlayers = new ArrayList<>(onlinePlayersFromTexturesMap.get(searchUUID)); + }finally { + onlinePlayersFromTexturesMapLock.readLock().unlock(); } boolean playersExist = possiblePlayers.size() > 0; if(playersExist) { for(UUID uuid : possiblePlayers) { - CachedPlayerSkin maybeCachedPacket; - synchronized(onlinePlayersCache) { - maybeCachedPacket = onlinePlayersCache.get(uuid); - } + CachedPlayerSkin maybeCachedPacket = onlinePlayersCache.get(uuid); if(maybeCachedPacket != null) { sender.sendEaglerMessage(maybeCachedPacket.data.get(sender.getEaglerProtocol(), searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits())); @@ -457,10 +444,17 @@ public class SkinService implements ISkinService { searchUUID.getLeastSignificantBits(), 0)); return; } - if(sender.skinTextureDownloadRateLimiter.rateLimit(config.getSkinRateLimitPlayer()) && !isLimitedAsAntagonist(sender.getUniqueId())) { - doAsync(() -> { - processResolveURLTextureForForeign(sender, searchUUID, searchUUID, skinURL, -1); - }); + skinURL = sanitizeTextureURL(skinURL); + if(skinURL != null) { + final String skinURL_ = skinURL; + if(sender.skinTextureDownloadRateLimiter.rateLimit(config.getSkinRateLimitPlayer()) && !isLimitedAsAntagonist(sender.getUniqueId())) { + doAsync(() -> { + processResolveURLTextureForForeign(sender, searchUUID, searchUUID, skinURL_, -1); + }); + } + }else { + sender.sendEaglerMessage(new SPacketOtherSkinPresetEAG(searchUUID.getMostSignificantBits(), + searchUUID.getLeastSignificantBits(), 0)); } } } @@ -475,10 +469,7 @@ public class SkinService implements ISkinService { @Override public void accept(byte[] t) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(onlineCacheUUID); - } + CachedPlayerSkin skin = onlinePlayersCache.get(onlineCacheUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -505,9 +496,7 @@ public class SkinService implements ISkinService { onlineCacheUUID.getMostSignificantBits(), onlineCacheUUID.getLeastSignificantBits()), null, -1); } - synchronized (onlinePlayersCache) { - onlinePlayersCache.put(onlineCacheUUID, skin); - } + onlinePlayersCache.put(onlineCacheUUID, skin); initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -532,10 +521,7 @@ public class SkinService implements ISkinService { @Override public void accept(byte[] t) { - CachedForeignSkin skin; - synchronized(foreignSkinCache) { - skin = foreignSkinCache.get(foreignCacheUUID); - } + CachedForeignSkin skin = foreignSkinCache.get(foreignCacheUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -563,9 +549,7 @@ public class SkinService implements ISkinService { foreignCacheUUID.getLeastSignificantBits()), -1); } - synchronized (foreignSkinCache) { - foreignSkinCache.put(foreignCacheUUID, skin); - } + foreignSkinCache.put(foreignCacheUUID, skin); initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -590,10 +574,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(playerUUID); - } + CachedPlayerSkin skin = onlinePlayersCache.get(playerUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -625,9 +606,7 @@ public class SkinService implements ISkinService { SkinPackets.getModelId(t.model) == 1 ? 1 : 0), null, -1); } - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, skin); - } + onlinePlayersCache.put(playerUUID, skin); initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); }else { processResolveURLTextureForOnline(initiator, playerUUID, t.textureUUID, t.texture, @@ -656,10 +635,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(t.uuid); - } + CachedPlayerSkin skin = onlinePlayersCache.get(t.uuid); if(skin != null) { initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -689,9 +665,7 @@ public class SkinService implements ISkinService { mapUUID.getMostSignificantBits(), mapUUID.getLeastSignificantBits(), SkinPackets.getModelId(t.model) == 1 ? 1 : 0), null, -1); } - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(mapUUID, skin); - } + onlinePlayersCache.put(mapUUID, skin); initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); }else { processResolveURLTextureForOnline(initiator, mapUUID, t.textureUUID, t.texture, @@ -720,10 +694,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedForeignSkin skin; - synchronized(foreignSkinCache) { - skin = foreignSkinCache.get(playerUUID); - } + CachedForeignSkin skin = foreignSkinCache.get(playerUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); } @@ -755,9 +726,7 @@ public class SkinService implements ISkinService { SkinPackets.getModelId(t.model) == 1 ? 1 : 0), -1); } - synchronized(foreignSkinCache) { - foreignSkinCache.put(playerUUID, skin); - } + foreignSkinCache.put(playerUUID, skin); initiator.sendEaglerMessage(skin.data.get(initiator.getEaglerProtocol())); }else { processResolveURLTextureForForeign(initiator, playerUUID, t.textureUUID, t.texture, @@ -777,27 +746,16 @@ public class SkinService implements ISkinService { } public void registerEaglercraftPlayer(UUID clientUUID, SkinPacketVersionCache generatedPacket, int modelId) { - synchronized(foreignSkinCache) { - foreignSkinCache.remove(clientUUID); - } - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(clientUUID, new CachedPlayerSkin(generatedPacket, null, modelId)); - } + foreignSkinCache.remove(clientUUID); + onlinePlayersCache.put(clientUUID, new CachedPlayerSkin(generatedPacket, null, modelId)); } public void unregisterPlayer(UUID clientUUID) { - CachedPlayerSkin data; - synchronized(onlinePlayersCache) { - data = onlinePlayersCache.remove(clientUUID); - } + CachedPlayerSkin data = onlinePlayersCache.remove(clientUUID); if(data != null) { - synchronized(foreignSkinCache) { - foreignSkinCache.put(clientUUID, new CachedForeignSkin(clientUUID, data.data, data.modelId)); - } + foreignSkinCache.put(clientUUID, new CachedForeignSkin(clientUUID, data.data, data.modelId)); if(data.textureUUID != null) { - synchronized(foreignSkinCache) { - foreignSkinCache.put(data.textureUUID, new CachedForeignSkin(data.textureUUID, data.data, data.modelId)); - } + foreignSkinCache.put(data.textureUUID, new CachedForeignSkin(data.textureUUID, data.data, data.modelId)); } deletePlayerTextureAssociation(clientUUID, data.textureUUID); }else { @@ -807,94 +765,77 @@ public class SkinService implements ISkinService { private void deletePlayerTextureAssociation(UUID clientUUID, UUID textureUUID) { if(textureUUID != null) { - synchronized(onlinePlayersToTexturesMap) { - onlinePlayersToTexturesMap.remove(clientUUID); - } - synchronized(onlinePlayersFromTexturesMap) { + onlinePlayersToTexturesMap.remove(clientUUID); + onlinePlayersFromTexturesMapLock.writeLock().lock(); + try { onlinePlayersFromTexturesMap.remove(textureUUID, clientUUID); + }finally { + onlinePlayersFromTexturesMapLock.writeLock().unlock(); } }else { - UUID removedUUID; - synchronized(onlinePlayersToTexturesMap) { - removedUUID = onlinePlayersToTexturesMap.remove(clientUUID); - } + UUID removedUUID = onlinePlayersToTexturesMap.remove(clientUUID); if(removedUUID != null) { - synchronized(onlinePlayersFromTexturesMap) { + onlinePlayersFromTexturesMapLock.writeLock().lock(); + try { onlinePlayersFromTexturesMap.remove(removedUUID, clientUUID); + }finally { + onlinePlayersFromTexturesMapLock.writeLock().unlock(); } } } } public void registerTextureToPlayerAssociation(UUID textureUUID, UUID playerUUID) { - synchronized(onlinePlayersFromTexturesMap) { + onlinePlayersFromTexturesMapLock.writeLock().lock(); + try { onlinePlayersFromTexturesMap.put(textureUUID, playerUUID); + }finally { + onlinePlayersFromTexturesMapLock.writeLock().unlock(); } - synchronized(onlinePlayersToTexturesMap) { - onlinePlayersToTexturesMap.put(playerUUID, textureUUID); - } - CachedForeignSkin foreign; - synchronized(foreignSkinCache) { - foreign = foreignSkinCache.remove(textureUUID); - } + onlinePlayersToTexturesMap.put(playerUUID, textureUUID); + CachedForeignSkin foreign = foreignSkinCache.remove(textureUUID); if(foreign != null) { - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(foreign.data, textureUUID, foreign.modelKnown)); - } + onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(foreign.data, textureUUID, foreign.modelKnown)); } } public void processForceSkin(UUID playerUUID, EaglerPlayerData eaglerHandler) { - CachedPlayerSkin maybeCachedPacket; - synchronized(onlinePlayersCache) { - maybeCachedPacket = onlinePlayersCache.get(playerUUID); - } + CachedPlayerSkin maybeCachedPacket = onlinePlayersCache.get(playerUUID); if(maybeCachedPacket != null) { eaglerHandler.sendEaglerMessage(maybeCachedPacket.data.getForceClientV4()); }else { - UUID playerTexture; - synchronized(onlinePlayersToTexturesMap) { - playerTexture = onlinePlayersToTexturesMap.get(playerUUID); - } + UUID playerTexture = onlinePlayersToTexturesMap.get(playerUUID); if(playerTexture != null) { Collection possiblePlayers; - synchronized(onlinePlayersFromTexturesMap) { - possiblePlayers = onlinePlayersFromTexturesMap.get(playerTexture); + onlinePlayersFromTexturesMapLock.readLock().lock(); + try { + possiblePlayers = new ArrayList<>(onlinePlayersFromTexturesMap.get(playerTexture)); + }finally { + onlinePlayersFromTexturesMapLock.readLock().unlock(); } boolean playersExist = possiblePlayers.size() > 0; if(playersExist) { for(UUID uuid : possiblePlayers) { - synchronized(onlinePlayersCache) { - maybeCachedPacket = onlinePlayersCache.get(uuid); - } + maybeCachedPacket = onlinePlayersCache.get(uuid); if(maybeCachedPacket != null) { SkinPacketVersionCache rewritten = SkinPacketVersionCache.rewriteUUID( maybeCachedPacket.data, playerUUID.getMostSignificantBits(), playerUUID.getLeastSignificantBits()); - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(rewritten, - maybeCachedPacket.textureUUID, maybeCachedPacket.modelId)); - } + onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(rewritten, + maybeCachedPacket.textureUUID, maybeCachedPacket.modelId)); eaglerHandler.sendEaglerMessage(rewritten.getForceClientV4()); return; } } } - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.get(playerTexture); - } + CachedForeignSkin foreignSkin = foreignSkinCache.get(playerTexture); if(foreignSkin != null && foreignSkin.modelKnown != -1) { - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, - new CachedPlayerSkin(SkinPacketVersionCache.rewriteUUID(foreignSkin.data, - playerUUID.getMostSignificantBits(), playerUUID.getLeastSignificantBits()), - playerTexture, foreignSkin.modelKnown)); - } - synchronized(foreignSkinCache) { - foreignSkinCache.remove(playerTexture); - } + onlinePlayersCache.put(playerUUID, + new CachedPlayerSkin(SkinPacketVersionCache.rewriteUUID(foreignSkin.data, + playerUUID.getMostSignificantBits(), playerUUID.getLeastSignificantBits()), + playerTexture, foreignSkin.modelKnown)); + foreignSkinCache.remove(playerTexture); eaglerHandler.sendEaglerMessage(foreignSkin.data.getForceClientV4()); return; } @@ -913,7 +854,7 @@ public class SkinService implements ISkinService { if(skinObj != null) { JsonElement url = json.get("url"); if(url != null) { - String urlStr = SkinService.sanitizeTextureURL(url.getAsString()); + String urlStr = sanitizeTextureURL(url.getAsString()); if(urlStr == null) { break; } @@ -927,19 +868,14 @@ public class SkinService implements ISkinService { } UUID skinUUID = SkinPackets.createEaglerURLSkinUUID(urlStr); - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.remove(skinUUID); - } + CachedForeignSkin foreignSkin = foreignSkinCache.remove(skinUUID); if(foreignSkin != null) { registerTextureToPlayerAssociation(skinUUID, playerUUID); SkinPacketVersionCache rewrite = SkinPacketVersionCache .rewriteUUIDModel(foreignSkin.data, playerUUID.getMostSignificantBits(), playerUUID.getLeastSignificantBits(), model); - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(rewrite, skinUUID, model)); - } + onlinePlayersCache.put(playerUUID, new CachedPlayerSkin(rewrite, skinUUID, model)); eaglerHandler.sendEaglerMessage(rewrite.getForceClientV4()); return; } @@ -967,10 +903,7 @@ public class SkinService implements ISkinService { } }); }else { - CachedForeignSkin foreignSkin; - synchronized(foreignSkinCache) { - foreignSkin = foreignSkinCache.get(playerUUID); - } + CachedForeignSkin foreignSkin = foreignSkinCache.get(playerUUID); if(foreignSkin != null) { foreignSkin.lastHit = EaglerXVelocityAPIHelper.steadyTimeMillis(); eaglerHandler.sendEaglerMessage(foreignSkin.data.getForceClientV4()); @@ -997,10 +930,7 @@ public class SkinService implements ISkinService { @Override public void accept(byte[] t) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(onlineCacheUUID); - } + CachedPlayerSkin skin = onlinePlayersCache.get(onlineCacheUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1027,9 +957,7 @@ public class SkinService implements ISkinService { onlineCacheUUID.getMostSignificantBits(), onlineCacheUUID.getLeastSignificantBits()), null, -1); } - synchronized (onlinePlayersCache) { - onlinePlayersCache.put(onlineCacheUUID, skin); - } + onlinePlayersCache.put(onlineCacheUUID, skin); initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1054,10 +982,7 @@ public class SkinService implements ISkinService { @Override public void accept(byte[] t) { - CachedForeignSkin skin; - synchronized(foreignSkinCache) { - skin = foreignSkinCache.get(foreignCacheUUID); - } + CachedForeignSkin skin = foreignSkinCache.get(foreignCacheUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1085,9 +1010,7 @@ public class SkinService implements ISkinService { foreignCacheUUID.getLeastSignificantBits()), -1); } - synchronized (foreignSkinCache) { - foreignSkinCache.put(foreignCacheUUID, skin); - } + foreignSkinCache.put(foreignCacheUUID, skin); initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1112,10 +1035,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(playerUUID); - } + CachedPlayerSkin skin = onlinePlayersCache.get(playerUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1147,9 +1067,7 @@ public class SkinService implements ISkinService { SkinPackets.getModelId(t.model) == 1 ? 1 : 0), null, -1); } - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(playerUUID, skin); - } + onlinePlayersCache.put(playerUUID, skin); initiator.sendEaglerMessage(skin.data.getForceClientV4()); }else { processResolveURLTextureForOnlineToForce(initiator, playerUUID, t.textureUUID, t.texture, @@ -1178,10 +1096,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(t.uuid); - } + CachedPlayerSkin skin = onlinePlayersCache.get(t.uuid); if(skin != null) { initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1211,9 +1126,7 @@ public class SkinService implements ISkinService { mapUUID.getMostSignificantBits(), mapUUID.getLeastSignificantBits(), SkinPackets.getModelId(t.model) == 1 ? 1 : 0), null, -1); } - synchronized(onlinePlayersCache) { - onlinePlayersCache.put(mapUUID, skin); - } + onlinePlayersCache.put(mapUUID, skin); initiator.sendEaglerMessage(skin.data.getForceClientV4()); }else { processResolveURLTextureForOnlineToForce(initiator, mapUUID, t.textureUUID, t.texture, @@ -1242,10 +1155,7 @@ public class SkinService implements ISkinService { @Override public void accept(CacheFetchedProfile t) { if(t == null || t.texture == null) { - CachedForeignSkin skin; - synchronized(foreignSkinCache) { - skin = foreignSkinCache.get(playerUUID); - } + CachedForeignSkin skin = foreignSkinCache.get(playerUUID); if(skin != null) { initiator.sendEaglerMessage(skin.data.getForceClientV4()); } @@ -1277,9 +1187,7 @@ public class SkinService implements ISkinService { SkinPackets.getModelId(t.model) == 1 ? 1 : 0), -1); } - synchronized(foreignSkinCache) { - foreignSkinCache.put(playerUUID, skin); - } + foreignSkinCache.put(playerUUID, skin); initiator.sendEaglerMessage(skin.data.getForceClientV4()); }else { processResolveURLTextureForForeignToForce(initiator, playerUUID, t.textureUUID, t.texture, @@ -1301,12 +1209,16 @@ public class SkinService implements ISkinService { public void flush() { long millis = EaglerXVelocityAPIHelper.steadyTimeMillis(); - synchronized(foreignSkinCache) { - Iterator itr = foreignSkinCache.values().iterator(); - while(itr.hasNext()) { - if(millis - itr.next().lastHit > 900000l) { // 15 minutes - itr.remove(); - } + final List foreignSkinCleanup = new ArrayList<>(4); + foreignSkinCache.entrySet().forEach((etr) -> { + if(millis - etr.getValue().lastHit > 900000l) { // 15 minutes + foreignSkinCleanup.add(etr.getKey()); + } + }); + + if(!foreignSkinCleanup.isEmpty()) { + for(UUID uuid : foreignSkinCleanup) { + foreignSkinCache.remove(uuid); } } @@ -1357,7 +1269,8 @@ public class SkinService implements ISkinService { elapsedCooldown /= cooldownPeriod; if(elapsedCooldown > 0) { antagonistCooldown += elapsedCooldown * cooldownPeriod; - synchronized(antagonists) { + antagonistsLock.writeLock().lock(); + try { Iterator itr = antagonists.keySet().iterator(); while(itr.hasNext()) { UUID key = itr.next(); @@ -1368,6 +1281,8 @@ public class SkinService implements ISkinService { antagonists.put(key, i); } } + }finally { + antagonistsLock.writeLock().unlock(); } } @@ -1375,10 +1290,7 @@ public class SkinService implements ISkinService { } public SkinPacketVersionCache getSkin(UUID playerUUID) { - CachedPlayerSkin skin; - synchronized(onlinePlayersCache) { - skin = onlinePlayersCache.get(playerUUID); - } + CachedPlayerSkin skin = onlinePlayersCache.get(playerUUID); return skin != null ? skin.data : null; } @@ -1393,25 +1305,26 @@ public class SkinService implements ISkinService { private boolean isLimitedAsAntagonist(UUID uuid) { int limit = EaglerXVelocity.getEagler().getConfig().getAntagonistsRateLimit(); limit += limit >> 1; - synchronized(antagonists) { - int i = antagonists.getInt(uuid); - return i != antagonists.defaultReturnValue() && i > limit; + int i; + antagonistsLock.readLock().lock(); + try { + i = antagonists.getInt(uuid); + }finally { + antagonistsLock.readLock().unlock(); } + return i != antagonists.defaultReturnValue() && i > limit; } private void resetMaps() { - synchronized(onlinePlayersCache) { - onlinePlayersCache.clear(); - } - synchronized(onlinePlayersFromTexturesMap) { + onlinePlayersCache.clear(); + onlinePlayersFromTexturesMapLock.writeLock().lock(); + try { onlinePlayersFromTexturesMap.clear(); + }finally { + onlinePlayersFromTexturesMapLock.writeLock().unlock(); } - synchronized(onlinePlayersToTexturesMap) { - onlinePlayersToTexturesMap.clear(); - } - synchronized(foreignSkinCache) { - foreignSkinCache.clear(); - } + onlinePlayersToTexturesMap.clear(); + foreignSkinCache.clear(); synchronized(pendingTextures) { pendingTextures.clear(); } @@ -1421,8 +1334,11 @@ public class SkinService implements ISkinService { synchronized(pendingNameLookups) { pendingNameLookups.clear(); } - synchronized(antagonists) { + antagonistsLock.writeLock().lock(); + try { antagonists.clear(); + }finally { + antagonistsLock.writeLock().unlock(); } } @@ -1439,7 +1355,7 @@ public class SkinService implements ISkinService { return null; } String host = uri.getHost(); - if(host == null) { + if(host == null || !EaglerXVelocity.getEagler().getConfig().isValidSkinHost(host)) { return null; } scheme = scheme.toLowerCase(); diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinServiceOffline.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinServiceOffline.java index 6591dfc..b26af62 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinServiceOffline.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/skins/SkinServiceOffline.java @@ -1,20 +1,15 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.skins; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; import java.util.UUID; - -import com.google.common.collect.Multimap; -import com.google.common.collect.MultimapBuilder; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.server.EaglerPlayerData; import net.lax1dude.eaglercraft.v1_8.socket.protocol.pkt.server.SPacketOtherSkinPresetEAG; import net.lax1dude.eaglercraft.v1_8.socket.protocol.util.SkinPacketVersionCache; /** - * Copyright (c) 2022-2023 lax1dude. All Rights Reserved. + * Copyright (c) 2022-2025 lax1dude. All Rights Reserved. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -44,22 +39,15 @@ public class SkinServiceOffline implements ISkinService { } - private final Map skinCache = new HashMap<>(); - - private final Multimap onlinePlayersFromTexturesMap = MultimapBuilder.hashKeys().hashSetValues().build(); + private final ConcurrentMap skinCache = new ConcurrentHashMap<>(); public void init(String uri, String driverClass, String driverPath, int keepObjectsDays, int keepProfilesDays, int maxObjects, int maxProfiles) { - synchronized(skinCache) { - skinCache.clear(); - } + skinCache.clear(); } public void processGetOtherSkin(UUID searchUUID, EaglerPlayerData sender) { - CachedSkin cached; - synchronized(skinCache) { - cached = skinCache.get(searchUUID); - } + CachedSkin cached = skinCache.get(searchUUID); if(cached != null) { sender.sendEaglerMessage(cached.packet.get(sender.getEaglerProtocol())); }else { @@ -69,24 +57,6 @@ public class SkinServiceOffline implements ISkinService { } public void processGetOtherSkin(UUID searchUUID, String skinURL, EaglerPlayerData sender) { - Collection uuids; - synchronized(onlinePlayersFromTexturesMap) { - uuids = onlinePlayersFromTexturesMap.get(searchUUID); - } - if(uuids.size() > 0) { - CachedSkin cached; - synchronized(skinCache) { - Iterator uuidItr = uuids.iterator(); - while(uuidItr.hasNext()) { - cached = skinCache.get(uuidItr.next()); - if(cached != null) { - sender.sendEaglerMessage(cached.packet.get(sender.getEaglerProtocol(), - searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits())); - return; - } - } - } - } if(skinURL.startsWith("eagler://")) { // customs skulls from exported singleplayer worlds sender.sendEaglerMessage(new SPacketOtherSkinPresetEAG(searchUUID.getMostSignificantBits(), searchUUID.getLeastSignificantBits(), 0)); @@ -97,28 +67,21 @@ public class SkinServiceOffline implements ISkinService { } public void registerEaglercraftPlayer(UUID clientUUID, SkinPacketVersionCache generatedPacket, int modelId) { - synchronized(skinCache) { - skinCache.put(clientUUID, new CachedSkin(clientUUID, generatedPacket)); - } + skinCache.put(clientUUID, new CachedSkin(clientUUID, generatedPacket)); } public void unregisterPlayer(UUID clientUUID) { - synchronized(skinCache) { - skinCache.remove(clientUUID); - } + skinCache.remove(clientUUID); + } + + public void registerTextureToPlayerAssociation(String textureURL, UUID playerUUID) { } public void registerTextureToPlayerAssociation(UUID textureUUID, UUID playerUUID) { - synchronized(onlinePlayersFromTexturesMap) { - onlinePlayersFromTexturesMap.put(textureUUID, playerUUID); - } } public void processForceSkin(UUID playerUUID, EaglerPlayerData initialHandler) { - CachedSkin cached; - synchronized(skinCache) { - cached = skinCache.get(playerUUID); - } + CachedSkin cached = skinCache.get(playerUUID); if(cached != null) { initialHandler.sendEaglerMessage(cached.packet.getForceClientV4()); } @@ -129,16 +92,11 @@ public class SkinServiceOffline implements ISkinService { } public void shutdown() { - synchronized(skinCache) { - skinCache.clear(); - } + skinCache.clear(); } public SkinPacketVersionCache getSkin(UUID playerUUID) { - CachedSkin cached; - synchronized(skinCache) { - cached = skinCache.get(playerUUID); - } + CachedSkin cached = skinCache.get(playerUUID); return cached != null ? cached.packet : null; } diff --git a/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json b/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json index 6d8420e..0794334 100644 --- a/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json +++ b/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json @@ -1 +1 @@ -{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.5","description":"Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"} \ No newline at end of file +{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.6","description":"Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"} \ No newline at end of file diff --git a/gateway_version_velocity b/gateway_version_velocity index 314c3d7..ab67981 100644 --- a/gateway_version_velocity +++ b/gateway_version_velocity @@ -1 +1 @@ -1.1.5 \ No newline at end of file +1.1.6 \ No newline at end of file